From 3935449ca01e6bab39b1997d9e5cf999a160e48f Mon Sep 17 00:00:00 2001 From: Charles Lombardo Date: Wed, 1 Mar 2023 13:47:28 -0500 Subject: [PATCH] Android: Convert TwoPaneOnBackPressedCallback to Kotlin --- .../ui/TwoPaneOnBackPressedCallback.java | 56 ------------------- .../ui/TwoPaneOnBackPressedCallback.kt | 38 +++++++++++++ 2 files changed, 38 insertions(+), 56 deletions(-) delete mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/TwoPaneOnBackPressedCallback.java create mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/TwoPaneOnBackPressedCallback.kt diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/TwoPaneOnBackPressedCallback.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/TwoPaneOnBackPressedCallback.java deleted file mode 100644 index 0ab829fa77..0000000000 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/TwoPaneOnBackPressedCallback.java +++ /dev/null @@ -1,56 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later - -package org.dolphinemu.dolphinemu.ui; - -import android.content.Context; -import android.view.View; -import android.view.inputmethod.InputMethodManager; - -import androidx.activity.OnBackPressedCallback; -import androidx.annotation.NonNull; -import androidx.slidingpanelayout.widget.SlidingPaneLayout; - -public class TwoPaneOnBackPressedCallback extends OnBackPressedCallback - implements SlidingPaneLayout.PanelSlideListener -{ - private final SlidingPaneLayout mSlidingPaneLayout; - - public TwoPaneOnBackPressedCallback(@NonNull SlidingPaneLayout slidingPaneLayout) - { - super(slidingPaneLayout.isSlideable() && slidingPaneLayout.isOpen()); - mSlidingPaneLayout = slidingPaneLayout; - slidingPaneLayout.addPanelSlideListener(this); - } - - @Override - public void handleOnBackPressed() - { - mSlidingPaneLayout.close(); - } - - @Override - public void onPanelSlide(@NonNull View panel, float slideOffset) - { - } - - @Override - public void onPanelOpened(@NonNull View panel) - { - setEnabled(true); - } - - @Override - public void onPanelClosed(@NonNull View panel) - { - closeKeyboard(); - setEnabled(false); - } - - private void closeKeyboard() - { - InputMethodManager manager = (InputMethodManager) mSlidingPaneLayout.getContext() - .getSystemService(Context.INPUT_METHOD_SERVICE); - manager.hideSoftInputFromWindow(mSlidingPaneLayout.getRootView().getWindowToken(), 0); - } -} - diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/TwoPaneOnBackPressedCallback.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/TwoPaneOnBackPressedCallback.kt new file mode 100644 index 0000000000..e9fa0679d2 --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/TwoPaneOnBackPressedCallback.kt @@ -0,0 +1,38 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +package org.dolphinemu.dolphinemu.ui + +import android.content.Context +import android.view.View +import android.view.inputmethod.InputMethodManager +import androidx.activity.OnBackPressedCallback +import androidx.slidingpanelayout.widget.SlidingPaneLayout +import androidx.slidingpanelayout.widget.SlidingPaneLayout.PanelSlideListener + +class TwoPaneOnBackPressedCallback(private val slidingPaneLayout: SlidingPaneLayout) : + OnBackPressedCallback(slidingPaneLayout.isSlideable && slidingPaneLayout.isOpen), + PanelSlideListener { + init { + slidingPaneLayout.addPanelSlideListener(this) + } + + override fun handleOnBackPressed() { + slidingPaneLayout.close() + } + + override fun onPanelSlide(panel: View, slideOffset: Float) {} + override fun onPanelOpened(panel: View) { + isEnabled = true + } + + override fun onPanelClosed(panel: View) { + closeKeyboard() + isEnabled = false + } + + private fun closeKeyboard() { + val manager = slidingPaneLayout.context + .getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager + manager.hideSoftInputFromWindow(slidingPaneLayout.rootView.windowToken, 0) + } +}