From 6beb9b5db5209a265530ca5ddc38e3b117e1e568 Mon Sep 17 00:00:00 2001 From: NudeDude Date: Thu, 20 Sep 2018 14:46:47 +0200 Subject: [PATCH] bug fix --- .idea/misc.xml | 2 +- .../org/nuclearfog/twidda/MainActivity.java | 49 ++++++++----------- .../nuclearfog/twidda/backend/MainPage.java | 4 +- .../twidda/backend/MessageLoader.java | 20 ++++---- .../twidda/backend/ProfileLoader.java | 6 +-- .../twidda/backend/StatusLoader.java | 19 +++---- .../twidda/backend/TwitterEngine.java | 4 ++ .../twidda/backend/TwitterSearch.java | 3 +- .../nuclearfog/twidda/window/AppSettings.java | 2 + app/src/main/res/layout/page_login.xml | 1 + 10 files changed, 55 insertions(+), 55 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index c0f68edd..99202cc2 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -25,7 +25,7 @@ - + diff --git a/app/src/main/java/org/nuclearfog/twidda/MainActivity.java b/app/src/main/java/org/nuclearfog/twidda/MainActivity.java index 3fef6eea..0936a4c9 100644 --- a/app/src/main/java/org/nuclearfog/twidda/MainActivity.java +++ b/app/src/main/java/org/nuclearfog/twidda/MainActivity.java @@ -59,8 +59,6 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener super.onCreate(savedInstanceState); setContentView(R.layout.page_main); - settings = GlobalSettings.getInstance(this); - timelineList = findViewById(R.id.tl_list); trendList = findViewById(R.id.tr_list); mentionList = findViewById(R.id.m_list); @@ -90,19 +88,13 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener tabhost.addTab(tab3); timelineList.setLayoutManager(new LinearLayoutManager(this)); - timelineList.setHasFixedSize(true); - timelineAdapter = new TimelineAdapter(this); - timelineList.setAdapter(timelineAdapter); - trendList.setLayoutManager(new LinearLayoutManager(this)); - trendList.setHasFixedSize(true); - trendsAdapter = new TrendAdapter(this); - trendList.setAdapter(trendsAdapter); - mentionList.setLayoutManager(new LinearLayoutManager(this)); + timelineList.setHasFixedSize(true); + trendList.setHasFixedSize(true); mentionList.setHasFixedSize(true); - mentionAdapter = new TimelineAdapter(this); - mentionList.setAdapter(mentionAdapter); + + settings = GlobalSettings.getInstance(this); lastTab = tabhost.getCurrentView(); tabhost.setOnTabChangedListener(this); @@ -118,23 +110,27 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener if (!settings.getLogin()) { Intent i = new Intent(this, LoginPage.class); startActivityForResult(i, LOGIN); - } - if (home == null || settingChanged) { + } else if (home == null || settingChanged) { root.setBackgroundColor(settings.getBackgroundColor()); + + timelineAdapter = new TimelineAdapter(this); + trendsAdapter = new TrendAdapter(this); + mentionAdapter = new TimelineAdapter(this); + timelineAdapter.setColor(settings.getHighlightColor(), settings.getFontColor()); timelineAdapter.toggleImage(settings.loadImages()); trendsAdapter.setColor(settings.getFontColor()); mentionAdapter.setColor(settings.getHighlightColor(), settings.getFontColor()); mentionAdapter.toggleImage(settings.loadImages()); - timelineAdapter.notifyDataSetChanged(); - trendsAdapter.notifyDataSetChanged(); - mentionAdapter.notifyDataSetChanged(); - if (!settingChanged) { - home = new MainPage(this); - home.execute(MainPage.DATA, 1); - } else { - settingChanged = false; - } + + timelineList.setAdapter(timelineAdapter); + trendList.setAdapter(trendsAdapter); + mentionList.setAdapter(mentionAdapter); + + home = new MainPage(this); + home.execute(MainPage.DATA, 1); + + settingChanged = false; } } @@ -286,7 +282,6 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener @Override public void onItemClick(ViewGroup parent, int position) { if (parent.getId() == R.id.tl_list && !timelineReload.isRefreshing()) { - TimelineAdapter timelineAdapter = (TimelineAdapter) timelineList.getAdapter(); if (timelineAdapter != null) { Tweet tweet = timelineAdapter.getData().get(position); if (tweet.embedded != null) @@ -298,9 +293,8 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener startActivity(intent); } } else if (parent.getId() == R.id.tr_list && !trendReload.isRefreshing()) { - TrendAdapter trendAdapter = (TrendAdapter) trendList.getAdapter(); - if (trendAdapter != null) { - String search = trendAdapter.getData().get(position).trend; + if (trendsAdapter != null) { + String search = trendsAdapter.getData().get(position).trend; Intent intent = new Intent(this, SearchPage.class); if (!search.startsWith("#")) search = '\"' + search + '\"'; @@ -308,7 +302,6 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener startActivity(intent); } } else if (parent.getId() == R.id.m_list && !mentionReload.isRefreshing()) { - TimelineAdapter mentionAdapter = (TimelineAdapter) mentionList.getAdapter(); if (mentionAdapter != null) { Tweet tweet = mentionAdapter.getData().get(position); if (tweet.embedded != null) 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 002b149c..babfd477 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/MainPage.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/MainPage.java @@ -83,9 +83,9 @@ public class MainPage extends AsyncTask { } else if (MODE == MENT) { if (mentionAdapter.getItemCount() != 0) sinceId = mentionAdapter.getItemId(0); - tweets = mTwitter.getMention(PAGE, sinceId); + mention = mTwitter.getMention(PAGE, sinceId); publishProgress(MENT); - tweetDb.storeMentions(tweets); + tweetDb.storeMentions(mention); } else { tweets = tweetDb.getHomeTimeline(); publishProgress(HOME); diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/MessageLoader.java b/app/src/main/java/org/nuclearfog/twidda/backend/MessageLoader.java index 13836a03..4af6b8e7 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/MessageLoader.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/MessageLoader.java @@ -24,7 +24,7 @@ public class MessageLoader extends AsyncTask { private MessageAdapter mAdapter; private TwitterEngine twitter; private DatabaseAdapter mData; - private List msg; + private List message; private String errorMsg = "E MessageLoader: "; private int returnCode = 0; @@ -34,7 +34,7 @@ public class MessageLoader extends AsyncTask { RecyclerView dm_list = context.findViewById(R.id.messagelist); mAdapter = (MessageAdapter) dm_list.getAdapter(); twitter = TwitterEngine.getInstance(context); - msg = new ArrayList<>(); + message = new ArrayList<>(); mData = new DatabaseAdapter(context); } @@ -43,14 +43,14 @@ public class MessageLoader extends AsyncTask { protected Boolean doInBackground(Void... param) { try { if (mAdapter.getItemCount() > 0) { - msg = twitter.getMessages(); - mData.storeMessage(msg); - msg = mData.getMessages(); + message = twitter.getMessages(); + mData.storeMessage(message); + message = mData.getMessages(); } else { - msg = mData.getMessages(); - if (msg.size() == 0) { - msg = twitter.getMessages(); - mData.storeMessage(msg); + message = mData.getMessages(); + if (message.isEmpty()) { + message = twitter.getMessages(); + mData.storeMessage(message); } } } catch (TwitterException err) { @@ -72,7 +72,7 @@ public class MessageLoader extends AsyncTask { if (ui.get() == null) return; if (success) { - mAdapter.setData(msg); + mAdapter.setData(message); mAdapter.notifyDataSetChanged(); } else { switch (returnCode) { diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/ProfileLoader.java b/app/src/main/java/org/nuclearfog/twidda/backend/ProfileLoader.java index b21d1cce..48ca8055 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/ProfileLoader.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/ProfileLoader.java @@ -141,21 +141,21 @@ public class ProfileLoader extends AsyncTask { publishProgress(GET_USER); } else { boolean access = (!user.isLocked || isFollowing); + if ((MODE == GET_TWEETS || homeTl.getItemCount() == 0) && access) { if (homeTl.getItemCount() > 0) sinceId = homeTl.getItemId(0); tweets = mTwitter.getUserTweets(UID, sinceId, page); database.storeUserTweets(tweets); + publishProgress(GET_TWEETS); } - publishProgress(GET_TWEETS); - if ((MODE == GET_FAVORS || homeFav.getItemCount() == 0) && access) { if (homeFav.getItemCount() > 0) sinceId = homeFav.getItemId(0); favors = mTwitter.getUserFavs(UID, sinceId, page); database.storeUserFavs(favors, UID); + publishProgress(GET_FAVORS); } - publishProgress(GET_FAVORS); } } catch (TwitterException err) { returnCode = err.getErrorCode(); diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/StatusLoader.java b/app/src/main/java/org/nuclearfog/twidda/backend/StatusLoader.java index 58650550..8c9d83cb 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/StatusLoader.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/StatusLoader.java @@ -80,14 +80,15 @@ public class StatusLoader extends AsyncTask { try { if (MODE == LOAD) { - tweet = database.getStatus(TWEETID); - answers = database.getAnswers(TWEETID); - if (tweet != null) + if (database.containStatus(TWEETID) && answerAdapter.getItemCount() == 0) { + tweet = database.getStatus(TWEETID); + answers = database.getAnswers(TWEETID); publishProgress(); + } tweet = mTwitter.getStatus(TWEETID); - if (!answers.isEmpty()) - sinceId = answers.get(0).tweetID; + if (answerAdapter.getItemCount() > 0) + sinceId = answerAdapter.getItemId(0); answers = mTwitter.getAnswers(tweet.user.screenname, TWEETID, sinceId); publishProgress(); @@ -109,21 +110,21 @@ public class StatusLoader extends AsyncTask { } else if (MODE == FAVORITE) { tweet = mTwitter.favorite(TWEETID); - if (tweet.favorized) { + if (tweet.favorized) database.storeFavorite(TWEETID); - } else { + else database.removeFavorite(TWEETID); - } publishProgress(); } + } catch (TwitterException err) { returnCode = err.getErrorCode(); if (returnCode == 144) database.removeStatus(TWEETID); else errMsg += err.getMessage(); - return ERROR; + } catch (Exception err) { err.printStackTrace(); errMsg += err.getMessage(); diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/TwitterEngine.java b/app/src/main/java/org/nuclearfog/twidda/backend/TwitterEngine.java index aba7bf3a..f400cbee 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/TwitterEngine.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/TwitterEngine.java @@ -81,6 +81,10 @@ public class TwitterEngine { return mTwitter; } + public static void destroyInstance() { + mTwitter = null; + } + /** * Request Registration Website * diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/TwitterSearch.java b/app/src/main/java/org/nuclearfog/twidda/backend/TwitterSearch.java index 627ab6af..3d0c72dd 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/TwitterSearch.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/TwitterSearch.java @@ -63,9 +63,8 @@ public class TwitterSearch extends AsyncTask { } } catch (TwitterException err) { returnCode = err.getErrorCode(); - if (returnCode > 0 && returnCode != 420) { + if (returnCode > 0 && returnCode != 420) errMsg += err.getMessage(); - } return false; } catch (Exception err) { errMsg += err.getMessage(); diff --git a/app/src/main/java/org/nuclearfog/twidda/window/AppSettings.java b/app/src/main/java/org/nuclearfog/twidda/window/AppSettings.java index e7a071c7..0c04e558 100644 --- a/app/src/main/java/org/nuclearfog/twidda/window/AppSettings.java +++ b/app/src/main/java/org/nuclearfog/twidda/window/AppSettings.java @@ -24,6 +24,7 @@ import com.flask.colorpicker.OnColorChangedListener; import com.flask.colorpicker.builder.ColorPickerDialogBuilder; import org.nuclearfog.twidda.R; +import org.nuclearfog.twidda.backend.TwitterEngine; import org.nuclearfog.twidda.database.GlobalSettings; import org.nuclearfog.twidda.viewadapter.WorldIdAdapter; @@ -169,6 +170,7 @@ public class AppSettings extends AppCompatActivity implements OnClickListener, @Override public void onClick(DialogInterface dialog, int which) { settings.logout(); + TwitterEngine.destroyInstance(); deleteDatabase("database.db"); finish(); } diff --git a/app/src/main/res/layout/page_login.xml b/app/src/main/res/layout/page_login.xml index 79cd47ef..40a044b1 100644 --- a/app/src/main/res/layout/page_login.xml +++ b/app/src/main/res/layout/page_login.xml @@ -2,6 +2,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_horizontal" + android:background="@color/DarkBlue" android:gravity="center" android:orientation="vertical">