Skip to content

Commit f6724aa

Browse files
committed
console status
1 parent 6186cb1 commit f6724aa

File tree

2 files changed

+29
-8
lines changed

2 files changed

+29
-8
lines changed

app/src/main/java/com/duy/ccppcompiler/console/ShellTermSession.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@
3030
import java.io.UnsupportedEncodingException;
3131
import java.util.Arrays;
3232

33+
import jackpal.androidterm.TermSettings;
3334
import jackpal.androidterm.emulatorview.ColorScheme;
3435
import jackpal.androidterm.emulatorview.TermSession;
3536
import jackpal.androidterm.emulatorview.UpdateCallback;
36-
import jackpal.androidterm.TermSettings;
3737

3838
public class ShellTermSession extends TermSession {
3939
public static final int PROCESS_EXITED = 1;
@@ -54,7 +54,7 @@ public void onUpdate() {
5454
setPtyUTF8Mode(getUTF8Mode());
5555
}
5656
};
57-
57+
private OnProcessExitListener onProcessExitListener;
5858
@SuppressLint("HandlerLeak")
5959
private Handler mMsgHandler = new Handler() {
6060
@Override
@@ -157,6 +157,9 @@ public void updateSize(int columns, int rows) {
157157
}
158158

159159
private void onProcessExit(int result) {
160+
if (onProcessExitListener != null) {
161+
onProcessExitListener.onProcessExit(result);
162+
}
160163
onProcessExit();
161164
}
162165

@@ -234,11 +237,18 @@ void setPtyUTF8Mode(boolean utf8Mode) {
234237
}
235238
}
236239

237-
238240
/**
239241
* @return true, if failing to operate on file descriptor deserves an exception (never the case for ATE own shell)
240242
*/
241243
boolean isFailFast() {
242244
return false;
243245
}
246+
247+
public void setOnProcessExitListener(OnProcessExitListener onProcessExitListener) {
248+
this.onProcessExitListener = onProcessExitListener;
249+
}
250+
251+
public interface OnProcessExitListener {
252+
void onProcessExit(int exitCode);
253+
}
244254
}

app/src/main/java/com/duy/ccppcompiler/console/TermActivity.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import android.os.Bundle;
2929
import android.os.IBinder;
3030
import android.preference.PreferenceManager;
31+
import android.support.v7.app.ActionBar;
3132
import android.support.v7.app.AlertDialog;
3233
import android.support.v7.widget.Toolbar;
3334
import android.util.DisplayMetrics;
@@ -61,7 +62,7 @@
6162
import jackpal.androidterm.emulatorview.compat.ClipboardManagerCompatFactory;
6263
import jackpal.androidterm.emulatorview.compat.KeycodeConstants;
6364

64-
public class TermActivity extends ThemeSupportActivity implements SharedPreferences.OnSharedPreferenceChangeListener, TermSession.FinishCallback {
65+
public class TermActivity extends ThemeSupportActivity implements SharedPreferences.OnSharedPreferenceChangeListener, TermSession.FinishCallback, ShellTermSession.OnProcessExitListener {
6566
private static final String TAG = "TermActivity";
6667
private final static int SELECT_TEXT_ID = 0;
6768
private final static int COPY_ALL_ID = 1;
@@ -116,7 +117,8 @@ private ShellTermSession createShellTermSession(String cmd, String workdir) {
116117
TermSettings settings = new TermSettings(getResources(), PreferenceManager.getDefaultSharedPreferences(this));
117118

118119
ShellTermSession shellTermSession = new ShellTermSession(settings, argv, envp, workdir);
119-
shellTermSession.setProcessExitMessage(getString(R.string.console_finished));
120+
shellTermSession.setOnProcessExitListener(this);
121+
// shellTermSession.setProcessExitMessage(getString(R.string.console_finished));
120122

121123
return shellTermSession;
122124
}
@@ -125,13 +127,17 @@ private ShellTermSession createShellTermSession(String cmd, String workdir) {
125127
public void onCreate(Bundle savedInstanceState) {
126128
super.onCreate(savedInstanceState);
127129
setContentView(R.layout.activity_term);
128-
setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
129-
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
130130

131+
setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
132+
ActionBar actionBar = getSupportActionBar();
133+
if (actionBar != null) {
134+
actionBar.setDisplayHomeAsUpEnabled(true);
135+
actionBar.setTitle(R.string.title_menu_terminal);
136+
actionBar.setSubtitle(R.string.console_executing);
137+
}
131138
String fileName = getIntent().getStringExtra(BuildConstants.EXTRA_FILE_NAME);
132139
String workDir = getIntent().getStringExtra(BuildConstants.EXTRA_WORK_DIR);
133140

134-
setTitle(R.string.title_menu_terminal);
135141

136142
mSession = createShellTermSession(fileName, workDir);
137143
mSession.setFinishCallback(this);
@@ -439,6 +445,11 @@ public void onSessionFinish(TermSession session) {
439445
finish();
440446
}
441447

448+
@Override
449+
public void onProcessExit(int exitCode) {
450+
getSupportActionBar().setSubtitle(R.string.console_finished);
451+
}
452+
442453

443454
private class EmulatorViewGestureListener extends GestureDetector.SimpleOnGestureListener {
444455
private EmulatorView view;

0 commit comments

Comments
 (0)