1
0
Fork 0

alternative suggestion scrolling is now enabled by default on older non-touchscreen phones

This commit is contained in:
sspanak 2024-04-18 17:36:42 +03:00 committed by Dimo Karaivanov
parent f017927d43
commit 31ca39bfb0
5 changed files with 43 additions and 6 deletions

View file

@ -0,0 +1,31 @@
package io.github.sspanak.tt9.preferences.screens.setup;
import androidx.preference.SwitchPreferenceCompat;
import io.github.sspanak.tt9.preferences.settings.SettingsStore;
public class ItemAlternativeSuggestionScrolling {
public static final String NAME = "pref_alternative_suggestion_scrolling";
private final SwitchPreferenceCompat item;
private final SettingsStore settings;
public ItemAlternativeSuggestionScrolling(SwitchPreferenceCompat item, SettingsStore settings) {
this.item = item;
this.settings = settings;
}
public ItemAlternativeSuggestionScrolling populate() {
if (item != null) {
item.setChecked(settings.getSuggestionScrollingDelay() > 0);
}
return this;
}
public void setEnabled(boolean yes) {
if (item != null) {
item.setEnabled(yes);
}
}
}

View file

@ -47,10 +47,9 @@ public class SetupScreen extends BaseScreenFragment {
} }
private void createHacksSection(boolean isTT9On) { private void createHacksSection(boolean isTT9On) {
Preference altScrolling = findPreference("pref_alternative_suggestion_scrolling"); (new ItemAlternativeSuggestionScrolling(findPreference(ItemAlternativeSuggestionScrolling.NAME), activity.getSettings()))
if (altScrolling != null) { .populate()
altScrolling.setEnabled(isTT9On); .setEnabled(isTT9On);
}
Preference hackGoogleChat = findPreference("pref_hack_google_chat"); Preference hackGoogleChat = findPreference("pref_hack_google_chat");
if (hackGoogleChat != null) { if (hackGoogleChat != null) {

View file

@ -1,8 +1,10 @@
package io.github.sspanak.tt9.preferences.settings; package io.github.sspanak.tt9.preferences.settings;
import android.content.Context; import android.content.Context;
import android.os.Build;
import io.github.sspanak.tt9.preferences.screens.debug.ItemInputHandlingMode; import io.github.sspanak.tt9.preferences.screens.debug.ItemInputHandlingMode;
import io.github.sspanak.tt9.util.DeviceInfo;
import io.github.sspanak.tt9.util.Logger; import io.github.sspanak.tt9.util.Logger;
class SettingsHacks extends BaseSettings { class SettingsHacks extends BaseSettings {
@ -26,7 +28,8 @@ class SettingsHacks extends BaseSettings {
/************* hack settings *************/ /************* hack settings *************/
public int getSuggestionScrollingDelay() { public int getSuggestionScrollingDelay() {
return prefs.getBoolean("pref_alternative_suggestion_scrolling", false) ? 200 : 0; boolean defaultOn = DeviceInfo.noTouchScreen(context) && Build.VERSION.SDK_INT < Build.VERSION_CODES.Q;
return prefs.getBoolean("pref_alternative_suggestion_scrolling", defaultOn) ? 200 : 0;
} }
public boolean getFbMessengerHack() { public boolean getFbMessengerHack() {

View file

@ -1,10 +1,15 @@
package io.github.sspanak.tt9.util; package io.github.sspanak.tt9.util;
import android.content.Context;
import android.os.Build; import android.os.Build;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
public class DeviceInfo { public class DeviceInfo {
public static boolean noTouchScreen(Context context) {
return !context.getPackageManager().hasSystemFeature("android.hardware.touchscreen");
}
public static boolean isQinF21() { public static boolean isQinF21() {
return Build.MANUFACTURER.equals("DuoQin") && Build.MODEL.contains("F21"); return Build.MANUFACTURER.equals("DuoQin") && Build.MODEL.contains("F21");
} }

View file

@ -18,7 +18,6 @@
app:singleLineTitle="true"> app:singleLineTitle="true">
<SwitchPreferenceCompat <SwitchPreferenceCompat
app:defaultValue="false"
app:key="pref_alternative_suggestion_scrolling" app:key="pref_alternative_suggestion_scrolling"
app:layout="@layout/pref_switch" app:layout="@layout/pref_switch"
app:title="@string/pref_alternative_suggestion_scrolling" app:title="@string/pref_alternative_suggestion_scrolling"