[app] Update channel (#1310)

This commit is contained in:
南宫雪珊 2021-10-19 00:48:54 +08:00 committed by GitHub
parent 8a09ff11ff
commit 0f00ce8644
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 61 additions and 1 deletions

View File

@ -19,6 +19,7 @@
package org.lsposed.manager.ui.fragment; package org.lsposed.manager.ui.fragment;
import android.content.res.Resources;
import android.graphics.Color; import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
import android.text.Spannable; import android.text.Spannable;
@ -71,6 +72,8 @@ import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.ListIterator; import java.util.ListIterator;
import java.util.Locale;
import java.util.stream.Collectors;
import java.util.stream.IntStream; import java.util.stream.IntStream;
import okhttp3.Headers; import okhttp3.Headers;
@ -319,13 +322,28 @@ public class RepoItemFragment extends BaseFragment implements RepoLoader.Listene
private class ReleaseAdapter extends RecyclerView.Adapter<ReleaseAdapter.ViewHolder> { private class ReleaseAdapter extends RecyclerView.Adapter<ReleaseAdapter.ViewHolder> {
private List<Release> items; private List<Release> items;
private final Resources resources = App.getInstance().getResources();
public ReleaseAdapter() { public ReleaseAdapter() {
loadItems(); loadItems();
} }
public void loadItems() { public void loadItems() {
this.items = module.getReleases(); var channels = resources.getStringArray(R.array.update_channel_values);
var channel = App.getPreferences().getString("update_channel", channels[0]);
var releases = module.getReleases();
if (channel.equals(channels[0])) {
this.items = releases.parallelStream().filter(t -> {
if (t.getIsPrerelease()) return false;
var name = t.getName().toLowerCase(Locale.ROOT);
return !name.startsWith("snapshot") && !name.startsWith("nightly");
}).collect(Collectors.toList());
} else if (channel.equals(channels[1])) {
this.items = releases.parallelStream().filter(t -> {
var name = t.getName().toLowerCase(Locale.ROOT);
return !name.startsWith("snapshot") && !name.startsWith("nightly");
}).collect(Collectors.toList());
} else this.items = releases;
notifyDataSetChanged(); notifyDataSetChanged();
} }

View File

@ -170,6 +170,11 @@
<string name="settings_translation_summary">帮助我们把 %s 翻译到你的语言</string> <string name="settings_translation_summary">帮助我们把 %s 翻译到你的语言</string>
<string name="pref_title_enable_auto_add_shortcut">自动添加快捷方式</string> <string name="pref_title_enable_auto_add_shortcut">自动添加快捷方式</string>
<string name="settings_enable_auto_add_shortcut_summary">在非寄生管理器中禁用该选项将不会新建快捷方式</string> <string name="settings_enable_auto_add_shortcut_summary">在非寄生管理器中禁用该选项将不会新建快捷方式</string>
<string name="settings_group_repo">@string/module_repo</string>
<string name="settings_update_channel">更新通道</string>
<string name="update_channel_stable">稳定版</string>
<string name="update_channel_bate">测试版</string>
<string name="update_channel_nightly">每夜构建</string>
<!-- Module Repo --> <!-- Module Repo -->
<string name="module_readme">自述文件</string> <string name="module_readme">自述文件</string>
<string name="module_releases">版本</string> <string name="module_releases">版本</string>

View File

@ -84,4 +84,16 @@
<item>@string/color_blue_grey</item> <item>@string/color_blue_grey</item>
</string-array> </string-array>
<string-array name="update_channel_texts" translatable="false">
<item>@string/update_channel_stable</item>
<item>@string/update_channel_bate</item>
<item>@string/update_channel_nightly</item>
</string-array>
<string-array name="update_channel_values" translatable="false">
<item>CHANNEL_STABLE</item>
<item>CHANNEL_BETA</item>
<item>CHANNEL_NIGHTLY</item>
</string-array>
</resources> </resources>

View File

@ -179,6 +179,11 @@
<string name="settings_translation_summary">Help us translate %s into your language</string> <string name="settings_translation_summary">Help us translate %s into your language</string>
<string name="pref_title_enable_auto_add_shortcut">Automatically add a shortcut</string> <string name="pref_title_enable_auto_add_shortcut">Automatically add a shortcut</string>
<string name="settings_enable_auto_add_shortcut_summary">No new shortcuts will be added when disabled in the non-parasitic manager</string> <string name="settings_enable_auto_add_shortcut_summary">No new shortcuts will be added when disabled in the non-parasitic manager</string>
<string name="settings_group_repo">@string/module_repo</string>
<string name="settings_update_channel">Update channel</string>
<string name="update_channel_stable">Stable</string>
<string name="update_channel_bate">Beta</string>
<string name="update_channel_nightly">Nightly build</string>
<!-- Module Repo --> <!-- Module Repo -->
<string name="module_readme">Readme</string> <string name="module_readme">Readme</string>

View File

@ -101,6 +101,16 @@
android:title="@string/pref_title_enable_auto_add_shortcut" /> android:title="@string/pref_title_enable_auto_add_shortcut" />
</androidx.preference.PreferenceCategory> </androidx.preference.PreferenceCategory>
<androidx.preference.PreferenceCategory android:title="@string/settings_group_repo">
<rikka.preference.SimpleMenuPreference
android:defaultValue="CHANNEL_STABLE"
android:entries="@array/update_channel_texts"
android:entryValues="@array/update_channel_values"
android:key="update_channel"
android:summary="%s"
android:title="@string/settings_update_channel" />
</androidx.preference.PreferenceCategory>
<androidx.preference.PreferenceCategory <androidx.preference.PreferenceCategory
android:icon="@drawable/ic_baseline_settings_backup_restore_24" android:icon="@drawable/ic_baseline_settings_backup_restore_24"
android:summary="@string/settings_backup_and_restore_summery" android:summary="@string/settings_backup_and_restore_summery"

View File

@ -102,6 +102,16 @@
android:title="@string/pref_title_enable_auto_add_shortcut" /> android:title="@string/pref_title_enable_auto_add_shortcut" />
</androidx.preference.PreferenceCategory> </androidx.preference.PreferenceCategory>
<androidx.preference.PreferenceCategory android:title="@string/settings_group_repo">
<rikka.preference.SimpleMenuPreference
android:defaultValue="CHANNEL_STABLE"
android:entries="@array/update_channel_texts"
android:entryValues="@array/update_channel_values"
android:key="update_channel"
android:summary="%s"
android:title="@string/settings_update_channel" />
</androidx.preference.PreferenceCategory>
<androidx.preference.PreferenceCategory <androidx.preference.PreferenceCategory
android:icon="@drawable/ic_baseline_settings_backup_restore_24" android:icon="@drawable/ic_baseline_settings_backup_restore_24"
android:summary="@string/settings_backup_and_restore_summery" android:summary="@string/settings_backup_and_restore_summery"