@@ -229,23 +229,13 @@ public void onStart() {
229
229
230
230
mIsVisible = true ;
231
231
232
- if (mTermuxService != null ) {
233
- // The service has connected, but data may have changed since we were last in the foreground.
234
- // Get the session stored in shared preferences stored by {@link #onStop} if its valid,
235
- // otherwise get the last session currently running.
236
- mTermuxTerminalSessionClient .setCurrentSession (mTermuxTerminalSessionClient .getCurrentStoredSessionOrLast ());
237
- termuxSessionListNotifyUpdated ();
238
- }
232
+ if (mTermuxTerminalSessionClient != null )
233
+ mTermuxTerminalSessionClient .onStart ();
239
234
240
- registerTermuxActivityBroadcastReceiver ();
235
+ if (mTermuxTerminalViewClient != null )
236
+ mTermuxTerminalViewClient .onStart ();
241
237
242
- // If user changed the preference from {@link TermuxSettings} activity and returns, then
243
- // update the {@link TerminalView#TERMINAL_VIEW_KEY_LOGGING_ENABLED} value.
244
- mTerminalView .setIsTerminalViewKeyLoggingEnabled (mPreferences .isTerminalViewKeyLoggingEnabled ());
245
-
246
- // The current terminal session may have changed while being away, force
247
- // a refresh of the displayed terminal.
248
- mTerminalView .onScreenUpdated ();
238
+ registerTermuxActivityBroadcastReceiver ();
249
239
}
250
240
251
241
@ Override
@@ -256,12 +246,64 @@ public void onResume() {
256
246
257
247
if (mIsInvalidState ) return ;
258
248
259
- mTermuxTerminalViewClient .setSoftKeyboardState (true , false );
249
+ if (mTermuxTerminalSessionClient != null )
250
+ mTermuxTerminalSessionClient .onResume ();
251
+
252
+ if (mTermuxTerminalViewClient != null )
253
+ mTermuxTerminalViewClient .onResume ();
254
+ }
255
+
256
+ @ Override
257
+ protected void onStop () {
258
+ super .onStop ();
259
+
260
+ Logger .logDebug (LOG_TAG , "onStop" );
261
+
262
+ if (mIsInvalidState ) return ;
263
+
264
+ mIsVisible = false ;
265
+
266
+ if (mTermuxTerminalSessionClient != null )
267
+ mTermuxTerminalSessionClient .onStop ();
268
+
269
+ if (mTermuxTerminalViewClient != null )
270
+ mTermuxTerminalViewClient .onStop ();
271
+
272
+ unregisterTermuxActivityBroadcastReceiever ();
273
+ getDrawer ().closeDrawers ();
274
+ }
275
+
276
+ @ Override
277
+ public void onDestroy () {
278
+ super .onDestroy ();
279
+
280
+ Logger .logDebug (LOG_TAG , "onDestroy" );
281
+
282
+ if (mIsInvalidState ) return ;
283
+
284
+ if (mTermuxService != null ) {
285
+ // Do not leave service and session clients with references to activity.
286
+ mTermuxService .unsetTermuxTerminalSessionClient ();
287
+ mTermuxService = null ;
288
+ }
289
+
290
+ try {
291
+ unbindService (this );
292
+ } catch (Exception e ) {
293
+ // ignore.
294
+ }
295
+ }
260
296
261
- // Start terminal cursor blinking if enabled
262
- mTermuxTerminalViewClient .setTerminalCursorBlinkerState (true );
297
+ @ Override
298
+ public void onSaveInstanceState (@ NonNull Bundle savedInstanceState ) {
299
+ super .onSaveInstanceState (savedInstanceState );
300
+ saveTerminalToolbarTextInput (savedInstanceState );
263
301
}
264
302
303
+
304
+
305
+
306
+
265
307
/**
266
308
* Part of the {@link ServiceConnection} interface. The service is bound with
267
309
* {@link #bindService(Intent, ServiceConnection, int)} in {@link #onCreate(Bundle)} which will cause a call to this
@@ -319,53 +361,7 @@ public void onServiceDisconnected(ComponentName name) {
319
361
finishActivityIfNotFinishing ();
320
362
}
321
363
322
- @ Override
323
- protected void onStop () {
324
- super .onStop ();
325
-
326
- Logger .logDebug (LOG_TAG , "onStop" );
327
-
328
- if (mIsInvalidState ) return ;
329
-
330
- mIsVisible = false ;
331
-
332
- // Store current session in shared preferences so that it can be restored later in
333
- // {@link #onStart} if needed.
334
- mTermuxTerminalSessionClient .setCurrentStoredSession ();
335
-
336
- // Stop terminal cursor blinking if enabled
337
- mTermuxTerminalViewClient .setTerminalCursorBlinkerState (false );
338
364
339
- unregisterTermuxActivityBroadcastReceiever ();
340
- getDrawer ().closeDrawers ();
341
- }
342
-
343
- @ Override
344
- public void onDestroy () {
345
- super .onDestroy ();
346
-
347
- Logger .logDebug (LOG_TAG , "onDestroy" );
348
-
349
- if (mIsInvalidState ) return ;
350
-
351
- if (mTermuxService != null ) {
352
- // Do not leave service and session clients with references to activity.
353
- mTermuxService .unsetTermuxTerminalSessionClient ();
354
- mTermuxService = null ;
355
- }
356
-
357
- try {
358
- unbindService (this );
359
- } catch (Exception e ) {
360
- // ignore.
361
- }
362
- }
363
-
364
- @ Override
365
- public void onSaveInstanceState (@ NonNull Bundle savedInstanceState ) {
366
- super .onSaveInstanceState (savedInstanceState );
367
- saveTerminalToolbarTextInput (savedInstanceState );
368
- }
369
365
370
366
371
367
@@ -386,6 +382,32 @@ private void setDrawerTheme() {
386
382
387
383
388
384
385
+ private void setTermuxTerminalViewAndClients () {
386
+ // Set termux terminal view and session clients
387
+ mTermuxTerminalSessionClient = new TermuxTerminalSessionClient (this );
388
+ mTermuxTerminalViewClient = new TermuxTerminalViewClient (this , mTermuxTerminalSessionClient );
389
+
390
+ // Set termux terminal view
391
+ mTerminalView = findViewById (R .id .terminal_view );
392
+ mTerminalView .setTerminalViewClient (mTermuxTerminalViewClient );
393
+
394
+ if (mTermuxTerminalViewClient != null )
395
+ mTermuxTerminalViewClient .onCreate ();
396
+
397
+ if (mTermuxTerminalSessionClient != null )
398
+ mTermuxTerminalSessionClient .onCreate ();
399
+ }
400
+
401
+ private void setTermuxSessionsListView () {
402
+ ListView termuxSessionsListView = findViewById (R .id .terminal_sessions_list );
403
+ mTermuxSessionListViewController = new TermuxSessionsListViewController (this , mTermuxService .getTermuxSessions ());
404
+ termuxSessionsListView .setAdapter (mTermuxSessionListViewController );
405
+ termuxSessionsListView .setOnItemClickListener (mTermuxSessionListViewController );
406
+ termuxSessionsListView .setOnItemLongClickListener (mTermuxSessionListViewController );
407
+ }
408
+
409
+
410
+
389
411
private void setTerminalToolbarView (Bundle savedInstanceState ) {
390
412
final ViewPager terminalToolbarViewPager = findViewById (R .id .terminal_toolbar_view_pager );
391
413
if (mPreferences .shouldShowTerminalToolbar ()) terminalToolbarViewPager .setVisibility (View .VISIBLE );
@@ -466,36 +488,6 @@ private void setToggleKeyboardView() {
466
488
467
489
468
490
469
- private void setTermuxTerminalViewAndClients () {
470
- // Set termux terminal view and session clients
471
- mTermuxTerminalSessionClient = new TermuxTerminalSessionClient (this );
472
- mTermuxTerminalViewClient = new TermuxTerminalViewClient (this , mTermuxTerminalSessionClient );
473
-
474
- // Set termux terminal view
475
- mTerminalView = findViewById (R .id .terminal_view );
476
- mTerminalView .setTerminalViewClient (mTermuxTerminalViewClient );
477
-
478
- mTerminalView .setTextSize (mPreferences .getFontSize ());
479
- mTerminalView .setKeepScreenOn (mPreferences .shouldKeepScreenOn ());
480
-
481
- // Set {@link TerminalView#TERMINAL_VIEW_KEY_LOGGING_ENABLED} value
482
- mTerminalView .setIsTerminalViewKeyLoggingEnabled (mPreferences .isTerminalViewKeyLoggingEnabled ());
483
-
484
- mTermuxTerminalSessionClient .checkForFontAndColors ();
485
- }
486
-
487
- private void setTermuxSessionsListView () {
488
- ListView termuxSessionsListView = findViewById (R .id .terminal_sessions_list );
489
- mTermuxSessionListViewController = new TermuxSessionsListViewController (this , mTermuxService .getTermuxSessions ());
490
- termuxSessionsListView .setAdapter (mTermuxSessionListViewController );
491
- termuxSessionsListView .setOnItemClickListener (mTermuxSessionListViewController );
492
- termuxSessionsListView .setOnItemLongClickListener (mTermuxSessionListViewController );
493
- }
494
-
495
-
496
-
497
-
498
-
499
491
@ SuppressLint ("RtlHardcoded" )
500
492
@ Override
501
493
public void onBackPressed () {
@@ -780,19 +772,15 @@ public void onReceive(Context context, Intent intent) {
780
772
return ;
781
773
case TERMUX_ACTIVITY .ACTION_RELOAD_STYLE :
782
774
Logger .logDebug (LOG_TAG , "Received intent to reload styling" );
783
- reloadTermuxActivityStyling ();
775
+ reloadActivityStyling ();
784
776
return ;
785
777
default :
786
778
}
787
779
}
788
780
}
789
781
}
790
782
791
- private void reloadTermuxActivityStyling () {
792
- if (mTermuxTerminalSessionClient != null ) {
793
- mTermuxTerminalSessionClient .checkForFontAndColors ();
794
- }
795
-
783
+ private void reloadActivityStyling () {
796
784
if (mProperties != null ) {
797
785
mProperties .loadTermuxPropertiesFromDisk ();
798
786
@@ -803,10 +791,11 @@ private void reloadTermuxActivityStyling() {
803
791
804
792
setTerminalToolbarHeight ();
805
793
806
- mTermuxTerminalViewClient .setSoftKeyboardState (false , true );
807
-
808
- mTermuxTerminalViewClient .setTerminalCursorBlinkerState (true );
794
+ if (mTermuxTerminalSessionClient != null )
795
+ mTermuxTerminalSessionClient .onReload ();
809
796
797
+ if (mTermuxTerminalViewClient != null )
798
+ mTermuxTerminalViewClient .onReload ();
810
799
811
800
// To change the activity and drawer theme, activity needs to be recreated.
812
801
// But this will destroy the activity, and will call the onCreate() again.
0 commit comments