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.ime.helpers.SystemSettings;
|
||||||
import io.github.sspanak.tt9.preferences.helpers.Hotkeys;
|
import io.github.sspanak.tt9.preferences.helpers.Hotkeys;
|
||||||
import io.github.sspanak.tt9.preferences.screens.AppearanceScreen;
|
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.DebugScreen;
|
||||||
import io.github.sspanak.tt9.preferences.screens.DictionariesScreen;
|
import io.github.sspanak.tt9.preferences.screens.DictionariesScreen;
|
||||||
import io.github.sspanak.tt9.preferences.screens.HotkeysScreen;
|
import io.github.sspanak.tt9.preferences.screens.HotkeysScreen;
|
||||||
|
|
@ -61,7 +62,7 @@ public class PreferencesActivity extends AppCompatActivity implements Preference
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceStartFragment(@NonNull PreferenceFragmentCompat caller, @NonNull Preference pref) {
|
public boolean onPreferenceStartFragment(@NonNull PreferenceFragmentCompat caller, @NonNull Preference pref) {
|
||||||
Fragment fragment = getScreen((getScreenName(pref)));
|
BaseScreenFragment fragment = getScreen((getScreenName(pref)));
|
||||||
fragment.setArguments(pref.getExtras());
|
fragment.setArguments(pref.getExtras());
|
||||||
displayScreen(fragment, true);
|
displayScreen(fragment, true);
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -79,9 +80,9 @@ public class PreferencesActivity extends AppCompatActivity implements Preference
|
||||||
String screenName = intent != null ? intent.getStringExtra("screen") : null;
|
String screenName = intent != null ? intent.getStringExtra("screen") : null;
|
||||||
screenName = screenName != null ? screenName : "";
|
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);
|
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
|
* Finds a screen fragment by name. If there is no fragment with such name, the main screen
|
||||||
* fragment will be returned.
|
* fragment will be returned.
|
||||||
*/
|
*/
|
||||||
private Fragment getScreen(@Nullable String name) {
|
private BaseScreenFragment getScreen(@Nullable String name) {
|
||||||
if (name == null) {
|
if (name == null) {
|
||||||
return new MainSettingsScreen(this);
|
return new MainSettingsScreen(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (name) {
|
switch (name) {
|
||||||
case "Appearance":
|
case AppearanceScreen.NAME:
|
||||||
return new AppearanceScreen(this);
|
return new AppearanceScreen(this);
|
||||||
case "Debug":
|
case DebugScreen.NAME:
|
||||||
return new DebugScreen(this);
|
return new DebugScreen(this);
|
||||||
case "Dictionaries":
|
case DictionariesScreen.NAME:
|
||||||
return new DictionariesScreen(this);
|
return new DictionariesScreen(this);
|
||||||
case "Hotkeys":
|
case HotkeysScreen.NAME:
|
||||||
return new HotkeysScreen(this);
|
return new HotkeysScreen(this);
|
||||||
case "KeyPad":
|
case KeyPadScreen.NAME:
|
||||||
return new KeyPadScreen(this);
|
return new KeyPadScreen(this);
|
||||||
case "Setup":
|
case SetupScreen.NAME:
|
||||||
return new SetupScreen(this);
|
return new SetupScreen(this);
|
||||||
case "SlowQueries":
|
case UsageStatsScreen.NAME:
|
||||||
return new UsageStatsScreen(this);
|
return new UsageStatsScreen(this);
|
||||||
default:
|
default:
|
||||||
return new MainSettingsScreen(this);
|
return new MainSettingsScreen(this);
|
||||||
|
|
@ -132,7 +133,7 @@ public class PreferencesActivity extends AppCompatActivity implements Preference
|
||||||
* displayScreen
|
* displayScreen
|
||||||
* Replaces the currently displayed screen fragment with a new one.
|
* 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();
|
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
|
||||||
|
|
||||||
transaction.replace(R.id.preferences_container, screen);
|
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;
|
import io.github.sspanak.tt9.preferences.items.ItemSelectTheme;
|
||||||
|
|
||||||
public class AppearanceScreen extends BaseScreenFragment {
|
public class AppearanceScreen extends BaseScreenFragment {
|
||||||
|
final public static String NAME = "Appearance";
|
||||||
public AppearanceScreen() { init(); }
|
public AppearanceScreen() { init(); }
|
||||||
public AppearanceScreen(PreferencesActivity activity) { init(activity); }
|
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 getTitle() { return R.string.pref_category_appearance; }
|
||||||
@Override protected int getXml() { return R.xml.prefs_screen_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.Logger;
|
||||||
import io.github.sspanak.tt9.preferences.PreferencesActivity;
|
import io.github.sspanak.tt9.preferences.PreferencesActivity;
|
||||||
|
|
||||||
abstract class BaseScreenFragment extends PreferenceFragmentCompat {
|
abstract public class BaseScreenFragment extends PreferenceFragmentCompat {
|
||||||
protected PreferencesActivity activity;
|
protected PreferencesActivity activity;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -69,6 +69,7 @@ abstract class BaseScreenFragment extends PreferenceFragmentCompat {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
abstract public String getName();
|
||||||
abstract protected int getTitle();
|
abstract protected int getTitle();
|
||||||
abstract protected int getXml();
|
abstract protected int getXml();
|
||||||
abstract protected void onCreate();
|
abstract protected void onCreate();
|
||||||
|
|
|
||||||
|
|
@ -19,13 +19,15 @@ import io.github.sspanak.tt9.preferences.items.ItemLogLevel;
|
||||||
import io.github.sspanak.tt9.ui.UI;
|
import io.github.sspanak.tt9.ui.UI;
|
||||||
|
|
||||||
public class DebugScreen extends BaseScreenFragment {
|
public class DebugScreen extends BaseScreenFragment {
|
||||||
private final static String LOG_TAG = "DebugScreen";
|
final public static String NAME = "Debug";
|
||||||
private final static String SYSTEM_LOGS_SWITCH = "pref_enable_system_logs";
|
final private static String LOG_TAG = NAME + "Screen";
|
||||||
private final static String LOGS_CONTAINER = "debug_logs_container";
|
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() { init(); }
|
||||||
public DebugScreen(PreferencesActivity activity) { init(activity); }
|
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 getTitle() { return R.string.pref_category_debug_options; }
|
||||||
@Override protected int getXml() { return R.xml.prefs_screen_debug; }
|
@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;
|
import io.github.sspanak.tt9.preferences.items.ItemTruncateUnselected;
|
||||||
|
|
||||||
public class DictionariesScreen extends BaseScreenFragment {
|
public class DictionariesScreen extends BaseScreenFragment {
|
||||||
|
final public static String NAME = "Dictionaries";
|
||||||
|
|
||||||
private ItemLoadDictionary loadItem;
|
private ItemLoadDictionary loadItem;
|
||||||
|
|
||||||
public DictionariesScreen() { init(); }
|
public DictionariesScreen() { init(); }
|
||||||
public DictionariesScreen(PreferencesActivity activity) { init(activity); }
|
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 getTitle() { return R.string.pref_choose_languages; }
|
||||||
@Override protected int getXml() { return R.xml.prefs_screen_dictionaries; }
|
@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;
|
import io.github.sspanak.tt9.preferences.items.SectionKeymap;
|
||||||
|
|
||||||
public class HotkeysScreen extends BaseScreenFragment {
|
public class HotkeysScreen extends BaseScreenFragment {
|
||||||
|
final public static String NAME = "Hotkeys";
|
||||||
public HotkeysScreen() { init(); }
|
public HotkeysScreen() { init(); }
|
||||||
public HotkeysScreen(PreferencesActivity activity) { init(activity); }
|
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 getTitle() { return R.string.pref_category_function_keys; }
|
||||||
@Override protected int getXml() { return R.xml.prefs_screen_hotkeys; }
|
@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;
|
import io.github.sspanak.tt9.preferences.items.ItemSelectZeroKeyCharacter;
|
||||||
|
|
||||||
public class KeyPadScreen extends BaseScreenFragment {
|
public class KeyPadScreen extends BaseScreenFragment {
|
||||||
|
final public static String NAME = "KeyPad";
|
||||||
public KeyPadScreen() { init(); }
|
public KeyPadScreen() { init(); }
|
||||||
public KeyPadScreen(PreferencesActivity activity) { init(activity); }
|
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 getTitle() { return R.string.pref_category_keypad; }
|
||||||
@Override protected int getXml() { return R.xml.prefs_screen_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;
|
import io.github.sspanak.tt9.preferences.PreferencesActivity;
|
||||||
|
|
||||||
public class MainSettingsScreen extends BaseScreenFragment {
|
public class MainSettingsScreen extends BaseScreenFragment {
|
||||||
|
final public static String NAME = "Main";
|
||||||
private final Pattern releaseVersionRegex = Pattern.compile("^\\d+\\.\\d+$");
|
private final Pattern releaseVersionRegex = Pattern.compile("^\\d+\\.\\d+$");
|
||||||
|
|
||||||
public MainSettingsScreen() { init(); }
|
public MainSettingsScreen() { init(); }
|
||||||
public MainSettingsScreen(PreferencesActivity activity) { init(activity); }
|
public MainSettingsScreen(PreferencesActivity activity) { init(activity); }
|
||||||
|
|
||||||
|
@Override public String getName() { return NAME; }
|
||||||
@Override protected int getTitle() { return R.string.app_settings;}
|
@Override protected int getTitle() { return R.string.app_settings;}
|
||||||
@Override protected int getXml() { return R.xml.prefs; }
|
@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;
|
import io.github.sspanak.tt9.preferences.items.ItemSetDefaultGlobalKeyboard;
|
||||||
|
|
||||||
public class SetupScreen extends BaseScreenFragment {
|
public class SetupScreen extends BaseScreenFragment {
|
||||||
|
final public static String NAME = "Setup";
|
||||||
public SetupScreen() { init(); }
|
public SetupScreen() { init(); }
|
||||||
public SetupScreen(PreferencesActivity activity) { init(activity); }
|
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 getTitle() { return R.string.pref_category_setup;}
|
||||||
@Override protected int getXml() { return R.xml.prefs_screen_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;
|
import io.github.sspanak.tt9.ui.UI;
|
||||||
|
|
||||||
public class UsageStatsScreen extends BaseScreenFragment {
|
public class UsageStatsScreen extends BaseScreenFragment {
|
||||||
private final static String RESET_BUTTON = "pref_slow_queries_reset_stats";
|
final public static String NAME = "UsageStats";
|
||||||
private final static String SUMMARY_CONTAINER = "summary_container";
|
final private static String RESET_BUTTON = "pref_slow_queries_reset_stats";
|
||||||
private final static String QUERY_LIST_CONTAINER = "query_list_container";
|
final private static String SUMMARY_CONTAINER = "summary_container";
|
||||||
|
final private static String QUERY_LIST_CONTAINER = "query_list_container";
|
||||||
|
|
||||||
public UsageStatsScreen() { init(); }
|
public UsageStatsScreen() { init(); }
|
||||||
public UsageStatsScreen(PreferencesActivity activity) { init(activity); }
|
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 getTitle() { return R.string.pref_category_usage_stats; }
|
||||||
@Override protected int getXml() { return R.xml.prefs_screen_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) {
|
private PendingIntent createNavigationIntent(Context context) {
|
||||||
Intent intent = new Intent(context, PreferencesActivity.class);
|
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);
|
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);
|
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">
|
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto" app:orderingFromXml="true">
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<SwitchPreferenceCompat
|
||||||
app:fragment="io.github.sspanak.tt9.preferences.SlowQueriesScreen"
|
app:fragment="io.github.sspanak.tt9.preferences.UsageStatsScreen"
|
||||||
app:key="pref_slow_queries"
|
app:key="pref_slow_queries"
|
||||||
app:layout="@layout/pref_text"
|
app:layout="@layout/pref_text"
|
||||||
app:title="@string/pref_category_usage_stats" />
|
app:title="@string/pref_category_usage_stats" />
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?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
|
<SwitchPreferenceCompat
|
||||||
app:key="pref_slow_queries_reset_stats"
|
app:key="pref_slow_queries_reset_stats"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue