diff --git a/app/build.gradle b/app/build.gradle index 15c7284a..1243c19b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.dar.nclientv2" minSdkVersion 21 targetSdkVersion 28 - versionCode 158 - versionName "1.5.8" + versionCode 159 + versionName "1.5.9" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/com/dar/nclientv2/adapters/FavoriteAdapter.java b/app/src/main/java/com/dar/nclientv2/adapters/FavoriteAdapter.java index b3cb59dc..dde2aee3 100644 --- a/app/src/main/java/com/dar/nclientv2/adapters/FavoriteAdapter.java +++ b/app/src/main/java/com/dar/nclientv2/adapters/FavoriteAdapter.java @@ -35,12 +35,12 @@ public class FavoriteAdapter extends RecyclerView.Adapteractivity.getRefresher().setRefreshing(false)); + forceReload(); } @NonNull @Override @@ -90,47 +90,58 @@ public Filter getFilter(){ return new Filter(){ @Override protected FilterResults performFiltering(CharSequence constraint){ + constraint=constraint.toString().toLowerCase(Locale.US); + if(firstIsRunning||(!force&&lastQuery.equals(constraint)))return null; Log.d(Global.LOGTAG,"FILTERING"); - activity.runOnUiThread(()->activity.getRefresher().setRefreshing(true)); + setRefresh(true); FilterResults results=new FilterResults(); - lastQuery=constraint; + lastQuery=constraint.toString(); force=false; Listgal=new ArrayList<>(); for(Gallery g:galleries){ - if(lastQuery==null||g.getTitle().contains(lastQuery))gal.add(g); + if(g.getTitle().toLowerCase(Locale.US).contains(lastQuery))gal.add(g); } results.count=gal.size(); results.values=gal; Log.d(Global.LOGTAG,"FILTERING3"); Log.e(Global.LOGTAG,results.count+";"+results.values); + setRefresh(false); return results; } @Override protected void publishResults(CharSequence constraint, FilterResults results){ - if(results.count==-1||results.values==null)return; + if(results==null)return; + setRefresh(true); + Log.d(Global.LOGTAG,"After called2"); final int oldSize=getItemCount(),newSize=results.count; filterGalleries=(List)results.values; - activity.runOnUiThread(()->{ if(oldSize>newSize)notifyItemRangeRemoved(newSize,oldSize-newSize); else notifyItemRangeInserted(oldSize,newSize-oldSize); notifyItemRangeChanged(0,Math.min(newSize,oldSize)); - if(!firstIsRunning)activity.getRefresher().setRefreshing(false); - }); + + setRefresh(false); } }; } public void addItem(Gallery gallery){ galleries.add(gallery); - if(lastQuery==null||gallery.getTitle().contains(lastQuery)){ + if(gallery.getTitle().contains(lastQuery)){ filterGalleries.add(gallery); activity.runOnUiThread(()->notifyItemInserted(filterGalleries.size())); } } public void forceReload(){ + if(firstIsRunning)return; + Log.d(Global.LOGTAG,"FORCING",new Exception("STACK TRACE")); force=true; getFilter().filter(lastQuery); + + } + public void setRefresh(boolean refresh){ + Thread.dumpStack(); + activity.runOnUiThread(()->activity.getRefresher().setRefreshing(refresh)); } public void clearGalleries(){ Queries.GalleryTable.removeAllFavorite(Database.getDatabase(),online); @@ -142,8 +153,4 @@ public void clearGalleries(){ public void reloadOnline(){ new DownloadFavorite(this).start(); } - - public FavoriteActivity getActivity() { - return activity; - } } diff --git a/app/src/main/java/com/dar/nclientv2/async/database/DatabaseHelper.java b/app/src/main/java/com/dar/nclientv2/async/database/DatabaseHelper.java index ef9f5fbc..1a4c2875 100644 --- a/app/src/main/java/com/dar/nclientv2/async/database/DatabaseHelper.java +++ b/app/src/main/java/com/dar/nclientv2/async/database/DatabaseHelper.java @@ -41,7 +41,7 @@ public void onCreate(SQLiteDatabase db){ passOldFavorite(db); passOldFilters(db); passOldOnlineFavorite(db); - Queries.DebugDatabase.dumpDatabase(db); + //Queries.DebugDatabase.dumpDatabase(db); } @Override diff --git a/app/src/main/java/com/dar/nclientv2/async/database/Queries.java b/app/src/main/java/com/dar/nclientv2/async/database/Queries.java index 4254b6c6..b5564f46 100644 --- a/app/src/main/java/com/dar/nclientv2/async/database/Queries.java +++ b/app/src/main/java/com/dar/nclientv2/async/database/Queries.java @@ -121,7 +121,6 @@ public static Gallery[] getAllFavorite(SQLiteDatabase db,CharSequence query,bool int i=0; if(cursor.moveToFirst()){ do{ - DatabaseUtils.dumpCurrentRow(cursor); Gallery g=cursorToGallery(db,cursor); galleries[i++]=g; }while(cursor.moveToNext()); @@ -233,7 +232,6 @@ public static void removeAllFavorite(SQLiteDatabase db, boolean online){ } public static Gallery cursorToGallery(SQLiteDatabase db,Cursor cursor) throws IOException{ - DatabaseUtils.dumpCurrentRow(cursor); return new Gallery(cursor,BridgeTable.getTagsForGallery(db,cursor.getInt(getColumnFromName(cursor,IDGALLERY)))); } } diff --git a/app/src/main/java/com/dar/nclientv2/loginapi/DownloadFavorite.java b/app/src/main/java/com/dar/nclientv2/loginapi/DownloadFavorite.java index a93293cc..c3fe6e78 100644 --- a/app/src/main/java/com/dar/nclientv2/loginapi/DownloadFavorite.java +++ b/app/src/main/java/com/dar/nclientv2/loginapi/DownloadFavorite.java @@ -53,7 +53,7 @@ public void run() { pauseMainLoop(); }while (++page<=Login.getUser().getTotalPages()); //end search - adapter.getActivity().runOnUiThread(() -> adapter.getActivity().getRefresher().setRefreshing(false)); + adapter.setRefresh(false); Log.e(Global.LOGTAG,"Total: "+adapter.getItemCount()); //Queries.DebugDatabase.dumpDatabase(Database.getDatabase()); }