From e3d90d9a11af572a4f3bcba1c5ab117a0d071f08 Mon Sep 17 00:00:00 2001 From: NudeDude Date: Mon, 5 Mar 2018 23:58:55 +0100 Subject: [PATCH] Bugfix Optimizations changed to RecyclerView --- .../org/nuclearfog/twidda/backend/MainPage.java | 14 +++++++++++--- .../nuclearfog/twidda/database/TrendDatabase.java | 15 ++++++++++----- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/MainPage.java b/app/src/main/java/org/nuclearfog/twidda/backend/MainPage.java index 90ca3a48..e4cb37da 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/MainPage.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/MainPage.java @@ -67,7 +67,7 @@ public class MainPage extends AsyncTask { switch (MODE) { case HOME: timelineAdapter = (TimelineRecycler) timelineList.getAdapter(); - if(timelineAdapter != null && timelineAdapter.getItemCount() != 0) { + if(timelineAdapter != null && timelineAdapter.getItemCount() > 0) { id = timelineAdapter.getItemId(0); timelineAdapter.getData().insert(mTwitter.getHome(page,id),true); } else { @@ -77,7 +77,11 @@ public class MainPage extends AsyncTask { break; case TRND: - trendsAdapter = new TrendRecycler(new TrendDatabase(mTwitter.getTrends(woeid),context),(MainActivity)context); + trendsAdapter = (TrendRecycler) trendList.getAdapter(); + if(trendsAdapter != null && trendsAdapter.getItemCount() > 0) + trendsAdapter.getData().setTrends( mTwitter.getTrends(woeid) ); + else + trendsAdapter = new TrendRecycler(new TrendDatabase(mTwitter.getTrends(woeid),context),(MainActivity)context); break; case MENT: @@ -112,7 +116,11 @@ public class MainPage extends AsyncTask { case TRND: trendRefresh.setRefreshing(false); - trendList.setAdapter(trendsAdapter); + if(trendList.getAdapter().getItemCount() == 0) { + trendList.setAdapter(trendsAdapter); + } else { + trendsAdapter.notifyDataSetChanged(); + } break; case MENT: diff --git a/app/src/main/java/org/nuclearfog/twidda/database/TrendDatabase.java b/app/src/main/java/org/nuclearfog/twidda/database/TrendDatabase.java index 82914d41..77ffc23b 100644 --- a/app/src/main/java/org/nuclearfog/twidda/database/TrendDatabase.java +++ b/app/src/main/java/org/nuclearfog/twidda/database/TrendDatabase.java @@ -18,15 +18,13 @@ public class TrendDatabase { private List trendName; private List trendLink; private List trendpos; - private Trends trends; - private int size = 0; + private int size; private Context c; public TrendDatabase(Trends trends, Context c) { - this.trends = trends; this.c = c; init(); - setup(); + setup(trends); store(); } @@ -36,6 +34,12 @@ public class TrendDatabase { load(); } + public void setTrends(Trends trends) { + init(); + setup(trends); + store(); + } + public String getTrendname(int pos){ return trendName.get(pos); } public String getTrendlink(int pos){return trendLink.get(pos);} public String getTrendpos(int pos){ return Integer.toString(trendpos.get(pos))+"."; } @@ -78,13 +82,14 @@ public class TrendDatabase { } private void init() { + size = 0; dataHelper = AppDatabase.getInstance(c); trendpos = new ArrayList<>(); trendName = new ArrayList<>(); trendLink = new ArrayList<>(); } - private void setup() { + private void setup(Trends trends) { SharedPreferences settings = c.getSharedPreferences("settings", 0); SharedPreferences.Editor e = settings.edit(); e.putString("location", trends.getLocation().getName()).apply();