package org.yaxim.androidclient; import org.yaxim.androidclient.data.YaximConfiguration; import org.yaxim.androidclient.service.YaximBroadcastReceiver; import android.app.Activity; import android.app.Application; import android.app.Service; import android.content.Context; import android.content.IntentFilter; import android.preference.PreferenceManager; import de.duenndns.ssl.MemorizingTrustManager; public class YaximApplication extends Application { // identity name and type, see: // http://xmpp.org/registrar/disco-categories.html public static final String XMPP_IDENTITY_NAME = "yaxim"; public static final String XMPP_IDENTITY_TYPE = "phone"; // MTM is needed globally for both the backend (connect) // and the frontend (display dialog) public MemorizingTrustManager mMTM; private YaximConfiguration mConfig; public YaximApplication() { super(); } @Override public void onCreate() { super.onCreate(); mMTM = new MemorizingTrustManager(this); mConfig = new YaximConfiguration(PreferenceManager .getDefaultSharedPreferences(this)); // since Android 7, you need to manually register for network changes // https://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html#MonitorChanges registerReceiver(new YaximBroadcastReceiver(), new IntentFilter(android.net.ConnectivityManager.CONNECTIVITY_ACTION)); } public static YaximApplication getApp(Activity ctx) { android.util.Log.d("YaximApplication", "app = " + ctx.getApplication()); return (YaximApplication)ctx.getApplication(); } public static YaximApplication getApp(Service ctx) { android.util.Log.d("YaximApplication", "app = " + ctx.getApplication()); return (YaximApplication)ctx.getApplication(); } public static YaximConfiguration getConfig(Activity ctx) { return getApp(ctx).mConfig; } public static YaximConfiguration getConfig(Service ctx) { return getApp(ctx).mConfig; } }