From df05605f033c20fdb9bdc34f359708b82754d32e Mon Sep 17 00:00:00 2001 From: steckbrief Date: Mon, 5 Oct 2015 13:00:21 +0200 Subject: Fixes FS#70 - Introduction of a ConversationsPlusApplication to get global access to app information --- .../ConversationsPlusApplication.java | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/main/java/de/thedevstack/conversationsplus/ConversationsPlusApplication.java (limited to 'src/main/java/de/thedevstack/conversationsplus/ConversationsPlusApplication.java') diff --git a/src/main/java/de/thedevstack/conversationsplus/ConversationsPlusApplication.java b/src/main/java/de/thedevstack/conversationsplus/ConversationsPlusApplication.java new file mode 100644 index 00000000..dfe67cb7 --- /dev/null +++ b/src/main/java/de/thedevstack/conversationsplus/ConversationsPlusApplication.java @@ -0,0 +1,62 @@ +package de.thedevstack.conversationsplus; + +import android.app.Application; +import android.content.Context; +import android.content.pm.PackageManager; + +import java.io.File; + +/** + * 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; + } + + /** + * 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(); + } +} -- cgit v1.2.3