Put library name as title on App Bar for eg_app
authorkenstir <kenstir@gmail.com>
Fri, 20 Nov 2015 03:47:17 +0000 (22:47 -0500)
committerkenstir <kenstir@gmail.com>
Fri, 20 Nov 2015 03:47:17 +0000 (22:47 -0500)
Open-ILS/src/Android/core/res/layout/activity_login.xml
Open-ILS/src/Android/core/src/org/evergreen_ils/accountAccess/AccountUtils.java
Open-ILS/src/Android/core/src/org/evergreen_ils/auth/AccountAuthenticator.java
Open-ILS/src/Android/core/src/org/evergreen_ils/auth/AuthenticatorActivity.java
Open-ILS/src/Android/core/src/org/evergreen_ils/auth/Const.java
Open-ILS/src/Android/core/src/org/evergreen_ils/auth/TestAuthActivity.java
Open-ILS/src/Android/core/src/org/evergreen_ils/views/MainActivity.java
Open-ILS/src/Android/core/src/org/evergreen_ils/views/splashscreen/LoadingTask.java

index f9961e7..fcd7f90 100644 (file)
             android:id="@+id/choose_library_label"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
+            android:layout_marginTop="20dp"
             android:text="@string/ou_choose_library_label"
             android:textAppearance="?android:attr/textAppearanceMedium" />
 
     <Spinner
             android:id="@+id/choose_library_spinner"
             android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="0dp"
-            android:layout_marginBottom="32dp" />
+            android:layout_height="wrap_content" />
 
     <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
+            android:layout_marginTop="20dp"
             android:text="@string/ou_sign_in_label"
             android:textAppearance="?android:attr/textAppearanceMedium" />
 
index 83971ff..1a29821 100644 (file)
@@ -8,6 +8,7 @@ import android.text.TextUtils;
 import android.util.Log;
 import org.evergreen_ils.R;
 import org.evergreen_ils.auth.Const;
+import org.evergreen_ils.searchCatalog.Library;
 import org.w3c.dom.Text;
 
 import java.io.IOException;
@@ -17,10 +18,11 @@ import java.io.IOException;
  */
 public class AccountUtils {
 
-    public static String getLibraryUrl(Activity activity, String account_name, String account_type) {
+    public static Library getLibrary(Activity activity, String account_name, String account_type) {
         final AccountManager am = AccountManager.get(activity);
         Account account = new Account(account_name, account_type);
         String library_url = am.getUserData(account, Const.KEY_LIBRARY_URL);
+        String library_name = am.getUserData(account, Const.KEY_LIBRARY_NAME);
 
         // compatibility with specific apps like cwmars_app.  If no library_url exists as userdata on the account,
         // get it from the resources.
@@ -30,8 +32,11 @@ public class AccountUtils {
                 am.setUserData(account, Const.KEY_LIBRARY_URL, library_url);
             }
         }
+        if (TextUtils.isEmpty(library_name)) {
+            library_name = activity.getString(R.string.ou_library_name);
+        }
 
-        return library_url;
+        return new Library(library_url, library_name, null);
     }
 
     public static void invalidateAuthToken(Activity activity, String auth_token) {
index 5a56423..658260c 100644 (file)
@@ -50,6 +50,7 @@ public class AccountAuthenticator extends AbstractAccountAuthenticator {
         }
 
         final AccountManager am = AccountManager.get(context);
+        String library_name = am.getUserData(account, Const.KEY_LIBRARY_NAME);
         String library_url = am.getUserData(account, Const.KEY_LIBRARY_URL);
         Log.d(TAG, "getAuthToken> library_url=" + library_url);
 
@@ -83,6 +84,7 @@ public class AccountAuthenticator extends AbstractAccountAuthenticator {
             result.putString(AccountManager.KEY_ACCOUNT_NAME, account.name);
             result.putString(AccountManager.KEY_ACCOUNT_TYPE, account.type);
             result.putString(AccountManager.KEY_AUTHTOKEN, authToken);
+            result.putString(Const.KEY_LIBRARY_NAME, library_name);
             result.putString(Const.KEY_LIBRARY_URL, library_url);
             return result;
         }
index ab61728..a6986a7 100644 (file)
@@ -205,6 +205,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity {
                     data.putString(AccountManager.KEY_ACCOUNT_TYPE, accountType);
                     data.putString(AccountManager.KEY_AUTHTOKEN, authtoken);
                     data.putString(PARAM_USER_PASS, password);
+                    data.putString(Const.KEY_LIBRARY_NAME, selected_library.short_name);
                     data.putString(Const.KEY_LIBRARY_URL, selected_library.url);
                 } catch (AuthenticationException e) {
                     if (e != null) errorMessage = e.getMessage();
@@ -260,6 +261,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity {
         String accountName = intent.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
         String accountType = intent.getStringExtra(AccountManager.KEY_ACCOUNT_TYPE);
         String accountPassword = intent.getStringExtra(PARAM_USER_PASS);
+        String library_name = intent.getStringExtra(Const.KEY_LIBRARY_NAME);
         String library_url = intent.getStringExtra(Const.KEY_LIBRARY_URL);
         final Account account = new Account(accountName, accountType);
         Log.d(TAG, "onAuthSuccess> accountName="+accountName);
@@ -273,6 +275,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity {
         Bundle userdata = null;
         if (!TextUtils.isEmpty(library_url)) {
             userdata = new Bundle();
+            userdata.putString(Const.KEY_LIBRARY_NAME, library_name);
             userdata.putString(Const.KEY_LIBRARY_URL, library_url);
         }
         if (accountManager.addAccountExplicitly(account, accountPassword, userdata)) {
index 4f6f698..1085f1d 100644 (file)
@@ -4,6 +4,7 @@ public class Const {
     //public static final String ACCOUNT_TYPE = "org.evergreen_ils";
     public static final String AUTHTOKEN_TYPE = "opac";
     public static final String AUTHTOKEN_TYPE_LABEL = "Online Public Access Catalog";
+    public static final String KEY_LIBRARY_NAME = "library_name";
     public static final String KEY_LIBRARY_URL = "library_url";
     public final static String AUTH_TAG = "eg_auth:";
 }
index cfb2df7..ee222f4 100644 (file)
@@ -146,8 +146,9 @@ public class TestAuthActivity extends Activity {
             String name[] = new String[availableAccounts.length];
             for (int i = 0; i < availableAccounts.length; i++) {
                 name[i] = availableAccounts[i].name;
+                String library_name = mAccountManager.getUserData(availableAccounts[i], Const.KEY_LIBRARY_NAME);
                 String library_url = mAccountManager.getUserData(availableAccounts[i], Const.KEY_LIBRARY_URL);
-                Log.d(TAG, "name:"+name[i]+" url:"+library_url);
+                Log.d(TAG, "name:"+name[i]+" library_name:"+library_name+" url:"+library_url);
             }
 
             // Account picker
@@ -256,6 +257,7 @@ public class TestAuthActivity extends Activity {
                             bnd = future.getResult();
                             final String authtoken = bnd.getString(AccountManager.KEY_AUTHTOKEN);
                             final String account_name = bnd.getString(AccountManager.KEY_ACCOUNT_NAME);
+                            final String library_name = bnd.getString(Const.KEY_LIBRARY_NAME);
                             final String library_url = bnd.getString(Const.KEY_LIBRARY_URL);
                             showMessage((authtoken != null) ? "SUCCESS with "+account_name+"\nlibrary_url: " + library_url: "FAIL");
                             Log.d(TAG, "GetTokenForAccount Bundle is " + bnd);
index 3d98e88..0719c46 100644 (file)
@@ -16,6 +16,7 @@ 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.globals.AppPrefs;
 import org.evergreen_ils.globals.GlobalConfigs;
 import org.evergreen_ils.searchCatalog.AdvancedSearchActivity;
 import org.evergreen_ils.searchCatalog.SearchCatalogListView;
@@ -38,6 +39,7 @@ public class MainActivity extends ActionBarActivity {
         setContentView(R.layout.activity_main);
 
         ActionBar actionBar = getSupportActionBar();
+        actionBar.setTitle(AppPrefs.getString(AppPrefs.LIBRARY_NAME));
         actionBar.setSubtitle(AccountAccess.userName);
 
         // singleton initialize necessary IDL and Org data
index 36c41d4..17e97ed 100644 (file)
@@ -26,13 +26,12 @@ import org.evergreen_ils.accountAccess.AccountUtils;
 import org.evergreen_ils.accountAccess.SessionNotFoundException;
 import org.evergreen_ils.globals.AppPrefs;
 import org.evergreen_ils.globals.GlobalConfigs;
-import org.evergreen_ils.auth.Const;
 
 import android.accounts.AccountManager;
-import android.accounts.AccountManagerFuture;
 import android.app.Activity;
 import android.os.Bundle;
 import android.util.Log;
+import org.evergreen_ils.searchCatalog.Library;
 
 /** This is basically the same as an AsyncTask<String,String,String>, except that it uses
  * a Thread.  Starting with HONEYCOMB, tasks are executed on a single thread and the 2nd
@@ -52,7 +51,6 @@ public class LoadingTask {
         void onPostExecute(String result);
     }
 
-    // This is the listener that will be told when this task is finished
     private final LoadingTaskListener mListener;
     private Activity mCallingActivity;
 
@@ -102,12 +100,13 @@ public class LoadingTask {
             if (TextUtils.isEmpty(auth_token) || TextUtils.isEmpty(account_name))
                 return "no account";
 
-            String library_url = AccountUtils.getLibraryUrl(mCallingActivity, account_name, accountType);
-            AppPrefs.setString(AppPrefs.LIBRARY_URL, library_url);
+            Library library = AccountUtils.getLibrary(mCallingActivity, account_name, accountType);
+            AppPrefs.setString(AppPrefs.LIBRARY_NAME, library.short_name);
+            AppPrefs.setString(AppPrefs.LIBRARY_URL, library.url);
 
-            Log.d(TAG, tag+"Loading resources from "+library_url);
+            Log.d(TAG, tag+"Loading resources from "+library.url);
             publishProgress("Loading resources");
-            GlobalConfigs.getGlobalConfigs(mCallingActivity, library_url);
+            GlobalConfigs.getGlobalConfigs(mCallingActivity, library.url);
 
             Log.d(TAG, tag+"Starting session");
             publishProgress("Starting session");