From 841c41bf37e8d7a6b8bd20598f56daad6ffccce4 Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Mon, 13 Jun 2022 16:07:04 +0500 Subject: [PATCH] Added|Changed: Added `TermuxTerminalSessionServiceClient` and renamed `TermuxTerminalSessionClient` to `TermuxTerminalSessionActivityClient` Addition of `TermuxTerminalSessionServiceClient` is required so that interface methods that `TermuxService` can handle without `TermuxActivity` should implemented instead of relying on base implementation of `TermuxTerminalSessionClientBase`. --- .../java/com/termux/app/TermuxActivity.java | 52 ++++++++-------- .../java/com/termux/app/TermuxService.java | 61 ++++++++++--------- ... TermuxTerminalSessionActivityClient.java} | 11 ++-- .../TermuxTerminalSessionServiceClient.java | 24 ++++++++ .../terminal/TermuxTerminalViewClient.java | 28 ++++----- .../terminal/io/TermuxTerminalExtraKeys.java | 12 ++-- 6 files changed, 108 insertions(+), 80 deletions(-) rename app/src/main/java/com/termux/app/terminal/{TermuxTerminalSessionClient.java => TermuxTerminalSessionActivityClient.java} (98%) create mode 100644 app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionServiceClient.java diff --git a/app/src/main/java/com/termux/app/TermuxActivity.java b/app/src/main/java/com/termux/app/TermuxActivity.java index 47fe2363..1abc104c 100644 --- a/app/src/main/java/com/termux/app/TermuxActivity.java +++ b/app/src/main/java/com/termux/app/TermuxActivity.java @@ -30,6 +30,7 @@ import android.widget.Toast; import com.termux.R; import com.termux.app.terminal.TermuxActivityRootView; +import com.termux.app.terminal.TermuxTerminalSessionActivityClient; import com.termux.app.terminal.io.TermuxTerminalExtraKeys; import com.termux.shared.activities.ReportActivity; import com.termux.shared.activity.ActivityUtils; @@ -44,7 +45,6 @@ import com.termux.shared.termux.crash.TermuxCrashUtils; import com.termux.shared.termux.settings.preferences.TermuxAppSharedPreferences; import com.termux.app.terminal.TermuxSessionsListViewController; import com.termux.app.terminal.io.TerminalToolbarViewPager; -import com.termux.app.terminal.TermuxTerminalSessionClient; import com.termux.app.terminal.TermuxTerminalViewClient; import com.termux.shared.termux.extrakeys.ExtraKeysView; import com.termux.shared.termux.interact.TextInputDialogUtils; @@ -101,7 +101,7 @@ public final class TermuxActivity extends AppCompatActivity implements ServiceCo * The {@link TerminalSessionClient} interface implementation to allow for communication between * {@link TerminalSession} and {@link TermuxActivity}. */ - TermuxTerminalSessionClient mTermuxTerminalSessionClient; + TermuxTerminalSessionActivityClient mTermuxTerminalSessionActivityClient; /** * Termux app shared preferences manager. @@ -285,8 +285,8 @@ public final class TermuxActivity extends AppCompatActivity implements ServiceCo mIsVisible = true; - if (mTermuxTerminalSessionClient != null) - mTermuxTerminalSessionClient.onStart(); + if (mTermuxTerminalSessionActivityClient != null) + mTermuxTerminalSessionActivityClient.onStart(); if (mTermuxTerminalViewClient != null) mTermuxTerminalViewClient.onStart(); @@ -305,8 +305,8 @@ public final class TermuxActivity extends AppCompatActivity implements ServiceCo if (mIsInvalidState) return; - if (mTermuxTerminalSessionClient != null) - mTermuxTerminalSessionClient.onResume(); + if (mTermuxTerminalSessionActivityClient != null) + mTermuxTerminalSessionActivityClient.onResume(); if (mTermuxTerminalViewClient != null) mTermuxTerminalViewClient.onResume(); @@ -328,8 +328,8 @@ public final class TermuxActivity extends AppCompatActivity implements ServiceCo mIsVisible = false; - if (mTermuxTerminalSessionClient != null) - mTermuxTerminalSessionClient.onStop(); + if (mTermuxTerminalSessionActivityClient != null) + mTermuxTerminalSessionActivityClient.onStop(); if (mTermuxTerminalViewClient != null) mTermuxTerminalViewClient.onStop(); @@ -399,7 +399,7 @@ public final class TermuxActivity extends AppCompatActivity implements ServiceCo if (intent != null && intent.getExtras() != null) { launchFailsafe = intent.getExtras().getBoolean(TERMUX_ACTIVITY.EXTRA_FAILSAFE_SESSION, false); } - mTermuxTerminalSessionClient.addNewSession(launchFailsafe, null); + mTermuxTerminalSessionActivityClient.addNewSession(launchFailsafe, null); } catch (WindowManager.BadTokenException e) { // Activity finished - ignore. } @@ -415,14 +415,14 @@ public final class TermuxActivity extends AppCompatActivity implements ServiceCo if (!mIsActivityRecreated && intent != null && Intent.ACTION_RUN.equals(intent.getAction())) { // Android 7.1 app shortcut from res/xml/shortcuts.xml. boolean isFailSafe = intent.getBooleanExtra(TERMUX_ACTIVITY.EXTRA_FAILSAFE_SESSION, false); - mTermuxTerminalSessionClient.addNewSession(isFailSafe, null); + mTermuxTerminalSessionActivityClient.addNewSession(isFailSafe, null); } else { - mTermuxTerminalSessionClient.setCurrentSession(mTermuxTerminalSessionClient.getCurrentStoredSessionOrLast()); + mTermuxTerminalSessionActivityClient.setCurrentSession(mTermuxTerminalSessionActivityClient.getCurrentStoredSessionOrLast()); } } // Update the {@link TerminalSession} and {@link TerminalEmulator} clients. - mTermuxService.setTermuxTerminalSessionClient(mTermuxTerminalSessionClient); + mTermuxService.setTermuxTerminalSessionClient(mTermuxTerminalSessionActivityClient); } @Override @@ -479,8 +479,8 @@ public final class TermuxActivity extends AppCompatActivity implements ServiceCo private void setTermuxTerminalViewAndClients() { // Set termux terminal view and session clients - mTermuxTerminalSessionClient = new TermuxTerminalSessionClient(this); - mTermuxTerminalViewClient = new TermuxTerminalViewClient(this, mTermuxTerminalSessionClient); + mTermuxTerminalSessionActivityClient = new TermuxTerminalSessionActivityClient(this); + mTermuxTerminalViewClient = new TermuxTerminalViewClient(this, mTermuxTerminalSessionActivityClient); // Set termux terminal view mTerminalView = findViewById(R.id.terminal_view); @@ -489,8 +489,8 @@ public final class TermuxActivity extends AppCompatActivity implements ServiceCo if (mTermuxTerminalViewClient != null) mTermuxTerminalViewClient.onCreate(); - if (mTermuxTerminalSessionClient != null) - mTermuxTerminalSessionClient.onCreate(); + if (mTermuxTerminalSessionActivityClient != null) + mTermuxTerminalSessionActivityClient.onCreate(); } private void setTermuxSessionsListView() { @@ -505,7 +505,7 @@ public final class TermuxActivity extends AppCompatActivity implements ServiceCo private void setTerminalToolbarView(Bundle savedInstanceState) { mTermuxTerminalExtraKeys = new TermuxTerminalExtraKeys(this, mTerminalView, - mTermuxTerminalViewClient, mTermuxTerminalSessionClient); + mTermuxTerminalViewClient, mTermuxTerminalSessionActivityClient); final ViewPager terminalToolbarViewPager = getTerminalToolbarViewPager(); if (mPreferences.shouldShowTerminalToolbar()) terminalToolbarViewPager.setVisibility(View.VISIBLE); @@ -568,11 +568,11 @@ public final class TermuxActivity extends AppCompatActivity implements ServiceCo private void setNewSessionButtonView() { View newSessionButton = findViewById(R.id.new_session_button); - newSessionButton.setOnClickListener(v -> mTermuxTerminalSessionClient.addNewSession(false, null)); + newSessionButton.setOnClickListener(v -> mTermuxTerminalSessionActivityClient.addNewSession(false, null)); newSessionButton.setOnLongClickListener(v -> { TextInputDialogUtils.textInput(TermuxActivity.this, R.string.title_create_named_session, null, - R.string.action_create_named_session_confirm, text -> mTermuxTerminalSessionClient.addNewSession(false, text), - R.string.action_new_session_failsafe, text -> mTermuxTerminalSessionClient.addNewSession(true, text), + R.string.action_create_named_session_confirm, text -> mTermuxTerminalSessionActivityClient.addNewSession(false, text), + R.string.action_new_session_failsafe, text -> mTermuxTerminalSessionActivityClient.addNewSession(true, text), -1, null, null); return true; }); @@ -713,8 +713,8 @@ public final class TermuxActivity extends AppCompatActivity implements ServiceCo session.reset(); showToast(getResources().getString(R.string.msg_terminal_reset), true); - if (mTermuxTerminalSessionClient != null) - mTermuxTerminalSessionClient.onResetTerminalSession(); + if (mTermuxTerminalSessionActivityClient != null) + mTermuxTerminalSessionActivityClient.onResetTerminalSession(); } } @@ -878,8 +878,8 @@ public final class TermuxActivity extends AppCompatActivity implements ServiceCo return mTermuxTerminalViewClient; } - public TermuxTerminalSessionClient getTermuxTerminalSessionClient() { - return mTermuxTerminalSessionClient; + public TermuxTerminalSessionActivityClient getTermuxTerminalSessionClient() { + return mTermuxTerminalSessionActivityClient; } @Nullable @@ -974,8 +974,8 @@ public final class TermuxActivity extends AppCompatActivity implements ServiceCo setMargins(); setTerminalToolbarHeight(); - if (mTermuxTerminalSessionClient != null) - mTermuxTerminalSessionClient.onReloadActivityStyling(); + if (mTermuxTerminalSessionActivityClient != null) + mTermuxTerminalSessionActivityClient.onReloadActivityStyling(); if (mTermuxTerminalViewClient != null) mTermuxTerminalViewClient.onReloadActivityStyling(); diff --git a/app/src/main/java/com/termux/app/TermuxService.java b/app/src/main/java/com/termux/app/TermuxService.java index 31581a6c..d26259e1 100644 --- a/app/src/main/java/com/termux/app/TermuxService.java +++ b/app/src/main/java/com/termux/app/TermuxService.java @@ -20,7 +20,8 @@ import androidx.annotation.Nullable; import com.termux.R; import com.termux.app.event.SystemEventReceiver; -import com.termux.app.terminal.TermuxTerminalSessionClient; +import com.termux.app.terminal.TermuxTerminalSessionActivityClient; +import com.termux.app.terminal.TermuxTerminalSessionServiceClient; import com.termux.shared.termux.plugins.TermuxPluginUtils; import com.termux.shared.data.IntentUtils; import com.termux.shared.net.uri.UriUtils; @@ -80,12 +81,12 @@ public final class TermuxService extends Service implements AppShell.AppShellCli * that holds activity references for activity related functions. * Note that the service may often outlive the activity, so need to clear this reference. */ - TermuxTerminalSessionClient mTermuxTerminalSessionClient; + private TermuxTerminalSessionActivityClient mTermuxTerminalSessionActivityClient; /** The basic implementation of the {@link TerminalSessionClient} interface to be used by {@link TerminalSession} - * that does not hold activity references. + * that does not hold activity references and only a service reference. */ - final TermuxTerminalSessionClientBase mTermuxTerminalSessionClientBase = new TermuxTerminalSessionClientBase(); + private final TermuxTerminalSessionServiceClient mTermuxTerminalSessionServiceClient = new TermuxTerminalSessionServiceClient(this); /** * Termux app shared properties manager, loaded from termux.properties @@ -194,7 +195,7 @@ public final class TermuxService extends Service implements AppShell.AppShellCli // Since we cannot rely on {@link TermuxActivity.onDestroy()} to always complete, // we unset clients here as well if it failed, so that we do not leave service and session // clients with references to the activity. - if (mTermuxTerminalSessionClient != null) + if (mTermuxTerminalSessionActivityClient != null) unsetTermuxTerminalSessionClient(); return false; } @@ -558,7 +559,7 @@ public final class TermuxService extends Service implements AppShell.AppShellCli /** * Create a {@link TermuxSession}. - * Currently called by {@link TermuxTerminalSessionClient#addNewSession(boolean, String)} to add a new {@link TermuxSession}. + * Currently called by {@link TermuxTerminalSessionActivityClient#addNewSession(boolean, String)} to add a new {@link TermuxSession}. */ @Nullable public TermuxSession createTermuxSession(String executablePath, String[] arguments, String stdin, @@ -613,8 +614,8 @@ public final class TermuxService extends Service implements AppShell.AppShellCli // Notify {@link TermuxSessionsListViewController} that sessions list has been updated if // activity in is foreground - if (mTermuxTerminalSessionClient != null) - mTermuxTerminalSessionClient.termuxSessionListNotifyUpdated(); + if (mTermuxTerminalSessionActivityClient != null) + mTermuxTerminalSessionActivityClient.termuxSessionListNotifyUpdated(); updateNotification(); @@ -650,8 +651,8 @@ public final class TermuxService extends Service implements AppShell.AppShellCli // Notify {@link TermuxSessionsListViewController} that sessions list has been updated if // activity in is foreground - if (mTermuxTerminalSessionClient != null) - mTermuxTerminalSessionClient.termuxSessionListNotifyUpdated(); + if (mTermuxTerminalSessionActivityClient != null) + mTermuxTerminalSessionActivityClient.termuxSessionListNotifyUpdated(); } updateNotification(); @@ -686,8 +687,8 @@ public final class TermuxService extends Service implements AppShell.AppShellCli switch (sessionAction) { case TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_SWITCH_TO_NEW_SESSION_AND_OPEN_ACTIVITY: setCurrentStoredTerminalSession(newTerminalSession); - if (mTermuxTerminalSessionClient != null) - mTermuxTerminalSessionClient.setCurrentSession(newTerminalSession); + if (mTermuxTerminalSessionActivityClient != null) + mTermuxTerminalSessionActivityClient.setCurrentSession(newTerminalSession); startTermuxActivity(); break; case TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_KEEP_CURRENT_SESSION_AND_OPEN_ACTIVITY: @@ -697,8 +698,8 @@ public final class TermuxService extends Service implements AppShell.AppShellCli break; case TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_SWITCH_TO_NEW_SESSION_AND_DONT_OPEN_ACTIVITY: setCurrentStoredTerminalSession(newTerminalSession); - if (mTermuxTerminalSessionClient != null) - mTermuxTerminalSessionClient.setCurrentSession(newTerminalSession); + if (mTermuxTerminalSessionActivityClient != null) + mTermuxTerminalSessionActivityClient.setCurrentSession(newTerminalSession); break; case TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_KEEP_CURRENT_SESSION_AND_DONT_OPEN_ACTIVITY: if (getTermuxSessionsSize() == 1) @@ -732,35 +733,35 @@ public final class TermuxService extends Service implements AppShell.AppShellCli /** If {@link TermuxActivity} has not bound to the {@link TermuxService} yet or is destroyed, then * interface functions requiring the activity should not be available to the terminal sessions, - * so we just return the {@link #mTermuxTerminalSessionClientBase}. Once {@link TermuxActivity} bind + * so we just return the {@link #mTermuxTerminalSessionServiceClient}. Once {@link TermuxActivity} bind * callback is received, it should call {@link #setTermuxTerminalSessionClient} to set the - * {@link TermuxService#mTermuxTerminalSessionClient} so that further terminal sessions are directly - * passed the {@link TermuxTerminalSessionClient} object which fully implements the + * {@link TermuxService#mTermuxTerminalSessionActivityClient} so that further terminal sessions are directly + * passed the {@link TermuxTerminalSessionActivityClient} object which fully implements the * {@link TerminalSessionClient} interface. * - * @return Returns the {@link TermuxTerminalSessionClient} if {@link TermuxActivity} has bound with - * {@link TermuxService}, otherwise {@link TermuxTerminalSessionClientBase}. + * @return Returns the {@link TermuxTerminalSessionActivityClient} if {@link TermuxActivity} has bound with + * {@link TermuxService}, otherwise {@link TermuxTerminalSessionServiceClient}. */ public synchronized TermuxTerminalSessionClientBase getTermuxTerminalSessionClient() { - if (mTermuxTerminalSessionClient != null) - return mTermuxTerminalSessionClient; + if (mTermuxTerminalSessionActivityClient != null) + return mTermuxTerminalSessionActivityClient; else - return mTermuxTerminalSessionClientBase; + return mTermuxTerminalSessionServiceClient; } /** This should be called when {@link TermuxActivity#onServiceConnected} is called to set the - * {@link TermuxService#mTermuxTerminalSessionClient} variable and update the {@link TerminalSession} - * and {@link TerminalEmulator} clients in case they were passed {@link TermuxTerminalSessionClientBase} + * {@link TermuxService#mTermuxTerminalSessionActivityClient} variable and update the {@link TerminalSession} + * and {@link TerminalEmulator} clients in case they were passed {@link TermuxTerminalSessionServiceClient} * earlier. * - * @param termuxTerminalSessionClient The {@link TermuxTerminalSessionClient} object that fully + * @param termuxTerminalSessionActivityClient The {@link TermuxTerminalSessionActivityClient} object that fully * implements the {@link TerminalSessionClient} interface. */ - public synchronized void setTermuxTerminalSessionClient(TermuxTerminalSessionClient termuxTerminalSessionClient) { - mTermuxTerminalSessionClient = termuxTerminalSessionClient; + public synchronized void setTermuxTerminalSessionClient(TermuxTerminalSessionActivityClient termuxTerminalSessionActivityClient) { + mTermuxTerminalSessionActivityClient = termuxTerminalSessionActivityClient; for (int i = 0; i < mShellManager.mTermuxSessions.size(); i++) - mShellManager.mTermuxSessions.get(i).getTerminalSession().updateTerminalSessionClient(mTermuxTerminalSessionClient); + mShellManager.mTermuxSessions.get(i).getTerminalSession().updateTerminalSessionClient(mTermuxTerminalSessionActivityClient); } /** This should be called when {@link TermuxActivity} has been destroyed and in {@link #onUnbind(Intent)} @@ -769,9 +770,9 @@ public final class TermuxService extends Service implements AppShell.AppShellCli */ public synchronized void unsetTermuxTerminalSessionClient() { for (int i = 0; i < mShellManager.mTermuxSessions.size(); i++) - mShellManager.mTermuxSessions.get(i).getTerminalSession().updateTerminalSessionClient(mTermuxTerminalSessionClientBase); + mShellManager.mTermuxSessions.get(i).getTerminalSession().updateTerminalSessionClient(mTermuxTerminalSessionServiceClient); - mTermuxTerminalSessionClient = null; + mTermuxTerminalSessionActivityClient = null; } diff --git a/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionClient.java b/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionActivityClient.java similarity index 98% rename from app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionClient.java rename to app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionActivityClient.java index 1054d91f..e507cd19 100644 --- a/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionClient.java +++ b/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionActivityClient.java @@ -1,6 +1,7 @@ package com.termux.app.terminal; import android.annotation.SuppressLint; +import android.app.Activity; import android.app.AlertDialog; import android.content.ClipData; import android.content.ClipboardManager; @@ -27,6 +28,7 @@ import com.termux.shared.termux.terminal.io.BellHandler; import com.termux.shared.logger.Logger; import com.termux.terminal.TerminalColors; import com.termux.terminal.TerminalSession; +import com.termux.terminal.TerminalSessionClient; import com.termux.terminal.TextStyle; import java.io.File; @@ -34,7 +36,8 @@ import java.io.FileInputStream; import java.io.InputStream; import java.util.Properties; -public class TermuxTerminalSessionClient extends TermuxTerminalSessionClientBase { +/** The {@link TerminalSessionClient} implementation that may require an {@link Activity} for its interface methods. */ +public class TermuxTerminalSessionActivityClient extends TermuxTerminalSessionClientBase { private final TermuxActivity mActivity; @@ -44,9 +47,9 @@ public class TermuxTerminalSessionClient extends TermuxTerminalSessionClientBase private int mBellSoundId; - private static final String LOG_TAG = "TermuxTerminalSessionClient"; + private static final String LOG_TAG = "TermuxTerminalSessionActivityClient"; - public TermuxTerminalSessionClient(TermuxActivity activity) { + public TermuxTerminalSessionActivityClient(TermuxActivity activity) { this.mActivity = activity; } @@ -238,7 +241,7 @@ public class TermuxTerminalSessionClient extends TermuxTerminalSessionClientBase public void setTerminalShellPid(@NonNull TerminalSession terminalSession, int pid) { TermuxService service = mActivity.getTermuxService(); if (service == null) return; - + TermuxSession termuxSession = service.getTermuxSessionForTerminalSession(terminalSession); if (termuxSession != null) termuxSession.getExecutionCommand().mPid = pid; diff --git a/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionServiceClient.java b/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionServiceClient.java new file mode 100644 index 00000000..6941a348 --- /dev/null +++ b/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionServiceClient.java @@ -0,0 +1,24 @@ +package com.termux.app.terminal; + +import android.app.Service; + +import androidx.annotation.NonNull; + +import com.termux.app.TermuxService; +import com.termux.shared.termux.shell.command.runner.terminal.TermuxSession; +import com.termux.shared.termux.terminal.TermuxTerminalSessionClientBase; +import com.termux.terminal.TerminalSession; +import com.termux.terminal.TerminalSessionClient; + +/** The {@link TerminalSessionClient} implementation that may require a {@link Service} for its interface methods. */ +public class TermuxTerminalSessionServiceClient extends TermuxTerminalSessionClientBase { + + private static final String LOG_TAG = "TermuxTerminalSessionServiceClient"; + + private final TermuxService mService; + + public TermuxTerminalSessionServiceClient(TermuxService service) { + this.mService = service; + } + +} 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 e352c790..9c38cdbc 100644 --- a/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java +++ b/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java @@ -57,7 +57,7 @@ public class TermuxTerminalViewClient extends TermuxTerminalViewClientBase { final TermuxActivity mActivity; - final TermuxTerminalSessionClient mTermuxTerminalSessionClient; + final TermuxTerminalSessionActivityClient mTermuxTerminalSessionActivityClient; /** Keeping track of the special keys acting as Ctrl and Fn for the soft keyboard and other hardware keys. */ boolean mVirtualControlKeyDown, mVirtualFnKeyDown; @@ -73,9 +73,9 @@ public class TermuxTerminalViewClient extends TermuxTerminalViewClientBase { private static final String LOG_TAG = "TermuxTerminalViewClient"; - public TermuxTerminalViewClient(TermuxActivity activity, TermuxTerminalSessionClient termuxTerminalSessionClient) { + public TermuxTerminalViewClient(TermuxActivity activity, TermuxTerminalSessionActivityClient termuxTerminalSessionActivityClient) { this.mActivity = activity; - this.mTermuxTerminalSessionClient = termuxTerminalSessionClient; + this.mTermuxTerminalSessionActivityClient = termuxTerminalSessionActivityClient; } public TermuxActivity getActivity() { @@ -242,7 +242,7 @@ public class TermuxTerminalViewClient extends TermuxTerminalViewClientBase { if (handleVirtualKeys(keyCode, e, true)) return true; if (keyCode == KeyEvent.KEYCODE_ENTER && !currentSession.isRunning()) { - mTermuxTerminalSessionClient.removeFinishedSession(currentSession); + mTermuxTerminalSessionActivityClient.removeFinishedSession(currentSession); return true; } else if (!mActivity.getProperties().areHardwareKeyboardShortcutsDisabled() && e.isCtrlPressed() && e.isAltPressed()) { @@ -250,9 +250,9 @@ public class TermuxTerminalViewClient extends TermuxTerminalViewClientBase { int unicodeChar = e.getUnicodeChar(0); if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN || unicodeChar == 'n'/* next */) { - mTermuxTerminalSessionClient.switchToSession(true); + mTermuxTerminalSessionActivityClient.switchToSession(true); } else if (keyCode == KeyEvent.KEYCODE_DPAD_UP || unicodeChar == 'p' /* previous */) { - mTermuxTerminalSessionClient.switchToSession(false); + mTermuxTerminalSessionActivityClient.switchToSession(false); } else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { mActivity.getDrawer().openDrawer(Gravity.LEFT); } else if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { @@ -262,9 +262,9 @@ public class TermuxTerminalViewClient extends TermuxTerminalViewClientBase { } else if (unicodeChar == 'm'/* menu */) { mActivity.getTerminalView().showContextMenu(); } else if (unicodeChar == 'r'/* rename */) { - mTermuxTerminalSessionClient.renameSession(currentSession); + mTermuxTerminalSessionActivityClient.renameSession(currentSession); } else if (unicodeChar == 'c'/* create */) { - mTermuxTerminalSessionClient.addNewSession(false, null); + mTermuxTerminalSessionActivityClient.addNewSession(false, null); } else if (unicodeChar == 'u' /* urls */) { showUrlSelection(); } else if (unicodeChar == 'v') { @@ -277,7 +277,7 @@ public class TermuxTerminalViewClient extends TermuxTerminalViewClientBase { changeFontSize(false); } else if (unicodeChar >= '1' && unicodeChar <= '9') { int index = unicodeChar - '1'; - mTermuxTerminalSessionClient.switchToSession(index); + mTermuxTerminalSessionActivityClient.switchToSession(index); } return true; } @@ -461,7 +461,7 @@ public class TermuxTerminalViewClient extends TermuxTerminalViewClientBase { return true; } else if (ctrlDown) { if (codePoint == 106 /* Ctrl+j or \n */ && !session.isRunning()) { - mTermuxTerminalSessionClient.removeFinishedSession(session); + mTermuxTerminalSessionActivityClient.removeFinishedSession(session); return true; } @@ -473,16 +473,16 @@ public class TermuxTerminalViewClient extends TermuxTerminalViewClientBase { if (codePointLowerCase == shortcut.codePoint) { switch (shortcut.shortcutAction) { case TermuxPropertyConstants.ACTION_SHORTCUT_CREATE_SESSION: - mTermuxTerminalSessionClient.addNewSession(false, null); + mTermuxTerminalSessionActivityClient.addNewSession(false, null); return true; case TermuxPropertyConstants.ACTION_SHORTCUT_NEXT_SESSION: - mTermuxTerminalSessionClient.switchToSession(true); + mTermuxTerminalSessionActivityClient.switchToSession(true); return true; case TermuxPropertyConstants.ACTION_SHORTCUT_PREVIOUS_SESSION: - mTermuxTerminalSessionClient.switchToSession(false); + mTermuxTerminalSessionActivityClient.switchToSession(false); return true; case TermuxPropertyConstants.ACTION_SHORTCUT_RENAME_SESSION: - mTermuxTerminalSessionClient.renameSession(mActivity.getCurrentSession()); + mTermuxTerminalSessionActivityClient.renameSession(mActivity.getCurrentSession()); return true; } } 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 48cd6be2..bcb70655 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 @@ -8,7 +8,7 @@ import androidx.annotation.NonNull; import androidx.drawerlayout.widget.DrawerLayout; import com.termux.app.TermuxActivity; -import com.termux.app.terminal.TermuxTerminalSessionClient; +import com.termux.app.terminal.TermuxTerminalSessionActivityClient; import com.termux.app.terminal.TermuxTerminalViewClient; import com.termux.shared.logger.Logger; import com.termux.shared.termux.extrakeys.ExtraKeysConstants; @@ -26,18 +26,18 @@ public class TermuxTerminalExtraKeys extends TerminalExtraKeys { final TermuxActivity mActivity; final TermuxTerminalViewClient mTermuxTerminalViewClient; - final TermuxTerminalSessionClient mTermuxTerminalSessionClient; + final TermuxTerminalSessionActivityClient mTermuxTerminalSessionActivityClient; private static final String LOG_TAG = "TermuxTerminalExtraKeys"; public TermuxTerminalExtraKeys(TermuxActivity activity, @NonNull TerminalView terminalView, TermuxTerminalViewClient termuxTerminalViewClient, - TermuxTerminalSessionClient termuxTerminalSessionClient) { + TermuxTerminalSessionActivityClient termuxTerminalSessionActivityClient) { super(terminalView); mActivity = activity; mTermuxTerminalViewClient = termuxTerminalViewClient; - mTermuxTerminalSessionClient = termuxTerminalSessionClient; + mTermuxTerminalSessionActivityClient = termuxTerminalSessionActivityClient; setExtraKeys(); } @@ -94,8 +94,8 @@ public class TermuxTerminalExtraKeys extends TerminalExtraKeys { else drawerLayout.openDrawer(Gravity.LEFT); } else if ("PASTE".equals(key)) { - if(mTermuxTerminalSessionClient != null) - mTermuxTerminalSessionClient.onPasteTextFromClipboard(null); + if(mTermuxTerminalSessionActivityClient != null) + mTermuxTerminalSessionActivityClient.onPasteTextFromClipboard(null); } else { super.onTerminalExtraKeyButtonClick(view, key, ctrlDown, altDown, shiftDown, fnDown); }