mirror of
https://github.com/yuliskov/SmartTube.git
synced 2026-01-24 15:39:58 -06:00
checker ui localized
This commit is contained in:
@@ -13,7 +13,7 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class PreferenceFragmentHelper {
|
||||
private final Context mContext;
|
||||
private final Context mStyledContext;
|
||||
|
||||
public static class ListPrefData {
|
||||
public final CharSequence[] entries;
|
||||
@@ -29,22 +29,33 @@ public class PreferenceFragmentHelper {
|
||||
}
|
||||
}
|
||||
|
||||
public PreferenceFragmentHelper(Context context) {
|
||||
mContext = context;
|
||||
public PreferenceFragmentHelper(Context styledContext) {
|
||||
mStyledContext = styledContext;
|
||||
}
|
||||
|
||||
public Preference createPreference(SettingsCategory category) {
|
||||
switch (category.type) {
|
||||
case SettingsCategory.TYPE_CHECKBOX_LIST:
|
||||
return createCheckedListPreference(category);
|
||||
case SettingsCategory.TYPE_RADIO_LIST:
|
||||
return createRadioListPreference(category);
|
||||
case SettingsCategory.TYPE_STRING_LIST:
|
||||
return createStringListPreference(category);
|
||||
case SettingsCategory.TYPE_SINGLE_SWITCH:
|
||||
return createSwitchPreference(category);
|
||||
case SettingsCategory.TYPE_SINGLE_BUTTON:
|
||||
return createButtonPreference(category);
|
||||
case SettingsCategory.TYPE_STRING_LIST:
|
||||
}
|
||||
|
||||
return createRadioListPreference(category);
|
||||
throw new IllegalStateException("Can't find matched preference for type: " + category.type);
|
||||
}
|
||||
|
||||
private Preference createStringListPreference(SettingsCategory category) {
|
||||
MultiSelectListPreference pref = new StringListPreference(mStyledContext);
|
||||
|
||||
initMultiSelectListPref(category, pref);
|
||||
|
||||
return pref;
|
||||
}
|
||||
|
||||
public Preference createButtonPreference(SettingsCategory category) {
|
||||
@@ -52,7 +63,7 @@ public class PreferenceFragmentHelper {
|
||||
|
||||
if (category.items.size() == 1) {
|
||||
OptionItem item = category.items.get(0);
|
||||
Preference preference = new Preference(mContext);
|
||||
Preference preference = new Preference(mStyledContext);
|
||||
preference.setPersistent(false);
|
||||
preference.setTitle(item.getTitle());
|
||||
preference.setOnPreferenceClickListener(pref -> {
|
||||
@@ -71,7 +82,7 @@ public class PreferenceFragmentHelper {
|
||||
|
||||
if (category.items.size() == 1) {
|
||||
OptionItem item = category.items.get(0);
|
||||
SwitchPreference pref = new SwitchPreference(mContext);
|
||||
SwitchPreference pref = new SwitchPreference(mStyledContext);
|
||||
pref.setPersistent(false);
|
||||
pref.setTitle(item.getTitle());
|
||||
pref.setDefaultValue(item.isSelected());
|
||||
@@ -87,7 +98,7 @@ public class PreferenceFragmentHelper {
|
||||
}
|
||||
|
||||
public Preference createRadioListPreference(SettingsCategory category) {
|
||||
ListPreference pref = new ListPreference(mContext);
|
||||
ListPreference pref = new ListPreference(mStyledContext);
|
||||
pref.setPersistent(false);
|
||||
pref.setTitle(category.title);
|
||||
pref.setKey(category.toString());
|
||||
@@ -113,7 +124,14 @@ public class PreferenceFragmentHelper {
|
||||
}
|
||||
|
||||
public Preference createCheckedListPreference(SettingsCategory category) {
|
||||
MultiSelectListPreference pref = new MultiSelectListPreference(mContext);
|
||||
MultiSelectListPreference pref = new MultiSelectListPreference(mStyledContext);
|
||||
|
||||
initMultiSelectListPref(category, pref);
|
||||
|
||||
return pref;
|
||||
}
|
||||
|
||||
private void initMultiSelectListPref(SettingsCategory category, MultiSelectListPreference pref) {
|
||||
pref.setPersistent(false);
|
||||
pref.setTitle(category.title);
|
||||
pref.setKey(category.toString());
|
||||
@@ -141,8 +159,6 @@ public class PreferenceFragmentHelper {
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
return pref;
|
||||
}
|
||||
|
||||
public ListPrefData createListPrefData(List<OptionItem> items) {
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.liskovsoft.smartyoutubetv2.tv.ui.playback.settings;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import androidx.preference.MultiSelectListPreference;
|
||||
|
||||
public class StringListPreference extends MultiSelectListPreference {
|
||||
public StringListPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
|
||||
super(context, attrs, defStyleAttr, defStyleRes);
|
||||
}
|
||||
|
||||
public StringListPreference(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
}
|
||||
|
||||
public StringListPreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
public StringListPreference(Context context) {
|
||||
super(context);
|
||||
}
|
||||
}
|
||||
@@ -41,22 +41,22 @@ public class AppUpdateManager implements AppUpdateCheckerListener {
|
||||
|
||||
public void start() {
|
||||
mUpdateInstalled = false;
|
||||
mUpdateChecker.checkForUpdates(UPDATE_MANIFEST_URL);
|
||||
mUpdateChecker.forceCheckForUpdates(UPDATE_MANIFEST_URL);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdateFound(String versionName, List<String> changelog, String apkPath) {
|
||||
showUpdateDialog(String.format("%s %s", mContext.getString(R.string.app_name), versionName), changelog, apkPath);
|
||||
showUpdateDialog(versionName, changelog, apkPath);
|
||||
}
|
||||
|
||||
private void showUpdateDialog(String title, List<String> textItems, String apkPath) {
|
||||
mSettingsPresenter.appendStrings("Changelog", createChangelogOptions(textItems));
|
||||
private void showUpdateDialog(String versionName, List<String> changelog, String apkPath) {
|
||||
mSettingsPresenter.appendStrings(mContext.getString(R.string.update_changelog), createChangelogOptions(changelog));
|
||||
mSettingsPresenter.appendButton(
|
||||
UiOptionItem.from("Install update", optionItem -> {
|
||||
UiOptionItem.from(mContext.getString(R.string.install_update), optionItem -> {
|
||||
mUpdateChecker.installUpdate();
|
||||
mUpdateInstalled = true;
|
||||
}, false));
|
||||
mSettingsPresenter.showDialog(title, ()->{
|
||||
mSettingsPresenter.showDialog(String.format("%s %s", mContext.getString(R.string.app_name), versionName), ()->{
|
||||
if (!mUpdateInstalled) {
|
||||
mUpdateChecker.onUserCancel();
|
||||
}
|
||||
|
||||
@@ -3,4 +3,6 @@
|
||||
<string name="signin_view_title">Код загружается…</string>
|
||||
<string name="signin_view_description">Чтобы войти в аккаунт введите этот код на странице %s</string>
|
||||
<string name="signin_view_action_text">Готово</string>
|
||||
<string name="update_changelog">Изменения</string>
|
||||
<string name="install_update">Установить обновление</string>
|
||||
</resources>
|
||||
|
||||
@@ -117,4 +117,6 @@
|
||||
<string name="action_channel">Open Channel</string>
|
||||
<string name="action_playlist_add">Add to Playlist</string>
|
||||
<string name="action_video_stats">Video Stats</string>
|
||||
<string name="update_changelog">Changelog</string>
|
||||
<string name="install_update">Install update</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user