diff options
author | steckbrief <steckbrief@chefmail.de> | 2015-10-05 13:00:21 +0200 |
---|---|---|
committer | steckbrief <steckbrief@chefmail.de> | 2015-10-05 13:00:21 +0200 |
commit | df05605f033c20fdb9bdc34f359708b82754d32e (patch) | |
tree | f93328feb1799b082ca5f776152fbc3b92cbaff8 /src/main/java/de/thedevstack/conversationsplus/ConversationsPlusApplication.java | |
parent | dafb125a4f29226b6a3e8aa93de3d5163126c9ce (diff) |
Fixes FS#70 - Introduction of a ConversationsPlusApplication to get global access to app information
Diffstat (limited to 'src/main/java/de/thedevstack/conversationsplus/ConversationsPlusApplication.java')
-rw-r--r-- | src/main/java/de/thedevstack/conversationsplus/ConversationsPlusApplication.java | 62 |
1 files changed, 62 insertions, 0 deletions
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(); + } +} |