fixed the navigation from dictionary loading notification to open the Dictionaries screen
This commit is contained in:
parent
1ef576e941
commit
bd3fcc1566
13 changed files with 41 additions and 22 deletions
|
|
@ -23,6 +23,7 @@ import io.github.sspanak.tt9.ime.helpers.InputModeValidator;
|
|||
import io.github.sspanak.tt9.ime.helpers.SystemSettings;
|
||||
import io.github.sspanak.tt9.preferences.helpers.Hotkeys;
|
||||
import io.github.sspanak.tt9.preferences.screens.AppearanceScreen;
|
||||
import io.github.sspanak.tt9.preferences.screens.BaseScreenFragment;
|
||||
import io.github.sspanak.tt9.preferences.screens.DebugScreen;
|
||||
import io.github.sspanak.tt9.preferences.screens.DictionariesScreen;
|
||||
import io.github.sspanak.tt9.preferences.screens.HotkeysScreen;
|
||||
|
|
@ -61,7 +62,7 @@ public class PreferencesActivity extends AppCompatActivity implements Preference
|
|||
|
||||
@Override
|
||||
public boolean onPreferenceStartFragment(@NonNull PreferenceFragmentCompat caller, @NonNull Preference pref) {
|
||||
Fragment fragment = getScreen((getScreenName(pref)));
|
||||
BaseScreenFragment fragment = getScreen((getScreenName(pref)));
|
||||
fragment.setArguments(pref.getExtras());
|
||||
displayScreen(fragment, true);
|
||||
return true;
|
||||
|
|
@ -79,9 +80,9 @@ public class PreferencesActivity extends AppCompatActivity implements Preference
|
|||
String screenName = intent != null ? intent.getStringExtra("screen") : null;
|
||||
screenName = screenName != null ? screenName : "";
|
||||
|
||||
Fragment screen = getScreen(screenName.replace("Screen", ""));
|
||||
BaseScreenFragment screen = getScreen(screenName);
|
||||
|
||||
if (screen.getClass().getSimpleName().equals(screenName)) {
|
||||
if (screen.getName().equals(screenName)) {
|
||||
displayScreen(screen, false);
|
||||
}
|
||||
}
|
||||
|
|
@ -102,25 +103,25 @@ public class PreferencesActivity extends AppCompatActivity implements Preference
|
|||
* Finds a screen fragment by name. If there is no fragment with such name, the main screen
|
||||
* fragment will be returned.
|
||||
*/
|
||||
private Fragment getScreen(@Nullable String name) {
|
||||
private BaseScreenFragment getScreen(@Nullable String name) {
|
||||
if (name == null) {
|
||||
return new MainSettingsScreen(this);
|
||||
}
|
||||
|
||||
switch (name) {
|
||||
case "Appearance":
|
||||
case AppearanceScreen.NAME:
|
||||
return new AppearanceScreen(this);
|
||||
case "Debug":
|
||||
case DebugScreen.NAME:
|
||||
return new DebugScreen(this);
|
||||
case "Dictionaries":
|
||||
case DictionariesScreen.NAME:
|
||||
return new DictionariesScreen(this);
|
||||
case "Hotkeys":
|
||||
case HotkeysScreen.NAME:
|
||||
return new HotkeysScreen(this);
|
||||
case "KeyPad":
|
||||
case KeyPadScreen.NAME:
|
||||
return new KeyPadScreen(this);
|
||||
case "Setup":
|
||||
case SetupScreen.NAME:
|
||||
return new SetupScreen(this);
|
||||
case "SlowQueries":
|
||||
case UsageStatsScreen.NAME:
|
||||
return new UsageStatsScreen(this);
|
||||
default:
|
||||
return new MainSettingsScreen(this);
|
||||
|
|
@ -132,7 +133,7 @@ public class PreferencesActivity extends AppCompatActivity implements Preference
|
|||
* displayScreen
|
||||
* Replaces the currently displayed screen fragment with a new one.
|
||||
*/
|
||||
private void displayScreen(Fragment screen, boolean addToBackStack) {
|
||||
private void displayScreen(BaseScreenFragment screen, boolean addToBackStack) {
|
||||
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
|
||||
|
||||
transaction.replace(R.id.preferences_container, screen);
|
||||
|
|
|
|||
|
|
@ -5,9 +5,11 @@ import io.github.sspanak.tt9.preferences.PreferencesActivity;
|
|||
import io.github.sspanak.tt9.preferences.items.ItemSelectTheme;
|
||||
|
||||
public class AppearanceScreen extends BaseScreenFragment {
|
||||
final public static String NAME = "Appearance";
|
||||
public AppearanceScreen() { init(); }
|
||||
public AppearanceScreen(PreferencesActivity activity) { init(activity); }
|
||||
|
||||
@Override public String getName() { return NAME; }
|
||||
@Override protected int getTitle() { return R.string.pref_category_appearance; }
|
||||
@Override protected int getXml() { return R.xml.prefs_screen_appearance; }
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import androidx.preference.PreferenceFragmentCompat;
|
|||
import io.github.sspanak.tt9.Logger;
|
||||
import io.github.sspanak.tt9.preferences.PreferencesActivity;
|
||||
|
||||
abstract class BaseScreenFragment extends PreferenceFragmentCompat {
|
||||
abstract public class BaseScreenFragment extends PreferenceFragmentCompat {
|
||||
protected PreferencesActivity activity;
|
||||
|
||||
|
||||
|
|
@ -69,6 +69,7 @@ abstract class BaseScreenFragment extends PreferenceFragmentCompat {
|
|||
}
|
||||
|
||||
|
||||
abstract public String getName();
|
||||
abstract protected int getTitle();
|
||||
abstract protected int getXml();
|
||||
abstract protected void onCreate();
|
||||
|
|
|
|||
|
|
@ -19,13 +19,15 @@ import io.github.sspanak.tt9.preferences.items.ItemLogLevel;
|
|||
import io.github.sspanak.tt9.ui.UI;
|
||||
|
||||
public class DebugScreen extends BaseScreenFragment {
|
||||
private final static String LOG_TAG = "DebugScreen";
|
||||
private final static String SYSTEM_LOGS_SWITCH = "pref_enable_system_logs";
|
||||
private final static String LOGS_CONTAINER = "debug_logs_container";
|
||||
final public static String NAME = "Debug";
|
||||
final private static String LOG_TAG = NAME + "Screen";
|
||||
final private static String SYSTEM_LOGS_SWITCH = "pref_enable_system_logs";
|
||||
final private static String LOGS_CONTAINER = "debug_logs_container";
|
||||
|
||||
public DebugScreen() { init(); }
|
||||
public DebugScreen(PreferencesActivity activity) { init(activity); }
|
||||
|
||||
@Override public String getName() { return NAME; }
|
||||
@Override protected int getTitle() { return R.string.pref_category_debug_options; }
|
||||
@Override protected int getXml() { return R.xml.prefs_screen_debug; }
|
||||
|
||||
|
|
|
|||
|
|
@ -10,11 +10,14 @@ import io.github.sspanak.tt9.preferences.items.ItemTruncateAll;
|
|||
import io.github.sspanak.tt9.preferences.items.ItemTruncateUnselected;
|
||||
|
||||
public class DictionariesScreen extends BaseScreenFragment {
|
||||
final public static String NAME = "Dictionaries";
|
||||
|
||||
private ItemLoadDictionary loadItem;
|
||||
|
||||
public DictionariesScreen() { init(); }
|
||||
public DictionariesScreen(PreferencesActivity activity) { init(activity); }
|
||||
|
||||
@Override public String getName() { return NAME; }
|
||||
@Override protected int getTitle() { return R.string.pref_choose_languages; }
|
||||
@Override protected int getXml() { return R.xml.prefs_screen_dictionaries; }
|
||||
|
||||
|
|
|
|||
|
|
@ -10,9 +10,11 @@ import io.github.sspanak.tt9.preferences.PreferencesActivity;
|
|||
import io.github.sspanak.tt9.preferences.items.SectionKeymap;
|
||||
|
||||
public class HotkeysScreen extends BaseScreenFragment {
|
||||
final public static String NAME = "Hotkeys";
|
||||
public HotkeysScreen() { init(); }
|
||||
public HotkeysScreen(PreferencesActivity activity) { init(activity); }
|
||||
|
||||
@Override public String getName() { return NAME; }
|
||||
@Override protected int getTitle() { return R.string.pref_category_function_keys; }
|
||||
@Override protected int getXml() { return R.xml.prefs_screen_hotkeys; }
|
||||
|
||||
|
|
|
|||
|
|
@ -5,9 +5,11 @@ import io.github.sspanak.tt9.preferences.PreferencesActivity;
|
|||
import io.github.sspanak.tt9.preferences.items.ItemSelectZeroKeyCharacter;
|
||||
|
||||
public class KeyPadScreen extends BaseScreenFragment {
|
||||
final public static String NAME = "KeyPad";
|
||||
public KeyPadScreen() { init(); }
|
||||
public KeyPadScreen(PreferencesActivity activity) { init(activity); }
|
||||
|
||||
@Override public String getName() { return NAME; }
|
||||
@Override protected int getTitle() { return R.string.pref_category_keypad; }
|
||||
@Override protected int getXml() { return R.xml.prefs_screen_keypad; }
|
||||
|
||||
|
|
|
|||
|
|
@ -16,11 +16,13 @@ import io.github.sspanak.tt9.ime.helpers.SystemSettings;
|
|||
import io.github.sspanak.tt9.preferences.PreferencesActivity;
|
||||
|
||||
public class MainSettingsScreen extends BaseScreenFragment {
|
||||
final public static String NAME = "Main";
|
||||
private final Pattern releaseVersionRegex = Pattern.compile("^\\d+\\.\\d+$");
|
||||
|
||||
public MainSettingsScreen() { init(); }
|
||||
public MainSettingsScreen(PreferencesActivity activity) { init(activity); }
|
||||
|
||||
@Override public String getName() { return NAME; }
|
||||
@Override protected int getTitle() { return R.string.app_settings;}
|
||||
@Override protected int getXml() { return R.xml.prefs; }
|
||||
|
||||
|
|
|
|||
|
|
@ -10,9 +10,11 @@ import io.github.sspanak.tt9.preferences.items.ItemSelectGlobalKeyboard;
|
|||
import io.github.sspanak.tt9.preferences.items.ItemSetDefaultGlobalKeyboard;
|
||||
|
||||
public class SetupScreen extends BaseScreenFragment {
|
||||
final public static String NAME = "Setup";
|
||||
public SetupScreen() { init(); }
|
||||
public SetupScreen(PreferencesActivity activity) { init(activity); }
|
||||
|
||||
@Override public String getName() { return NAME; }
|
||||
@Override protected int getTitle() { return R.string.pref_category_setup;}
|
||||
@Override protected int getXml() { return R.xml.prefs_screen_setup; }
|
||||
|
||||
|
|
|
|||
|
|
@ -13,13 +13,15 @@ import io.github.sspanak.tt9.preferences.PreferencesActivity;
|
|||
import io.github.sspanak.tt9.ui.UI;
|
||||
|
||||
public class UsageStatsScreen extends BaseScreenFragment {
|
||||
private final static String RESET_BUTTON = "pref_slow_queries_reset_stats";
|
||||
private final static String SUMMARY_CONTAINER = "summary_container";
|
||||
private final static String QUERY_LIST_CONTAINER = "query_list_container";
|
||||
final public static String NAME = "UsageStats";
|
||||
final private static String RESET_BUTTON = "pref_slow_queries_reset_stats";
|
||||
final private static String SUMMARY_CONTAINER = "summary_container";
|
||||
final private static String QUERY_LIST_CONTAINER = "query_list_container";
|
||||
|
||||
public UsageStatsScreen() { init(); }
|
||||
public UsageStatsScreen(PreferencesActivity activity) { init(activity); }
|
||||
|
||||
@Override public String getName() { return NAME; }
|
||||
@Override protected int getTitle() { return R.string.pref_category_usage_stats; }
|
||||
@Override protected int getXml() { return R.xml.prefs_screen_usage_stats; }
|
||||
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ public class DictionaryLoadingBar {
|
|||
|
||||
private PendingIntent createNavigationIntent(Context context) {
|
||||
Intent intent = new Intent(context, PreferencesActivity.class);
|
||||
intent.putExtra("screen", DictionariesScreen.class.getSimpleName());
|
||||
intent.putExtra("screen", DictionariesScreen.NAME);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
return PendingIntent.getActivity(context, 0, intent,PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto" app:orderingFromXml="true">
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
app:fragment="io.github.sspanak.tt9.preferences.SlowQueriesScreen"
|
||||
app:fragment="io.github.sspanak.tt9.preferences.UsageStatsScreen"
|
||||
app:key="pref_slow_queries"
|
||||
app:layout="@layout/pref_text"
|
||||
app:title="@string/pref_category_usage_stats" />
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto" app:orderingFromXml="true">
|
||||
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto" app:orderingFromXml="true">
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
app:key="pref_slow_queries_reset_stats"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue