From 16c56a968e88372e990ee5d78c50a26e64045542 Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Mon, 23 Aug 2021 18:39:05 +0500 Subject: [PATCH] Changed|Fixed: Drawer extra-keys button will toggle instead of just opening Also fixed NullPointerException due to changes in 2a74d43c --- .../com/termux/app/terminal/TermuxTerminalViewClient.java | 4 ++++ .../termux/app/terminal/io/TermuxTerminalExtraKeys.java | 8 +++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java b/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java index d59f5dba..c6a042f5 100644 --- a/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java +++ b/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java @@ -75,6 +75,10 @@ public class TermuxTerminalViewClient extends TermuxTerminalViewClientBase { this.mTermuxTerminalSessionClient = termuxTerminalSessionClient; } + public TermuxActivity getActivity() { + return mActivity; + } + /** * Should be called when mActivity.onCreate() is called */ diff --git a/app/src/main/java/com/termux/app/terminal/io/TermuxTerminalExtraKeys.java b/app/src/main/java/com/termux/app/terminal/io/TermuxTerminalExtraKeys.java index 483e6c0f..8eed5179 100644 --- a/app/src/main/java/com/termux/app/terminal/io/TermuxTerminalExtraKeys.java +++ b/app/src/main/java/com/termux/app/terminal/io/TermuxTerminalExtraKeys.java @@ -7,7 +7,6 @@ import android.view.View; import androidx.annotation.NonNull; import androidx.drawerlayout.widget.DrawerLayout; -import com.termux.R; import com.termux.app.terminal.TermuxTerminalSessionClient; import com.termux.app.terminal.TermuxTerminalViewClient; import com.termux.shared.terminal.io.TerminalExtraKeys; @@ -34,8 +33,11 @@ public class TermuxTerminalExtraKeys extends TerminalExtraKeys { if(mTermuxTerminalViewClient != null) mTermuxTerminalViewClient.onToggleSoftKeyboardRequest(); } else if ("DRAWER".equals(key)) { - DrawerLayout drawer = view.findViewById(R.id.drawer_layout); - drawer.openDrawer(Gravity.LEFT); + DrawerLayout drawerLayout = mTermuxTerminalViewClient.getActivity().getDrawer(); + if (drawerLayout.isDrawerOpen(Gravity.LEFT)) + drawerLayout.closeDrawer(Gravity.LEFT); + else + drawerLayout.openDrawer(Gravity.LEFT); } else if ("PASTE".equals(key)) { if(mTermuxTerminalSessionClient != null) mTermuxTerminalSessionClient.onPasteTextFromClipboard(null);