[app] Use jsdeliver as fallback for repo (#789)
This commit is contained in:
parent
409a197431
commit
babf49153b
|
|
@ -54,6 +54,9 @@ public class RepoLoader {
|
||||||
private final List<Listener> listeners = new CopyOnWriteArrayList<>();
|
private final List<Listener> listeners = new CopyOnWriteArrayList<>();
|
||||||
private boolean isLoading = false;
|
private boolean isLoading = false;
|
||||||
private boolean repoLoaded = false;
|
private boolean repoLoaded = false;
|
||||||
|
private static final String originRepoUrl = "https://modules.lsposed.org/";
|
||||||
|
private static final String backupRepoUrl = "https://cdn.jsdelivr.net/gh/Xposed-Modules-Repo/modules@gh-pages/";
|
||||||
|
private static String repoUrl = originRepoUrl;
|
||||||
|
|
||||||
public boolean isRepoLoaded() {
|
public boolean isRepoLoaded() {
|
||||||
return repoLoaded;
|
return repoLoaded;
|
||||||
|
|
@ -75,7 +78,7 @@ public class RepoLoader {
|
||||||
isLoading = true;
|
isLoading = true;
|
||||||
}
|
}
|
||||||
App.getOkHttpClient().newCall(new Request.Builder()
|
App.getOkHttpClient().newCall(new Request.Builder()
|
||||||
.url("https://modules.lsposed.org/modules.json")
|
.url(repoUrl + "modules.json")
|
||||||
.build()).enqueue(new Callback() {
|
.build()).enqueue(new Callback() {
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(@NonNull Call call, @NonNull IOException e) {
|
public void onFailure(@NonNull Call call, @NonNull IOException e) {
|
||||||
|
|
@ -85,6 +88,10 @@ public class RepoLoader {
|
||||||
}
|
}
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
isLoading = false;
|
isLoading = false;
|
||||||
|
if (!repoUrl.equals(backupRepoUrl)) {
|
||||||
|
repoUrl = backupRepoUrl;
|
||||||
|
loadRemoteData();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -124,13 +131,18 @@ public class RepoLoader {
|
||||||
|
|
||||||
public void loadRemoteReleases(String packageName) {
|
public void loadRemoteReleases(String packageName) {
|
||||||
App.getOkHttpClient().newCall(new Request.Builder()
|
App.getOkHttpClient().newCall(new Request.Builder()
|
||||||
.url(String.format("https://modules.lsposed.org/module/%s.json", packageName))
|
.url(String.format(repoUrl + "module/%s.json", packageName))
|
||||||
.build()).enqueue(new Callback() {
|
.build()).enqueue(new Callback() {
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(@NonNull Call call, @NonNull IOException e) {
|
public void onFailure(@NonNull Call call, @NonNull IOException e) {
|
||||||
Log.e(App.TAG, Log.getStackTraceString(e));
|
Log.e(App.TAG, Log.getStackTraceString(e));
|
||||||
for (Listener listener : listeners) {
|
if (!repoUrl.equals(backupRepoUrl)) {
|
||||||
listener.onThrowable(e);
|
repoUrl = backupRepoUrl;
|
||||||
|
loadRemoteReleases(packageName);
|
||||||
|
} else {
|
||||||
|
for (Listener listener : listeners) {
|
||||||
|
listener.onThrowable(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue