From 84ae975e93429b7d9ef2a8908cd9ae348bed68be Mon Sep 17 00:00:00 2001 From: kenstir Date: Sun, 22 Nov 2015 20:58:16 -0500 Subject: [PATCH] Fixed bug: only enable "Switch account" menu on MainActivity if there exists more than one account. --- .../src/org/evergreen_ils/accountAccess/AccountUtils.java | 12 ++++++++++++ .../core/src/org/evergreen_ils/views/MainActivity.java | 8 ++++++++ 2 files changed, 20 insertions(+) diff --git a/Open-ILS/src/Android/core/src/org/evergreen_ils/accountAccess/AccountUtils.java b/Open-ILS/src/Android/core/src/org/evergreen_ils/accountAccess/AccountUtils.java index 077b8a1d54..0bce6c07d8 100644 --- a/Open-ILS/src/Android/core/src/org/evergreen_ils/accountAccess/AccountUtils.java +++ b/Open-ILS/src/Android/core/src/org/evergreen_ils/accountAccess/AccountUtils.java @@ -73,6 +73,18 @@ public class AccountUtils { return bnd; } + public static Account[] getAccountsByType(Activity activity) { + final AccountManager am = AccountManager.get(activity); + final String accountType = activity.getString(R.string.ou_account_type); + final Account availableAccounts[] = am.getAccountsByType(accountType); + return availableAccounts; + } + + public static boolean haveMoreThanOneAccount(Activity activity) { + Account availableAccounts[] = getAccountsByType(activity); + return availableAccounts.length > 1; + } + public static void addAccount(final Activity activity, final Runnable runnable) { Log.i(Const.AUTH_TAG, "addAccount"); final AccountManager am = AccountManager.get(activity); diff --git a/Open-ILS/src/Android/core/src/org/evergreen_ils/views/MainActivity.java b/Open-ILS/src/Android/core/src/org/evergreen_ils/views/MainActivity.java index a57f1c33e2..bc32116901 100644 --- a/Open-ILS/src/Android/core/src/org/evergreen_ils/views/MainActivity.java +++ b/Open-ILS/src/Android/core/src/org/evergreen_ils/views/MainActivity.java @@ -31,6 +31,7 @@ import org.evergreen_ils.views.splashscreen.SplashActivity; */ public class MainActivity extends ActionBarActivity { + private static String TAG = MainActivity.class.getSimpleName(); private GlobalConfigs globalConfigs; public void onCreate(Bundle savedInstanceState) { @@ -55,6 +56,13 @@ public class MainActivity extends ActionBarActivity { } @Override + public boolean onPrepareOptionsMenu (Menu menu) { + Log.d(TAG, "onPrepareOptionsMenu"); + menu.getItem(0).setEnabled(AccountUtils.haveMoreThanOneAccount(this)); + return true; + } + + @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_switch_account) { -- 2.11.0