Fixed bug: only enable "Switch account" menu on MainActivity if there exists more...
authorkenstir <kenstir@gmail.com>
Mon, 23 Nov 2015 01:58:16 +0000 (20:58 -0500)
committerkenstir <kenstir@gmail.com>
Mon, 23 Nov 2015 01:58:16 +0000 (20:58 -0500)
Open-ILS/src/Android/core/src/org/evergreen_ils/accountAccess/AccountUtils.java
Open-ILS/src/Android/core/src/org/evergreen_ils/views/MainActivity.java

index 077b8a1..0bce6c0 100644 (file)
@@ -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);
index a57f1c3..bc32116 100644 (file)
@@ -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) {