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'
This commit is contained in:
instant992 2026-06-09 14:00:16 +04:00
parent 76093b407e
commit 2fc29ea46d

View file

@ -21,6 +21,7 @@ import org.telegram.messenger.ApplicationLoader;
import org.telegram.messenger.BuildConfig; import org.telegram.messenger.BuildConfig;
import org.telegram.messenger.LocaleController; import org.telegram.messenger.LocaleController;
import org.telegram.messenger.R; import org.telegram.messenger.R;
import org.telegram.messenger.SharedConfig;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
import org.telegram.messenger.browser.Browser; import org.telegram.messenger.browser.Browser;
import org.telegram.ui.ActionBar.ActionBar; 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.LayoutHelper;
import org.telegram.ui.Components.UItem; import org.telegram.ui.Components.UItem;
import org.telegram.ui.Components.UniversalAdapter; import org.telegram.ui.Components.UniversalAdapter;
import org.telegram.ui.LaunchActivity;
import org.telegram.ui.ProfileActivity.SearchAdapter.SearchResult; import org.telegram.ui.ProfileActivity.SearchAdapter.SearchResult;
import java.util.ArrayList; import java.util.ArrayList;
@ -44,6 +46,7 @@ import me.vkryl.android.animator.FactorAnimator;
import tw.nekomimi.nekogram.accessibility.AccessibilitySettingsActivity; import tw.nekomimi.nekogram.accessibility.AccessibilitySettingsActivity;
import tw.nekomimi.nekogram.helpers.PasscodeHelper; import tw.nekomimi.nekogram.helpers.PasscodeHelper;
import tw.nekomimi.nekogram.helpers.remote.ConfigHelper; import tw.nekomimi.nekogram.helpers.remote.ConfigHelper;
import tw.nekomimi.nekogram.helpers.remote.UpdateHelper;
public class NekoSettingsActivity extends BaseNekoSettingsActivity implements FactorAnimator.Target { 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 experimentRow = rowId++;
private final int accessibilityRow = rowId++; private final int accessibilityRow = rowId++;
private final int channelRow = rowId++;
private final int websiteRow = rowId++;
private final int sourceCodeRow = rowId++; private final int sourceCodeRow = rowId++;
private final int translationRow = rowId++; private final int translationRow = rowId++;
private final int donateRow = rowId++; private final int donateRow = rowId++;
private final int checkUpdateRow = rowId++;
private final int sponsorRow = 100; private final int sponsorRow = 100;
@ -165,11 +167,10 @@ public class NekoSettingsActivity extends BaseNekoSettingsActivity implements Fa
} }
items.add(UItem.asShadow(null)); 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.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(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(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)); items.add(UItem.asShadow(null));
newsList.clear(); newsList.clear();
@ -204,16 +205,24 @@ public class NekoSettingsActivity extends BaseNekoSettingsActivity implements Fa
presentFragment(new NekoExperimentalSettingsActivity()); presentFragment(new NekoExperimentalSettingsActivity());
} else if (id == accessibilityRow) { } else if (id == accessibilityRow) {
presentFragment(new AccessibilitySettingsActivity()); presentFragment(new AccessibilitySettingsActivity());
} else if (id == channelRow) {
getMessagesController().openByUserName(LocaleController.getString(R.string.OfficialChannelUsername), this, 1);
} else if (id == donateRow) { } else if (id == donateRow) {
presentFragment(new NekoDonateActivity()); 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) { } else if (id == translationRow) {
Browser.openUrl(getParentActivity(), "https://neko.crowdin.com/nekogram"); Browser.openUrl(getParentActivity(), "https://neko.crowdin.com/nekogram");
} else if (id == websiteRow) {
Browser.openUrl(getParentActivity(), "https://nekogram.app");
} else if (id == sourceCodeRow) { } else if (id == sourceCodeRow) {
Browser.openUrl(getParentActivity(), "https://github.com/Nekogram/Nekogram"); Browser.openUrl(getParentActivity(), "https://github.com/instant992/FoxiGram");
} else if (id >= sponsorRow) { } else if (id >= sponsorRow) {
var news = newsList.get(id - sponsorRow); var news = newsList.get(id - sponsorRow);
Browser.openUrl(getParentActivity(), news.url); 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(20002, LocaleController.getString(R.string.ViewSourceCode), "GitHub", R.drawable.msg2_help, () -> Browser.openUrl(getParentActivity(), "https://github.com/instant992/FoxiGram")));
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(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(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()))); searchResultList.add(new SearchResult(20004, LocaleController.getString(R.string.Donate), LocaleController.getString(R.string.DonateAbout), R.drawable.msg2_help, () -> presentFragment(new NekoDonateActivity())));