@@ -123,7 +123,10 @@ public class MainActivity extends AppCompatActivity {
123123 private static final int ITEM_ID_ABOUT = 1 ;
124124
125125 private static final int ORDER = 0 ;
126+ public static final String KEY_IS_IN_BACKGROUND = "is_in_background" ;
126127
128+ private SharedPreferences sharedPreferences ;
129+ private SharedPreferences .Editor sharedPrefEditor ;
127130 /*//////////////////////////////////////////////////////////////////////////
128131 // Activity's LifeCycle
129132 //////////////////////////////////////////////////////////////////////////*/
@@ -140,6 +143,8 @@ protected void onCreate(final Bundle savedInstanceState) {
140143
141144 assureCorrectAppLanguage (this );
142145 super .onCreate (savedInstanceState );
146+ sharedPreferences = PreferenceManager .getDefaultSharedPreferences (this );
147+ sharedPrefEditor = sharedPreferences .edit ();
143148
144149 mainBinding = ActivityMainBinding .inflate (getLayoutInflater ());
145150 drawerLayoutBinding = mainBinding .drawerLayout ;
@@ -181,16 +186,29 @@ protected void onPostCreate(final Bundle savedInstanceState) {
181186 super .onPostCreate (savedInstanceState );
182187
183188 final App app = App .getApp ();
184- final SharedPreferences prefs = PreferenceManager .getDefaultSharedPreferences (app );
185189
186- if (prefs .getBoolean (app .getString (R .string .update_app_key ), false )
187- && prefs .getBoolean (app .getString (R .string .update_check_consent_key ), false )) {
190+ if (sharedPreferences .getBoolean (app .getString (R .string .update_app_key ), false )
191+ && sharedPreferences
192+ .getBoolean (app .getString (R .string .update_check_consent_key ), false )) {
188193 // Start the worker which is checking all conditions
189194 // and eventually searching for a new version.
190195 NewVersionWorker .enqueueNewVersionCheckingWork (app , false );
191196 }
192197 }
193198
199+ @ Override
200+ protected void onStart () {
201+ super .onStart ();
202+ sharedPrefEditor .putBoolean (KEY_IS_IN_BACKGROUND , false ).apply ();
203+ Log .d (TAG , "App moved to foreground" );
204+ }
205+
206+ @ Override
207+ protected void onStop () {
208+ super .onStop ();
209+ sharedPrefEditor .putBoolean (KEY_IS_IN_BACKGROUND , true ).apply ();
210+ Log .d (TAG , "App moved to background" );
211+ }
194212 private void setupDrawer () throws ExtractionException {
195213 addDrawerMenuForCurrentService ();
196214
@@ -483,21 +501,19 @@ protected void onResume() {
483501 ErrorUtil .showUiErrorSnackbar (this , "Setting up service toggle" , e );
484502 }
485503
486- final SharedPreferences sharedPreferences =
487- PreferenceManager .getDefaultSharedPreferences (this );
488504 if (sharedPreferences .getBoolean (Constants .KEY_THEME_CHANGE , false )) {
489505 if (DEBUG ) {
490506 Log .d (TAG , "Theme has changed, recreating activity..." );
491507 }
492- sharedPreferences . edit () .putBoolean (Constants .KEY_THEME_CHANGE , false ).apply ();
508+ sharedPrefEditor .putBoolean (Constants .KEY_THEME_CHANGE , false ).apply ();
493509 ActivityCompat .recreate (this );
494510 }
495511
496512 if (sharedPreferences .getBoolean (Constants .KEY_MAIN_PAGE_CHANGE , false )) {
497513 if (DEBUG ) {
498514 Log .d (TAG , "main page has changed, recreating main fragment..." );
499515 }
500- sharedPreferences . edit () .putBoolean (Constants .KEY_MAIN_PAGE_CHANGE , false ).apply ();
516+ sharedPrefEditor .putBoolean (Constants .KEY_MAIN_PAGE_CHANGE , false ).apply ();
501517 NavigationHelper .openMainActivity (this );
502518 }
503519
0 commit comments