Application basic preferences added still have to add test connection thread
authordrizea <danielrizea27@gmail.com>
Tue, 12 Jun 2012 22:09:20 +0000 (01:09 +0300)
committerdrizea <danielrizea27@gmail.com>
Tue, 12 Jun 2012 22:09:20 +0000 (01:09 +0300)
25 files changed:
Open-ILS/src/Android/AndroidManifest.xml
Open-ILS/src/Android/bin/EvergreenApp.apk
Open-ILS/src/Android/bin/classes.dex
Open-ILS/src/Android/bin/classes/org/evergreen/android/R$color.class
Open-ILS/src/Android/bin/classes/org/evergreen/android/R$dimen.class
Open-ILS/src/Android/bin/classes/org/evergreen/android/R$id.class
Open-ILS/src/Android/bin/classes/org/evergreen/android/R$string.class
Open-ILS/src/Android/bin/classes/org/evergreen/android/R$style.class
Open-ILS/src/Android/bin/classes/org/evergreen/android/R.class
Open-ILS/src/Android/bin/classes/org/evergreen/android/accountAccess/AccountAccess.class
Open-ILS/src/Android/bin/classes/org/evergreen/android/globals/GlobalConfigs.class
Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordDetails_Info.class
Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordDetails_Simple.class
Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$SearchArrayAdapter.class
Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView.class
Open-ILS/src/Android/bin/classes/org/evergreen/android/views/AccountScreenDashboard.class
Open-ILS/src/Android/bin/classes/org/evergreen/android/views/MainScreenDashboard.class
Open-ILS/src/Android/bin/resources.ap_
Open-ILS/src/Android/gen/org/evergreen/android/R.java
Open-ILS/src/Android/res/xml/application_preference_screen.xml [new file with mode: 0644]
Open-ILS/src/Android/src/org/evergreen/android/accountAccess/AccountAccess.java
Open-ILS/src/Android/src/org/evergreen/android/globals/GlobalConfigs.java
Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/SearchCatalogListView.java
Open-ILS/src/Android/src/org/evergreen/android/views/ApplicationPreferences.java [new file with mode: 0644]
Open-ILS/src/Android/src/org/evergreen/android/views/MainScreenDashboard.java

index e28eec5..59a5bc7 100644 (file)
             android:name=".searchCatalog.SearchCatalogListView"
             android:label="@string/app_name" >
         </activity>
-        
+        <activity
+            android:name=".views.ApplicationPreferences"
+            >
+            
+        </activity>
         <activity android:name=".searchCatalog.RecordDetails_Info"></activity>
                <activity android:name=".searchCatalog.RecordDetails_Content"></activity>
         <activity android:name=".searchCatalog.RecordDetails_Details"></activity>
