diff --git a/.idea/misc.xml b/.idea/misc.xml index af0bbdde..703e5d4b 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -5,7 +5,7 @@ - + diff --git a/app/src/main/java/org/nuclearfog/twidda/adapter/MessageAdapter.java b/app/src/main/java/org/nuclearfog/twidda/adapter/MessageAdapter.java index 57de5634..e92b608d 100644 --- a/app/src/main/java/org/nuclearfog/twidda/adapter/MessageAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/adapter/MessageAdapter.java @@ -85,7 +85,7 @@ public class MessageAdapter extends RecyclerView.Adapter { else vh.verify.setVisibility(View.GONE); - if (img_ldr) { + if (img_ldr) Picasso.get().load(tweet.getUser().getImageLink() + "_mini").into(vh.profile); - } } diff --git a/app/src/main/java/org/nuclearfog/twidda/adapter/TweetPagerAdapter.java b/app/src/main/java/org/nuclearfog/twidda/adapter/TweetPagerAdapter.java index 1f8ca1f1..8d3dd549 100644 --- a/app/src/main/java/org/nuclearfog/twidda/adapter/TweetPagerAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/adapter/TweetPagerAdapter.java @@ -16,7 +16,7 @@ public class TweetPagerAdapter extends FragmentPagerAdapter { super(fm); Bundle param = new Bundle(); - param.putSerializable("mode",TweetType.TWEET_ANSR); + param.putSerializable("mode", TweetType.TWEET_ANSR); param.putString("search", name); param.putBoolean("fix", false); param.putLong("id", id); 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 26eefb9e..f26919cd 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/StatusLoader.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/StatusLoader.java @@ -11,6 +11,8 @@ import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; +import com.squareup.picasso.Picasso; + import org.nuclearfog.tag.Tagger; import org.nuclearfog.twidda.R; import org.nuclearfog.twidda.backend.items.Tweet; @@ -22,8 +24,8 @@ import org.nuclearfog.twidda.window.UserProfile; import java.lang.ref.WeakReference; import java.text.NumberFormat; import java.text.SimpleDateFormat; + import twitter4j.TwitterException; -import com.squareup.picasso.Picasso; import static android.view.View.VISIBLE; import static org.nuclearfog.twidda.window.TweetDetail.STAT_CHANGED; 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 5b10e33e..9fd069f9 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/TwitterEngine.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/TwitterEngine.java @@ -11,7 +11,7 @@ import org.nuclearfog.twidda.backend.items.TwitterUser; import org.nuclearfog.twidda.database.GlobalSettings; import java.io.File; -import java.util.ArrayList; +import java.util.LinkedList; import java.util.List; import twitter4j.DirectMessage; @@ -199,7 +199,7 @@ public class TwitterEngine { * @throws TwitterException if access is unavailable */ public List getTrends(int woeId) throws TwitterException { - List result = new ArrayList<>(); + List result = new LinkedList<>(); twitter4j.Trend[] trends = twitter.getPlaceTrends(woeId).getTrends(); for (int i = 0; i < trends.length; i++) { @@ -377,7 +377,7 @@ public class TwitterEngine { IDs userIDs = twitter.getFriendsIDs(userId, cursor, load); long[] ids = userIDs.getIDs(); if (ids.length == 0) - return new ArrayList<>(); + return new LinkedList<>(); return convertUserList(twitter.lookupUsers(ids)); } @@ -393,7 +393,7 @@ public class TwitterEngine { IDs userIDs = twitter.getFollowersIDs(userId, cursor, load); long[] ids = userIDs.getIDs(); if (ids.length == 0) - return new ArrayList<>(); + return new LinkedList<>(); return convertUserList(twitter.lookupUsers(userIDs.getIDs())); } @@ -448,7 +448,7 @@ public class TwitterEngine { * @throws TwitterException if Access is unavailable */ public List getAnswers(String name, long tweetId, long sinceId) throws TwitterException { - List answers = new ArrayList<>(); + List answers = new LinkedList<>(); Query query = new Query("to:" + name + " since_id:" + sinceId + " -filter:retweets"); query.setCount(load); QueryResult result = twitter.search(query); @@ -521,7 +521,7 @@ public class TwitterEngine { tweetID = embeddedStat.getId(); long[] userIds = twitter.getRetweeterIds(tweetID, load, cursor).getIDs(); if (userIds.length == 0) - return new ArrayList<>(); + return new LinkedList<>(); return convertUserList(twitter.lookupUsers(userIds)); } @@ -534,7 +534,7 @@ public class TwitterEngine { */ public List getMessages() throws TwitterException { List dmList = twitter.getDirectMessages(load); - List result = new ArrayList<>(); + List result = new LinkedList<>(); for (DirectMessage dm : dmList) { result.add(getMessage(dm)); } @@ -607,7 +607,7 @@ public class TwitterEngine { * @return TwitterUser */ private List convertUserList(List users) { - List result = new ArrayList<>(); + List result = new LinkedList<>(); for (User user : users) { TwitterUser item = new TwitterUser(user); result.add(item); @@ -623,7 +623,7 @@ public class TwitterEngine { * @return TwitterStatus */ private List convertStatusList(List statuses) { - List result = new ArrayList<>(); + List result = new LinkedList<>(); for (Status status : statuses) result.add(new Tweet(status)); return result; diff --git a/app/src/main/java/org/nuclearfog/twidda/database/DatabaseAdapter.java b/app/src/main/java/org/nuclearfog/twidda/database/DatabaseAdapter.java index 8bd67c62..92c6f8b0 100644 --- a/app/src/main/java/org/nuclearfog/twidda/database/DatabaseAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/database/DatabaseAdapter.java @@ -11,7 +11,7 @@ import org.nuclearfog.twidda.backend.items.Trend; import org.nuclearfog.twidda.backend.items.Tweet; import org.nuclearfog.twidda.backend.items.TwitterUser; -import java.util.ArrayList; +import java.util.LinkedList; import java.util.List; import static android.database.sqlite.SQLiteDatabase.CONFLICT_IGNORE; @@ -195,7 +195,7 @@ public class DatabaseAdapter { */ public List getHomeTimeline() { SQLiteDatabase db = getDbRead(); - List tweetList = new ArrayList<>(); + List tweetList = new LinkedList<>(); final String SQL_GET_HOME = "SELECT * FROM tweet " + "INNER JOIN user ON tweet.userID=user.userID " + "WHERE statusregister&" + HOM_MASK + ">0 " + @@ -219,7 +219,7 @@ public class DatabaseAdapter { */ public List getMentions() { SQLiteDatabase db = getDbRead(); - List tweetList = new ArrayList<>(); + List tweetList = new LinkedList<>(); final String SQL_GET_HOME = "SELECT * FROM tweet " + "INNER JOIN user ON tweet.userID=user.userID " + "WHERE statusregister&" + MEN_MASK + ">0 " + @@ -244,7 +244,7 @@ public class DatabaseAdapter { */ public List getUserTweets(long userID) { SQLiteDatabase db = getDbRead(); - List tweetList = new ArrayList<>(); + List tweetList = new LinkedList<>(); final String SQL_GET_HOME = "SELECT * FROM tweet " + "INNER JOIN user ON tweet.userID = user.userID " + "WHERE statusregister&" + UTW_MASK + ">0 " + @@ -272,7 +272,7 @@ public class DatabaseAdapter { */ public List getUserFavs(long ownerID) { SQLiteDatabase db = getDbRead(); - List tweetList = new ArrayList<>(); + List tweetList = new LinkedList<>(); final String SQL_GET_HOME = "SELECT * FROM tweet " + "INNER JOIN favorit on tweet.tweetID = favorit.tweetID " + "INNER JOIN user ON tweet.userID = user.userID " + @@ -319,7 +319,7 @@ public class DatabaseAdapter { */ public List getAnswers(long tweetId) { SQLiteDatabase db = getDbRead(); - List tweetList = new ArrayList<>(); + List tweetList = new LinkedList<>(); final String SQL_GET_HOME = "SELECT * FROM tweet " + "INNER JOIN user ON tweet.userID = user.userID " + "WHERE tweet.replyID=" + tweetId + " AND statusregister&" + RPL_MASK + ">0 " + @@ -437,7 +437,7 @@ public class DatabaseAdapter { */ public List getTrends(int woeId) { SQLiteDatabase db = getDbRead(); - List trends = new ArrayList<>(); + List trends = new LinkedList<>(); final String query = "SELECT * FROM trend WHERE woeID=" + woeId + " ORDER BY trendpos ASC"; Cursor cursor = db.rawQuery(query, null); if (cursor.moveToFirst()) { @@ -460,7 +460,7 @@ public class DatabaseAdapter { * @return list of direct messages */ public List getMessages() { - List result = new ArrayList<>(); + List result = new LinkedList<>(); SQLiteDatabase db = getDbRead(); final String query = "SELECT * FROM message ORDER BY messageID DESC LIMIT " + LIMIT; Cursor cursor = db.rawQuery(query, null); @@ -735,7 +735,7 @@ public class DatabaseAdapter { private String[] parseMedia(String media) { int index; - List links = new ArrayList<>(); + List links = new LinkedList<>(); do { index = media.indexOf(';'); if (index > 0 && index < media.length()) { diff --git a/app/src/main/java/org/nuclearfog/twidda/database/GlobalSettings.java b/app/src/main/java/org/nuclearfog/twidda/database/GlobalSettings.java index 36420cc4..11e56406 100644 --- a/app/src/main/java/org/nuclearfog/twidda/database/GlobalSettings.java +++ b/app/src/main/java/org/nuclearfog/twidda/database/GlobalSettings.java @@ -289,7 +289,7 @@ public class GlobalSettings { * @return access tokens */ public String[] getKeys() { - String out[] = new String[2]; + String[] out = new String[2]; out[0] = key1; out[1] = key2; return out; diff --git a/app/src/main/java/org/nuclearfog/twidda/fragment/MessageListFragment.java b/app/src/main/java/org/nuclearfog/twidda/fragment/MessageListFragment.java index 1d9e4bd9..35848321 100644 --- a/app/src/main/java/org/nuclearfog/twidda/fragment/MessageListFragment.java +++ b/app/src/main/java/org/nuclearfog/twidda/fragment/MessageListFragment.java @@ -1,8 +1,8 @@ package org.nuclearfog.twidda.fragment; import android.content.Intent; -import android.os.Bundle; import android.os.AsyncTask.Status; +import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.Fragment; import android.support.v4.widget.SwipeRefreshLayout; @@ -19,15 +19,12 @@ import org.nuclearfog.twidda.adapter.MessageAdapter.OnItemSelected; import org.nuclearfog.twidda.backend.items.Message; import org.nuclearfog.twidda.database.GlobalSettings; import org.nuclearfog.twidda.fragment.backend.MessageLoader; +import org.nuclearfog.twidda.fragment.backend.MessageLoader.Mode; import org.nuclearfog.twidda.window.MessagePopup; import org.nuclearfog.twidda.window.SearchPage; import org.nuclearfog.twidda.window.UserProfile; -import static org.nuclearfog.twidda.fragment.backend.MessageLoader.Mode.DEL; -import static org.nuclearfog.twidda.fragment.backend.MessageLoader.Mode.LOAD; - - public class MessageListFragment extends Fragment implements OnRefreshListener, OnItemSelected { private MessageLoader messageTask; @@ -60,12 +57,11 @@ public class MessageListFragment extends Fragment implements OnRefreshListener, } - @Override public void onStart() { super.onStart(); if (messageTask == null) { - messageTask = new MessageLoader(root, LOAD); + messageTask = new MessageLoader(root, Mode.LOAD); messageTask.execute(); } } @@ -81,14 +77,14 @@ public class MessageListFragment extends Fragment implements OnRefreshListener, @Override public void onRefresh() { - messageTask = new MessageLoader(root, LOAD); + messageTask = new MessageLoader(root, Mode.LOAD); messageTask.execute(); } @Override public void onClick(String tag) { - if(!reload.isRefreshing()) { + if (!reload.isRefreshing()) { Intent intent = new Intent(getContext(), SearchPage.class); intent.putExtra("search", tag); startActivity(intent); @@ -97,31 +93,25 @@ public class MessageListFragment extends Fragment implements OnRefreshListener, @Override - public void onAnswer(Message message) { - if(!reload.isRefreshing()) { - Intent sendDm = new Intent(getContext(), MessagePopup.class); - sendDm.putExtra("username", message.getSender().getScreenname()); - startActivity(sendDm); - } - } - - - @Override - public void onDelete(Message message) { - if(!reload.isRefreshing()) { - messageTask = new MessageLoader(root, DEL); - messageTask.execute(message.getId()); - } - } - - - @Override - public void onProfileClick(Message message) { - if(!reload.isRefreshing()) { - Intent profile = new Intent(getContext(), UserProfile.class); - profile.putExtra("userID", message.getSender().getId()); - profile.putExtra("username", message.getSender().getScreenname()); - startActivity(profile); + public void onClick(Message message, Action action) { + if (!reload.isRefreshing()) { + switch (action) { + case ANSWER: + Intent sendDm = new Intent(getContext(), MessagePopup.class); + sendDm.putExtra("username", message.getSender().getScreenname()); + startActivity(sendDm); + break; + case DELETE: + messageTask = new MessageLoader(root, Mode.DEL); + messageTask.execute(message.getId()); + break; + case PROFILE: + Intent profile = new Intent(getContext(), UserProfile.class); + profile.putExtra("userID", message.getSender().getId()); + profile.putExtra("username", message.getSender().getScreenname()); + startActivity(profile); + break; + } } } } \ No newline at end of file diff --git a/app/src/main/java/org/nuclearfog/twidda/fragment/backend/MessageLoader.java b/app/src/main/java/org/nuclearfog/twidda/fragment/backend/MessageLoader.java index 872a4cc2..197a0bad 100644 --- a/app/src/main/java/org/nuclearfog/twidda/fragment/backend/MessageLoader.java +++ b/app/src/main/java/org/nuclearfog/twidda/fragment/backend/MessageLoader.java @@ -51,8 +51,14 @@ public class MessageLoader extends AsyncTask { protected void onPreExecute() { if (ui.get() == null) return; - SwipeRefreshLayout reload = ui.get().findViewById(R.id.fragment_reload); - reload.setRefreshing(true); + final SwipeRefreshLayout reload = ui.get().findViewById(R.id.fragment_reload); + reload.postDelayed(new Runnable() { + @Override + public void run() { + if (getStatus() != Status.FINISHED) + reload.setRefreshing(true); + } + }, 500); } diff --git a/app/src/main/java/org/nuclearfog/twidda/fragment/backend/TrendLoader.java b/app/src/main/java/org/nuclearfog/twidda/fragment/backend/TrendLoader.java index 8ae6cc2d..876ab74c 100644 --- a/app/src/main/java/org/nuclearfog/twidda/fragment/backend/TrendLoader.java +++ b/app/src/main/java/org/nuclearfog/twidda/fragment/backend/TrendLoader.java @@ -54,8 +54,14 @@ public class TrendLoader extends AsyncTask { protected void onPreExecute() { if (ui.get() == null) return; - SwipeRefreshLayout reload = ui.get().findViewById(R.id.fragment_reload); - reload.setRefreshing(true); + final SwipeRefreshLayout reload = ui.get().findViewById(R.id.fragment_reload); + reload.postDelayed(new Runnable() { + @Override + public void run() { + if (getStatus() != Status.FINISHED) + reload.setRefreshing(true); + } + }, 500); } diff --git a/app/src/main/java/org/nuclearfog/twidda/fragment/backend/TweetLoader.java b/app/src/main/java/org/nuclearfog/twidda/fragment/backend/TweetLoader.java index 5f912e33..99d0df84 100644 --- a/app/src/main/java/org/nuclearfog/twidda/fragment/backend/TweetLoader.java +++ b/app/src/main/java/org/nuclearfog/twidda/fragment/backend/TweetLoader.java @@ -7,7 +7,6 @@ import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.View; -import org.nuclearfog.twidda.BuildConfig; import org.nuclearfog.twidda.R; import org.nuclearfog.twidda.adapter.TweetAdapter; import org.nuclearfog.twidda.backend.ErrorHandler; @@ -21,7 +20,6 @@ import java.util.List; import twitter4j.TwitterException; - public class TweetLoader extends AsyncTask { public enum Mode { @@ -58,16 +56,20 @@ public class TweetLoader extends AsyncTask { protected void onPreExecute() { if (ui.get() == null) return; - - SwipeRefreshLayout reload = ui.get().findViewById(R.id.fragment_reload); - reload.setRefreshing(true); + final SwipeRefreshLayout reload = ui.get().findViewById(R.id.fragment_reload); + reload.postDelayed(new Runnable() { + @Override + public void run() { + if (getStatus() != Status.FINISHED) + reload.setRefreshing(true); + } + }, 500); } @Override protected Boolean doInBackground(Object[] param) { long sinceId = 1; - try { switch (mode) { case DB_HOME: @@ -130,7 +132,7 @@ public class TweetLoader extends AsyncTask { case DB_ANS: tweetId = (long) param[0]; tweets = db.getAnswers(tweetId); - if (tweets.isEmpty() || !settings.getAnswerLoad()) + if (!tweets.isEmpty() || !settings.getAnswerLoad()) break; case TWEET_ANS: diff --git a/app/src/main/java/org/nuclearfog/twidda/fragment/backend/UserLoader.java b/app/src/main/java/org/nuclearfog/twidda/fragment/backend/UserLoader.java index ee36f3c1..bc879f23 100644 --- a/app/src/main/java/org/nuclearfog/twidda/fragment/backend/UserLoader.java +++ b/app/src/main/java/org/nuclearfog/twidda/fragment/backend/UserLoader.java @@ -49,9 +49,14 @@ public class UserLoader extends AsyncTask { protected void onPreExecute() { if (ui.get() == null) return; - - SwipeRefreshLayout reload = ui.get().findViewById(R.id.fragment_reload); - reload.setRefreshing(true); + final SwipeRefreshLayout reload = ui.get().findViewById(R.id.fragment_reload); + reload.postDelayed(new Runnable() { + @Override + public void run() { + if (getStatus() != Status.FINISHED) + reload.setRefreshing(true); + } + }, 500); } diff --git a/app/src/main/java/org/nuclearfog/twidda/window/TweetDetail.java b/app/src/main/java/org/nuclearfog/twidda/window/TweetDetail.java index 86913fbb..593fcb50 100644 --- a/app/src/main/java/org/nuclearfog/twidda/window/TweetDetail.java +++ b/app/src/main/java/org/nuclearfog/twidda/window/TweetDetail.java @@ -60,7 +60,7 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener, O username = param.getString("username"); } else if (link != null) { getTweet(link.getPath()); - } else if(BuildConfig.DEBUG) { + } else if (BuildConfig.DEBUG) { throw new AssertionError(); }