From 48415550cfb1a9a476965024baa84979a56d978f Mon Sep 17 00:00:00 2001 From: kenstir Date: Sat, 21 Nov 2015 20:20:38 -0500 Subject: [PATCH] From the MainActivity menu, you can switch account or add account. --- Open-ILS/src/Android/core/res/menu/menu_main.xml | 6 ++++-- Open-ILS/src/Android/core/res/values/strings.xml | 4 +++- .../org/evergreen_ils/accountAccess/AccountUtils.java | 19 +++++++++++++++++++ .../src/org/evergreen_ils/views/MainActivity.java | 16 ++++++++++++++-- 4 files changed, 40 insertions(+), 5 deletions(-) diff --git a/Open-ILS/src/Android/core/res/menu/menu_main.xml b/Open-ILS/src/Android/core/res/menu/menu_main.xml index fe5d675fba..4115a76619 100644 --- a/Open-ILS/src/Android/core/res/menu/menu_main.xml +++ b/Open-ILS/src/Android/core/res/menu/menu_main.xml @@ -2,8 +2,10 @@ - + + \ No newline at end of file diff --git a/Open-ILS/src/Android/core/res/values/strings.xml b/Open-ILS/src/Android/core/res/values/strings.xml index c494f028d9..d015dca485 100644 --- a/Open-ILS/src/Android/core/res/values/strings.xml +++ b/Open-ILS/src/Android/core/res/values/strings.xml @@ -1,11 +1,13 @@ - + advanced search settings library hours barcode scan + Switch account + Add account My Account 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 1a29821ac1..8c0a4c5f21 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,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() { + @Override + public void run(AccountManagerFuture 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()); } 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 3b72a654eb..a57f1c33e2 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 @@ -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); -- 2.11.0