Rename termux terminal view and session client classes

- com.termux.app.terminal.TermuxViewClient has been renamed to TermuxTerminalViewClient
- com.termux.app.terminal.TermuxSessionClient has been renamed to TermuxTerminalSessionClient
- com.termux.shared.shell.TermuxSessionClientBase has been renamed to TermuxTerminalSessionClientBase

This was required because com.termux.app.terminal.TermuxSessionClient was in conflict with com.termux.shared.shell.TermuxSessionClient interface of com.termux.shared.shell.TermuxSession.
This commit is contained in:
agnostic-apollo
2021-04-12 15:19:25 +05:00
parent a95e187b25
commit 824b3e657f
7 changed files with 84 additions and 84 deletions

View File

@@ -38,8 +38,8 @@ import com.termux.app.activities.SettingsActivity;
import com.termux.shared.settings.preferences.TermuxAppSharedPreferences; import com.termux.shared.settings.preferences.TermuxAppSharedPreferences;
import com.termux.app.terminal.TermuxSessionsListViewController; import com.termux.app.terminal.TermuxSessionsListViewController;
import com.termux.app.terminal.io.TerminalToolbarViewPager; import com.termux.app.terminal.io.TerminalToolbarViewPager;
import com.termux.app.terminal.TermuxSessionClient; import com.termux.app.terminal.TermuxTerminalSessionClient;
import com.termux.app.terminal.TermuxViewClient; import com.termux.app.terminal.TermuxTerminalViewClient;
import com.termux.app.terminal.io.extrakeys.ExtraKeysView; import com.termux.app.terminal.io.extrakeys.ExtraKeysView;
import com.termux.app.settings.properties.TermuxAppSharedProperties; import com.termux.app.settings.properties.TermuxAppSharedProperties;
import com.termux.shared.interact.DialogUtils; import com.termux.shared.interact.DialogUtils;
@@ -86,13 +86,13 @@ public final class TermuxActivity extends Activity implements ServiceConnection
* The {@link TerminalViewClient} interface implementation to allow for communication between * The {@link TerminalViewClient} interface implementation to allow for communication between
* {@link TerminalView} and {@link TermuxActivity}. * {@link TerminalView} and {@link TermuxActivity}.
*/ */
TermuxViewClient mTermuxViewClient; TermuxTerminalViewClient mTermuxTerminalViewClient;
/** /**
* The {@link TerminalSessionClient} interface implementation to allow for communication between * The {@link TerminalSessionClient} interface implementation to allow for communication between
* {@link TerminalSession} and {@link TermuxActivity}. * {@link TerminalSession} and {@link TermuxActivity}.
*/ */
TermuxSessionClient mTermuxSessionClient; TermuxTerminalSessionClient mTermuxTerminalSessionClient;
/** /**
* Termux app shared preferences manager. * Termux app shared preferences manager.
@@ -218,7 +218,7 @@ public final class TermuxActivity extends Activity implements ServiceConnection
// The service has connected, but data may have changed since we were last in the foreground. // The service has connected, but data may have changed since we were last in the foreground.
// Get the session stored in shared preferences stored by {@link #onStop} if its valid, // Get the session stored in shared preferences stored by {@link #onStop} if its valid,
// otherwise get the last session currently running. // otherwise get the last session currently running.
mTermuxSessionClient.setCurrentSession(mTermuxSessionClient.getCurrentStoredSessionOrLast()); mTermuxTerminalSessionClient.setCurrentSession(mTermuxTerminalSessionClient.getCurrentStoredSessionOrLast());
termuxSessionListNotifyUpdated(); termuxSessionListNotifyUpdated();
} }
@@ -264,7 +264,7 @@ public final class TermuxActivity extends Activity implements ServiceConnection
if (bundle != null) { if (bundle != null) {
launchFailsafe = bundle.getBoolean(TERMUX_ACTIVITY.ACTION_FAILSAFE_SESSION, false); launchFailsafe = bundle.getBoolean(TERMUX_ACTIVITY.ACTION_FAILSAFE_SESSION, false);
} }
mTermuxSessionClient.addNewSession(launchFailsafe, null); mTermuxTerminalSessionClient.addNewSession(launchFailsafe, null);
} catch (WindowManager.BadTokenException e) { } catch (WindowManager.BadTokenException e) {
// Activity finished - ignore. // Activity finished - ignore.
} }
@@ -278,14 +278,14 @@ public final class TermuxActivity extends Activity implements ServiceConnection
if (i != null && Intent.ACTION_RUN.equals(i.getAction())) { if (i != null && Intent.ACTION_RUN.equals(i.getAction())) {
// Android 7.1 app shortcut from res/xml/shortcuts.xml. // Android 7.1 app shortcut from res/xml/shortcuts.xml.
boolean isFailSafe = i.getBooleanExtra(TERMUX_ACTIVITY.ACTION_FAILSAFE_SESSION, false); boolean isFailSafe = i.getBooleanExtra(TERMUX_ACTIVITY.ACTION_FAILSAFE_SESSION, false);
mTermuxSessionClient.addNewSession(isFailSafe, null); mTermuxTerminalSessionClient.addNewSession(isFailSafe, null);
} else { } else {
mTermuxSessionClient.setCurrentSession(mTermuxSessionClient.getCurrentStoredSessionOrLast()); mTermuxTerminalSessionClient.setCurrentSession(mTermuxTerminalSessionClient.getCurrentStoredSessionOrLast());
} }
} }
// Update the {@link TerminalSession} and {@link TerminalEmulator} clients. // Update the {@link TerminalSession} and {@link TerminalEmulator} clients.
mTermuxService.setTermuxSessionClient(mTermuxSessionClient); mTermuxService.setTermuxTerminalSessionClient(mTermuxTerminalSessionClient);
} }
@Override @Override
@@ -307,7 +307,7 @@ public final class TermuxActivity extends Activity implements ServiceConnection
// Store current session in shared preferences so that it can be restored later in // Store current session in shared preferences so that it can be restored later in
// {@link #onStart} if needed. // {@link #onStart} if needed.
mTermuxSessionClient.setCurrentStoredSession(); mTermuxTerminalSessionClient.setCurrentStoredSession();
unregisterReceiver(mTermuxActivityBroadcastReceiever); unregisterReceiver(mTermuxActivityBroadcastReceiever);
getDrawer().closeDrawers(); getDrawer().closeDrawers();
@@ -321,7 +321,7 @@ public final class TermuxActivity extends Activity implements ServiceConnection
if (mTermuxService != null) { if (mTermuxService != null) {
// Do not leave service and session clients with references to activity. // Do not leave service and session clients with references to activity.
mTermuxService.unsetTermuxSessionClient(); mTermuxService.unsetTermuxTerminalSessionClient();
mTermuxService = null; mTermuxService = null;
} }
unbindService(this); unbindService(this);
@@ -406,11 +406,11 @@ public final class TermuxActivity extends Activity implements ServiceConnection
private void setNewSessionButtonView() { private void setNewSessionButtonView() {
View newSessionButton = findViewById(R.id.new_session_button); View newSessionButton = findViewById(R.id.new_session_button);
newSessionButton.setOnClickListener(v -> mTermuxSessionClient.addNewSession(false, null)); newSessionButton.setOnClickListener(v -> mTermuxTerminalSessionClient.addNewSession(false, null));
newSessionButton.setOnLongClickListener(v -> { newSessionButton.setOnLongClickListener(v -> {
DialogUtils.textInput(TermuxActivity.this, R.string.title_create_named_session, null, DialogUtils.textInput(TermuxActivity.this, R.string.title_create_named_session, null,
R.string.action_create_named_session_confirm, text -> mTermuxSessionClient.addNewSession(false, text), R.string.action_create_named_session_confirm, text -> mTermuxTerminalSessionClient.addNewSession(false, text),
R.string.action_new_session_failsafe, text -> mTermuxSessionClient.addNewSession(true, text), R.string.action_new_session_failsafe, text -> mTermuxTerminalSessionClient.addNewSession(true, text),
-1, null, null); -1, null, null);
return true; return true;
}); });
@@ -447,12 +447,12 @@ public final class TermuxActivity extends Activity implements ServiceConnection
private void setTermuxTerminalViewAndClients() { private void setTermuxTerminalViewAndClients() {
// Set termux terminal view and session clients // Set termux terminal view and session clients
mTermuxSessionClient = new TermuxSessionClient(this); mTermuxTerminalSessionClient = new TermuxTerminalSessionClient(this);
mTermuxViewClient = new TermuxViewClient(this, mTermuxSessionClient); mTermuxTerminalViewClient = new TermuxTerminalViewClient(this, mTermuxTerminalSessionClient);
// Set termux terminal view // Set termux terminal view
mTerminalView = findViewById(R.id.terminal_view); mTerminalView = findViewById(R.id.terminal_view);
mTerminalView.setTerminalViewClient(mTermuxViewClient); mTerminalView.setTerminalViewClient(mTermuxTerminalViewClient);
mTerminalView.setTextSize(mPreferences.getFontSize()); mTerminalView.setTextSize(mPreferences.getFontSize());
mTerminalView.setKeepScreenOn(mPreferences.getKeepScreenOn()); mTerminalView.setKeepScreenOn(mPreferences.getKeepScreenOn());
@@ -462,7 +462,7 @@ public final class TermuxActivity extends Activity implements ServiceConnection
mTerminalView.requestFocus(); mTerminalView.requestFocus();
mTermuxSessionClient.checkForFontAndColors(); mTermuxTerminalSessionClient.checkForFontAndColors();
} }
private void setTermuxSessionsListView() { private void setTermuxSessionsListView() {
@@ -543,10 +543,10 @@ public final class TermuxActivity extends Activity implements ServiceConnection
switch (item.getItemId()) { switch (item.getItemId()) {
case CONTEXT_MENU_SELECT_URL_ID: case CONTEXT_MENU_SELECT_URL_ID:
mTermuxViewClient.showUrlSelection(); mTermuxTerminalViewClient.showUrlSelection();
return true; return true;
case CONTEXT_MENU_SHARE_TRANSCRIPT_ID: case CONTEXT_MENU_SHARE_TRANSCRIPT_ID:
mTermuxViewClient.shareSessionTranscript(); mTermuxTerminalViewClient.shareSessionTranscript();
return true; return true;
case CONTEXT_MENU_AUTOFILL_ID: case CONTEXT_MENU_AUTOFILL_ID:
requestAutoFill(); requestAutoFill();
@@ -570,7 +570,7 @@ public final class TermuxActivity extends Activity implements ServiceConnection
startActivity(new Intent(this, SettingsActivity.class)); startActivity(new Intent(this, SettingsActivity.class));
return true; return true;
case CONTEXT_MENU_REPORT_ID: case CONTEXT_MENU_REPORT_ID:
mTermuxViewClient.reportIssueFromTranscript(); mTermuxTerminalViewClient.reportIssueFromTranscript();
return true; return true;
default: default:
return super.onContextItemSelected(item); return super.onContextItemSelected(item);
@@ -690,8 +690,8 @@ public final class TermuxActivity extends Activity implements ServiceConnection
return mTerminalView; return mTerminalView;
} }
public TermuxSessionClient getTermuxSessionClient() { public TermuxTerminalSessionClient getTermuxTerminalSessionClient() {
return mTermuxSessionClient; return mTermuxTerminalSessionClient;
} }
@Nullable @Nullable
@@ -732,8 +732,8 @@ public final class TermuxActivity extends Activity implements ServiceConnection
return; return;
} }
if(mTermuxSessionClient!= null) { if(mTermuxTerminalSessionClient != null) {
mTermuxSessionClient.checkForFontAndColors(); mTermuxTerminalSessionClient.checkForFontAndColors();
} }
if(mProperties!= null) { if(mProperties!= null) {

View File

@@ -20,14 +20,14 @@ import android.provider.Settings;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import com.termux.R; import com.termux.R;
import com.termux.app.terminal.TermuxSessionClient; import com.termux.app.terminal.TermuxTerminalSessionClient;
import com.termux.app.utils.PluginUtils; import com.termux.app.utils.PluginUtils;
import com.termux.shared.termux.TermuxConstants; import com.termux.shared.termux.TermuxConstants;
import com.termux.shared.termux.TermuxConstants.TERMUX_APP.TERMUX_ACTIVITY; import com.termux.shared.termux.TermuxConstants.TERMUX_APP.TERMUX_ACTIVITY;
import com.termux.shared.termux.TermuxConstants.TERMUX_APP.TERMUX_SERVICE; import com.termux.shared.termux.TermuxConstants.TERMUX_APP.TERMUX_SERVICE;
import com.termux.shared.settings.preferences.TermuxAppSharedPreferences; import com.termux.shared.settings.preferences.TermuxAppSharedPreferences;
import com.termux.shared.shell.TermuxSession; import com.termux.shared.shell.TermuxSession;
import com.termux.shared.shell.TermuxSessionClientBase; import com.termux.shared.shell.TermuxTerminalSessionClientBase;
import com.termux.shared.logger.Logger; import com.termux.shared.logger.Logger;
import com.termux.shared.notification.NotificationUtils; import com.termux.shared.notification.NotificationUtils;
import com.termux.shared.packages.PermissionUtils; import com.termux.shared.packages.PermissionUtils;
@@ -92,12 +92,12 @@ public final class TermuxService extends Service implements TermuxTask.TermuxTas
* that holds activity references for activity related functions. * that holds activity references for activity related functions.
* Note that the service may often outlive the activity, so need to clear this reference. * Note that the service may often outlive the activity, so need to clear this reference.
*/ */
com.termux.app.terminal.TermuxSessionClient mTermuxSessionClient; TermuxTerminalSessionClient mTermuxTerminalSessionClient;
/** The basic implementation of the {@link TerminalSessionClient} interface to be used by {@link TerminalSession} /** 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.
*/ */
final TermuxSessionClientBase mTermuxSessionClientBase = new TermuxSessionClientBase(); final TermuxTerminalSessionClientBase mTermuxTerminalSessionClientBase = new TermuxTerminalSessionClientBase();
/** The wake lock and wifi lock are always acquired and released together. */ /** The wake lock and wifi lock are always acquired and released together. */
private PowerManager.WakeLock mWakeLock; private PowerManager.WakeLock mWakeLock;
@@ -178,8 +178,8 @@ public final class TermuxService extends Service implements TermuxTask.TermuxTas
// Since we cannot rely on {@link TermuxActivity.onDestroy()} to always complete, // 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 // we unset clients here as well if it failed, so that we do not leave service and session
// clients with references to the activity. // clients with references to the activity.
if (mTermuxSessionClient != null) if (mTermuxTerminalSessionClient != null)
unsetTermuxSessionClient(); unsetTermuxTerminalSessionClient();
return false; return false;
} }
@@ -476,7 +476,7 @@ public final class TermuxService extends Service implements TermuxTask.TermuxTas
/** /**
* Create a {@link TermuxSession}. * Create a {@link TermuxSession}.
* Currently called by {@link TermuxSessionClient#addNewSession(boolean, String)} to add a new {@link TermuxSession}. * Currently called by {@link TermuxTerminalSessionClient#addNewSession(boolean, String)} to add a new {@link TermuxSession}.
*/ */
@Nullable @Nullable
public TermuxSession createTermuxSession(String executablePath, String[] arguments, String workingDirectory, boolean isFailSafe, String sessionName) { public TermuxSession createTermuxSession(String executablePath, String[] arguments, String workingDirectory, boolean isFailSafe, String sessionName) {
@@ -501,7 +501,7 @@ public final class TermuxService extends Service implements TermuxTask.TermuxTas
// If the execution command was started for a plugin, only then will the stdout be set // If the execution command was started for a plugin, only then will the stdout be set
// Otherwise if command was manually started by the user like by adding a new terminal session, // Otherwise if command was manually started by the user like by adding a new terminal session,
// then no need to set stdout // then no need to set stdout
TermuxSession newTermuxSession = TermuxSession.execute(this, executionCommand, getTermuxSessionClient(), this, sessionName, executionCommand.isPluginExecutionCommand); TermuxSession newTermuxSession = TermuxSession.execute(this, executionCommand, getTermuxTerminalSessionClient(), this, sessionName, executionCommand.isPluginExecutionCommand);
if (newTermuxSession == null) { if (newTermuxSession == null) {
Logger.logError(LOG_TAG, "Failed to execute new TermuxSession command for:\n" + executionCommand.getCommandIdAndLabelLogString()); Logger.logError(LOG_TAG, "Failed to execute new TermuxSession command for:\n" + executionCommand.getCommandIdAndLabelLogString());
return null; return null;
@@ -516,8 +516,8 @@ public final class TermuxService extends Service implements TermuxTask.TermuxTas
// Notify {@link TermuxSessionsListViewController} that sessions list has been updated if // Notify {@link TermuxSessionsListViewController} that sessions list has been updated if
// activity in is foreground // activity in is foreground
if (mTermuxSessionClient != null) if (mTermuxTerminalSessionClient != null)
mTermuxSessionClient.termuxSessionListNotifyUpdated(); mTermuxTerminalSessionClient.termuxSessionListNotifyUpdated();
updateNotification(); updateNotification();
TermuxActivity.updateTermuxActivityStyling(this); TermuxActivity.updateTermuxActivityStyling(this);
@@ -551,8 +551,8 @@ public final class TermuxService extends Service implements TermuxTask.TermuxTas
// Notify {@link TermuxSessionsListViewController} that sessions list has been updated if // Notify {@link TermuxSessionsListViewController} that sessions list has been updated if
// activity in is foreground // activity in is foreground
if (mTermuxSessionClient != null) if (mTermuxTerminalSessionClient != null)
mTermuxSessionClient.termuxSessionListNotifyUpdated(); mTermuxTerminalSessionClient.termuxSessionListNotifyUpdated();
} }
updateNotification(); updateNotification();
@@ -569,8 +569,8 @@ public final class TermuxService extends Service implements TermuxTask.TermuxTas
switch (sessionAction) { switch (sessionAction) {
case TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_SWITCH_TO_NEW_SESSION_AND_OPEN_ACTIVITY: case TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_SWITCH_TO_NEW_SESSION_AND_OPEN_ACTIVITY:
setCurrentStoredTerminalSession(newTerminalSession); setCurrentStoredTerminalSession(newTerminalSession);
if (mTermuxSessionClient != null) if (mTermuxTerminalSessionClient != null)
mTermuxSessionClient.setCurrentSession(newTerminalSession); mTermuxTerminalSessionClient.setCurrentSession(newTerminalSession);
startTermuxActivity(); startTermuxActivity();
break; break;
case TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_KEEP_CURRENT_SESSION_AND_OPEN_ACTIVITY: case TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_KEEP_CURRENT_SESSION_AND_OPEN_ACTIVITY:
@@ -580,8 +580,8 @@ public final class TermuxService extends Service implements TermuxTask.TermuxTas
break; break;
case TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_SWITCH_TO_NEW_SESSION_AND_DONT_OPEN_ACTIVITY: case TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_SWITCH_TO_NEW_SESSION_AND_DONT_OPEN_ACTIVITY:
setCurrentStoredTerminalSession(newTerminalSession); setCurrentStoredTerminalSession(newTerminalSession);
if (mTermuxSessionClient != null) if (mTermuxTerminalSessionClient != null)
mTermuxSessionClient.setCurrentSession(newTerminalSession); mTermuxTerminalSessionClient.setCurrentSession(newTerminalSession);
break; break;
case TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_KEEP_CURRENT_SESSION_AND_DONT_OPEN_ACTIVITY: case TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_KEEP_CURRENT_SESSION_AND_DONT_OPEN_ACTIVITY:
if (getTermuxSessionsSize() == 1) if (getTermuxSessionsSize() == 1)
@@ -610,46 +610,46 @@ public final class TermuxService extends Service implements TermuxTask.TermuxTas
/** If {@link TermuxActivity} has not bound to the {@link TermuxService} yet or is destroyed, then /** 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, * interface functions requiring the activity should not be available to the terminal sessions,
* so we just return the {@link #mTermuxSessionClientBase}. Once {@link TermuxActivity} bind * so we just return the {@link #mTermuxTerminalSessionClientBase}. Once {@link TermuxActivity} bind
* callback is received, it should call {@link #setTermuxSessionClient} to set the * callback is received, it should call {@link #setTermuxTerminalSessionClient} to set the
* {@link TermuxService#mTermuxSessionClient} so that further terminal sessions are directly * {@link TermuxService#mTermuxTerminalSessionClient} so that further terminal sessions are directly
* passed the {@link TermuxSessionClient} object which fully implements the * passed the {@link TermuxTerminalSessionClient} object which fully implements the
* {@link TerminalSessionClient} interface. * {@link TerminalSessionClient} interface.
* *
* @return Returns the {@link TermuxSessionClient} if {@link TermuxActivity} has bound with * @return Returns the {@link TermuxTerminalSessionClient} if {@link TermuxActivity} has bound with
* {@link TermuxService}, otherwise {@link TermuxSessionClientBase}. * {@link TermuxService}, otherwise {@link TermuxTerminalSessionClientBase}.
*/ */
public synchronized TermuxSessionClientBase getTermuxSessionClient() { public synchronized TermuxTerminalSessionClientBase getTermuxTerminalSessionClient() {
if (mTermuxSessionClient != null) if (mTermuxTerminalSessionClient != null)
return mTermuxSessionClient; return mTermuxTerminalSessionClient;
else else
return mTermuxSessionClientBase; return mTermuxTerminalSessionClientBase;
} }
/** This should be called when {@link TermuxActivity#onServiceConnected} is called to set the /** This should be called when {@link TermuxActivity#onServiceConnected} is called to set the
* {@link TermuxService#mTermuxSessionClient} variable and update the {@link TerminalSession} * {@link TermuxService#mTermuxTerminalSessionClient} variable and update the {@link TerminalSession}
* and {@link TerminalEmulator} clients in case they were passed {@link TermuxSessionClientBase} * and {@link TerminalEmulator} clients in case they were passed {@link TermuxTerminalSessionClientBase}
* earlier. * earlier.
* *
* @param termuxSessionClient The {@link TermuxSessionClient} object that fully * @param termuxTerminalSessionClient The {@link TermuxTerminalSessionClient} object that fully
* implements the {@link TerminalSessionClient} interface. * implements the {@link TerminalSessionClient} interface.
*/ */
public synchronized void setTermuxSessionClient(TermuxSessionClient termuxSessionClient) { public synchronized void setTermuxTerminalSessionClient(TermuxTerminalSessionClient termuxTerminalSessionClient) {
mTermuxSessionClient = termuxSessionClient; mTermuxTerminalSessionClient = termuxTerminalSessionClient;
for (int i = 0; i < mTermuxSessions.size(); i++) for (int i = 0; i < mTermuxSessions.size(); i++)
mTermuxSessions.get(i).getTerminalSession().updateTerminalSessionClient(mTermuxSessionClient); mTermuxSessions.get(i).getTerminalSession().updateTerminalSessionClient(mTermuxTerminalSessionClient);
} }
/** This should be called when {@link TermuxActivity} has been destroyed and in {@link #onUnbind(Intent)} /** This should be called when {@link TermuxActivity} has been destroyed and in {@link #onUnbind(Intent)}
* so that the {@link TermuxService} and {@link TerminalSession} and {@link TerminalEmulator} * so that the {@link TermuxService} and {@link TerminalSession} and {@link TerminalEmulator}
* clients do not hold an activity references. * clients do not hold an activity references.
*/ */
public synchronized void unsetTermuxSessionClient() { public synchronized void unsetTermuxTerminalSessionClient() {
for (int i = 0; i < mTermuxSessions.size(); i++) for (int i = 0; i < mTermuxSessions.size(); i++)
mTermuxSessions.get(i).getTerminalSession().updateTerminalSessionClient(mTermuxSessionClientBase); mTermuxSessions.get(i).getTerminalSession().updateTerminalSessionClient(mTermuxTerminalSessionClientBase);
mTermuxSessionClient = null; mTermuxTerminalSessionClient = null;
} }

View File

@@ -93,14 +93,14 @@ public class TermuxSessionsListViewController extends ArrayAdapter<TermuxSession
@Override @Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TermuxSession clickedSession = getItem(position); TermuxSession clickedSession = getItem(position);
mActivity.getTermuxSessionClient().setCurrentSession(clickedSession.getTerminalSession()); mActivity.getTermuxTerminalSessionClient().setCurrentSession(clickedSession.getTerminalSession());
mActivity.getDrawer().closeDrawers(); mActivity.getDrawer().closeDrawers();
} }
@Override @Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
final TermuxSession selectedSession = getItem(position); final TermuxSession selectedSession = getItem(position);
mActivity.getTermuxSessionClient().renameSession(selectedSession.getTerminalSession()); mActivity.getTermuxTerminalSessionClient().renameSession(selectedSession.getTerminalSession());
return true; return true;
} }

