From 342627bfd4bc317c982bcd7bfc7d75a69cc8a48a Mon Sep 17 00:00:00 2001 From: xtaodada Date: Sat, 9 Mar 2024 20:44:35 +0800 Subject: [PATCH] feat: update always --- .../java/org/telegram/ui/LaunchActivity.java | 16 ++++++++++++++-- .../nekogram/helpers/remote/UpdateHelper.java | 12 +++++++++++- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java index 11ca3b4805..5194cf306f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java @@ -2765,7 +2765,15 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool FileLog.e(e); } } else if (url.startsWith("tg:upgrade") || url.startsWith("tg://upgrade") || url.startsWith("tg:update") || url.startsWith("tg://update")) { - checkAppUpdate(true, null); + boolean updateAlways = false; + try { + url = url.replace("tg:upgrade", "tg://telegram.org").replace("tg://upgrade", "tg://telegram.org").replace("tg:update", "tg://telegram.org").replace("tg://update", "tg://telegram.org"); + data = Uri.parse(url); + updateAlways = data.getQueryParameter("always") != null && "true".equals(data.getQueryParameter("always")); + } catch (Exception e) { + FileLog.e(e); + } + checkAppUpdate(true, null, updateAlways); } else if (url.startsWith("tg:neko") || url.startsWith("tg://neko")) { url = url.replace("tg:neko", "tg://t.me/nasettings").replace("tg://neko", "tg://t.me/nasettings"); data = Uri.parse(url); @@ -5473,6 +5481,10 @@ private List findContacts(String userName, String userPhone, b } public void checkAppUpdate(boolean force, Browser.Progress progress) { + checkAppUpdate(force, progress, false); + } + + public void checkAppUpdate(boolean force, Browser.Progress progress, boolean updateAlways) { // if (BuildVars.isFdroid || BuildVars.isPlay) return; // if (NekoXConfig.autoUpdateReleaseChannel == 0) return; // if (!force && System.currentTimeMillis() < NekoConfig.lastUpdateCheckTime.Long() + 48 * 60 * 60 * 1000L) return; @@ -5542,7 +5554,7 @@ public void checkAppUpdate(boolean force, Browser.Progress progress) { progress.end(); } }); - }); + }, updateAlways); if (progress != null) { progress.init(); } diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/helpers/remote/UpdateHelper.java b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/helpers/remote/UpdateHelper.java index 648d6e87ab..924cccab45 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/helpers/remote/UpdateHelper.java +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/helpers/remote/UpdateHelper.java @@ -27,6 +27,8 @@ public static UpdateHelper getInstance() { return InstanceHolder.instance; } + private boolean updateAlways = false; + @Override protected void onError(String text, Delegate delegate) { delegate.onTLResponse(null, text); @@ -67,7 +69,10 @@ private Update getShouldUpdateVersion(List responses) { for (var string : responses) { try { int version_code = string.getInt("version_code"); - if (version_code > maxVersion) { + if (version_code > maxVersion || updateAlways) { + if (updateAlways) { + updateAlways = false; + } maxVersion = version_code; ref = new Update( string.getBoolean("can_not_skip"), @@ -166,10 +171,15 @@ protected void onLoadSuccess(ArrayList responses, Delegate delegate) } public void checkNewVersionAvailable(Delegate delegate) { + checkNewVersionAvailable(delegate, false); + } + + public void checkNewVersionAvailable(Delegate delegate, boolean updateAlways_) { if (NekoXConfig.autoUpdateReleaseChannel == 0) { delegate.onTLResponse(null, null); return; } + updateAlways = updateAlways_; load(delegate); }