From: drizea Date: Fri, 15 Jun 2012 13:34:32 +0000 (+0300) Subject: added more results list element at the end of the search result list X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=cf801fdd4f28fec96952559b8d34303f484fce8c;p=working%2FEvergreen.git added more results list element at the end of the search result list --- diff --git a/Open-ILS/src/Android/bin/EvergreenApp.apk b/Open-ILS/src/Android/bin/EvergreenApp.apk index 10a2b57614..5b44202d30 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 ed50844d1e..ea7cfd48cf 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 3ddd095b2f..c610baee1c 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 4d3bc74784..ecb6dd8c53 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$drawable.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$drawable.class index e8b77ce7a9..44cfa681c9 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$drawable.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$drawable.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 eaff07cb06..ec62a432a7 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$layout.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$layout.class index 893b9cd9d6..69028097d5 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$layout.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$layout.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 eec2622936..a89ce8dbfa 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 e228bafa62..691ff5888f 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/searchCatalog/RecordInfo.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordInfo.class index 9913f32ccc..36e6726b81 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordInfo.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordInfo.class differ diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalog.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalog.class index 1b435ad9bb..fb9a24f09b 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalog.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalog.class differ diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$1.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$1.class index c051e00341..aa91e96ffe 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$1.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$1.class differ diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$2$1$1.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$2$1$1.class index 92f760594b..34d8355e52 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$2$1$1.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$2$1$1.class differ diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$2$1.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$2$1.class index b4d3952e38..91b42c0be4 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$2$1.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$2$1.class differ diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$2.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$2.class index 4cec04ece1..bb07e8971d 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$2.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$2.class differ diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$3.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$3.class index 7ff95af7cd..8e0f6a86bc 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$3.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$3.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 c52884d4c9..573efb34c8 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 7693512d7b..239ff5adb1 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/resources.ap_ b/Open-ILS/src/Android/bin/resources.ap_ index d9de5e2d70..c076396202 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 89fde60475..dd086d2a7f 100644 --- a/Open-ILS/src/Android/gen/org/evergreen/android/R.java +++ b/Open-ILS/src/Android/gen/org/evergreen/android/R.java @@ -15,6 +15,7 @@ public final class R { public static final int background2=0x7f050006; public static final int background3=0x7f050007; public static final int bg_gray=0x7f05000b; + public static final int blue=0x7f05000d; public static final int emphasis=0x7f05000a; public static final int foreground1=0x7f050003; public static final int foreground2=0x7f050004; @@ -39,18 +40,19 @@ public final class R { public static final int address_book=0x7f020002; public static final int book_bag=0x7f020003; public static final int check_out=0x7f020004; - public static final int find_96=0x7f020005; - public static final int fines=0x7f020006; - public static final int holds=0x7f020007; - public static final int ic_launcher=0x7f020008; - public static final int settings=0x7f020009; + public static final int expander_ic_maximized=0x7f020005; + public static final int find_96=0x7f020006; + public static final int fines=0x7f020007; + public static final int holds=0x7f020008; + public static final int ic_launcher=0x7f020009; + public static final int settings=0x7f02000a; } public static final class id { 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 chose_organisation=0x7f09001a; 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; @@ -64,13 +66,15 @@ public final class R { 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 int searchButton=0x7f090017; + public static final int searchText=0x7f090016; + public static final int search_more_items_button=0x7f090011; + public static final int search_record_author=0x7f090014; + public static final int search_record_img=0x7f090012; + public static final int search_record_publishing=0x7f090015; + public static final int search_record_title=0x7f090013; + public static final int search_result_number=0x7f090018; + public static final int search_results_list=0x7f090019; } public static final class layout { public static final int dashbord_account=0x7f030000; @@ -78,12 +82,14 @@ public final class R { public static final int main=0x7f030002; public static final int record_details_info=0x7f030003; public static final int record_details_simple=0x7f030004; - public static final int search_result_item=0x7f030005; - public static final int search_result_list=0x7f030006; + public static final int search_result_footer_view=0x7f030005; + public static final int search_result_item=0x7f030006; + public static final int search_result_list=0x7f030007; } public static final class string { public static final int app_name=0x7f070001; public static final int hello=0x7f070000; + public static final int search_result_text=0x7f070009; public static final int title_application_settings=0x7f070004; public static final int title_book_bags=0x7f070008; public static final int title_check_out=0x7f070005; diff --git a/Open-ILS/src/Android/res/drawable/expander_ic_maximized.9.png b/Open-ILS/src/Android/res/drawable/expander_ic_maximized.9.png new file mode 100644 index 0000000000..bad4b82026 Binary files /dev/null and b/Open-ILS/src/Android/res/drawable/expander_ic_maximized.9.png differ diff --git a/Open-ILS/src/Android/res/layout/search_result_footer_view.xml b/Open-ILS/src/Android/res/layout/search_result_footer_view.xml new file mode 100644 index 0000000000..0ed6c7701c --- /dev/null +++ b/Open-ILS/src/Android/res/layout/search_result_footer_view.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/Open-ILS/src/Android/res/layout/search_result_list.xml b/Open-ILS/src/Android/res/layout/search_result_list.xml index 2c1e7599bd..c8969f1a6c 100644 --- a/Open-ILS/src/Android/res/layout/search_result_list.xml +++ b/Open-ILS/src/Android/res/layout/search_result_list.xml @@ -32,6 +32,22 @@ + + + + + + diff --git a/Open-ILS/src/Android/res/values/colors.xml b/Open-ILS/src/Android/res/values/colors.xml index 5f326a2352..9f562e4452 100644 --- a/Open-ILS/src/Android/res/values/colors.xml +++ b/Open-ILS/src/Android/res/values/colors.xml @@ -33,4 +33,5 @@ #cecbce #ffffff + #1e90ff diff --git a/Open-ILS/src/Android/res/values/strings.xml b/Open-ILS/src/Android/res/values/strings.xml index 9ea23bdc42..e60cab9168 100644 --- a/Open-ILS/src/Android/res/values/strings.xml +++ b/Open-ILS/src/Android/res/values/strings.xml @@ -11,5 +11,5 @@ Holds Fines Book bags - + Search result : \ No newline at end of file diff --git a/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/ImageDownloader.java b/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/ImageDownloader.java index 66ea35c5e6..48b4f1e33e 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/ImageDownloader.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/ImageDownloader.java @@ -42,7 +42,7 @@ public class ImageDownloader { public enum Mode { NO_ASYNC_TASK, NO_DOWNLOADED_DRAWABLE, CORRECT } private Mode mode = Mode.CORRECT; - private int MIN_IMG_HEIGHT = 100; + private int MIN_IMG_HEIGHT = 75; /** * Download the specified image from the Internet and binds it to the provided ImageView. The @@ -151,8 +151,17 @@ public class ImageDownloader { // AndroidHttpClient is not allowed to be used from the main thread final HttpClient client = (mode == Mode.NO_ASYNC_TASK) ? new DefaultHttpClient() : AndroidHttpClient.newInstance("Android"); - final HttpGet getRequest = new HttpGet(url); - + + HttpGet getRequest = null; + try{ + getRequest = new HttpGet(url); + }catch(Exception e){ + if ((client instanceof AndroidHttpClient)) { + ((AndroidHttpClient) client).close(); + } + return null; + } + try { HttpResponse response = client.execute(getRequest); final int statusCode = response.getStatusLine().getStatusCode(); @@ -251,7 +260,9 @@ public class ImageDownloader { } addBitmapToCache(url, bitmap); + + if (imageViewReference != null) { ImageView imageView = imageViewReference.get(); BitmapDownloaderTask bitmapDownloaderTask = getBitmapDownloaderTask(imageView); @@ -259,10 +270,14 @@ public class ImageDownloader { // Or if we don't use any bitmap to task association (NO_DOWNLOADED_DRAWABLE mode) if ((this == bitmapDownloaderTask) || (mode != Mode.CORRECT)) { imageView.setImageBitmap(bitmap); + } + + if(bitmap == null){ + if(imageView != null) + imageView.setImageResource(R.drawable.address_book); } - else - imageView.setImageResource(R.drawable.address_book); } + } } @@ -302,7 +317,7 @@ public class ImageDownloader { * Garbage Collector. */ - private static final int HARD_CACHE_CAPACITY = 10; + private static final int HARD_CACHE_CAPACITY = 20; private static final int DELAY_BEFORE_PURGE = 10 * 1000; // in milliseconds // Hard cache, with a fixed maximum capacity and a life duration diff --git a/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/RecordInfo.java b/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/RecordInfo.java index f18c1e62b5..4ebbdd0be1 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/RecordInfo.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/RecordInfo.java @@ -42,11 +42,20 @@ public class RecordInfo implements Serializable{ //tcn field public String image = null; + public boolean dummy = false; + + public RecordInfo(){ + this.title = "Test title"; + this.author = "Test author"; + this.pubdate = "Publication date"; + + //marks the fact that this is a record made from no info + this.dummy = true; + } public RecordInfo(OSRFObject info){ try{ - - + this.title = info.getString("title"); this.author = info.getString("author"); this.pubdate = info.getString("pubdate"); diff --git a/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/SearchCatalog.java b/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/SearchCatalog.java index 5fd6c74aef..ea490a38f8 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/SearchCatalog.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/SearchCatalog.java @@ -46,6 +46,13 @@ public class SearchCatalog { private Organisation selectedOrganization = null; private Context context; + + public Integer offset; + + public Integer visible; + + public Integer searchLimit = 10; + /** * Instantiates a new search catalog. * @@ -72,11 +79,11 @@ public class SearchCatalog { /** * Gets the search results - * + * * @param searchWords the search words * @return the search results */ - public ArrayList getSearchResults(String searchWords){ + public ArrayList getSearchResults(String searchWords, Integer offset){ ArrayList resultsRecordInfo = new ArrayList(); @@ -94,7 +101,9 @@ public class SearchCatalog { complexParm.put("depth", this.selectedOrganization.level-1); } //TODO change here, multiple result per page - complexParm.put("limit", 50); + complexParm.put("limit", searchLimit); + + complexParm.put("offset",offset); /* complexParm.put("offset",0); @@ -112,6 +121,7 @@ public class SearchCatalog { method.addParam(searchWords); method.addParam(1); + // sync test HttpRequest req = new GatewayRequest(conn, SERVICE, method).send(); Object resp; @@ -120,6 +130,7 @@ public class SearchCatalog { ArrayList ids = new ArrayList(); + while ( (resp = req.recv()) != null){ System.out.println("Sync Response: " + resp); @@ -128,6 +139,8 @@ public class SearchCatalog { System.out.println(" ids : " + response.get("ids") + " " ); List> result_ids = (List) response.get("ids"); + + visible =Integer.parseInt((String)response.get("count")); for(int i=0;i0){ + + //remove previous more button + recordList.remove(recordList.size()-1); + + for(int j=0;j recordList.size()){ + recordList.add(new RecordInfo()); + searchResultsNumber.setText(adapter.getCount()-1 +" out of "+search.visible); + } + else + searchResultsNumber.setText(adapter.getCount() +" out of "+search.visible); + } + else{ + searchResultsNumber.setText(adapter.getCount() +" out of "+search.visible); + } + adapter.notifyDataSetChanged(); + progressDialog.dismiss(); + } + }); + + } + }); + + searchThreadwithOffset.start(); + } + else{ + //start activity with book details + + Intent intent = new Intent(getBaseContext(),RecordDetails_Simple.class); + //serialize object and pass it to next activity + intent.putExtra("recordInfo", info); + + startActivity(intent); + } } }); @@ -133,7 +207,7 @@ public class SearchCatalogListView extends Activity{ @Override public void run() { - searchResults = search.getSearchResults(text); + searchResults = search.getSearchResults(text,0); runOnUiThread(new Runnable() { @@ -145,10 +219,22 @@ public class SearchCatalogListView extends Activity{ for(int j=0;j recordList.size()){ + recordList.add(new RecordInfo()); + searchResultsNumber.setText(recordList.size()-1 +" out of "+search.visible); + } + else + searchResultsNumber.setText(recordList.size() +" out of "+search.visible); } + else + searchResultsNumber.setText(recordList.size() +" out of "+search.visible); + adapter.notifyDataSetChanged(); progressDialog.dismiss(); + } }); @@ -264,21 +350,38 @@ public class SearchCatalogListView extends Activity{ public View getView(int position, View convertView, ViewGroup parent) { View row = convertView; - if (row == null) { - // ROW INFLATION - Log.d(tag, "Starting XML Row Inflation ... "); + + // Get item + RecordInfo record = getItem(position); + + if(record.dummy == true) + { + Log.d(tag, "Starting XML view more infaltion ... "); LayoutInflater inflater = (LayoutInflater) this.getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); - row = inflater.inflate(R.layout.search_result_item, parent, false); - Log.d(tag, "Successfully completed XML Row Inflation!"); - } + row = inflater.inflate(R.layout.search_result_footer_view, parent, false); + Log.d(tag, "Successfully completed XML view more Inflation!"); - // Get item - RecordInfo record = getItem(position); + + } + else{ + //if it is the right type of view + if (row == null || row.findViewById(R.id.search_record_title) == null) { + + Log.d(tag, "Starting XML Row Inflation ... "); + LayoutInflater inflater = (LayoutInflater) this.getContext() + .getSystemService(Context.LAYOUT_INFLATER_SERVICE); + row = inflater.inflate(R.layout.search_result_item, parent, false); + Log.d(tag, "Successfully completed XML Row Inflation!"); + + } + + + + Log.d(TAG, "reord image value " + recordImage); // Get reference to ImageView recordImage = (ImageView) row.findViewById(R.id.search_record_img); - //TODO fix bugs + features String imageHref= GlobalConfigs.httpAddress + "/opac/extras/ac/jacket/small/"+record.isbn; //start async download of image @@ -297,7 +400,8 @@ public class SearchCatalogListView extends Activity{ recordTitle.setText(record.title); recordAuthor.setText(record.author); recordPublisher.setText(record.pubdate + " " + record.publisher); - + } + return row; } }