index ae787c0..dd27bde 100644 (file)
Binary files a/Open-ILS/src/Android/bin/EvergreenApp.apk and b/Open-ILS/src/Android/bin/EvergreenApp.apk differ
index bfe04b9..0f3e178 100644 (file)
Binary files a/Open-ILS/src/Android/bin/classes.dex and b/Open-ILS/src/Android/bin/classes.dex differ
index c47c966..3ddd095 100644 (file)
Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$color.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$color.class differ
index 8c6b06e..4d3bc74 100644 (file)
Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$dimen.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$dimen.class differ
index 8f66c3c..eaff07c 100644 (file)
Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$id.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$id.class differ
index a1a3bcb..eec2622 100644 (file)
Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$string.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$string.class differ
index f09654d..0f3ca57 100644 (file)
Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$style.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$style.class differ
index 22991f1..de17b90 100644 (file)
Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R.class differ
index 4c5de69..0041d74 100644 (file)
Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/accountAccess/AccountAccess.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/accountAccess/AccountAccess.class differ
index a630995..4e4ddd1 100644 (file)
Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/globals/GlobalConfigs.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/globals/GlobalConfigs.class differ
index dcc3484..87c03f0 100644 (file)
Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordDetails_Info.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordDetails_Info.class differ
index b7b579b..f7108d9 100644 (file)
Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordDetails_Simple.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordDetails_Simple.class differ
index 695ab3e..d1bb879 100644 (file)
Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$SearchArrayAdapter.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$SearchArrayAdapter.class differ
index 02cd8f9..5abf730 100644 (file)
Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView.class differ
index f2b2ad7..b0692a3 100644 (file)
Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/views/AccountScreenDashboard.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/views/AccountScreenDashboard.class differ
index dbb1c30..72463ce 100644 (file)
Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/views/MainScreenDashboard.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/views/MainScreenDashboard.class differ
index 7ae709b..890eb4c 100644 (file)
Binary files a/Open-ILS/src/Android/bin/resources.ap_ and b/Open-ILS/src/Android/bin/resources.ap_ differ
index 002d0d4..f87a72c 100644 (file)
@@ -11,27 +11,27 @@ public final class R {
     public static final class attr {
     }
     public static final class color {
-        public static final int background1=0x7f040005;
-        public static final int background2=0x7f040006;
-        public static final int background3=0x7f040007;
-        public static final int bg_gray=0x7f04000b;
-        public static final int emphasis=0x7f04000a;
-        public static final int foreground1=0x7f040003;
-        public static final int foreground2=0x7f040004;
+        public static final int background1=0x7f050005;
+        public static final int background2=0x7f050006;
+        public static final int background3=0x7f050007;
+        public static final int bg_gray=0x7f05000b;
+        public static final int emphasis=0x7f05000a;
+        public static final int foreground1=0x7f050003;
+        public static final int foreground2=0x7f050004;
         /**   Defined colors for Evergreen Theme 
          */
-        public static final int green=0x7f040009;
-        public static final int title_background=0x7f040000;
-        public static final int title_separator=0x7f040008;
-        public static final int title_text=0x7f040001;
-        public static final int title_text_alt=0x7f040002;
-        public static final int white=0x7f04000c;
+        public static final int green=0x7f050009;
+        public static final int title_background=0x7f050000;
+        public static final int title_separator=0x7f050008;
+        public static final int title_text=0x7f050001;
+        public static final int title_text_alt=0x7f050002;
+        public static final int white=0x7f05000c;
     }
     public static final class dimen {
-        public static final int text_size_large=0x7f050003;
-        public static final int text_size_medium=0x7f050002;
-        public static final int text_size_small=0x7f050001;
-        public static final int title_height=0x7f050000;
+        public static final int text_size_large=0x7f060003;
+        public static final int text_size_medium=0x7f060002;
+        public static final int text_size_small=0x7f060001;
+        public static final int title_height=0x7f060000;
     }
     public static final class drawable {
         public static final int account_pref=0x7f020000;
@@ -46,31 +46,31 @@ public final class R {
         public static final int settings=0x7f020009;
     }
     public static final class id {
-        public static final int account_btn_book_bags=0x7f080003;
-        public static final int account_btn_check_out=0x7f080000;
-        public static final int account_btn_fines=0x7f080002;
-        public static final int account_btn_holds=0x7f080001;
-        public static final int chose_organisation=0x7f080018;
-        public static final int main_btn_account=0x7f080005;
-        public static final int main_btn_app_settings=0x7f080006;
-        public static final int main_btn_search=0x7f080004;
-        public static final int record_details_info_author=0x7f080008;
-        public static final int record_details_info_publisher=0x7f080009;
-        public static final int record_details_info_title=0x7f080007;
-        public static final int record_details_simple_author=0x7f08000b;
-        public static final int record_details_simple_isbn=0x7f080010;
-        public static final int record_details_simple_publisher=0x7f08000c;
-        public static final int record_details_simple_series=0x7f08000e;
-        public static final int record_details_simple_subject=0x7f08000d;
-        public static final int record_details_simple_synopsis=0x7f08000f;
-        public static final int record_details_simple_title=0x7f08000a;
-        public static final int searchButton=0x7f080016;
-        public static final int searchText=0x7f080015;
-        public static final int search_record_author=0x7f080013;
-        public static final int search_record_img=0x7f080011;
-        public static final int search_record_publishing=0x7f080014;
-        public static final int search_record_title=0x7f080012;
-        public static final int search_results_list=0x7f080017;
+        public static final int account_btn_book_bags=0x7f090003;
+        public static final int account_btn_check_out=0x7f090000;
+        public static final int account_btn_fines=0x7f090002;
+        public static final int account_btn_holds=0x7f090001;
+        public static final int chose_organisation=0x7f090018;
+        public static final int main_btn_account=0x7f090005;
+        public static final int main_btn_app_settings=0x7f090006;
+        public static final int main_btn_search=0x7f090004;
+        public static final int record_details_info_author=0x7f090008;
+        public static final int record_details_info_publisher=0x7f090009;
+        public static final int record_details_info_title=0x7f090007;
+        public static final int record_details_simple_author=0x7f09000b;
+        public static final int record_details_simple_isbn=0x7f090010;
+        public static final int record_details_simple_publisher=0x7f09000c;
+        public static final int record_details_simple_series=0x7f09000e;
+        public static final int record_details_simple_subject=0x7f09000d;
+        public static final int record_details_simple_synopsis=0x7f09000f;
+        public static final int record_details_simple_title=0x7f09000a;
+        public static final int searchButton=0x7f090016;
+        public static final int searchText=0x7f090015;
+        public static final int search_record_author=0x7f090013;
+        public static final int search_record_img=0x7f090011;
+        public static final int search_record_publishing=0x7f090014;
+        public static final int search_record_title=0x7f090012;
+        public static final int search_results_list=0x7f090017;
     }
     public static final class layout {
         public static final int dashbord_account=0x7f030000;
@@ -82,22 +82,25 @@ public final class R {
         public static final int search_result_list=0x7f030006;
     }
     public static final class string {
-        public static final int app_name=0x7f060001;
-        public static final int hello=0x7f060000;
-        public static final int title_application_settings=0x7f060004;
-        public static final int title_book_bags=0x7f060008;
-        public static final int title_check_out=0x7f060005;
-        public static final int title_fines=0x7f060007;
-        public static final int title_holds=0x7f060006;
-        public static final int title_my_account=0x7f060003;
-        public static final int title_search=0x7f060002;
+        public static final int app_name=0x7f070001;
+        public static final int hello=0x7f070000;
+        public static final int title_application_settings=0x7f070004;
+        public static final int title_book_bags=0x7f070008;
+        public static final int title_check_out=0x7f070005;
+        public static final int title_fines=0x7f070007;
+        public static final int title_holds=0x7f070006;
+        public static final int title_my_account=0x7f070003;
+        public static final int title_search=0x7f070002;
     }
     public static final class style {
-        public static final int EvergreenTheme=0x7f070004;
-        public static final int HomeButton=0x7f070005;
-        public static final int sectionHeader=0x7f070000;
-        public static final int spacer=0x7f070003;
-        public static final int textLarge=0x7f070002;
-        public static final int textSmall=0x7f070001;
+        public static final int EvergreenTheme=0x7f080004;
+        public static final int HomeButton=0x7f080005;
+        public static final int sectionHeader=0x7f080000;
+        public static final int spacer=0x7f080003;
+        public static final int textLarge=0x7f080002;
+        public static final int textSmall=0x7f080001;
+    }
+    public static final class xml {
+        public static final int application_preference_screen=0x7f040000;
     }
 }
diff --git a/Open-ILS/src/Android/res/xml/application_preference_screen.xml b/Open-ILS/src/Android/res/xml/application_preference_screen.xml
new file mode 100644 (file)
index 0000000..907a1ff
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:key="first_preferencescreen">
+        <PreferenceCategory
+          android:summary="Username and password information"
+          android:title="Login information" >
+               <EditTextPreference
+            android:key="username"
+            android:summary="Please enter your login username"
+            android:title="Username" />
+               <EditTextPreference
+            android:key="password"
+            android:summary="Enter your password"
+            android:title="Password"
+            android:inputType="textPassword"
+             />
+        </PreferenceCategory>
+   
+        
+                <PreferenceCategory
+          android:summary="Username and password information"
+          android:title="Login information" >
+               <EditTextPreference
+            android:key="library_url"
+            android:summary="Please enter the library url in format http://"
+            android:title="Library url address" />
+
+        </PreferenceCategory>
+   
+</PreferenceScreen> 
\ No newline at end of file
index fd55c14..4d17bce 100644 (file)
@@ -14,6 +14,9 @@ import org.opensrf.net.http.HttpConnection;
 import org.opensrf.net.http.HttpRequest;
 import org.opensrf.util.OSRFObject;
 
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+
 /**
  * The Class AuthenticateUser.
  */
@@ -215,10 +218,10 @@ public class AccountAccess {
        private Integer userID = null;
        //for demo purpose
        /** The user name. */
-       private String userName = "daniel";
+       public static String userName = "daniel";
 
        /** The password. */
-       private String password = "demo123";
+       public static String password = "demo123";
        
        /**
         * Instantiates a new authenticate user.
@@ -274,14 +277,21 @@ public class AccountAccess {
            return "";
        }
        
+       public static void setAccountInfo(String username, String password){
+               
+               AccountAccess.userName = username;
+               AccountAccess.password = password;
+               
+       }
+       
        /**
         * Authenticate.
         */
-       public void authenticate(){
+       public boolean authenticate(){
                
                String seed = authenticateInit();
                
-               authenticateComplete(seed);
+               return authenticateComplete(seed);
        }
 
        /**
@@ -341,9 +351,10 @@ public class AccountAccess {
         * Phase 2 of login process
         * Application send's username and hash to confirm login
         * @param seed the seed
+        * @returns bollean if auth was ok
         */
-       private void authenticateComplete(String seed) {
-               
+       private boolean authenticateComplete(String seed) {
+
                //calculate hash to pass to server for authentication process phase 2
                //seed = "b18a9063e0c6f49dfe7a854cc6ab5775";
                String hash = md5(seed+md5(password));
@@ -384,10 +395,12 @@ public class AccountAccess {
                                }catch(Exception e){
                                        System.err.println("Error in parsing authtime " + e.getMessage());
                                }
-                               System.out.println();
+                               
+                               return true;
                        }
                }
                
+               return false;
                
        }
 
@@ -794,6 +807,4 @@ public class AccountAccess {
                
        }
        
-       
-       
 }
index 6f07bbe..4d1a654 100644 (file)
@@ -1,13 +1,16 @@
 package org.evergreen.android.globals;
 
 import java.io.InputStream;
-import java.security.KeyStore.LoadStoreParameter;
 import java.util.ArrayList;
 import java.util.StringTokenizer;
 
+import org.evergreen.android.accountAccess.AccountAccess;
 import org.evergreen.android.searchCatalog.Organisation;
 import org.open_ils.idl.IDLParser;
 
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
 import android.util.Log;
 
 public class GlobalConfigs {
@@ -29,16 +32,16 @@ public class GlobalConfigs {
        private String collectionsRequest = "/opac/common/js/";
        
        
-       private GlobalConfigs(){
+       private GlobalConfigs(Context context){
                
-               initialize();
+               initialize(context);
        }
        
-       public static GlobalConfigs getGlobalConfigs(){
+       public static GlobalConfigs getGlobalConfigs(Context context){
                
                if(globalConfigSingleton == null)
                {
-                       globalConfigSingleton = new GlobalConfigs();
+                       globalConfigSingleton = new GlobalConfigs(context);
                }
                
                return globalConfigSingleton;
@@ -46,7 +49,7 @@ public class GlobalConfigs {
        
        /* Initialize function that retrieves IDL file and Orgs file
         */
-       private boolean initialize(){
+       private boolean initialize(Context context){
                
                if(init == false){
                        
@@ -54,6 +57,11 @@ public class GlobalConfigs {
                        init = true;
                        loadIDLFile();
                        getOrganisations();
+               
+                       SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
+                       GlobalConfigs.httpAddress = preferences.getString("library_url", "");
+                       AccountAccess.setAccountInfo(preferences.getString("username", ""), preferences.getString("password", ""));
+                       
                        return true;
                }
                return false;
index 183128e..b88a429 100644 (file)
@@ -64,7 +64,7 @@ public class SearchCatalogListView extends Activity{
         setContentView(R.layout.search_result_list);
 
         //singleton initialize necessary IDL and Org data
-        globalConfigs = GlobalConfigs.getGlobalConfigs();
+        globalConfigs = GlobalConfigs.getGlobalConfigs(this);
         
         context = this;
         search = new SearchCatalog("http://ulysses.calvin.edu",this);
diff --git a/Open-ILS/src/Android/src/org/evergreen/android/views/ApplicationPreferences.java b/Open-ILS/src/Android/src/org/evergreen/android/views/ApplicationPreferences.java
new file mode 100644 (file)
index 0000000..53070e2
--- /dev/null
@@ -0,0 +1,75 @@
+package org.evergreen.android.views;
+
+import org.evergreen.android.R;
+import org.evergreen.android.accountAccess.AccountAccess;
+import org.evergreen.android.globals.GlobalConfigs;
+
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
+import android.os.Bundle;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceManager;
+
+public class ApplicationPreferences extends PreferenceActivity implements OnSharedPreferenceChangeListener{
+
+       
+       private ProgressDialog progressDialog;
+       
+       @Override
+       protected void onCreate(Bundle savedInstanceState) {
+
+               super.onCreate(savedInstanceState);
+               
+               addPreferencesFromResource(R.xml.application_preference_screen);
+               
+               Context context = getApplicationContext();
+               
+               SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+               //register preference listener
+               prefs.registerOnSharedPreferenceChangeListener(this);
+       }
+
+       @Override
+       public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
+                       String key) {
+               
+               if(key.equals("username")){
+                       AccountAccess.userName = sharedPreferences.getString("username", "");
+               }else
+                       if(key.equals("password")){
+                               AccountAccess.password = sharedPreferences.getString("password", "");
+                       }else
+                               if(key.equals("library_url")){
+                                       GlobalConfigs.httpAddress = sharedPreferences.getString("library_url", "");
+                               }
+               
+               //test connection
+               
+               progressDialog = ProgressDialog.show(this, "Account login", "Please wait while we test the new user account information");
+               
+               Thread thread = new Thread(new Runnable() {
+                       
+                       @Override
+                       public void run() {
+                               
+                               AccountAccess account = new AccountAccess(GlobalConfigs.httpAddress);
+                               account.authenticate();
+                               runOnUiThread(new Runnable() {
+                                       
+                                       @Override
+                                       public void run() {
+                                               progressDialog.dismiss();
+                                               
+                                       }
+                               });
+                       }
+               });
+               
+               thread.start();
+       }
+
+       
+       
+}
index d687c76..4d4df21 100644 (file)
@@ -32,7 +32,7 @@ public class MainScreenDashboard extends Activity {
                //init here globals, 
                //TODO in future do a splash screen (loading data)
                
-               GlobalConfigs globalConfigs = GlobalConfigs.getGlobalConfigs();
+               GlobalConfigs globalConfigs = GlobalConfigs.getGlobalConfigs(this);
        }
 
        /**
@@ -121,7 +121,7 @@ public class MainScreenDashboard extends Activity {
                   startActivity (new Intent(getApplicationContext(), AccountScreenDashboard.class));
                   break;
              case R.id.main_btn_app_settings :
-                  //startActivity (new Intent(getApplicationContext(), F3Activity.class));
+                  startActivity(new Intent(getApplicationContext(),ApplicationPreferences.class));
                   break;
 
              default: