From: drizea Date: Tue, 12 Jun 2012 22:09:20 +0000 (+0300) Subject: Application basic preferences added still have to add test connection thread X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=258122eda34c0d57d13ce5908de636c501e54c26;p=working%2FEvergreen.git Application basic preferences added still have to add test connection thread --- diff --git a/Open-ILS/src/Android/AndroidManifest.xml b/Open-ILS/src/Android/AndroidManifest.xml index e28eec553b..59a5bc7a3a 100644 --- a/Open-ILS/src/Android/AndroidManifest.xml +++ b/Open-ILS/src/Android/AndroidManifest.xml @@ -30,7 +30,11 @@ android:name=".searchCatalog.SearchCatalogListView" android:label="@string/app_name" > - + + + diff --git a/Open-ILS/src/Android/bin/EvergreenApp.apk b/Open-ILS/src/Android/bin/EvergreenApp.apk index ae787c0402..dd27bdef0c 100644 Binary files a/Open-ILS/src/Android/bin/EvergreenApp.apk and b/Open-ILS/src/Android/bin/EvergreenApp.apk differ diff --git a/Open-ILS/src/Android/bin/classes.dex b/Open-ILS/src/Android/bin/classes.dex index bfe04b971c..0f3e178a19 100644 Binary files a/Open-ILS/src/Android/bin/classes.dex and b/Open-ILS/src/Android/bin/classes.dex differ diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$color.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$color.class index c47c966de1..3ddd095b2f 100644 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 diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$dimen.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$dimen.class index 8c6b06ebc7..4d3bc74784 100644 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 diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$id.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$id.class index 8f66c3c00f..eaff07cb06 100644 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 diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$string.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$string.class index a1a3bcb9cf..eec2622936 100644 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 diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$style.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$style.class index f09654d124..0f3ca57d7b 100644 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 diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R.class index 22991f1065..de17b903d5 100644 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 diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/accountAccess/AccountAccess.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/accountAccess/AccountAccess.class index 4c5de6990d..0041d74a2b 100644 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 diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/globals/GlobalConfigs.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/globals/GlobalConfigs.class index a630995f75..4e4ddd1ced 100644 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 diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordDetails_Info.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordDetails_Info.class index dcc34841c1..87c03f0fa2 100644 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 diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordDetails_Simple.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordDetails_Simple.class index b7b579bbda..f7108d94ad 100644 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 diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$SearchArrayAdapter.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$SearchArrayAdapter.class index 695ab3ee02..d1bb879e23 100644 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 diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView.class index 02cd8f93fb..5abf730313 100644 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 diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/views/AccountScreenDashboard.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/views/AccountScreenDashboard.class index f2b2ad7838..b0692a30b4 100644 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 diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/views/MainScreenDashboard.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/views/MainScreenDashboard.class index dbb1c30409..72463ce3e5 100644 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 diff --git a/Open-ILS/src/Android/bin/resources.ap_ b/Open-ILS/src/Android/bin/resources.ap_ index 7ae709bdbd..890eb4c3d2 100644 Binary files a/Open-ILS/src/Android/bin/resources.ap_ and b/Open-ILS/src/Android/bin/resources.ap_ differ diff --git a/Open-ILS/src/Android/gen/org/evergreen/android/R.java b/Open-ILS/src/Android/gen/org/evergreen/android/R.java index 002d0d46d6..f87a72c635 100644 --- a/Open-ILS/src/Android/gen/org/evergreen/android/R.java +++ b/Open-ILS/src/Android/gen/org/evergreen/android/R.java @@ -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 index 0000000000..907a1ff07a --- /dev/null +++ b/Open-ILS/src/Android/res/xml/application_preference_screen.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/AccountAccess.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/AccountAccess.java index fd55c148a0..4d17bceaf6 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/AccountAccess.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/AccountAccess.java @@ -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 { } - - } diff --git a/Open-ILS/src/Android/src/org/evergreen/android/globals/GlobalConfigs.java b/Open-ILS/src/Android/src/org/evergreen/android/globals/GlobalConfigs.java index 6f07bbeb2a..4d1a654cb2 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/globals/GlobalConfigs.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/globals/GlobalConfigs.java @@ -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; diff --git a/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/SearchCatalogListView.java b/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/SearchCatalogListView.java index 183128e58f..b88a429414 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/SearchCatalogListView.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/SearchCatalogListView.java @@ -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 index 0000000000..53070e2755 --- /dev/null +++ b/Open-ILS/src/Android/src/org/evergreen/android/views/ApplicationPreferences.java @@ -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(); + } + + + +} diff --git a/Open-ILS/src/Android/src/org/evergreen/android/views/MainScreenDashboard.java b/Open-ILS/src/Android/src/org/evergreen/android/views/MainScreenDashboard.java index d687c767f8..4d4df21c40 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/views/MainScreenDashboard.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/views/MainScreenDashboard.java @@ -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: