diff options
Diffstat (limited to '')
5 files changed, 117 insertions, 108 deletions
diff --git a/src/android/app/src/main/AndroidManifest.xml b/src/android/app/src/main/AndroidManifest.xml index e31ad69e2..a6f87fc2e 100644 --- a/src/android/app/src/main/AndroidManifest.xml +++ b/src/android/app/src/main/AndroidManifest.xml | |||
| @@ -53,7 +53,6 @@ SPDX-License-Identifier: GPL-3.0-or-later | |||
| 53 | <activity | 53 | <activity |
| 54 | android:name="org.yuzu.yuzu_emu.activities.EmulationActivity" | 54 | android:name="org.yuzu.yuzu_emu.activities.EmulationActivity" |
| 55 | android:theme="@style/Theme.Yuzu.Main" | 55 | android:theme="@style/Theme.Yuzu.Main" |
| 56 | android:screenOrientation="userLandscape" | ||
| 57 | android:supportsPictureInPicture="true" | 56 | android:supportsPictureInPicture="true" |
| 58 | android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|uiMode" | 57 | android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|uiMode" |
| 59 | android:exported="true"> | 58 | android:exported="true"> |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt index d5725abe7..4b2305892 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt | |||
| @@ -11,13 +11,11 @@ import android.content.Intent | |||
| 11 | import android.content.SharedPreferences | 11 | import android.content.SharedPreferences |
| 12 | import android.content.pm.ActivityInfo | 12 | import android.content.pm.ActivityInfo |
| 13 | import android.content.res.Configuration | 13 | import android.content.res.Configuration |
| 14 | import android.content.res.Resources | ||
| 15 | import android.graphics.Color | 14 | import android.graphics.Color |
| 16 | import android.os.Bundle | 15 | import android.os.Bundle |
| 17 | import android.os.Handler | 16 | import android.os.Handler |
| 18 | import android.os.Looper | 17 | import android.os.Looper |
| 19 | import android.util.Rational | 18 | import android.util.Rational |
| 20 | import android.util.TypedValue | ||
| 21 | import android.view.* | 19 | import android.view.* |
| 22 | import android.widget.TextView | 20 | import android.widget.TextView |
| 23 | import androidx.activity.OnBackPressedCallback | 21 | import androidx.activity.OnBackPressedCallback |
| @@ -29,11 +27,11 @@ import androidx.core.graphics.Insets | |||
| 29 | import androidx.core.view.ViewCompat | 27 | import androidx.core.view.ViewCompat |
| 30 | import androidx.core.view.WindowInsetsCompat | 28 | import androidx.core.view.WindowInsetsCompat |
| 31 | import androidx.core.view.isVisible | 29 | import androidx.core.view.isVisible |
| 32 | import androidx.core.view.updatePadding | ||
| 33 | import androidx.fragment.app.Fragment | 30 | import androidx.fragment.app.Fragment |
| 34 | import androidx.lifecycle.Lifecycle | 31 | import androidx.lifecycle.Lifecycle |
| 35 | import androidx.lifecycle.lifecycleScope | 32 | import androidx.lifecycle.lifecycleScope |
| 36 | import androidx.lifecycle.repeatOnLifecycle | 33 | import androidx.lifecycle.repeatOnLifecycle |
| 34 | import androidx.navigation.fragment.navArgs | ||
| 37 | import androidx.preference.PreferenceManager | 35 | import androidx.preference.PreferenceManager |
| 38 | import androidx.window.layout.FoldingFeature | 36 | import androidx.window.layout.FoldingFeature |
| 39 | import androidx.window.layout.WindowInfoTracker | 37 | import androidx.window.layout.WindowInfoTracker |
| @@ -328,10 +326,13 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { | |||
| 328 | if (it.isSeparating) { | 326 | if (it.isSeparating) { |
| 329 | emulationActivity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED | 327 | emulationActivity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED |
| 330 | if (it.orientation == FoldingFeature.Orientation.HORIZONTAL) { | 328 | if (it.orientation == FoldingFeature.Orientation.HORIZONTAL) { |
| 329 | // Restrict emulation and overlays to the top of the screen | ||
| 331 | binding.emulationContainer.layoutParams.height = it.bounds.top | 330 | binding.emulationContainer.layoutParams.height = it.bounds.top |
| 332 | // Prevent touch regions from being displayed in the hinge | 331 | binding.overlayContainer.layoutParams.height = it.bounds.top |
| 333 | binding.overlayContainer.layoutParams.height = it.bounds.bottom | 332 | // Restrict input and menu drawer to the bottom of the screen |
| 333 | binding.inputContainer.layoutParams.height = it.bounds.bottom | ||
| 334 | binding.inGameMenu.layoutParams.height = it.bounds.bottom | 334 | binding.inGameMenu.layoutParams.height = it.bounds.bottom |
| 335 | |||
| 335 | isInFoldableLayout = true | 336 | isInFoldableLayout = true |
| 336 | binding.surfaceInputOverlay.orientation = InputOverlay.FOLDABLE | 337 | binding.surfaceInputOverlay.orientation = InputOverlay.FOLDABLE |
| 337 | refreshInputOverlay() | 338 | refreshInputOverlay() |
| @@ -341,12 +342,14 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { | |||
| 341 | } ?: false | 342 | } ?: false |
| 342 | if (!isFolding) { | 343 | if (!isFolding) { |
| 343 | binding.emulationContainer.layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT | 344 | binding.emulationContainer.layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT |
| 345 | binding.inputContainer.layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT | ||
| 344 | binding.overlayContainer.layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT | 346 | binding.overlayContainer.layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT |
| 345 | binding.inGameMenu.layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT | 347 | binding.inGameMenu.layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT |
| 346 | isInFoldableLayout = false | 348 | isInFoldableLayout = false |
| 347 | updateScreenLayout() | 349 | updateScreenLayout() |
| 348 | } | 350 | } |
| 349 | binding.emulationContainer.requestLayout() | 351 | binding.emulationContainer.requestLayout() |
| 352 | binding.inputContainer.requestLayout() | ||
| 350 | binding.overlayContainer.requestLayout() | 353 | binding.overlayContainer.requestLayout() |
| 351 | binding.inGameMenu.requestLayout() | 354 | binding.inGameMenu.requestLayout() |
| 352 | } | 355 | } |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlay.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlay.kt index aeef7731b..d12d08e9f 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlay.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlay.kt | |||
| @@ -668,136 +668,136 @@ class InputOverlay(context: Context, attrs: AttributeSet?) : SurfaceView(context | |||
| 668 | R.integer.SWITCH_STICK_L_Y_FOLDABLE | 668 | R.integer.SWITCH_STICK_L_Y_FOLDABLE |
| 669 | ) | 669 | ) |
| 670 | 670 | ||
| 671 | private fun getResourceValue(descriptor: String, position: Int) : Float { | 671 | private fun getResourceValue(orientation: String, position: Int) : Float { |
| 672 | return when (descriptor) { | 672 | return when (orientation) { |
| 673 | PORTRAIT -> resources.getInteger(portraitResources[position]).toFloat() / 1000 | 673 | PORTRAIT -> resources.getInteger(portraitResources[position]).toFloat() / 1000 |
| 674 | FOLDABLE -> resources.getInteger(foldableResources[position]).toFloat() / 1000 | 674 | FOLDABLE -> resources.getInteger(foldableResources[position]).toFloat() / 1000 |
| 675 | else -> resources.getInteger(landscapeResources[position]).toFloat() / 1000 | 675 | else -> resources.getInteger(landscapeResources[position]).toFloat() / 1000 |
| 676 | } | 676 | } |
| 677 | } | 677 | } |
| 678 | 678 | ||
| 679 | private fun defaultOverlayByLayout(descriptor: String) { | 679 | private fun defaultOverlayByLayout(orientation: String) { |
| 680 | // Each value represents the position of the button in relation to the screen size without insets. | 680 | // Each value represents the position of the button in relation to the screen size without insets. |
| 681 | preferences.edit() | 681 | preferences.edit() |
| 682 | .putFloat( | 682 | .putFloat( |
| 683 | ButtonType.BUTTON_A.toString() + "$descriptor-X", | 683 | ButtonType.BUTTON_A.toString() + "-X$orientation", |
| 684 | getResourceValue(descriptor, 0) | 684 | getResourceValue(orientation, 0) |
| 685 | ) | 685 | ) |
| 686 | .putFloat( | 686 | .putFloat( |
| 687 | ButtonType.BUTTON_A.toString() + "$descriptor-Y", | 687 | ButtonType.BUTTON_A.toString() + "-Y$orientation", |
| 688 | getResourceValue(descriptor, 1) | 688 | getResourceValue(orientation, 1) |
| 689 | ) | 689 | ) |
| 690 | .putFloat( | 690 | .putFloat( |
| 691 | ButtonType.BUTTON_B.toString() + "$descriptor-X", | 691 | ButtonType.BUTTON_B.toString() + "-X$orientation", |
| 692 | getResourceValue(descriptor, 2) | 692 | getResourceValue(orientation, 2) |
| 693 | ) | 693 | ) |
| 694 | .putFloat( | 694 | .putFloat( |
| 695 | ButtonType.BUTTON_B.toString() + "$descriptor-Y", | 695 | ButtonType.BUTTON_B.toString() + "-Y$orientation", |
| 696 | getResourceValue(descriptor, 3) | 696 | getResourceValue(orientation, 3) |
| 697 | ) | 697 | ) |
| 698 | .putFloat( | 698 | .putFloat( |
| 699 | ButtonType.BUTTON_X.toString() + "$descriptor-X", | 699 | ButtonType.BUTTON_X.toString() + "-X$orientation", |
| 700 | getResourceValue(descriptor, 4) | 700 | getResourceValue(orientation, 4) |
| 701 | ) | 701 | ) |
| 702 | .putFloat( | 702 | .putFloat( |
| 703 | ButtonType.BUTTON_X.toString() + "$descriptor-Y", | 703 | ButtonType.BUTTON_X.toString() + "-Y$orientation", |
| 704 | getResourceValue(descriptor, 5) | 704 | getResourceValue(orientation, 5) |
| 705 | ) | 705 | ) |
| 706 | .putFloat( | 706 | .putFloat( |
| 707 | ButtonType.BUTTON_Y.toString() + "$descriptor-X", | 707 | ButtonType.BUTTON_Y.toString() + "-X$orientation", |
| 708 | getResourceValue(descriptor, 6) | 708 | getResourceValue(orientation, 6) |
| 709 | ) | 709 | ) |
| 710 | .putFloat( | 710 | .putFloat( |
| 711 | ButtonType.BUTTON_Y.toString() + "$descriptor-Y", | 711 | ButtonType.BUTTON_Y.toString() + "-Y$orientation", |
| 712 | getResourceValue(descriptor, 7) | 712 | getResourceValue(orientation, 7) |
| 713 | ) | 713 | ) |
| 714 | .putFloat( | 714 | .putFloat( |
| 715 | ButtonType.TRIGGER_ZL.toString() + "$descriptor-X", | 715 | ButtonType.TRIGGER_ZL.toString() + "-X$orientation", |
| 716 | getResourceValue(descriptor, 8) | 716 | getResourceValue(orientation, 8) |
| 717 | ) | 717 | ) |
| 718 | .putFloat( | 718 | .putFloat( |
| 719 | ButtonType.TRIGGER_ZL.toString() + "$descriptor-Y", | 719 | ButtonType.TRIGGER_ZL.toString() + "-Y$orientation", |
| 720 | getResourceValue(descriptor, 9) | 720 | getResourceValue(orientation, 9) |
| 721 | ) | 721 | ) |
| 722 | .putFloat( | 722 | .putFloat( |
| 723 | ButtonType.TRIGGER_ZR.toString() + "$descriptor-X", | 723 | ButtonType.TRIGGER_ZR.toString() + "-X$orientation", |
| 724 | getResourceValue(descriptor, 10) | 724 | getResourceValue(orientation, 10) |
| 725 | ) | 725 | ) |
| 726 | .putFloat( | 726 | .putFloat( |
| 727 | ButtonType.TRIGGER_ZR.toString() + "$descriptor-Y", | 727 | ButtonType.TRIGGER_ZR.toString() + "-Y$orientation", |
| 728 | getResourceValue(descriptor, 11) | 728 | getResourceValue(orientation, 11) |
| 729 | ) | 729 | ) |
| 730 | .putFloat( | 730 | .putFloat( |
| 731 | ButtonType.DPAD_UP.toString() + "$descriptor-X", | 731 | ButtonType.DPAD_UP.toString() + "-X$orientation", |
| 732 | getResourceValue(descriptor, 12) | 732 | getResourceValue(orientation, 12) |
| 733 | ) | 733 | ) |
| 734 | .putFloat( | 734 | .putFloat( |
| 735 | ButtonType.DPAD_UP.toString() + "$descriptor-Y", | 735 | ButtonType.DPAD_UP.toString() + "-Y$orientation", |
| 736 | getResourceValue(descriptor, 13) | 736 | getResourceValue(orientation, 13) |
| 737 | ) | 737 | ) |
| 738 | .putFloat( | 738 | .putFloat( |
| 739 | ButtonType.TRIGGER_L.toString() + "$descriptor-X", | 739 | ButtonType.TRIGGER_L.toString() + "-X$orientation", |
| 740 | getResourceValue(descriptor, 14) | 740 | getResourceValue(orientation, 14) |
| 741 | ) | 741 | ) |
| 742 | .putFloat( | 742 | .putFloat( |
| 743 | ButtonType.TRIGGER_L.toString() + "$descriptor-Y", | 743 | ButtonType.TRIGGER_L.toString() + "-Y$orientation", |
| 744 | getResourceValue(descriptor, 15) | 744 | getResourceValue(orientation, 15) |
| 745 | ) | 745 | ) |
| 746 | .putFloat( | 746 | .putFloat( |
| 747 | ButtonType.TRIGGER_R.toString() + "$descriptor-X", | 747 | ButtonType.TRIGGER_R.toString() + "-X$orientation", |
| 748 | getResourceValue(descriptor, 16) | 748 | getResourceValue(orientation, 16) |
| 749 | ) | 749 | ) |
| 750 | .putFloat( | 750 | .putFloat( |
| 751 | ButtonType.TRIGGER_R.toString() + "$descriptor-Y", | 751 | ButtonType.TRIGGER_R.toString() + "-Y$orientation", |
| 752 | getResourceValue(descriptor, 17) | 752 | getResourceValue(orientation, 17) |
| 753 | ) | 753 | ) |
| 754 | .putFloat( | 754 | .putFloat( |
| 755 | ButtonType.BUTTON_PLUS.toString() + "$descriptor-X", | 755 | ButtonType.BUTTON_PLUS.toString() + "-X$orientation", |
| 756 | getResourceValue(descriptor, 18) | 756 | getResourceValue(orientation, 18) |
| 757 | ) | 757 | ) |
| 758 | .putFloat( | 758 | .putFloat( |
| 759 | ButtonType.BUTTON_PLUS.toString() + "$descriptor-Y", | 759 | ButtonType.BUTTON_PLUS.toString() + "-Y$orientation", |
| 760 | getResourceValue(descriptor, 19) | 760 | getResourceValue(orientation, 19) |
| 761 | ) | 761 | ) |
| 762 | .putFloat( | 762 | .putFloat( |
| 763 | ButtonType.BUTTON_MINUS.toString() + "$descriptor-X", | 763 | ButtonType.BUTTON_MINUS.toString() + "-X$orientation", |
| 764 | getResourceValue(descriptor, 20) | 764 | getResourceValue(orientation, 20) |
| 765 | ) | 765 | ) |
| 766 | .putFloat( | 766 | .putFloat( |
| 767 | ButtonType.BUTTON_MINUS.toString() + "$descriptor-Y", | 767 | ButtonType.BUTTON_MINUS.toString() + "-Y$orientation", |
| 768 | getResourceValue(descriptor, 21) | 768 | getResourceValue(orientation, 21) |
| 769 | ) | 769 | ) |
| 770 | .putFloat( | 770 | .putFloat( |
| 771 | ButtonType.BUTTON_HOME.toString() + "$descriptor-X", | 771 | ButtonType.BUTTON_HOME.toString() + "-X$orientation", |
| 772 | getResourceValue(descriptor, 22) | 772 | getResourceValue(orientation, 22) |
| 773 | ) | 773 | ) |
| 774 | .putFloat( | 774 | .putFloat( |
| 775 | ButtonType.BUTTON_HOME.toString() + "$descriptor-Y", | 775 | ButtonType.BUTTON_HOME.toString() + "-Y$orientation", |
| 776 | getResourceValue(descriptor, 23) | 776 | getResourceValue(orientation, 23) |
| 777 | ) | 777 | ) |
| 778 | .putFloat( | 778 | .putFloat( |
| 779 | ButtonType.BUTTON_CAPTURE.toString() + "$descriptor-X", | 779 | ButtonType.BUTTON_CAPTURE.toString() + "-X$orientation", |
| 780 | getResourceValue(descriptor, 24) | 780 | getResourceValue(orientation, 24) |
| 781 | ) | 781 | ) |
| 782 | .putFloat( | 782 | .putFloat( |
| 783 | ButtonType.BUTTON_CAPTURE.toString() + "$descriptor-Y", | 783 | ButtonType.BUTTON_CAPTURE.toString() + "-Y$orientation", |
| 784 | getResourceValue(descriptor, 25) | 784 | getResourceValue(orientation, 25) |
| 785 | ) | 785 | ) |
| 786 | .putFloat( | 786 | .putFloat( |
| 787 | ButtonType.STICK_R.toString() + "$descriptor-X", | 787 | ButtonType.STICK_R.toString() + "-X$orientation", |
| 788 | getResourceValue(descriptor, 26) | 788 | getResourceValue(orientation, 26) |
| 789 | ) | 789 | ) |
| 790 | .putFloat( | 790 | .putFloat( |
| 791 | ButtonType.STICK_R.toString() + "$descriptor-Y", | 791 | ButtonType.STICK_R.toString() + "-Y$orientation", |
| 792 | getResourceValue(descriptor, 27) | 792 | getResourceValue(orientation, 27) |
| 793 | ) | 793 | ) |
| 794 | .putFloat( | 794 | .putFloat( |
| 795 | ButtonType.STICK_L.toString() + "$descriptor-X", | 795 | ButtonType.STICK_L.toString() + "-X$orientation", |
| 796 | getResourceValue(descriptor, 28) | 796 | getResourceValue(orientation, 28) |
| 797 | ) | 797 | ) |
| 798 | .putFloat( | 798 | .putFloat( |
| 799 | ButtonType.STICK_L.toString() + "$descriptor-Y", | 799 | ButtonType.STICK_L.toString() + "-Y$orientation", |
| 800 | getResourceValue(descriptor, 29) | 800 | getResourceValue(orientation, 29) |
| 801 | ) | 801 | ) |
| 802 | .apply() | 802 | .apply() |
| 803 | } | 803 | } |
diff --git a/src/android/app/src/main/res/layout/fragment_emulation.xml b/src/android/app/src/main/res/layout/fragment_emulation.xml index ffe5f4882..e54a10e8f 100644 --- a/src/android/app/src/main/res/layout/fragment_emulation.xml +++ b/src/android/app/src/main/res/layout/fragment_emulation.xml | |||
| @@ -26,22 +26,10 @@ | |||
| 26 | android:focusable="false" | 26 | android:focusable="false" |
| 27 | android:focusableInTouchMode="false" /> | 27 | android:focusableInTouchMode="false" /> |
| 28 | 28 | ||
| 29 | <TextView | ||
| 30 | android:id="@+id/show_fps_text" | ||
| 31 | android:layout_width="wrap_content" | ||
| 32 | android:layout_height="wrap_content" | ||
| 33 | android:layout_gravity="left" | ||
| 34 | android:clickable="false" | ||
| 35 | android:focusable="false" | ||
| 36 | android:shadowColor="@android:color/black" | ||
| 37 | android:textColor="@android:color/white" | ||
| 38 | android:textSize="12sp" | ||
| 39 | tools:ignore="RtlHardcoded" /> | ||
| 40 | |||
| 41 | </FrameLayout> | 29 | </FrameLayout> |
| 42 | 30 | ||
| 43 | <FrameLayout | 31 | <FrameLayout |
| 44 | android:id="@+id/overlay_container" | 32 | android:id="@+id/input_container" |
| 45 | android:layout_width="match_parent" | 33 | android:layout_width="match_parent" |
| 46 | android:layout_height="match_parent" | 34 | android:layout_height="match_parent" |
| 47 | android:layout_gravity="bottom"> | 35 | android:layout_gravity="bottom"> |
| @@ -66,6 +54,25 @@ | |||
| 66 | 54 | ||
| 67 | </FrameLayout> | 55 | </FrameLayout> |
| 68 | 56 | ||
| 57 | <FrameLayout | ||
| 58 | android:id="@+id/overlay_container" | ||
| 59 | android:layout_width="match_parent" | ||
| 60 | android:layout_height="match_parent"> | ||
| 61 | |||
| 62 | <TextView | ||
| 63 | android:id="@+id/show_fps_text" | ||
| 64 | android:layout_width="wrap_content" | ||
| 65 | android:layout_height="wrap_content" | ||
| 66 | android:layout_gravity="left" | ||
| 67 | android:clickable="false" | ||
| 68 | android:focusable="false" | ||
| 69 | android:shadowColor="@android:color/black" | ||
| 70 | android:textColor="@android:color/white" | ||
| 71 | android:textSize="12sp" | ||
| 72 | tools:ignore="RtlHardcoded" /> | ||
| 73 | |||
| 74 | </FrameLayout> | ||
| 75 | |||
| 69 | </androidx.coordinatorlayout.widget.CoordinatorLayout> | 76 | </androidx.coordinatorlayout.widget.CoordinatorLayout> |
| 70 | 77 | ||
| 71 | <com.google.android.material.navigation.NavigationView | 78 | <com.google.android.material.navigation.NavigationView |
diff --git a/src/android/app/src/main/res/values/integers.xml b/src/android/app/src/main/res/values/integers.xml index a149002a0..2e93b408c 100644 --- a/src/android/app/src/main/res/values/integers.xml +++ b/src/android/app/src/main/res/values/integers.xml | |||
| @@ -36,25 +36,25 @@ | |||
| 36 | 36 | ||
| 37 | <!-- Default SWITCH portrait layout --> | 37 | <!-- Default SWITCH portrait layout --> |
| 38 | <integer name="SWITCH_BUTTON_A_X_PORTRAIT">840</integer> | 38 | <integer name="SWITCH_BUTTON_A_X_PORTRAIT">840</integer> |
| 39 | <integer name="SWITCH_BUTTON_A_Y_PORTRAIT">820</integer> | 39 | <integer name="SWITCH_BUTTON_A_Y_PORTRAIT">840</integer> |
| 40 | <integer name="SWITCH_BUTTON_B_X_PORTRAIT">740</integer> | 40 | <integer name="SWITCH_BUTTON_B_X_PORTRAIT">740</integer> |
| 41 | <integer name="SWITCH_BUTTON_B_Y_PORTRAIT">860</integer> | 41 | <integer name="SWITCH_BUTTON_B_Y_PORTRAIT">880</integer> |
| 42 | <integer name="SWITCH_BUTTON_X_X_PORTRAIT">740</integer> | 42 | <integer name="SWITCH_BUTTON_X_X_PORTRAIT">740</integer> |
| 43 | <integer name="SWITCH_BUTTON_X_Y_PORTRAIT">780</integer> | 43 | <integer name="SWITCH_BUTTON_X_Y_PORTRAIT">800</integer> |
| 44 | <integer name="SWITCH_BUTTON_Y_X_PORTRAIT">640</integer> | 44 | <integer name="SWITCH_BUTTON_Y_X_PORTRAIT">640</integer> |
| 45 | <integer name="SWITCH_BUTTON_Y_Y_PORTRAIT">820</integer> | 45 | <integer name="SWITCH_BUTTON_Y_Y_PORTRAIT">840</integer> |
| 46 | <integer name="SWITCH_STICK_L_X_PORTRAIT">180</integer> | 46 | <integer name="SWITCH_STICK_L_X_PORTRAIT">180</integer> |
| 47 | <integer name="SWITCH_STICK_L_Y_PORTRAIT">640</integer> | 47 | <integer name="SWITCH_STICK_L_Y_PORTRAIT">660</integer> |
| 48 | <integer name="SWITCH_STICK_R_X_PORTRAIT">820</integer> | 48 | <integer name="SWITCH_STICK_R_X_PORTRAIT">820</integer> |
| 49 | <integer name="SWITCH_STICK_R_Y_PORTRAIT">640</integer> | 49 | <integer name="SWITCH_STICK_R_Y_PORTRAIT">660</integer> |
| 50 | <integer name="SWITCH_TRIGGER_L_X_PORTRAIT">140</integer> | 50 | <integer name="SWITCH_TRIGGER_L_X_PORTRAIT">140</integer> |
| 51 | <integer name="SWITCH_TRIGGER_L_Y_PORTRAIT">240</integer> | 51 | <integer name="SWITCH_TRIGGER_L_Y_PORTRAIT">260</integer> |
| 52 | <integer name="SWITCH_TRIGGER_R_X_PORTRAIT">860</integer> | 52 | <integer name="SWITCH_TRIGGER_R_X_PORTRAIT">860</integer> |
| 53 | <integer name="SWITCH_TRIGGER_R_Y_PORTRAIT">240</integer> | 53 | <integer name="SWITCH_TRIGGER_R_Y_PORTRAIT">260</integer> |
| 54 | <integer name="SWITCH_TRIGGER_ZL_X_PORTRAIT">140</integer> | 54 | <integer name="SWITCH_TRIGGER_ZL_X_PORTRAIT">140</integer> |
| 55 | <integer name="SWITCH_TRIGGER_ZL_Y_PORTRAIT">180</integer> | 55 | <integer name="SWITCH_TRIGGER_ZL_Y_PORTRAIT">200</integer> |
| 56 | <integer name="SWITCH_TRIGGER_ZR_X_PORTRAIT">860</integer> | 56 | <integer name="SWITCH_TRIGGER_ZR_X_PORTRAIT">860</integer> |
| 57 | <integer name="SWITCH_TRIGGER_ZR_Y_PORTRAIT">180</integer> | 57 | <integer name="SWITCH_TRIGGER_ZR_Y_PORTRAIT">200</integer> |
| 58 | <integer name="SWITCH_BUTTON_MINUS_X_PORTRAIT">440</integer> | 58 | <integer name="SWITCH_BUTTON_MINUS_X_PORTRAIT">440</integer> |
| 59 | <integer name="SWITCH_BUTTON_MINUS_Y_PORTRAIT">950</integer> | 59 | <integer name="SWITCH_BUTTON_MINUS_Y_PORTRAIT">950</integer> |
| 60 | <integer name="SWITCH_BUTTON_PLUS_X_PORTRAIT">560</integer> | 60 | <integer name="SWITCH_BUTTON_PLUS_X_PORTRAIT">560</integer> |
| @@ -64,38 +64,38 @@ | |||
| 64 | <integer name="SWITCH_BUTTON_CAPTURE_X_PORTRAIT">320</integer> | 64 | <integer name="SWITCH_BUTTON_CAPTURE_X_PORTRAIT">320</integer> |
| 65 | <integer name="SWITCH_BUTTON_CAPTURE_Y_PORTRAIT">950</integer> | 65 | <integer name="SWITCH_BUTTON_CAPTURE_Y_PORTRAIT">950</integer> |
| 66 | <integer name="SWITCH_BUTTON_DPAD_X_PORTRAIT">240</integer> | 66 | <integer name="SWITCH_BUTTON_DPAD_X_PORTRAIT">240</integer> |
| 67 | <integer name="SWITCH_BUTTON_DPAD_Y_PORTRAIT">820</integer> | 67 | <integer name="SWITCH_BUTTON_DPAD_Y_PORTRAIT">840</integer> |
| 68 | 68 | ||
| 69 | <!-- Default SWITCH foldable layout --> | 69 | <!-- Default SWITCH foldable layout --> |
| 70 | <integer name="SWITCH_BUTTON_A_X_FOLDABLE">840</integer> | 70 | <integer name="SWITCH_BUTTON_A_X_FOLDABLE">840</integer> |
| 71 | <integer name="SWITCH_BUTTON_A_Y_FOLDABLE">340</integer> | 71 | <integer name="SWITCH_BUTTON_A_Y_FOLDABLE">390</integer> |
| 72 | <integer name="SWITCH_BUTTON_B_X_FOLDABLE">740</integer> | 72 | <integer name="SWITCH_BUTTON_B_X_FOLDABLE">740</integer> |
| 73 | <integer name="SWITCH_BUTTON_B_Y_FOLDABLE">380</integer> | 73 | <integer name="SWITCH_BUTTON_B_Y_FOLDABLE">430</integer> |
| 74 | <integer name="SWITCH_BUTTON_X_X_FOLDABLE">740</integer> | 74 | <integer name="SWITCH_BUTTON_X_X_FOLDABLE">740</integer> |
| 75 | <integer name="SWITCH_BUTTON_X_Y_FOLDABLE">300</integer> | 75 | <integer name="SWITCH_BUTTON_X_Y_FOLDABLE">350</integer> |
| 76 | <integer name="SWITCH_BUTTON_Y_X_FOLDABLE">640</integer> | 76 | <integer name="SWITCH_BUTTON_Y_X_FOLDABLE">640</integer> |
| 77 | <integer name="SWITCH_BUTTON_Y_Y_FOLDABLE">340</integer> | 77 | <integer name="SWITCH_BUTTON_Y_Y_FOLDABLE">390</integer> |
| 78 | <integer name="SWITCH_STICK_L_X_FOLDABLE">180</integer> | 78 | <integer name="SWITCH_STICK_L_X_FOLDABLE">180</integer> |
| 79 | <integer name="SWITCH_STICK_L_Y_FOLDABLE">200</integer> | 79 | <integer name="SWITCH_STICK_L_Y_FOLDABLE">250</integer> |
| 80 | <integer name="SWITCH_STICK_R_X_FOLDABLE">820</integer> | 80 | <integer name="SWITCH_STICK_R_X_FOLDABLE">820</integer> |
| 81 | <integer name="SWITCH_STICK_R_Y_FOLDABLE">200</integer> | 81 | <integer name="SWITCH_STICK_R_Y_FOLDABLE">250</integer> |
| 82 | <integer name="SWITCH_TRIGGER_L_X_FOLDABLE">140</integer> | 82 | <integer name="SWITCH_TRIGGER_L_X_FOLDABLE">140</integer> |
| 83 | <integer name="SWITCH_TRIGGER_L_Y_FOLDABLE">80</integer> | 83 | <integer name="SWITCH_TRIGGER_L_Y_FOLDABLE">130</integer> |
| 84 | <integer name="SWITCH_TRIGGER_R_X_FOLDABLE">860</integer> | 84 | <integer name="SWITCH_TRIGGER_R_X_FOLDABLE">860</integer> |
| 85 | <integer name="SWITCH_TRIGGER_R_Y_FOLDABLE">80</integer> | 85 | <integer name="SWITCH_TRIGGER_R_Y_FOLDABLE">130</integer> |
| 86 | <integer name="SWITCH_TRIGGER_ZL_X_FOLDABLE">140</integer> | 86 | <integer name="SWITCH_TRIGGER_ZL_X_FOLDABLE">140</integer> |
| 87 | <integer name="SWITCH_TRIGGER_ZL_Y_FOLDABLE">20</integer> | 87 | <integer name="SWITCH_TRIGGER_ZL_Y_FOLDABLE">70</integer> |
| 88 | <integer name="SWITCH_TRIGGER_ZR_X_FOLDABLE">860</integer> | 88 | <integer name="SWITCH_TRIGGER_ZR_X_FOLDABLE">860</integer> |
| 89 | <integer name="SWITCH_TRIGGER_ZR_Y_FOLDABLE">20</integer> | 89 | <integer name="SWITCH_TRIGGER_ZR_Y_FOLDABLE">70</integer> |
| 90 | <integer name="SWITCH_BUTTON_MINUS_X_FOLDABLE">440</integer> | 90 | <integer name="SWITCH_BUTTON_MINUS_X_FOLDABLE">440</integer> |
| 91 | <integer name="SWITCH_BUTTON_MINUS_Y_FOLDABLE">420</integer> | 91 | <integer name="SWITCH_BUTTON_MINUS_Y_FOLDABLE">470</integer> |
| 92 | <integer name="SWITCH_BUTTON_PLUS_X_FOLDABLE">560</integer> | 92 | <integer name="SWITCH_BUTTON_PLUS_X_FOLDABLE">560</integer> |
| 93 | <integer name="SWITCH_BUTTON_PLUS_Y_FOLDABLE">420</integer> | 93 | <integer name="SWITCH_BUTTON_PLUS_Y_FOLDABLE">470</integer> |
| 94 | <integer name="SWITCH_BUTTON_HOME_X_FOLDABLE">680</integer> | 94 | <integer name="SWITCH_BUTTON_HOME_X_FOLDABLE">680</integer> |
| 95 | <integer name="SWITCH_BUTTON_HOME_Y_FOLDABLE">420</integer> | 95 | <integer name="SWITCH_BUTTON_HOME_Y_FOLDABLE">470</integer> |
| 96 | <integer name="SWITCH_BUTTON_CAPTURE_X_FOLDABLE">320</integer> | 96 | <integer name="SWITCH_BUTTON_CAPTURE_X_FOLDABLE">320</integer> |
| 97 | <integer name="SWITCH_BUTTON_CAPTURE_Y_FOLDABLE">420</integer> | 97 | <integer name="SWITCH_BUTTON_CAPTURE_Y_FOLDABLE">470</integer> |
| 98 | <integer name="SWITCH_BUTTON_DPAD_X_FOLDABLE">240</integer> | 98 | <integer name="SWITCH_BUTTON_DPAD_X_FOLDABLE">240</integer> |
| 99 | <integer name="SWITCH_BUTTON_DPAD_Y_FOLDABLE">340</integer> | 99 | <integer name="SWITCH_BUTTON_DPAD_Y_FOLDABLE">390</integer> |
| 100 | 100 | ||
| 101 | </resources> | 101 | </resources> |