diff options
| author | zackhow <zackhow@gmail.com> | 2018-10-20 08:55:24 -0400 |
|---|---|---|
| committer | zackhow <zackhow@gmail.com> | 2018-10-24 21:43:09 -0400 |
| commit | 9e44df1d3aa062a39f32b87e9b3802170d571bc4 (patch) | |
| tree | fcf64791c07c2f7729eedb6508695a41f58232fb /Source/Android/app/src/main/java/org | |
| parent | 4d62037f885683183fd4dcf516d86c939fdbad8d (diff) | |
Android: lock screen to landscape by default
A new setting has been added to the general config to allow rotation. This should
resolve a lot of crash complaints due to screen rotation.
Diffstat (limited to 'Source/Android/app/src/main/java/org')
3 files changed, 19 insertions, 0 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java index d3ee8ddebf..dc2574e2cc 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java @@ -4,6 +4,8 @@ import android.app.AlertDialog; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.content.pm.ActivityInfo; +import android.content.res.Configuration; import android.hardware.usb.UsbManager; import android.os.Bundle; import android.os.Handler; @@ -237,6 +239,17 @@ public final class EmulationActivity extends AppCompatActivity int themeId; if (mDeviceHasTouchScreen) { + // Force landscape + if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) + { + BooleanSetting lockLandscape = + (BooleanSetting) mSettings.getSection(Settings.SECTION_INI_CORE) + .getSetting(SettingsFile.KEY_LOCK_LANDSCAPE); + if (lockLandscape == null || lockLandscape.getValue()) + new Handler().postDelayed( + () -> setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE), + 100); + } themeId = R.style.DolphinEmulationBase; // Get a handle to the Window containing the UI. diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java index e5a12eeb13..03f6b9962a 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java @@ -212,6 +212,7 @@ public final class SettingsFragmentPresenter Setting audioStretch = null; Setting analytics = null; Setting enableSaveState; + Setting lockToLandscape; SettingSection coreSection = mSettings.getSection(Settings.SECTION_INI_CORE); SettingSection analyticsSection = mSettings.getSection(Settings.SECTION_ANALYTICS); @@ -223,6 +224,7 @@ public final class SettingsFragmentPresenter audioStretch = coreSection.getSetting(SettingsFile.KEY_AUDIO_STRETCH); analytics = analyticsSection.getSetting(SettingsFile.KEY_ANALYTICS_ENABLED); enableSaveState = coreSection.getSetting(SettingsFile.KEY_ENABLE_SAVE_STATES); + lockToLandscape = coreSection.getSetting(SettingsFile.KEY_LOCK_LANDSCAPE); // TODO: Having different emuCoresEntries/emuCoresValues for each architecture is annoying. // The proper solution would be to have one emuCoresEntries and one emuCoresValues @@ -262,6 +264,9 @@ public final class SettingsFragmentPresenter sl.add(new CheckBoxSetting(SettingsFile.KEY_ENABLE_SAVE_STATES, Settings.SECTION_INI_CORE, R.string.enable_save_states, R.string.enable_save_states_description, false, enableSaveState)); + sl.add(new CheckBoxSetting(SettingsFile.KEY_LOCK_LANDSCAPE, Settings.SECTION_INI_CORE, + R.string.lock_emulation_landscape, R.string.lock_emulation_landscape_desc, true, + lockToLandscape)); sl.add(new CheckBoxSetting(SettingsFile.KEY_ANALYTICS_ENABLED, Settings.SECTION_ANALYTICS, R.string.analytics, 0, false, analytics)); } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java index 62ddbf05b6..b1f6dc46f0 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java @@ -50,6 +50,7 @@ public final class SettingsFile public static final String KEY_SLOT_A_DEVICE = "SlotA"; public static final String KEY_SLOT_B_DEVICE = "SlotB"; public static final String KEY_ENABLE_SAVE_STATES = "EnableSaveStates"; + public static final String KEY_LOCK_LANDSCAPE = "LockLandscape"; public static final String KEY_ANALYTICS_ENABLED = "Enabled"; public static final String KEY_ANALYTICS_PERMISSION_ASKED = "PermissionAsked"; |
