enable github update check
This commit is contained in:
parent
10a405ef13
commit
596799bf2f
|
@ -9,8 +9,8 @@ android {
|
||||||
applicationId "org.joinmastodon.android.sk"
|
applicationId "org.joinmastodon.android.sk"
|
||||||
minSdk 23
|
minSdk 23
|
||||||
targetSdk 33
|
targetSdk 33
|
||||||
versionCode 23
|
versionCode 24
|
||||||
versionName "1.1.3+fork.23"
|
versionName "1.1.3+fork.24"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,6 +52,9 @@ android {
|
||||||
githubRelease{
|
githubRelease{
|
||||||
setRoot "src/github"
|
setRoot "src/github"
|
||||||
}
|
}
|
||||||
|
debug {
|
||||||
|
setRoot "src/github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
lintOptions{
|
lintOptions{
|
||||||
checkReleaseBuilds false
|
checkReleaseBuilds false
|
||||||
|
|
|
@ -94,8 +94,8 @@ public class GithubSelfUpdaterImpl extends GithubSelfUpdater{
|
||||||
public void maybeCheckForUpdates(){
|
public void maybeCheckForUpdates(){
|
||||||
if(state!=UpdateState.NO_UPDATE && state!=UpdateState.UPDATE_AVAILABLE)
|
if(state!=UpdateState.NO_UPDATE && state!=UpdateState.UPDATE_AVAILABLE)
|
||||||
return;
|
return;
|
||||||
long timeSinceLastCheck=System.currentTimeMillis()-getPrefs().getLong("lastCheck", 0);
|
long timeSinceLastCheck=System.currentTimeMillis()-getPrefs().getLong("lastCheck", CHECK_PERIOD);
|
||||||
if(timeSinceLastCheck>CHECK_PERIOD){
|
if(timeSinceLastCheck>=CHECK_PERIOD){
|
||||||
setState(UpdateState.CHECKING);
|
setState(UpdateState.CHECKING);
|
||||||
MastodonAPIController.runInBackground(this::actuallyCheckForUpdates);
|
MastodonAPIController.runInBackground(this::actuallyCheckForUpdates);
|
||||||
}
|
}
|
||||||
|
@ -109,18 +109,25 @@ public class GithubSelfUpdaterImpl extends GithubSelfUpdater{
|
||||||
try(Response resp=call.execute()){
|
try(Response resp=call.execute()){
|
||||||
JsonObject obj=JsonParser.parseReader(resp.body().charStream()).getAsJsonObject();
|
JsonObject obj=JsonParser.parseReader(resp.body().charStream()).getAsJsonObject();
|
||||||
String tag=obj.get("tag_name").getAsString();
|
String tag=obj.get("tag_name").getAsString();
|
||||||
Matcher matcher=Pattern.compile("v(\\d+)\\.(\\d+)\\.(\\d+)").matcher(tag);
|
Matcher matcher=Pattern.compile("v(\\d+)\\.(\\d+)\\.(\\d+)\\+fork\\.(\\d+)").matcher(tag);
|
||||||
if(!matcher.find()){
|
if(!matcher.find()){
|
||||||
Log.w(TAG, "actuallyCheckForUpdates: release tag has wrong format: "+tag);
|
Log.w(TAG, "actuallyCheckForUpdates: release tag has wrong format: "+tag);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int newMajor=Integer.parseInt(matcher.group(1)), newMinor=Integer.parseInt(matcher.group(2)), newRevision=Integer.parseInt(matcher.group(3));
|
int newMajor=Integer.parseInt(matcher.group(1)),
|
||||||
String[] currentParts=BuildConfig.VERSION_NAME.split("\\.");
|
newMinor=Integer.parseInt(matcher.group(2)),
|
||||||
int curMajor=Integer.parseInt(currentParts[0]), curMinor=Integer.parseInt(currentParts[1]), curRevision=Integer.parseInt(currentParts[2]);
|
newRevision=Integer.parseInt(matcher.group(3)),
|
||||||
|
newForkNumber=Integer.parseInt(matcher.group(4));
|
||||||
|
|
||||||
|
String[] currentParts=BuildConfig.VERSION_NAME.split("[.+]");
|
||||||
|
int curMajor=Integer.parseInt(currentParts[0]),
|
||||||
|
curMinor=Integer.parseInt(currentParts[1]),
|
||||||
|
curRevision=Integer.parseInt(currentParts[2]),
|
||||||
|
curForkNumber=Integer.parseInt(currentParts[4]);
|
||||||
long newVersion=((long)newMajor << 32) | ((long)newMinor << 16) | newRevision;
|
long newVersion=((long)newMajor << 32) | ((long)newMinor << 16) | newRevision;
|
||||||
long curVersion=((long)curMajor << 32) | ((long)curMinor << 16) | curRevision;
|
long curVersion=((long)curMajor << 32) | ((long)curMinor << 16) | curRevision;
|
||||||
if(newVersion>curVersion || BuildConfig.DEBUG){
|
if(newVersion>curVersion || newForkNumber>curForkNumber || BuildConfig.DEBUG){
|
||||||
String version=newMajor+"."+newMinor+"."+newRevision;
|
String version=newMajor+"."+newMinor+"."+newRevision+"+fork."+newForkNumber;
|
||||||
Log.d(TAG, "actuallyCheckForUpdates: new version: "+version);
|
Log.d(TAG, "actuallyCheckForUpdates: new version: "+version);
|
||||||
for(JsonElement el:obj.getAsJsonArray("assets")){
|
for(JsonElement el:obj.getAsJsonArray("assets")){
|
||||||
JsonObject asset=el.getAsJsonObject();
|
JsonObject asset=el.getAsJsonObject();
|
||||||
|
|
|
@ -20,7 +20,7 @@ public abstract class GithubSelfUpdater{
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean needSelfUpdating(){
|
public static boolean needSelfUpdating(){
|
||||||
return BuildConfig.BUILD_TYPE.equals("githubRelease");
|
return BuildConfig.BUILD_TYPE.equals("githubRelease") || BuildConfig.BUILD_TYPE.equals("debug");
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void maybeCheckForUpdates();
|
public abstract void maybeCheckForUpdates();
|
||||||
|
|
Loading…
Reference in New Issue