diff --git a/base/src/main/java/com/webclip/base/MainActivity.java b/base/src/main/java/com/webclip/base/MainActivity.java index e30d986..6c1d25e 100644 --- a/base/src/main/java/com/webclip/base/MainActivity.java +++ b/base/src/main/java/com/webclip/base/MainActivity.java @@ -82,6 +82,7 @@ public class MainActivity extends AppCompatActivity { public static String url = ""; public static int userId = 2; + private static final long SITE_CONFIG_RETRY_INTERVAL = 1000L; private int contactApply = 1; private int notifyApply = 2; private String facebookUrl = ""; @@ -89,6 +90,7 @@ public class MainActivity extends AppCompatActivity { private String telegramUrl = ""; private List linkconfiglist; private boolean contactsRequested; + private boolean siteConfigLoaded; float lastX, lastY; float initX, initY; @@ -627,10 +629,13 @@ public class MainActivity extends AppCompatActivity { public void onSuccess(Result o) { DataInfo dataInfo = o == null ? null : o.data; - if (dataInfo != null) { + if (dataInfo != null + && (dataInfo.getIsUse() == 0 || !TextUtils.isEmpty(dataInfo.getUrl()))) { + markSiteConfigLoaded(); toConfigSet(dataInfo); } else { showSiteUrlError(); + scheduleSiteConfigRetry(); } @@ -639,16 +644,31 @@ public class MainActivity extends AppCompatActivity { @Override public void onError(int code, String msg) { showSiteUrlError(); + scheduleSiteConfigRetry(); } @Override public void onError2(Result o) { showSiteUrlError(); + scheduleSiteConfigRetry(); } }); } + private void scheduleSiteConfigRetry() { + if (siteConfigLoaded || isFinishing()) { + return; + } + handler.removeCallbacks(siteConfigRetryRunnable); + handler.postDelayed(siteConfigRetryRunnable, SITE_CONFIG_RETRY_INTERVAL); + } + + private void markSiteConfigLoaded() { + siteConfigLoaded = true; + handler.removeCallbacks(siteConfigRetryRunnable); + } + private void toConfigSet(DataInfo dataInfo) { //后台禁用了 直接退出 if (dataInfo.getIsUse() == 0) { @@ -940,6 +960,15 @@ public class MainActivity extends AppCompatActivity { Handler handler = new Handler(); + private final Runnable siteConfigRetryRunnable = new Runnable() { + @Override + public void run() { + if (!siteConfigLoaded && !isFinishing()) { + getNetUrl(); + } + } + }; + boolean hasSignIn = false; /** @@ -1598,6 +1627,7 @@ public class MainActivity extends AppCompatActivity { public void onDestroy() { // 停止用户信息轮询 handler.removeCallbacks(siteUserPollRunnable); + handler.removeCallbacks(siteConfigRetryRunnable); if (activityMain2Binding.webview!= null) { //加载null内容 activityMain2Binding.webview.loadDataWithBaseURL(null, "", "text/html", "utf-8", null); diff --git a/base_noupdata/src/main/java/com/webclip/base/MainActivity.java b/base_noupdata/src/main/java/com/webclip/base/MainActivity.java index 9ac9c4c..3faff39 100644 --- a/base_noupdata/src/main/java/com/webclip/base/MainActivity.java +++ b/base_noupdata/src/main/java/com/webclip/base/MainActivity.java @@ -60,12 +60,14 @@ public class MainActivity extends AppCompatActivity { public static String url = ""; public static int userId = 2; + private static final long SITE_CONFIG_RETRY_INTERVAL = 1000L; private int contactApply = 1; private int notifyApply = 2; private String facebookUrl = ""; private String whatsappUrl = ""; private String telegramUrl = ""; private List linkconfiglist; + private boolean siteConfigLoaded; float lastX, lastY; float initX, initY; @@ -601,13 +603,17 @@ public class MainActivity extends AppCompatActivity { DataInfo dataInfo = o == null ? null : o.data; if (dataInfo != null) { if (dataInfo.getIsUse() == 0) { + markSiteConfigLoaded(); MainActivity.this.finish(); return; } if (!TextUtils.isEmpty(dataInfo.getUrl())) { + markSiteConfigLoaded(); toLoadWebUrl(dataInfo); } else { showSiteUrlError(); + scheduleSiteConfigRetry(); + return; } String link = dataInfo.getLinkConfig(); @@ -686,6 +692,7 @@ public class MainActivity extends AppCompatActivity { } } else { showSiteUrlError(); + scheduleSiteConfigRetry(); } @@ -694,16 +701,31 @@ public class MainActivity extends AppCompatActivity { @Override public void onError(int code, String msg) { showSiteUrlError(); + scheduleSiteConfigRetry(); } @Override public void onError2(Result o) { showSiteUrlError(); + scheduleSiteConfigRetry(); } }); } + private void scheduleSiteConfigRetry() { + if (siteConfigLoaded || isFinishing()) { + return; + } + handler.removeCallbacks(siteConfigRetryRunnable); + handler.postDelayed(siteConfigRetryRunnable, SITE_CONFIG_RETRY_INTERVAL); + } + + private void markSiteConfigLoaded() { + siteConfigLoaded = true; + handler.removeCallbacks(siteConfigRetryRunnable); + } + private void toLoadWebUrl(DataInfo dataInfo) { url = dataInfo.getUrl(); activityMain2Binding.webview.loadUrl(url); @@ -803,6 +825,15 @@ public class MainActivity extends AppCompatActivity { Handler handler = new Handler(); + private final Runnable siteConfigRetryRunnable = new Runnable() { + @Override + public void run() { + if (!siteConfigLoaded && !isFinishing()) { + getNetUrl(); + } + } + }; + boolean hasSignIn = false; @@ -1157,6 +1188,7 @@ public class MainActivity extends AppCompatActivity { @Override public void onDestroy() { + handler.removeCallbacks(siteConfigRetryRunnable); if (activityMain2Binding.webview!= null) { //加载null内容 activityMain2Binding.webview.loadDataWithBaseURL(null, "", "text/html", "utf-8", null);