# HG changeset patch # User Da Risk # Date 1267855915 -3600 # Node ID 081f7e51b5bd7aac3ab342777b7c6dc30de31dfd # Parent f5a2d8aeb41ea387da623825e1c6818447bd5c71 The Beem Application now knows if there is an account configured. diff -r f5a2d8aeb41e -r 081f7e51b5bd src/com/beem/project/beem/BeemApplication.java --- a/src/com/beem/project/beem/BeemApplication.java Fri Mar 05 04:06:49 2010 +0100 +++ b/src/com/beem/project/beem/BeemApplication.java Sat Mar 06 07:11:55 2010 +0100 @@ -45,6 +45,8 @@ package com.beem.project.beem; import android.app.Application; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; /** * This class contains informations that needs to be global in the application. @@ -54,10 +56,29 @@ public class BeemApplication extends Application { private boolean mIsConnected; + private boolean mIsAccountConfigured; + private SharedPreferences mSettings; + private final PreferenceListener mPreferenceListener = new PreferenceListener(); + + /** + * Constructor. + */ + public BeemApplication() { + } @Override public void onCreate() { super.onCreate(); + mSettings = PreferenceManager.getDefaultSharedPreferences(this); + mIsAccountConfigured = mSettings.getBoolean("PreferenceIsConfigured", false); + mSettings.registerOnSharedPreferenceChangeListener(mPreferenceListener); + } + + @Override + public void onTerminate() { + super.onTerminate(); + mSettings.unregisterOnSharedPreferenceChangeListener(mPreferenceListener); + } /** @@ -76,4 +97,30 @@ mIsConnected = isConnected; } + /** + * Tell if a XMPP account is configured. + * @return false if there is no account configured. + */ + public boolean isAccountConfigured() { + return mIsAccountConfigured; + } + + /** + * A listener for all the change in the preference file. It is used to maintain the global state of the application. + */ + private class PreferenceListener implements SharedPreferences.OnSharedPreferenceChangeListener { + + /** + * Constructor. + */ + public PreferenceListener() { + } + + @Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + if ("PreferenceIsConfigured".equals(key)) { + mIsAccountConfigured = mSettings.getBoolean("PreferenceIsConfigured", false); + } + } + } }