@@ -126,7 +126,10 @@ public class MainActivity extends AppCompatActivity {
126126 private static final int ITEM_ID_ABOUT = 2 ;
127127
128128 private static final int ORDER = 0 ;
129+ public static final String KEY_IS_IN_BACKGROUND = "is_in_background" ;
129130
131+ private SharedPreferences sharedPreferences ;
132+ private SharedPreferences .Editor sharedPrefEditor ;
130133 /*//////////////////////////////////////////////////////////////////////////
131134 // Activity's LifeCycle
132135 //////////////////////////////////////////////////////////////////////////*/
@@ -156,6 +159,8 @@ protected void onCreate(final Bundle savedInstanceState) {
156159
157160 assureCorrectAppLanguage (this );
158161 super .onCreate (savedInstanceState );
162+ sharedPreferences = PreferenceManager .getDefaultSharedPreferences (this );
163+ sharedPrefEditor = sharedPreferences .edit ();
159164
160165 mainBinding = ActivityMainBinding .inflate (getLayoutInflater ());
161166 drawerLayoutBinding = mainBinding .drawerLayout ;
@@ -199,16 +204,29 @@ protected void onPostCreate(final Bundle savedInstanceState) {
199204 super .onPostCreate (savedInstanceState );
200205
201206 final App app = App .getApp ();
202- final SharedPreferences prefs = PreferenceManager .getDefaultSharedPreferences (app );
203207
204- if (prefs .getBoolean (app .getString (R .string .update_app_key ), false )
205- && prefs .getBoolean (app .getString (R .string .update_check_consent_key ), false )) {
208+ if (sharedPreferences .getBoolean (app .getString (R .string .update_app_key ), false )
209+ && sharedPreferences
210+ .getBoolean (app .getString (R .string .update_check_consent_key ), false )) {
206211 // Start the worker which is checking all conditions
207212 // and eventually searching for a new version.
208213 NewVersionWorker .enqueueNewVersionCheckingWork (app , false );
209214 }
210215 }
211216
217+ @ Override
218+ protected void onStart () {
219+ super .onStart ();
220+ sharedPrefEditor .putBoolean (KEY_IS_IN_BACKGROUND , false ).apply ();
221+ Log .d (TAG , "App moved to foreground" );
222+ }
223+
224+ @ Override
225+ protected void onStop () {
226+ super .onStop ();
227+ sharedPrefEditor .putBoolean (KEY_IS_IN_BACKGROUND , true ).apply ();
228+ Log .d (TAG , "App moved to background" );
229+ }
212230 private void setupDrawer () throws ExtractionException {
213231 addDrawerMenuForCurrentService ();
214232
@@ -508,21 +526,19 @@ protected void onResume() {
508526 ErrorUtil .showUiErrorSnackbar (this , "Setting up service toggle" , e );
509527 }
510528
511- final SharedPreferences sharedPreferences =
512- PreferenceManager .getDefaultSharedPreferences (this );
513529 if (sharedPreferences .getBoolean (Constants .KEY_THEME_CHANGE , false )) {
514530 if (DEBUG ) {
515531 Log .d (TAG , "Theme has changed, recreating activity..." );
516532 }
517- sharedPreferences . edit () .putBoolean (Constants .KEY_THEME_CHANGE , false ).apply ();
533+ sharedPrefEditor .putBoolean (Constants .KEY_THEME_CHANGE , false ).apply ();
518534 ActivityCompat .recreate (this );
519535 }
520536
521537 if (sharedPreferences .getBoolean (Constants .KEY_MAIN_PAGE_CHANGE , false )) {
522538 if (DEBUG ) {
523539 Log .d (TAG , "main page has changed, recreating main fragment..." );
524540 }
525- sharedPreferences . edit () .putBoolean (Constants .KEY_MAIN_PAGE_CHANGE , false ).apply ();
541+ sharedPrefEditor .putBoolean (Constants .KEY_MAIN_PAGE_CHANGE , false ).apply ();
526542 NavigationHelper .openMainActivity (this );
527543 }
528544
0 commit comments