@@ -122,7 +122,10 @@ public class MainActivity extends AppCompatActivity {
122122 private static final int ITEM_ID_ABOUT = 2 ;
123123
124124 private static final int ORDER = 0 ;
125+ public static final String KEY_IS_IN_BACKGROUND = "is_in_background" ;
125126
127+ private SharedPreferences sharedPreferences ;
128+ private SharedPreferences .Editor sharedPrefEditor ;
126129 /*//////////////////////////////////////////////////////////////////////////
127130 // Activity's LifeCycle
128131 //////////////////////////////////////////////////////////////////////////*/
@@ -152,6 +155,8 @@ protected void onCreate(final Bundle savedInstanceState) {
152155
153156 assureCorrectAppLanguage (this );
154157 super .onCreate (savedInstanceState );
158+ sharedPreferences = PreferenceManager .getDefaultSharedPreferences (this );
159+ sharedPrefEditor = sharedPreferences .edit ();
155160
156161 mainBinding = ActivityMainBinding .inflate (getLayoutInflater ());
157162 drawerLayoutBinding = mainBinding .drawerLayout ;
@@ -195,16 +200,29 @@ protected void onPostCreate(final Bundle savedInstanceState) {
195200 super .onPostCreate (savedInstanceState );
196201
197202 final App app = App .getInstance ();
198- final SharedPreferences prefs = PreferenceManager .getDefaultSharedPreferences (app );
199203
200- if (prefs .getBoolean (app .getString (R .string .update_app_key ), false )
201- && prefs .getBoolean (app .getString (R .string .update_check_consent_key ), false )) {
204+ if (sharedPreferences .getBoolean (app .getString (R .string .update_app_key ), false )
205+ && sharedPreferences
206+ .getBoolean (app .getString (R .string .update_check_consent_key ), false )) {
202207 // Start the worker which is checking all conditions
203208 // and eventually searching for a new version.
204209 NewVersionWorker .enqueueNewVersionCheckingWork (app , false );
205210 }
206211 }
207212
213+ @ Override
214+ protected void onStart () {
215+ super .onStart ();
216+ sharedPrefEditor .putBoolean (KEY_IS_IN_BACKGROUND , false ).apply ();
217+ Log .d (TAG , "App moved to foreground" );
218+ }
219+
220+ @ Override
221+ protected void onStop () {
222+ super .onStop ();
223+ sharedPrefEditor .putBoolean (KEY_IS_IN_BACKGROUND , true ).apply ();
224+ Log .d (TAG , "App moved to background" );
225+ }
208226 private void setupDrawer () throws ExtractionException {
209227 addDrawerMenuForCurrentService ();
210228
@@ -504,21 +522,19 @@ protected void onResume() {
504522 ErrorUtil .showUiErrorSnackbar (this , "Setting up service toggle" , e );
505523 }
506524
507- final SharedPreferences sharedPreferences =
508- PreferenceManager .getDefaultSharedPreferences (this );
509525 if (sharedPreferences .getBoolean (Constants .KEY_THEME_CHANGE , false )) {
510526 if (DEBUG ) {
511527 Log .d (TAG , "Theme has changed, recreating activity..." );
512528 }
513- sharedPreferences . edit () .putBoolean (Constants .KEY_THEME_CHANGE , false ).apply ();
529+ sharedPrefEditor .putBoolean (Constants .KEY_THEME_CHANGE , false ).apply ();
514530 ActivityCompat .recreate (this );
515531 }
516532
517533 if (sharedPreferences .getBoolean (Constants .KEY_MAIN_PAGE_CHANGE , false )) {
518534 if (DEBUG ) {
519535 Log .d (TAG , "main page has changed, recreating main fragment..." );
520536 }
521- sharedPreferences . edit () .putBoolean (Constants .KEY_MAIN_PAGE_CHANGE , false ).apply ();
537+ sharedPrefEditor .putBoolean (Constants .KEY_MAIN_PAGE_CHANGE , false ).apply ();
522538 NavigationHelper .openMainActivity (this );
523539 }
524540
0 commit comments