android: Expose static instance for Application object

While it seems to be possible to cast Context.getApplicationContext()
to the application class, there really is no documented reason why that
should actually be the same object.
This commit is contained in:
Tobias Brunner 2024-01-19 18:29:20 +01:00
parent 36f62585bb
commit 8f04d15dfd

View File

@ -49,6 +49,7 @@ public class StrongSwanApplication extends Application implements DefaultLifecyc
private static final String TAG = StrongSwanApplication.class.getSimpleName(); private static final String TAG = StrongSwanApplication.class.getSimpleName();
private static Context mContext; private static Context mContext;
private static StrongSwanApplication mInstance;
private final ExecutorService mExecutorService = Executors.newFixedThreadPool(4); private final ExecutorService mExecutorService = Executors.newFixedThreadPool(4);
private final Handler mMainHandler = HandlerCompat.createAsync(Looper.getMainLooper()); private final Handler mMainHandler = HandlerCompat.createAsync(Looper.getMainLooper());
@ -75,6 +76,7 @@ public class StrongSwanApplication extends Application implements DefaultLifecyc
{ {
super.onCreate(); super.onCreate();
StrongSwanApplication.mContext = getApplicationContext(); StrongSwanApplication.mContext = getApplicationContext();
StrongSwanApplication.mInstance = this;
mManagedConfigurationService = new ManagedConfigurationService(mContext); mManagedConfigurationService = new ManagedConfigurationService(mContext);
ProcessLifecycleOwner.get().getLifecycle().addObserver(this); ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
@ -120,6 +122,16 @@ public class StrongSwanApplication extends Application implements DefaultLifecyc
return StrongSwanApplication.mContext; return StrongSwanApplication.mContext;
} }
/**
* Returns the current application object
*
* @return application
*/
public static StrongSwanApplication getInstance()
{
return StrongSwanApplication.mInstance;
}
/** /**
* Returns a thread pool to run tasks in separate threads * Returns a thread pool to run tasks in separate threads
* *