Use volley for search results and record details. OMG is it faster. Way faster.
authorkenstir <kenstir@gmail.com>
Fri, 4 Dec 2015 01:58:36 +0000 (20:58 -0500)
committerkenstir <kenstir@gmail.com>
Fri, 4 Dec 2015 01:58:36 +0000 (20:58 -0500)
Open-ILS/src/Android/core/res/layout/record_details_basic_fragment.xml
Open-ILS/src/Android/core/res/layout/search_result_item.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/globals/GlobalConfigs.java
Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/Library.java [deleted file]
Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/SearchCatalogListView.java
Open-ILS/src/Android/core/src/org/evergreen_ils/utils/ui/BasicDetailsFragment.java
Open-ILS/src/Android/core/src/org/evergreen_ils/views/splashscreen/LoadingTask.java

index 174c862..a77501f 100644 (file)
                        />
                 </LinearLayout>
                 
-                <ImageView 
+                <com.android.volley.toolbox.NetworkImageView
                     android:id="@+id/record_details_simple_image"
                     android:layout_width="140dip"
                     android:layout_height="180dip"
-                    android:src="@drawable/no_image"
                     android:padding="5dip"
                     android:layout_margin="10dip"
                     />
index d4b1eab..a8fbf95 100644 (file)
     android:background="@color/background"
      >
 
-       <ImageView
+       <com.android.volley.toolbox.NetworkImageView
                android:id="@+id/search_record_img"
                android:layout_width="64dip"
         android:layout_height="96dip"
         android:layout_marginRight="6dip"
-               android:src="@drawable/address_book"
                android:padding="4dip"
                />
 
index 8a3e88c..b9a3b25 100644 (file)
@@ -8,8 +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 org.evergreen_ils.globals.Library;
 
 import java.io.IOException;
 
index 658260c..2cf9211 100644 (file)
@@ -10,8 +10,6 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.util.Log;
-import org.evergreen_ils.searchCatalog.Library;
-import org.w3c.dom.Text;
 
 public class AccountAuthenticator extends AbstractAccountAuthenticator {
     
index af42162..61d7de7 100644 (file)
@@ -1,6 +1,5 @@
 package org.evergreen_ils.auth;
 
-import android.app.DownloadManager;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.location.Location;
@@ -30,9 +29,8 @@ import android.view.View;
 import android.widget.TextView;
 import org.evergreen_ils.accountAccess.AccountUtils;
 import org.evergreen_ils.globals.AppPrefs;
-import org.evergreen_ils.globals.Utils;
 import org.evergreen_ils.net.VolleyWrangler;
-import org.evergreen_ils.searchCatalog.Library;
+import org.evergreen_ils.globals.Library;
 import org.opensrf.util.JSONException;
 import org.opensrf.util.JSONReader;
 
index 6f3794d..e4dc5fb 100644 (file)
@@ -167,6 +167,7 @@ public class GlobalConfigs {
                     }
                 },
                 null);
+        Log.d(TAG, "volley queuing request");
         q.add(stringRequest);
     }
 
diff --git a/Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/Library.java b/Open-ILS/src/Android/core/src/org/evergreen_ils/searchCatalog/Library.java
deleted file mode 100644 (file)
index 648f0af..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.evergreen_ils.searchCatalog;
-
-import android.location.Location;
-import android.text.TextUtils;
-
-/** value class
- * Created by kenstir on 11/5/2015.
- */
-public class Library {
-    public String url;            // e.g. "https://catalog.cwmars.org"
-    public String name;           // e.g. "C/W MARS"
-    public String directory_name; // e.g. "Massachusetts, US (C/W MARS)"
-    public Location location;
-    public Library(String url, String name, String directory_name, Location location) {
-        this.url = url;
-        this.name = name;
-        this.directory_name = directory_name;
-        this.location = location;
-    }
-    public Library(String url, String name) {
-        this(url, name, null, null);
-    }
-}
index c5461a4..06c2ded 100644 (file)
@@ -23,6 +23,8 @@ import java.util.*;
 
 import android.support.v7.app.ActionBarActivity;
 import android.view.*;
+import com.android.volley.toolbox.ImageLoader;
+import com.android.volley.toolbox.NetworkImageView;
 import org.evergreen_ils.R;
 import org.evergreen_ils.accountAccess.AccountAccess;
 import org.evergreen_ils.accountAccess.SessionNotFoundException;
@@ -30,6 +32,7 @@ import org.evergreen_ils.accountAccess.bookbags.BookBag;
 import org.evergreen_ils.accountAccess.holds.PlaceHold;
 import org.evergreen_ils.barcodescan.CaptureActivity;
 import org.evergreen_ils.globals.GlobalConfigs;
