From the MainActivity menu, you can switch account or add account.
authorkenstir <kenstir@gmail.com>
Sun, 22 Nov 2015 01:20:38 +0000 (20:20 -0500)
committerkenstir <kenstir@gmail.com>
Sun, 22 Nov 2015 01:20:38 +0000 (20:20 -0500)
Open-ILS/src/Android/core/res/menu/menu_main.xml
Open-ILS/src/Android/core/res/values/strings.xml
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 fe5d675..4115a76 100644 (file)
@@ -2,8 +2,10 @@
 
 <menu xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:yourapp="http://schemas.android.com/apk/res-auto">
-    <item android:id="@+id/action_search"
+    <item android:id="@+id/action_switch_account" android:title="@string/menu_switch_account"/>
+    <item android:id="@+id/action_add_account" android:title="@string/menu_add_account"/>
+    <!--<item android:id="@+id/action_search"
           android:icon="@drawable/abc_ic_search"
           android:title="@string/title_search"
-          yourapp:showAsAction="ifRoom"/>
+          yourapp:showAsAction="ifRoom"/>-->
 </menu>
\ No newline at end of file
index c494f02..d015dca 100644 (file)
@@ -1,11 +1,13 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
 
-    <!-- Main menu button text -->
+    <!-- Main menu text -->
     <string name="menu_advanced_search">advanced search</string>
     <string name="menu_preferences">settings</string>
     <string name="menu_library_hours">library hours</string>
     <string name="menu_barcode_scan">barcode scan</string>
+    <string name="menu_switch_account">Switch account</string>
+    <string name="menu_add_account">Add account</string>
 
     <!-- Header portion -->
     <string name="my_account_button_text">My Account</string>
index 1a29821..8c0a4c5 100644 (file)
@@ -73,6 +73,25 @@ public class AccountUtils {
         return bnd;
     }
 
+    public static void addAccount(final Activity activity, final Runnable runnable) {
+        Log.i(Const.AUTH_TAG, "addAccount");
+        final AccountManager am = AccountManager.get(activity);
+        final String accountType = activity.getString(R.string.ou_account_type);
+        am.addAccount(accountType, Const.AUTHTOKEN_TYPE, null, null, activity, new AccountManagerCallback<Bundle>() {
+            @Override
+            public void run(AccountManagerFuture<Bundle> future) {
+                try {
+                    Bundle bnd = future.getResult();
+                    final String account_name = bnd.getString(AccountManager.KEY_ACCOUNT_NAME);
+                    Log.i(Const.AUTH_TAG, "added account bnd=" + bnd);
+                    activity.runOnUiThread(runnable);
+                } catch (Exception e) {
+                    Log.i(Const.AUTH_TAG, "failed to add account", e);
+                }
+            }
+        }, null);
+    }
+
     public static boolean runningOnUIThread() {
         return (Looper.myLooper() == Looper.getMainLooper());
     }
index 3b72a65..a57f1c3 100644 (file)
@@ -5,6 +5,7 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.support.v7.app.ActionBar;
 import android.support.v7.app.ActionBarActivity;
+import android.util.Log;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
@@ -12,10 +13,12 @@ import android.view.View;
 import android.widget.Button;
 import org.evergreen_ils.R;
 import org.evergreen_ils.accountAccess.AccountAccess;
+import org.evergreen_ils.accountAccess.AccountUtils;
 import org.evergreen_ils.accountAccess.bookbags.BookbagsListView;
 import org.evergreen_ils.accountAccess.checkout.ItemsCheckOutListView;
 import org.evergreen_ils.accountAccess.fines.FinesActivity;
 import org.evergreen_ils.accountAccess.holds.HoldsListView;
+import org.evergreen_ils.auth.Const;
 import org.evergreen_ils.globals.AppPrefs;
 import org.evergreen_ils.globals.GlobalConfigs;
 import org.evergreen_ils.searchCatalog.AdvancedSearchActivity;
@@ -54,8 +57,17 @@ public class MainActivity extends ActionBarActivity {
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         int id = item.getItemId();
-        if (id == R.id.action_search) {
-            startActivity(new Intent(getApplicationContext(), SearchCatalogListView.class));
+        if (id == R.id.action_switch_account) {
+            SplashActivity.restartApp(this);
+            return true;
+        } else if (id == R.id.action_add_account) {
+            AccountUtils.addAccount(this, new Runnable() {
+                @Override
+                public void run() {
+                    SplashActivity.restartApp(MainActivity.this);
+                }
+            });
+            Log.i(Const.AUTH_TAG, "after addAccount");
             return true;
         }
         return super.onOptionsItemSelected(item);