MG
Size: a a a
MG
MG
AT
MG
AT
AT
MG
MG
AT
getSessions
again for that )MG
@Override
public void onSessionFinished(final TerminalSession finishedSession) {
if (terminalController.mTermService.getSessions().isEmpty()) {
terminalController.currentFontSize = -1;
if (terminalController.mTermService.mWantsToStop) {
// The service wants to stop as soon as possible.
terminalController.activity.finish();
return;
}
terminalController.mTermService.terminateService();
} else {
terminalController.switchToPreviousSession();
terminalController.mTermService.removeSession(finishedSession);
}
}
AT
MG
MG
java.lang.ClassCastException: android.os.BinderProxy cannot be cast to alpine.term.TerminalService$LocalBinder
// THIS PRODUCES A CAST EXCEPTION SINCE THIS SERVICE IS STARTED IN A DIFFERENT PROCESS
// THIS IS REQUIRED TO SURVIVE AN APPLICATION CRASH
TerminalService.LocalBinder x = (TerminalService.LocalBinder) boundService;
terminalController.mTermService = x.service;
public class TerminalService extends Service implements SessionChangedCallback {
private final IBinder mBinder = new LocalBinder();
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
/**
* This service is only bound from inside the same process and never uses IPC.
*/
public class LocalBinder extends Binder {
public final TerminalService service = TerminalService.this;
}
}
AT
EB
I
MG
/** Callback to be invoked when a {@link TerminalSession} changes. */to a service via android.os.Message
public interface SessionChangedCallback {
void onTextChanged(TerminalSession changedSession);
void onTitleChanged(TerminalSession changedSession);
void onSessionFinished(TerminalSession finishedSession);
void onClipboardText(TerminalSession session, String text);
void onBell(TerminalSession session);
void onColorsChanged(TerminalSession session);
}
terminalController.mTermService.mSessionChangeCallback = new TerminalSession.SessionChangedCallback() {
I
I
/** Callback to be invoked when a {@link TerminalSession} changes. */to a service via android.os.Message
public interface SessionChangedCallback {
void onTextChanged(TerminalSession changedSession);
void onTitleChanged(TerminalSession changedSession);
void onSessionFinished(TerminalSession finishedSession);
void onClipboardText(TerminalSession session, String text);
void onBell(TerminalSession session);
void onColorsChanged(TerminalSession session);
}
terminalController.mTermService.mSessionChangeCallback = new TerminalSession.SessionChangedCallback() {
I