+import org.evergreen_ils.net.VolleyWrangler;
 import org.evergreen_ils.utils.ui.ActionBarUtils;
 import org.evergreen_ils.views.splashscreen.SplashActivity;
 
@@ -651,7 +654,7 @@ public class SearchCatalogListView extends ActionBarActivity {
 
         private static final String tag = "SearchArrayAdapter";
         private Context context;
-        private ImageView recordImage;
+        private NetworkImageView recordImage;
         private TextView recordTitle;
         private TextView recordAuthor;
         private TextView recordFormat;
@@ -689,13 +692,11 @@ public class SearchCatalogListView extends ActionBarActivity {
                         false);
             }
 
-            // Get reference to ImageView
-            recordImage = (ImageView) row.findViewById(R.id.search_record_img);
-            String imageHref = GlobalConfigs.getUrl("/opac/extras/ac/jacket/small/r/" + record.doc_id);
-            //Log.d(TAG, "image url " + imageHref);
-
-            // start async download of image
-            imageDownloader.download(imageHref, recordImage);
+            // Start async image load
+            recordImage = (NetworkImageView) row.findViewById(R.id.search_record_img);
+            final String imageHref = GlobalConfigs.getUrl("/opac/extras/ac/jacket/small/r/" + record.doc_id);
+            ImageLoader imageLoader = VolleyWrangler.getInstance(context).getImageLoader();
+            recordImage.setImageUrl(imageHref, imageLoader);
 
             recordTitle = (TextView) row.findViewById(R.id.search_record_title);
             recordAuthor = (TextView) row.findViewById(R.id.search_record_author);
index 1bead87..d4b7121 100644 (file)
@@ -25,12 +25,15 @@ import java.util.Map.Entry;
 import java.util.Set;
 
 import android.util.Log;
+import com.android.volley.toolbox.ImageLoader;
+import com.android.volley.toolbox.NetworkImageView;
 import org.evergreen_ils.R;
 import org.evergreen_ils.accountAccess.AccountAccess;
 import org.evergreen_ils.accountAccess.SessionNotFoundException;
 import org.evergreen_ils.accountAccess.bookbags.BookBag;
 import org.evergreen_ils.accountAccess.holds.PlaceHold;
 import org.evergreen_ils.globals.GlobalConfigs;
+import org.evergreen_ils.net.VolleyWrangler;
 import org.evergreen_ils.searchCatalog.*;
 
 import android.app.Dialog;
@@ -95,7 +98,7 @@ public class BasicDetailsFragment extends Fragment {
 
     private final ImageDownloader imageDownloader = new ImageDownloader();
 
-    private ImageView recordImage;
+    private NetworkImageView recordImage;
     // max display info
     private int list_size = 3;
 
@@ -153,7 +156,7 @@ public class BasicDetailsFragment extends Fragment {
         synopsisTextView = (TextView) layout.findViewById(R.id.record_details_simple_synopsis);
         isbnTextView = (TextView) layout.findViewById(R.id.record_details_simple_isbn);
 
-        recordImage = (ImageView) layout.findViewById(R.id.record_details_simple_image);
+        recordImage = (NetworkImageView) layout.findViewById(R.id.record_details_simple_image);
 
         placeHoldButton = (Button) layout.findViewById(R.id.simple_place_hold_button);
         addToBookbagButton = (Button) layout.findViewById(R.id.simple_add_to_bookbag_button);
@@ -169,14 +172,13 @@ public class BasicDetailsFragment extends Fragment {
             }
         });
 
-        //String imageHref = GlobalConfigs.getUrl("/opac/extras/ac/jacket/large/r/" + record.doc_id);
-        String imageHref = GlobalConfigs.getUrl("/opac/extras/ac/jacket/medium/r/" + record.doc_id);
-
-        // start async download of image
-        imageDownloader.download(imageHref, recordImage);
+        // Start async image load
+        //final String imageHref = GlobalConfigs.getUrl("/opac/extras/ac/jacket/large/r/" + record.doc_id);
+        final String imageHref = GlobalConfigs.getUrl("/opac/extras/ac/jacket/medium/r/" + record.doc_id);
+        ImageLoader imageLoader = VolleyWrangler.getInstance(getActivity()).getImageLoader();
+        recordImage.setImageUrl(imageHref, imageLoader);
 
         AccountAccess ac = AccountAccess.getAccountAccess();
-
         bookBags = ac.getBookbags();
         String array_spinner[] = new String[bookBags.size()];
 
index 90cf5dc..39d8b1e 100644 (file)
@@ -31,10 +31,7 @@ import android.accounts.AccountManager;
 import android.app.Activity;
 import android.os.Bundle;
 import android.util.Log;
-import org.evergreen_ils.searchCatalog.Library;
-import org.opensrf.util.OSRFObject;
-
-import java.util.Map;
+import org.evergreen_ils.globals.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