View File

@@ -16,7 +16,7 @@ import com.termux.R;
import com.termux.shared.shell.TermuxSession; import com.termux.shared.shell.TermuxSession;
import com.termux.shared.interact.DialogUtils; import com.termux.shared.interact.DialogUtils;
import com.termux.app.TermuxActivity; import com.termux.app.TermuxActivity;
import com.termux.shared.shell.TermuxSessionClientBase; import com.termux.shared.shell.TermuxTerminalSessionClientBase;
import com.termux.shared.termux.TermuxConstants; import com.termux.shared.termux.TermuxConstants;
import com.termux.app.TermuxService; import com.termux.app.TermuxService;
import com.termux.shared.settings.properties.TermuxPropertyConstants; import com.termux.shared.settings.properties.TermuxPropertyConstants;
@@ -31,7 +31,7 @@ import java.io.FileInputStream;
import java.io.InputStream; import java.io.InputStream;
import java.util.Properties; import java.util.Properties;
public class TermuxSessionClient extends TermuxSessionClientBase { public class TermuxTerminalSessionClient extends TermuxTerminalSessionClientBase {
private final TermuxActivity mActivity; private final TermuxActivity mActivity;
@@ -43,9 +43,9 @@ public class TermuxSessionClient extends TermuxSessionClientBase {
private final int mBellSoundId; private final int mBellSoundId;
private static final String LOG_TAG = "TermuxSessionClient"; private static final String LOG_TAG = "TermuxTerminalSessionClient";
public TermuxSessionClient(TermuxActivity activity) { public TermuxTerminalSessionClient(TermuxActivity activity) {
this.mActivity = activity; this.mActivity = activity;
mBellSoundId = mBellSoundPool.load(activity, R.raw.bell, 1); mBellSoundId = mBellSoundPool.load(activity, R.raw.bell, 1);

View File

@@ -44,18 +44,18 @@ import java.util.List;
import androidx.drawerlayout.widget.DrawerLayout; import androidx.drawerlayout.widget.DrawerLayout;
public class TermuxViewClient implements TerminalViewClient { public class TermuxTerminalViewClient implements TerminalViewClient {
final TermuxActivity mActivity; final TermuxActivity mActivity;
final TermuxSessionClient mTermuxSessionClient; final TermuxTerminalSessionClient mTermuxTerminalSessionClient;
/** Keeping track of the special keys acting as Ctrl and Fn for the soft keyboard and other hardware keys. */ /** Keeping track of the special keys acting as Ctrl and Fn for the soft keyboard and other hardware keys. */
boolean mVirtualControlKeyDown, mVirtualFnKeyDown; boolean mVirtualControlKeyDown, mVirtualFnKeyDown;
public TermuxViewClient(TermuxActivity activity, TermuxSessionClient termuxSessionClient) { public TermuxTerminalViewClient(TermuxActivity activity, TermuxTerminalSessionClient termuxTerminalSessionClient) {
this.mActivity = activity; this.mActivity = activity;
this.mTermuxSessionClient = termuxSessionClient; this.mTermuxTerminalSessionClient = termuxTerminalSessionClient;
} }
@Override @Override
@@ -107,16 +107,16 @@ public class TermuxViewClient implements TerminalViewClient {
if (handleVirtualKeys(keyCode, e, true)) return true; if (handleVirtualKeys(keyCode, e, true)) return true;
if (keyCode == KeyEvent.KEYCODE_ENTER && !currentSession.isRunning()) { if (keyCode == KeyEvent.KEYCODE_ENTER && !currentSession.isRunning()) {
mTermuxSessionClient.removeFinishedSession(currentSession); mTermuxTerminalSessionClient.removeFinishedSession(currentSession);
return true; return true;
} else if (e.isCtrlPressed() && e.isAltPressed()) { } else if (e.isCtrlPressed() && e.isAltPressed()) {
// Get the unmodified code point: // Get the unmodified code point:
int unicodeChar = e.getUnicodeChar(0); int unicodeChar = e.getUnicodeChar(0);
if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN || unicodeChar == 'n'/* next */) { if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN || unicodeChar == 'n'/* next */) {
mTermuxSessionClient.switchToSession(true); mTermuxTerminalSessionClient.switchToSession(true);
} else if (keyCode == KeyEvent.KEYCODE_DPAD_UP || unicodeChar == 'p' /* previous */) { } else if (keyCode == KeyEvent.KEYCODE_DPAD_UP || unicodeChar == 'p' /* previous */) {
mTermuxSessionClient.switchToSession(false); mTermuxTerminalSessionClient.switchToSession(false);
} else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { } else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {
mActivity.getDrawer().openDrawer(Gravity.LEFT); mActivity.getDrawer().openDrawer(Gravity.LEFT);
} else if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { } else if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) {
@@ -127,9 +127,9 @@ public class TermuxViewClient implements TerminalViewClient {
} else if (unicodeChar == 'm'/* menu */) { } else if (unicodeChar == 'm'/* menu */) {
mActivity.getTerminalView().showContextMenu(); mActivity.getTerminalView().showContextMenu();
} else if (unicodeChar == 'r'/* rename */) { } else if (unicodeChar == 'r'/* rename */) {
mTermuxSessionClient.renameSession(currentSession); mTermuxTerminalSessionClient.renameSession(currentSession);
} else if (unicodeChar == 'c'/* create */) { } else if (unicodeChar == 'c'/* create */) {
mTermuxSessionClient.addNewSession(false, null); mTermuxTerminalSessionClient.addNewSession(false, null);
} else if (unicodeChar == 'u' /* urls */) { } else if (unicodeChar == 'u' /* urls */) {
showUrlSelection(); showUrlSelection();
} else if (unicodeChar == 'v') { } else if (unicodeChar == 'v') {
@@ -142,7 +142,7 @@ public class TermuxViewClient implements TerminalViewClient {
changeFontSize(false); changeFontSize(false);
} else if (unicodeChar >= '1' && unicodeChar <= '9') { } else if (unicodeChar >= '1' && unicodeChar <= '9') {
int index = unicodeChar - '1'; int index = unicodeChar - '1';
mTermuxSessionClient.switchToSession(index); mTermuxTerminalSessionClient.switchToSession(index);
} }
return true; return true;
} }
@@ -297,7 +297,7 @@ public class TermuxViewClient implements TerminalViewClient {
return true; return true;
} else if (ctrlDown) { } else if (ctrlDown) {
if (codePoint == 106 /* Ctrl+j or \n */ && !session.isRunning()) { if (codePoint == 106 /* Ctrl+j or \n */ && !session.isRunning()) {
mTermuxSessionClient.removeFinishedSession(session); mTermuxTerminalSessionClient.removeFinishedSession(session);
return true; return true;
} }
@@ -309,16 +309,16 @@ public class TermuxViewClient implements TerminalViewClient {
if (codePointLowerCase == shortcut.codePoint) { if (codePointLowerCase == shortcut.codePoint) {
switch (shortcut.shortcutAction) { switch (shortcut.shortcutAction) {
case TermuxPropertyConstants.ACTION_SHORTCUT_CREATE_SESSION: case TermuxPropertyConstants.ACTION_SHORTCUT_CREATE_SESSION:
mTermuxSessionClient.addNewSession(false, null); mTermuxTerminalSessionClient.addNewSession(false, null);
return true; return true;
case TermuxPropertyConstants.ACTION_SHORTCUT_NEXT_SESSION: case TermuxPropertyConstants.ACTION_SHORTCUT_NEXT_SESSION:
mTermuxSessionClient.switchToSession(true); mTermuxTerminalSessionClient.switchToSession(true);
return true; return true;
case TermuxPropertyConstants.ACTION_SHORTCUT_PREVIOUS_SESSION: case TermuxPropertyConstants.ACTION_SHORTCUT_PREVIOUS_SESSION:
mTermuxSessionClient.switchToSession(false); mTermuxTerminalSessionClient.switchToSession(false);
return true; return true;
case TermuxPropertyConstants.ACTION_SHORTCUT_RENAME_SESSION: case TermuxPropertyConstants.ACTION_SHORTCUT_RENAME_SESSION:
mTermuxSessionClient.renameSession(mActivity.getCurrentSession()); mTermuxTerminalSessionClient.renameSession(mActivity.getCurrentSession());
return true; return true;
} }
} }

View File

@@ -69,7 +69,7 @@ public class TerminalToolbarViewPager {
if (textToSend.length() == 0) textToSend = "\r"; if (textToSend.length() == 0) textToSend = "\r";
session.write(textToSend); session.write(textToSend);
} else { } else {
mActivity.getTermuxSessionClient().removeFinishedSession(session); mActivity.getTermuxTerminalSessionClient().removeFinishedSession(session);
} }
editText.setText(""); editText.setText("");
} }

View File

@@ -4,9 +4,9 @@ import com.termux.shared.logger.Logger;
import com.termux.terminal.TerminalSession; import com.termux.terminal.TerminalSession;
import com.termux.terminal.TerminalSessionClient; import com.termux.terminal.TerminalSessionClient;
public class TermuxSessionClientBase implements TerminalSessionClient { public class TermuxTerminalSessionClientBase implements TerminalSessionClient {
public TermuxSessionClientBase() { public TermuxTerminalSessionClientBase() {
} }
@Override @Override