Added tabletUI option: "Automatic" (#6208)

* added automatic tablet ui option; useful for foldables

* set automatic as default, rename setting

* remove redundant checks

Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>

* remove redundant checks

Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>

* fix defaultValue

Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
This commit is contained in:
OncePunchedMan 2021-11-11 22:32:28 +01:00 committed by GitHub
parent bfcc883f01
commit 41952f0215
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 6 additions and 11 deletions

View file

@ -53,6 +53,7 @@ object PreferenceValues {
}
enum class TabletUiMode {
AUTOMATIC,
ALWAYS,
LANDSCAPE,
NEVER,

View file

@ -326,10 +326,7 @@ class PreferencesHelper(val context: Context) {
fun incognitoMode() = flowPrefs.getBoolean(Keys.incognitoMode, false)
fun tabletUiMode() = flowPrefs.getEnum(
Keys.tabletUiMode,
if (context.applicationContext.isTablet()) Values.TabletUiMode.ALWAYS else Values.TabletUiMode.NEVER
)
fun tabletUiMode() = flowPrefs.getEnum(Keys.tabletUiMode, Values.TabletUiMode.AUTOMATIC)
fun extensionInstaller() = flowPrefs.getEnum(
Keys.extensionInstaller,

View file

@ -247,13 +247,9 @@ class SettingsAdvancedController : SettingsController() {
key = Keys.tabletUiMode
titleRes = R.string.pref_tablet_ui_mode
summary = "%s"
entriesRes = arrayOf(R.string.lock_always, R.string.landscape, R.string.lock_never)
entriesRes = arrayOf(R.string.automatic_background, R.string.lock_always, R.string.landscape, R.string.lock_never)
entryValues = PreferenceValues.TabletUiMode.values().map { it.name }.toTypedArray()
defaultValue = if (context.isTablet()) {
PreferenceValues.TabletUiMode.ALWAYS
} else {
PreferenceValues.TabletUiMode.NEVER
}.name
defaultValue = PreferenceValues.TabletUiMode.AUTOMATIC.name
onChange {
activity?.toast(R.string.requires_app_restart)

View file

@ -316,6 +316,7 @@ fun Context.isTablet(): Boolean {
fun Context.prepareTabletUiContext(): Context {
val configuration = resources.configuration
val expected = when (Injekt.get<PreferencesHelper>().tabletUiMode().get()) {
PreferenceValues.TabletUiMode.AUTOMATIC -> isTablet()
PreferenceValues.TabletUiMode.ALWAYS -> true
PreferenceValues.TabletUiMode.LANDSCAPE -> configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
PreferenceValues.TabletUiMode.NEVER -> false

View file

@ -476,7 +476,7 @@
<string name="battery_optimization_disabled">Battery optimization is already disabled</string>
<string name="battery_optimization_setting_activity_not_found">Couldn\'t open device settings</string>
<string name="about_dont_kill_my_app">Some manufacturers have additional app restrictions that kill background services. This website has more info on how to fix it.</string>
<string name="pref_tablet_ui_mode">Force tablet UI</string>
<string name="pref_tablet_ui_mode">Tablet UI</string>
<string name="pref_verbose_logging">Verbose logging</string>
<string name="pref_verbose_logging_summary">Print verbose logs to system log (reduces app performance)</string>