package org.holoeverywhere.app; import org.holoeverywhere.HoloEverywhere; import org.holoeverywhere.HoloEverywhere.PreferenceImpl; import org.holoeverywhere.IHolo; import org.holoeverywhere.LayoutInflater; import org.holoeverywhere.LayoutInflater.LayoutInflaterCreator; import org.holoeverywhere.SystemServiceManager; import org.holoeverywhere.SystemServiceManager.SuperSystemService; import org.holoeverywhere.ThemeManager; import org.holoeverywhere.ThemeManager.SuperStartActivity; import org.holoeverywhere.preference.PreferenceManagerHelper; import org.holoeverywhere.preference.SharedPreferences; import android.annotation.SuppressLint; import android.content.Intent; import android.os.Build.VERSION; import android.os.Bundle; public class Application extends android.app.Application implements IHolo, SuperStartActivity, SuperSystemService { private static Application lastInstance; static { SystemServiceManager.register(LayoutInflaterCreator.class); } public static Application getLastInstance() { return Application.lastInstance; } public static void init() { } public Application() { Application.lastInstance = this; } @Override public SharedPreferences getDefaultSharedPreferences() { return PreferenceManagerHelper.getDefaultSharedPreferences(this); } @Override public SharedPreferences getDefaultSharedPreferences(PreferenceImpl impl) { return PreferenceManagerHelper.getDefaultSharedPreferences(this, impl); } @Override public LayoutInflater getLayoutInflater() { return LayoutInflater.from(this); } @Override public SharedPreferences getSharedPreferences(PreferenceImpl impl, String name, int mode) { return PreferenceManagerHelper.wrap(this, impl, name, mode); } @Override public SharedPreferences getSharedPreferences(String name, int mode) { return PreferenceManagerHelper.wrap(this, name, mode); } @Override public Application getSupportApplication() { return this; } @Override public void onTerminate() { LayoutInflater.clearInstances(); super.onTerminate(); } @Override @SuppressLint("NewApi") public void startActivities(Intent[] intents) { startActivities(intents, null); } @Override @SuppressLint("NewApi") public void startActivities(Intent[] intents, Bundle options) { for (Intent intent : intents) { startActivity(intent, options); } } @Override @SuppressLint("NewApi") public void startActivity(Intent intent) { startActivity(intent, null); } @Override public void startActivity(Intent intent, Bundle options) { if (HoloEverywhere.ALWAYS_USE_PARENT_THEME) { ThemeManager.startActivity(this, intent, options); } else { superStartActivity(intent, -1, options); } } public android.content.SharedPreferences superGetSharedPreferences( String name, int mode) { return super.getSharedPreferences(name, mode); } @Override public Object superGetSystemService(String name) { return super.getSystemService(name); } @Override @SuppressLint("NewApi") public void superStartActivity(Intent intent, int requestCode, Bundle options) { if (VERSION.SDK_INT >= 16) { super.startActivity(intent, options); } else { super.startActivity(intent); } } }