package com.gdg.miagegi.can2015; import com.gdg.miagegi.can2015.utils.AppSharedPreferences; import com.gdg.miagegi.can2015.utils.Constants; import android.app.Activity; import android.app.Application; import android.content.Context; import android.content.Intent; import android.os.Build; import android.util.Log; import com.androidquery.AQuery; import com.squareup.otto.Bus; public class MainApplication extends Application { private static final Bus BUS = new Bus(); private static Context context; private static AQuery mAQ; private static AppSharedPreferences mPrefs; private static final String TAG = MainApplication.class.getName(); @Override public void onCreate() { super.onCreate(); context = getApplicationContext(); mPrefs = new AppSharedPreferences(context); } @Override public void onTerminate() { Log.d(TAG, "I have terminated"); super.onTerminate(); getBus().unregister(this); } public static AQuery getAQuery() { return getAQuery(MainApplication.getContext()); } public static AQuery getAQuery(Context context) { if (mAQ == null) { mAQ = new AQuery(context); } return mAQ; } public static Bus getBus() { return BUS; } public static Context getContext() { return context; } public static AppSharedPreferences getPrefs() { return getPrefs(MainApplication.getContext()); } public static AppSharedPreferences getPrefs(Context context) { if (mPrefs == null) { mPrefs = new AppSharedPreferences(context); } return mPrefs; } public static void startNewActivity(Context context, Class<? extends Activity> newTopActivityClass) { Intent intent = new Intent(context, newTopActivityClass); context.startActivity(intent); } public static void startNewTopActivity(Context context, Class<? extends Activity> newTopActivityClass) { Intent intent = new Intent(context, newTopActivityClass); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { intent.addFlags(0x8000); // equal to Intent.FLAG_ACTIVITY_CLEAR_TASK // which is only available from API level // 11 } context.startActivity(intent); } public static void startNewTopActivityFromIntent(Context context, Intent intent) { intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { intent.addFlags(0x8000); // equal to Intent.FLAG_ACTIVITY_CLEAR_TASK // which is only available from API level // 11 } context.startActivity(intent); } }