Support newest Androidacy API.

pull/27/head
Fox2Code 3 years ago
parent 4a9db36d10
commit 36ad771480

@ -36,7 +36,6 @@ import com.fox2code.mmm.utils.IntentHelper;
*/
public class AndroidacyActivity extends CompatActivity {
private static final String TAG = "AndroidacyActivity";
private static final String REFERRER = "utm_source=FoxMMM&utm_medium=app";
static {
if (BuildConfig.DEBUG) {
@ -71,12 +70,11 @@ public class AndroidacyActivity extends CompatActivity {
this.forceBackPressed();
return;
}
if (!url.endsWith(REFERRER) && (url.startsWith("https://www.androidacy.com/") ||
url.startsWith("https://api.androidacy.com/magisk/"))) {
if (!url.endsWith(AndroidacyUtil.REFERRER)) {
if (url.lastIndexOf('/') < url.lastIndexOf('?')) {
url = url + '&' + REFERRER;
url = url + '&' + AndroidacyUtil.REFERRER;
} else {
url = url + '?' + REFERRER;
url = url + '?' + AndroidacyUtil.REFERRER;
}
}
boolean allowInstall = intent.getBooleanExtra(

@ -74,7 +74,7 @@ public class AndroidacyRepoData extends RepoData {
if (this.androidacyBlockade > time) return false;
this.androidacyBlockade = time + 30_000L;
String cookies = AndroidacyRepoData.getCookies();
int start = cookies == null ? -1 : cookies.indexOf("USER=");
int start = cookies == null ? -1 : cookies.indexOf("USER=") + 5;
String token = null;
if (start != -1) {
int end = cookies.indexOf(";", start);
@ -184,6 +184,8 @@ public class AndroidacyRepoData extends RepoData {
repoModule.notesUrl = // Fallback url in case the API doesn't have notesUrl
"https://api.androidacy.com/magisk/readme/?module=" + moduleId;
}
repoModule.zipUrl = this.injectToken(repoModule.zipUrl);
repoModule.notesUrl = this.injectToken(repoModule.notesUrl);
repoModule.qualityText = R.string.module_downloads;
repoModule.qualityValue = jsonObject.optInt("downloads", 0);
String checksum = jsonObject.optString("checksum", "");
@ -211,6 +213,7 @@ public class AndroidacyRepoData extends RepoData {
moduleInfo.minMagisk = 0;
}
moduleInfo.needRamdisk = jsonObject.optBoolean("needRamdisk", false);
moduleInfo.changeBoot = jsonObject.optBoolean("changeBoot", false);
moduleInfo.support = filterURL(jsonObject.optString("support"));
moduleInfo.donate = filterURL(jsonObject.optString("donate"));
String config = jsonObject.optString("config", "");
@ -258,4 +261,19 @@ public class AndroidacyRepoData extends RepoData {
return this.token == null ? this.url :
this.url + "?token=" + this.token;
}
private String injectToken(String url) {
// Do not inject token for non Androidacy urls
if (!AndroidacyUtil.isAndroidacyLink(url))
return url;
String token = "token=" + this.token;
if (!url.contains(token)) {
if (url.lastIndexOf('/') < url.lastIndexOf('?')) {
return url + '&' + token;
} else {
return url + '?' + token;
}
}
return url;
}
}

@ -6,6 +6,8 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public class AndroidacyUtil {
public static final String REFERRER = "utm_source=FoxMMM&utm_medium=app";
public static boolean isAndroidacyLink(@Nullable Uri uri) {
return uri != null && isAndroidacyLink(uri.toString(), uri);
}

Loading…
Cancel
Save