Keep track of foreground activity

This commit is contained in:
topjohnwu 2019-04-08 15:36:44 -04:00
parent f24df4f43d
commit fc0df84edd

View File

@ -1,13 +1,19 @@
package com.topjohnwu.magisk; package com.topjohnwu.magisk;
import android.app.Activity;
import android.app.Application; import android.app.Application;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Build; import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.topjohnwu.magisk.components.BaseActivity;
import com.topjohnwu.magisk.database.MagiskDB; import com.topjohnwu.magisk.database.MagiskDB;
import com.topjohnwu.magisk.database.RepoDatabaseHelper; import com.topjohnwu.magisk.database.RepoDatabaseHelper;
import com.topjohnwu.magisk.utils.LocaleManager; import com.topjohnwu.magisk.utils.LocaleManager;
@ -17,7 +23,7 @@ import com.topjohnwu.superuser.Shell;
import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.ThreadPoolExecutor;
public class App extends Application { public class App extends Application implements Application.ActivityLifecycleCallbacks {
public static App self; public static App self;
public static Context deContext; public static Context deContext;
@ -27,6 +33,7 @@ public class App extends Application {
public SharedPreferences prefs; public SharedPreferences prefs;
public MagiskDB mDB; public MagiskDB mDB;
public RepoDatabaseHelper repoDB; public RepoDatabaseHelper repoDB;
public BaseActivity foreground;
static { static {
Shell.Config.setFlags(Shell.FLAG_MOUNT_MASTER | Shell.FLAG_USE_MAGISK_BUSYBOX); Shell.Config.setFlags(Shell.FLAG_MOUNT_MASTER | Shell.FLAG_USE_MAGISK_BUSYBOX);
@ -41,6 +48,7 @@ public class App extends Application {
super.attachBaseContext(base); super.attachBaseContext(base);
self = this; self = this;
deContext = base; deContext = base;
registerActivityLifecycleCallbacks(this);
if (Build.VERSION.SDK_INT >= 24) { if (Build.VERSION.SDK_INT >= 24) {
deContext = base.createDeviceProtectedStorageContext(); deContext = base.createDeviceProtectedStorageContext();
@ -55,8 +63,33 @@ public class App extends Application {
} }
@Override @Override
public void onConfigurationChanged(Configuration newConfig) { public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig); super.onConfigurationChanged(newConfig);
LocaleManager.setLocale(this); LocaleManager.setLocale(this);
} }
@Override
public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle bundle) {}
@Override
public void onActivityStarted(@NonNull Activity activity) {}
@Override
public void onActivityResumed(@NonNull Activity activity) {
foreground = (BaseActivity) activity;
}
@Override
public void onActivityPaused(@NonNull Activity activity) {
foreground = null;
}
@Override
public void onActivityStopped(@NonNull Activity activity) {}
@Override
public void onActivitySaveInstanceState(@NonNull Activity activity, @NonNull Bundle bundle) {}
@Override
public void onActivityDestroyed(@NonNull Activity activity) {}
} }