mirror of
https://github.com/nuclearfog/Shitter.git
synced 2025-02-09 08:38:38 +01:00
finalized fragments, performance improvement
This commit is contained in:
parent
d433cad0cd
commit
8c05980ab6
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@ -5,7 +5,7 @@
|
||||
<configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" />
|
||||
</configurations>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
|
@ -85,7 +85,7 @@ public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MessageH
|
||||
RecyclerView rv = (RecyclerView) parent;
|
||||
int position = rv.getChildLayoutPosition(view);
|
||||
if (itemClickListener.get() != null)
|
||||
itemClickListener.get().onAnswer(messages[position]);
|
||||
itemClickListener.get().onClick(messages[position], OnItemSelected.Action.ANSWER);
|
||||
}
|
||||
});
|
||||
view.findViewById(R.id.dm_delete).setOnClickListener(new View.OnClickListener() {
|
||||
@ -94,7 +94,7 @@ public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MessageH
|
||||
RecyclerView rv = (RecyclerView) parent;
|
||||
int position = rv.getChildLayoutPosition(view);
|
||||
if (itemClickListener.get() != null)
|
||||
itemClickListener.get().onDelete(messages[position]);
|
||||
itemClickListener.get().onClick(messages[position], OnItemSelected.Action.DELETE);
|
||||
}
|
||||
});
|
||||
view.findViewById(R.id.dm_profileImg).setOnClickListener(new View.OnClickListener() {
|
||||
@ -103,7 +103,7 @@ public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MessageH
|
||||
RecyclerView rv = (RecyclerView) parent;
|
||||
int position = rv.getChildLayoutPosition(view);
|
||||
if (itemClickListener.get() != null)
|
||||
itemClickListener.get().onProfileClick(messages[position]);
|
||||
itemClickListener.get().onClick(messages[position], OnItemSelected.Action.PROFILE);
|
||||
}
|
||||
});
|
||||
return new MessageHolder(view);
|
||||
@ -183,10 +183,12 @@ public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MessageH
|
||||
|
||||
public interface OnItemSelected extends OnTagClickListener {
|
||||
|
||||
void onAnswer(Message message);
|
||||
enum Action {
|
||||
ANSWER,
|
||||
DELETE,
|
||||
PROFILE
|
||||
}
|
||||
|
||||
void onDelete(Message message);
|
||||
|
||||
void onProfileClick(Message message);
|
||||
void onClick(Message message, Action action);
|
||||
}
|
||||
}
|
@ -137,9 +137,8 @@ public class TweetAdapter extends Adapter<TweetAdapter.ItemHolder> {
|
||||
else
|
||||
vh.verify.setVisibility(View.GONE);
|
||||
|
||||
if (img_ldr) {
|
||||
if (img_ldr)
|
||||
Picasso.get().load(tweet.getUser().getImageLink() + "_mini").into(vh.profile);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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<Trend> getTrends(int woeId) throws TwitterException {
|
||||
List<Trend> result = new ArrayList<>();
|
||||
List<Trend> 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<Tweet> getAnswers(String name, long tweetId, long sinceId) throws TwitterException {
|
||||
List<Status> answers = new ArrayList<>();
|
||||
List<Status> 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<Message> getMessages() throws TwitterException {
|
||||
List<DirectMessage> dmList = twitter.getDirectMessages(load);
|
||||
List<Message> result = new ArrayList<>();
|
||||
List<Message> result = new LinkedList<>();
|
||||
for (DirectMessage dm : dmList) {
|
||||
result.add(getMessage(dm));
|
||||
}
|
||||
@ -607,7 +607,7 @@ public class TwitterEngine {
|
||||
* @return TwitterUser
|
||||
*/
|
||||
private List<TwitterUser> convertUserList(List<User> users) {
|
||||
List<TwitterUser> result = new ArrayList<>();
|
||||
List<TwitterUser> 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<Tweet> convertStatusList(List<Status> statuses) {
|
||||
List<Tweet> result = new ArrayList<>();
|
||||
List<Tweet> result = new LinkedList<>();
|
||||
for (Status status : statuses)
|
||||
result.add(new Tweet(status));
|
||||
return result;
|
||||
|
@ -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<Tweet> getHomeTimeline() {
|
||||
SQLiteDatabase db = getDbRead();
|
||||
List<Tweet> tweetList = new ArrayList<>();
|
||||
List<Tweet> 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<Tweet> getMentions() {
|
||||
SQLiteDatabase db = getDbRead();
|
||||
List<Tweet> tweetList = new ArrayList<>();
|
||||
List<Tweet> 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<Tweet> getUserTweets(long userID) {
|
||||
SQLiteDatabase db = getDbRead();
|
||||
List<Tweet> tweetList = new ArrayList<>();
|
||||
List<Tweet> 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<Tweet> getUserFavs(long ownerID) {
|
||||
SQLiteDatabase db = getDbRead();
|
||||
List<Tweet> tweetList = new ArrayList<>();
|
||||
List<Tweet> 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<Tweet> getAnswers(long tweetId) {
|
||||
SQLiteDatabase db = getDbRead();
|
||||
List<Tweet> tweetList = new ArrayList<>();
|
||||
List<Tweet> 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<Trend> getTrends(int woeId) {
|
||||
SQLiteDatabase db = getDbRead();
|
||||
List<Trend> trends = new ArrayList<>();
|
||||
List<Trend> 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<Message> getMessages() {
|
||||
List<Message> result = new ArrayList<>();
|
||||
List<Message> 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<String> links = new ArrayList<>();
|
||||
List<String> links = new LinkedList<>();
|
||||
do {
|
||||
index = media.indexOf(';');
|
||||
if (index > 0 && index < media.length()) {
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -51,8 +51,14 @@ public class MessageLoader extends AsyncTask<Long, Void, Boolean> {
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -54,8 +54,14 @@ public class TrendLoader extends AsyncTask<Void, Void, Boolean> {
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -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<Object, Void, Boolean> {
|
||||
|
||||
public enum Mode {
|
||||
@ -58,16 +56,20 @@ public class TweetLoader extends AsyncTask<Object, Void, Boolean> {
|
||||
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<Object, Void, Boolean> {
|
||||
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:
|
||||
|
@ -49,9 +49,14 @@ public class UserLoader extends AsyncTask<Object, Void, Boolean> {
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user