From 2fc29ea46d5f6fe64e577e329cb89db8104d4510 Mon Sep 17 00:00:00 2001 From: instant992 Date: Tue, 9 Jun 2026 14:00:16 +0400 Subject: [PATCH] Foxi settings: drop official channel/site, point source to our repo, add update check - Remove the Official Channel and Official Site entries - Point 'View source code' at github.com/instant992/FoxiGram - Add a 'Check for updates' row below 'Support FoxiGram' --- .../settings/NekoSettingsActivity.java | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoSettingsActivity.java b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoSettingsActivity.java index 036f8c8e..a122c52c 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoSettingsActivity.java +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoSettingsActivity.java @@ -21,6 +21,7 @@ import org.telegram.messenger.ApplicationLoader; import org.telegram.messenger.BuildConfig; import org.telegram.messenger.LocaleController; import org.telegram.messenger.R; +import org.telegram.messenger.SharedConfig; import org.telegram.messenger.Utilities; import org.telegram.messenger.browser.Browser; import org.telegram.ui.ActionBar.ActionBar; @@ -33,6 +34,7 @@ import org.telegram.ui.Components.ItemOptions; import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.UItem; import org.telegram.ui.Components.UniversalAdapter; +import org.telegram.ui.LaunchActivity; import org.telegram.ui.ProfileActivity.SearchAdapter.SearchResult; import java.util.ArrayList; @@ -44,6 +46,7 @@ import me.vkryl.android.animator.FactorAnimator; import tw.nekomimi.nekogram.accessibility.AccessibilitySettingsActivity; import tw.nekomimi.nekogram.helpers.PasscodeHelper; import tw.nekomimi.nekogram.helpers.remote.ConfigHelper; +import tw.nekomimi.nekogram.helpers.remote.UpdateHelper; public class NekoSettingsActivity extends BaseNekoSettingsActivity implements FactorAnimator.Target { @@ -61,11 +64,10 @@ public class NekoSettingsActivity extends BaseNekoSettingsActivity implements Fa private final int experimentRow = rowId++; private final int accessibilityRow = rowId++; - private final int channelRow = rowId++; - private final int websiteRow = rowId++; private final int sourceCodeRow = rowId++; private final int translationRow = rowId++; private final int donateRow = rowId++; + private final int checkUpdateRow = rowId++; private final int sponsorRow = 100; @@ -165,11 +167,10 @@ public class NekoSettingsActivity extends BaseNekoSettingsActivity implements Fa } items.add(UItem.asShadow(null)); - items.add(UItem.asButton(channelRow, R.drawable.msg_channel, LocaleController.getString(R.string.OfficialChannel), "@" + LocaleController.getString(R.string.OfficialChannelUsername)).slug("channel")); - items.add(UItem.asButton(websiteRow, R.drawable.msg_language, LocaleController.getString(R.string.OfficialSite), "nekogram.app").slug("website")); items.add(UItem.asButton(sourceCodeRow, R.drawable.msg_link, LocaleController.getString(R.string.ViewSourceCode), "GitHub").slug("sourceCode")); items.add(UItem.asButtonSubtext(translationRow, R.drawable.msg_translate, LocaleController.getString(R.string.Translation), LocaleController.getString(R.string.TranslationAbout)).slug("translation")); items.add(UItem.asButtonSubtext(donateRow, R.drawable.msg_input_like, LocaleController.getString(R.string.Donate), LocaleController.getString(R.string.DonateAbout)).slug("donate")); + items.add(UItem.asButtonSubtext(checkUpdateRow, R.drawable.msg_reset, LocaleController.getString(R.string.CheckUpdate), UpdateHelper.formatDateUpdate(SharedConfig.lastUpdateCheckTime)).slug("checkUpdate")); items.add(UItem.asShadow(null)); newsList.clear(); @@ -204,16 +205,24 @@ public class NekoSettingsActivity extends BaseNekoSettingsActivity implements Fa presentFragment(new NekoExperimentalSettingsActivity()); } else if (id == accessibilityRow) { presentFragment(new AccessibilitySettingsActivity()); - } else if (id == channelRow) { - getMessagesController().openByUserName(LocaleController.getString(R.string.OfficialChannelUsername), this, 1); } else if (id == donateRow) { presentFragment(new NekoDonateActivity()); + } else if (id == checkUpdateRow) { + if (getParentActivity() instanceof LaunchActivity launchActivity) { + launchActivity.checkAppUpdate(true, new Browser.Progress() { + @Override + public void end() { + item.subtext = UpdateHelper.formatDateUpdate(SharedConfig.lastUpdateCheckTime); + listView.adapter.notifyItemChanged(position); + } + }); + item.subtext = LocaleController.getString(R.string.CheckingUpdate); + listView.adapter.notifyItemChanged(position); + } } else if (id == translationRow) { Browser.openUrl(getParentActivity(), "https://neko.crowdin.com/nekogram"); - } else if (id == websiteRow) { - Browser.openUrl(getParentActivity(), "https://nekogram.app"); } else if (id == sourceCodeRow) { - Browser.openUrl(getParentActivity(), "https://github.com/Nekogram/Nekogram"); + Browser.openUrl(getParentActivity(), "https://github.com/instant992/FoxiGram"); } else if (id >= sponsorRow) { var news = newsList.get(id - sponsorRow); Browser.openUrl(getParentActivity(), news.url); @@ -312,9 +321,7 @@ public class NekoSettingsActivity extends BaseNekoSettingsActivity implements Fa })); })); - searchResultList.add(new SearchResult(20000, LocaleController.getString(R.string.OfficialChannel), "@" + LocaleController.getString(R.string.OfficialChannelUsername), R.drawable.msg2_help, () -> getMessagesController().openByUserName(LocaleController.getString(R.string.OfficialChannelUsername), this, 1))); - searchResultList.add(new SearchResult(20001, LocaleController.getString(R.string.OfficialSite), "nekogram.app", R.drawable.msg2_help, () -> Browser.openUrl(getParentActivity(), "https://nekogram.app"))); - searchResultList.add(new SearchResult(20002, LocaleController.getString(R.string.ViewSourceCode), "GitHub", R.drawable.msg2_help, () -> Browser.openUrl(getParentActivity(), "https://github.com/Nekogram/Nekogram"))); + searchResultList.add(new SearchResult(20002, LocaleController.getString(R.string.ViewSourceCode), "GitHub", R.drawable.msg2_help, () -> Browser.openUrl(getParentActivity(), "https://github.com/instant992/FoxiGram"))); searchResultList.add(new SearchResult(20003, LocaleController.getString(R.string.Translation), LocaleController.getString(R.string.TranslationAbout), R.drawable.msg2_help, () -> Browser.openUrl(getParentActivity(), "https://neko.crowdin.com/nekogram"))); searchResultList.add(new SearchResult(20004, LocaleController.getString(R.string.Donate), LocaleController.getString(R.string.DonateAbout), R.drawable.msg2_help, () -> presentFragment(new NekoDonateActivity())));