package de.thedevstack.conversationsplus; import android.app.Application; import android.content.Context; import android.content.pm.PackageManager; import android.preference.PreferenceManager; import java.io.File; import eu.siacs.conversations.R; /** * This class is used to provide static access to the applicationcontext. */ public class ConversationsPlusApplication extends Application { /** * Application instance for static access */ private static ConversationsPlusApplication instance; /** * Initializes the application and saves its instance. */ public void onCreate(){ super.onCreate(); ConversationsPlusApplication.instance = this; ConversationsPlusPreferences.init(PreferenceManager.getDefaultSharedPreferences(getAppContext())); } /** * Returns the application's context. * @return Context the application's context */ public static Context getAppContext() { return ConversationsPlusApplication.instance.getApplicationContext(); } /** * Returns the application's private data directory. * @return File the application's private data dir */ public static File getPrivateFilesDir() { return ConversationsPlusApplication.instance.getFilesDir(); } public static String getVersion() { final String packageName = ConversationsPlusApplication.getAppContext().getPackageName(); if (packageName != null) { try { return ConversationsPlusApplication.getAppContext().getPackageManager().getPackageInfo(packageName, 0).versionName; } catch (final PackageManager.NameNotFoundException e) { return "unknown"; } } else { return "unknown"; } } public static String getName() { return ConversationsPlusApplication.getAppContext().getString(R.string.app_name); } public static String getNameAndVersion() { return getName() + " " + getVersion(); } }