bug fix rearrange code
This commit is contained in:
parent
a0efc085b4
commit
fd63dfb805
|
@ -5,7 +5,7 @@
|
|||
<configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" />
|
||||
</configurations>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
|
|
|
@ -16,6 +16,15 @@ public class HomePagerAdapter extends FragmentPagerAdapter {
|
|||
private static final int COUNT = 3;
|
||||
private final Fragment[] fragments;
|
||||
|
||||
private static final Bundle HOME_TL = new Bundle();
|
||||
private static final Bundle MENT_TL = new Bundle();
|
||||
|
||||
static {
|
||||
HOME_TL.putSerializable("mode", TweetType.HOME);
|
||||
MENT_TL.putSerializable("mode", TweetType.MENT);
|
||||
HOME_TL.putBoolean("fix", true);
|
||||
MENT_TL.putBoolean("fix", true);
|
||||
}
|
||||
|
||||
public HomePagerAdapter(FragmentManager fm) {
|
||||
super(fm);
|
||||
|
@ -23,14 +32,6 @@ public class HomePagerAdapter extends FragmentPagerAdapter {
|
|||
fragments[0] = new TweetListFragment();
|
||||
fragments[1] = new TrendListFragment();
|
||||
fragments[2] = new TweetListFragment();
|
||||
|
||||
Bundle HOME_TL = new Bundle();
|
||||
Bundle MENT_TL = new Bundle();
|
||||
HOME_TL.putSerializable("mode", TweetType.HOME);
|
||||
MENT_TL.putSerializable("mode", TweetType.MENT);
|
||||
HOME_TL.putBoolean("fix", true);
|
||||
MENT_TL.putBoolean("fix", true);
|
||||
|
||||
fragments[0].setArguments(HOME_TL);
|
||||
fragments[2].setArguments(MENT_TL);
|
||||
}
|
||||
|
|
|
@ -1,15 +1,13 @@
|
|||
package org.nuclearfog.twidda.adapter;
|
||||
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
|
||||
public interface OnItemClickListener {
|
||||
|
||||
/**
|
||||
* Item Click Listener
|
||||
*
|
||||
* @param rv RecyclerView
|
||||
* @param index Position of View
|
||||
*/
|
||||
void onItemClick(RecyclerView rv, int index);
|
||||
void onItemClick(int index);
|
||||
|
||||
}
|
|
@ -20,7 +20,7 @@ public class TrendAdapter extends Adapter<TrendAdapter.ItemHolder> {
|
|||
|
||||
|
||||
private WeakReference<OnItemClickListener> itemClickListener;
|
||||
private Trend trends[];
|
||||
private Trend[] trends;
|
||||
private int font_color;
|
||||
|
||||
|
||||
|
@ -62,7 +62,7 @@ public class TrendAdapter extends Adapter<TrendAdapter.ItemHolder> {
|
|||
RecyclerView rv = (RecyclerView) parent;
|
||||
int position = rv.getChildLayoutPosition(v);
|
||||
if (itemClickListener.get() != null)
|
||||
itemClickListener.get().onItemClick(rv, position);
|
||||
itemClickListener.get().onItemClick(position);
|
||||
}
|
||||
});
|
||||
return new ItemHolder(v);
|
||||
|
|
|
@ -94,7 +94,7 @@ public class TweetAdapter extends Adapter<TweetAdapter.ItemHolder> {
|
|||
RecyclerView rv = (RecyclerView) parent;
|
||||
int position = rv.getChildLayoutPosition(v);
|
||||
if (itemClickListener.get() != null)
|
||||
itemClickListener.get().onItemClick(rv, position);
|
||||
itemClickListener.get().onItemClick(position);
|
||||
}
|
||||
});
|
||||
return new ItemHolder(v);
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
package org.nuclearfog.twidda.adapter;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v4.app.FragmentPagerAdapter;
|
||||
|
||||
import org.nuclearfog.twidda.fragment.TweetListFragment;
|
||||
import org.nuclearfog.twidda.fragment.TweetListFragment.TweetType;
|
||||
|
||||
public class TweetPagerAdapter extends FragmentPagerAdapter {
|
||||
|
||||
private Fragment[] fragments;
|
||||
|
||||
public TweetPagerAdapter(FragmentManager fm, long id, String name) {
|
||||
super(fm);
|
||||
|
||||
Bundle param = new Bundle();
|
||||
param.putSerializable("mode",TweetType.TWEET_ANSR);
|
||||
param.putString("search", name);
|
||||
param.putBoolean("fix", false);
|
||||
param.putLong("id", id);
|
||||
fragments = new Fragment[1];
|
||||
fragments[0] = new TweetListFragment();
|
||||
fragments[0].setArguments(param);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Fragment getItem(int pos) {
|
||||
return fragments[pos];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return fragments.length;
|
||||
}
|
||||
}
|
|
@ -77,7 +77,7 @@ public class UserAdapter extends Adapter<UserAdapter.ItemHolder> {
|
|||
RecyclerView rv = (RecyclerView) parent;
|
||||
int position = rv.getChildLayoutPosition(v);
|
||||
if (itemClickListener.get() != null)
|
||||
itemClickListener.get().onItemClick(rv, position);
|
||||
itemClickListener.get().onItemClick(position);
|
||||
}
|
||||
});
|
||||
return new ItemHolder(v);
|
||||
|
|
|
@ -22,7 +22,7 @@ public class ImageLoader extends AsyncTask<String, Void, Boolean> {
|
|||
|
||||
private WeakReference<ImageDetail> ui;
|
||||
private ImageAdapter imageAdapter;
|
||||
private Bitmap images[];
|
||||
private Bitmap[] images;
|
||||
|
||||
|
||||
public ImageLoader(@NonNull ImageDetail context) {
|
||||
|
|
|
@ -3,8 +3,6 @@ package org.nuclearfog.twidda.backend;
|
|||
import android.content.Intent;
|
||||
import android.os.AsyncTask;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.text.Spannable;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.util.Log;
|
||||
|
@ -13,11 +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.adapter.TweetAdapter;
|
||||
import org.nuclearfog.twidda.backend.items.Tweet;
|
||||
import org.nuclearfog.twidda.database.DatabaseAdapter;
|
||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
|
@ -27,19 +22,17 @@ import org.nuclearfog.twidda.window.UserProfile;
|
|||
import java.lang.ref.WeakReference;
|
||||
import java.text.NumberFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import twitter4j.TwitterException;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import static android.view.View.VISIBLE;
|
||||
import static org.nuclearfog.twidda.window.TweetDetail.STAT_CHANGED;
|
||||
|
||||
|
||||
public class StatusLoader extends AsyncTask<Long, Void, Void> {
|
||||
|
||||
public enum Mode {
|
||||
LOAD,
|
||||
ANS,
|
||||
RETWEET,
|
||||
FAVORITE,
|
||||
DELETE
|
||||
|
@ -51,48 +44,31 @@ public class StatusLoader extends AsyncTask<Long, Void, Void> {
|
|||
private TwitterEngine mTwitter;
|
||||
private TwitterException err;
|
||||
private WeakReference<TweetDetail> ui;
|
||||
private TweetAdapter answerAdapter;
|
||||
private SimpleDateFormat sdf;
|
||||
private NumberFormat formatter;
|
||||
private List<Tweet> answers;
|
||||
private Tweet tweet;
|
||||
private int highlight, font_color;
|
||||
private boolean toggleImg, toggleAns;
|
||||
private long homeId;
|
||||
private int font_color, highlight;
|
||||
private boolean toggleImg;
|
||||
|
||||
|
||||
public StatusLoader(@NonNull TweetDetail context, Mode mode) {
|
||||
mTwitter = TwitterEngine.getInstance(context);
|
||||
GlobalSettings settings = GlobalSettings.getInstance(context);
|
||||
RecyclerView replyList = context.findViewById(R.id.answer_list);
|
||||
answerAdapter = (TweetAdapter) replyList.getAdapter();
|
||||
sdf = settings.getDateFormatter();
|
||||
formatter = NumberFormat.getIntegerInstance();
|
||||
font_color = settings.getFontColor();
|
||||
highlight = settings.getHighlightColor();
|
||||
toggleImg = settings.getImageLoad();
|
||||
toggleAns = settings.getAnswerLoad();
|
||||
homeId = settings.getUserId();
|
||||
ui = new WeakReference<>(context);
|
||||
answers = new ArrayList<>();
|
||||
this.mode = mode;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
if (ui.get() == null) return;
|
||||
if (mode == Mode.LOAD && toggleAns) {
|
||||
SwipeRefreshLayout ansReload = ui.get().findViewById(R.id.answer_reload);
|
||||
ansReload.setRefreshing(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected Void doInBackground(Long... data) {
|
||||
final long TWEETID = data[0];
|
||||
long sinceId = TWEETID;
|
||||
boolean updateStatus = false;
|
||||
DatabaseAdapter db = new DatabaseAdapter(ui.get());
|
||||
try {
|
||||
|
@ -100,26 +76,12 @@ public class StatusLoader extends AsyncTask<Long, Void, Void> {
|
|||
case LOAD:
|
||||
tweet = db.getStatus(TWEETID);
|
||||
if (tweet != null) {
|
||||
answers = db.getAnswers(TWEETID);
|
||||
publishProgress();
|
||||
updateStatus = true;
|
||||
}
|
||||
case ANS:
|
||||
tweet = mTwitter.getStatus(TWEETID);
|
||||
if (!updateStatus)
|
||||
updateStatus = db.containStatus(TWEETID);
|
||||
|
||||
if (mode == Mode.ANS || toggleAns) {
|
||||
if (answerAdapter.getItemCount() > 0)
|
||||
sinceId = answerAdapter.getItemId(0);
|
||||
answers = mTwitter.getAnswers(tweet.getUser().getScreenname(), TWEETID, sinceId);
|
||||
if (updateStatus && !answers.isEmpty())
|
||||
db.storeReplies(answers);
|
||||
answers.addAll(answerAdapter.getData());
|
||||
}
|
||||
publishProgress();
|
||||
|
||||
if (updateStatus)
|
||||
if (!updateStatus)
|
||||
db.updateStatus(tweet);
|
||||
break;
|
||||
|
||||
|
@ -166,19 +128,11 @@ public class StatusLoader extends AsyncTask<Long, Void, Void> {
|
|||
protected void onProgressUpdate(Void... v) {
|
||||
if (ui.get() == null) return;
|
||||
|
||||
if (!answers.isEmpty()) {
|
||||
SwipeRefreshLayout ansReload = ui.get().findViewById(R.id.answer_reload);
|
||||
ansReload.setRefreshing(false);
|
||||
answerAdapter.setData(answers);
|
||||
answerAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
TextView username = ui.get().findViewById(R.id.usernamedetail);
|
||||
TextView scrName = ui.get().findViewById(R.id.scrnamedetail);
|
||||
TextView replyName = ui.get().findViewById(R.id.answer_reference_detail);
|
||||
TextView txtRet = ui.get().findViewById(R.id.no_rt_detail);
|
||||
TextView txtFav = ui.get().findViewById(R.id.no_fav_detail);
|
||||
TextView txtAns = ui.get().findViewById(R.id.no_ans_detail);
|
||||
ImageView profile_img = ui.get().findViewById(R.id.profileimage_detail);
|
||||
ImageView retweetButton = ui.get().findViewById(R.id.rt_button_detail);
|
||||
ImageView favoriteButton = ui.get().findViewById(R.id.fav_button_detail);
|
||||
|
@ -240,7 +194,6 @@ public class StatusLoader extends AsyncTask<Long, Void, Void> {
|
|||
|
||||
txtFav.setText(formatter.format(tweet.getFavorCount()));
|
||||
txtRet.setText(formatter.format(tweet.getRetweetCount()));
|
||||
txtAns.setText(formatter.format(answerAdapter.getItemCount()));
|
||||
|
||||
if (tweet.getReplyId() > 1) {
|
||||
String reply = ui.get().getString(R.string.answering);
|
||||
|
@ -283,11 +236,6 @@ public class StatusLoader extends AsyncTask<Long, Void, Void> {
|
|||
protected void onPostExecute(Void v) {
|
||||
if (ui.get() == null) return;
|
||||
|
||||
if (answers.isEmpty()) {
|
||||
SwipeRefreshLayout ansReload = ui.get().findViewById(R.id.answer_reload);
|
||||
ansReload.setRefreshing(false);
|
||||
}
|
||||
|
||||
if (!failure) {
|
||||
if (mode == Mode.DELETE) {
|
||||
Toast.makeText(ui.get(), R.string.tweet_removed, Toast.LENGTH_SHORT).show();
|
||||
|
@ -302,13 +250,4 @@ public class StatusLoader extends AsyncTask<Long, Void, Void> {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCancelled() {
|
||||
if (ui.get() == null) return;
|
||||
|
||||
SwipeRefreshLayout ansReload = ui.get().findViewById(R.id.answer_reload);
|
||||
ansReload.setRefreshing(false);
|
||||
}
|
||||
}
|
|
@ -85,7 +85,7 @@ public class TrendListFragment extends Fragment implements OnRefreshListener, On
|
|||
|
||||
|
||||
@Override
|
||||
public void onItemClick(RecyclerView rv, int pos) {
|
||||
public void onItemClick(int pos) {
|
||||
if (!reload.isRefreshing()) {
|
||||
String search = adapter.getData(pos).getName();
|
||||
Intent intent = new Intent(getContext(), SearchPage.class);
|
||||
|
|
|
@ -62,7 +62,6 @@ public class TweetListFragment extends Fragment implements OnRefreshListener, On
|
|||
|
||||
View v = inflater.inflate(R.layout.fragment_list, parent, false);
|
||||
|
||||
|
||||
reload = v.findViewById(R.id.fragment_reload);
|
||||
reload.setOnRefreshListener(this);
|
||||
adapter = new TweetAdapter(this);
|
||||
|
@ -111,7 +110,7 @@ public class TweetListFragment extends Fragment implements OnRefreshListener, On
|
|||
break;
|
||||
case TWEET_ANSR:
|
||||
tweetTask = new TweetLoader(root, Mode.DB_ANS);
|
||||
tweetTask.execute(id);
|
||||
tweetTask.execute(id, search);
|
||||
break;
|
||||
case SEARCH:
|
||||
tweetTask = new TweetLoader(root, Mode.TWEET_SEARCH);
|
||||
|
@ -155,7 +154,7 @@ public class TweetListFragment extends Fragment implements OnRefreshListener, On
|
|||
break;
|
||||
case TWEET_ANSR:
|
||||
tweetTask = new TweetLoader(root, Mode.TWEET_ANS);
|
||||
tweetTask.execute(id);
|
||||
tweetTask.execute(id, search);
|
||||
break;
|
||||
case SEARCH:
|
||||
tweetTask = new TweetLoader(root, Mode.TWEET_SEARCH);
|
||||
|
@ -170,7 +169,7 @@ public class TweetListFragment extends Fragment implements OnRefreshListener, On
|
|||
|
||||
|
||||
@Override
|
||||
public void onItemClick(RecyclerView rv, int pos) {
|
||||
public void onItemClick(int pos) {
|
||||
if (!reload.isRefreshing()) {
|
||||
Tweet tweet = adapter.getData(pos);
|
||||
if (tweet.getEmbeddedTweet() != null)
|
||||
|
|
|
@ -102,7 +102,7 @@ public class UserListFragment extends Fragment implements OnRefreshListener, OnI
|
|||
|
||||
|
||||
@Override
|
||||
public void onItemClick(RecyclerView rv, int pos) {
|
||||
public void onItemClick(int pos) {
|
||||
if (!reload.isRefreshing()) {
|
||||
TwitterUser user = adapter.getData(pos);
|
||||
long userID = user.getId();
|
||||
|
|
|
@ -4,6 +4,7 @@ import android.os.AsyncTask;
|
|||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.util.Log;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import org.nuclearfog.twidda.adapter.MessageAdapter;
|
||||
|
@ -73,13 +74,14 @@ public class MessageLoader extends AsyncTask<Long, Void, Boolean> {
|
|||
break;
|
||||
}
|
||||
} catch (TwitterException err) {
|
||||
if (err.getErrorCode() == 34) {
|
||||
if (err.getErrorCode() == 34)
|
||||
db.deleteDm(messageId);
|
||||
} else {
|
||||
else
|
||||
this.err = err;
|
||||
}
|
||||
return false;
|
||||
} catch (Exception err) {
|
||||
if (err.getMessage() != null)
|
||||
Log.e("Status Loader", err.getMessage());
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -4,6 +4,7 @@ import android.os.AsyncTask;
|
|||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
|
@ -76,6 +77,8 @@ public class TrendLoader extends AsyncTask<Void, Void, Boolean> {
|
|||
this.err = err;
|
||||
return false;
|
||||
} catch (Exception err) {
|
||||
if (err.getMessage() != null)
|
||||
Log.e("Status Loader", err.getMessage());
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -4,8 +4,10 @@ import android.os.AsyncTask;
|
|||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
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;
|
||||
|
@ -65,6 +67,7 @@ public class TweetLoader extends AsyncTask<Object, Void, Boolean> {
|
|||
@Override
|
||||
protected Boolean doInBackground(Object[] param) {
|
||||
long sinceId = 1;
|
||||
|
||||
try {
|
||||
switch (mode) {
|
||||
case DB_HOME:
|
||||
|
@ -95,49 +98,57 @@ public class TweetLoader extends AsyncTask<Object, Void, Boolean> {
|
|||
break;
|
||||
|
||||
case DB_TWEETS:
|
||||
tweets = db.getUserTweets((long) param[0]);
|
||||
long tweetId = (long) param[0];
|
||||
tweets = db.getUserTweets(tweetId);
|
||||
if (!tweets.isEmpty())
|
||||
break;
|
||||
|
||||
case USR_TWEETS:
|
||||
tweetId = (long) param[0];
|
||||
if (adapter.getItemCount() > 0)
|
||||
sinceId = adapter.getItemId(0);
|
||||
tweets = mTwitter.getUserTweets((long) param[0], sinceId, 1);
|
||||
tweets = mTwitter.getUserTweets(tweetId, sinceId, 1);
|
||||
db.storeUserTweets(tweets);
|
||||
tweets.addAll(adapter.getData());
|
||||
break;
|
||||
|
||||
case DB_FAVORS:
|
||||
tweets = db.getUserFavs((long) param[0]);
|
||||
tweetId = (long) param[0];
|
||||
tweets = db.getUserFavs(tweetId);
|
||||
if (!tweets.isEmpty())
|
||||
break;
|
||||
|
||||
case USR_FAVORS:
|
||||
tweetId = (long) param[0];
|
||||
if (adapter.getItemCount() > 0)
|
||||
sinceId = adapter.getItemId(0);
|
||||
tweets = mTwitter.getUserFavs((long) param[0], sinceId, 1);
|
||||
db.storeUserFavs(tweets, (long) param[0]);
|
||||
tweets = mTwitter.getUserFavs(tweetId, sinceId, 1);
|
||||
db.storeUserFavs(tweets, tweetId);
|
||||
tweets.addAll(adapter.getData());
|
||||
break;
|
||||
|
||||
case DB_ANS:
|
||||
tweets = db.getAnswers((long) param[0]);
|
||||
tweetId = (long) param[0];
|
||||
tweets = db.getAnswers(tweetId);
|
||||
if (tweets.isEmpty() || !settings.getAnswerLoad())
|
||||
break;
|
||||
|
||||
case TWEET_ANS:
|
||||
String search = (String) param[1];
|
||||
tweetId = (long) param[0];
|
||||
if (adapter.getItemCount() > 0)
|
||||
sinceId = adapter.getItemId(0);
|
||||
tweets = mTwitter.getAnswers((String) param[1], (long) param[0], sinceId);
|
||||
if (!tweets.isEmpty() && db.containStatus((long) param[0]))
|
||||
tweets = mTwitter.getAnswers(search, tweetId, sinceId);
|
||||
if (!tweets.isEmpty() && db.containStatus(tweetId))
|
||||
db.storeReplies(tweets);
|
||||
tweets.addAll(adapter.getData());
|
||||
break;
|
||||
|
||||
case TWEET_SEARCH:
|
||||
search = (String) param[0];
|
||||
if (adapter.getItemCount() > 0)
|
||||
sinceId = adapter.getItemId(0);
|
||||
tweets = mTwitter.searchTweets((String) param[0], sinceId);
|
||||
tweets = mTwitter.searchTweets(search, sinceId);
|
||||
tweets.addAll(adapter.getData());
|
||||
break;
|
||||
}
|
||||
|
@ -145,6 +156,8 @@ public class TweetLoader extends AsyncTask<Object, Void, Boolean> {
|
|||
this.err = err;
|
||||
return false;
|
||||
} catch (Exception err) {
|
||||
if (err.getMessage() != null)
|
||||
Log.e("TweetLoader", err.getMessage());
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -4,6 +4,7 @@ import android.os.AsyncTask;
|
|||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
|
@ -81,6 +82,8 @@ public class UserLoader extends AsyncTask<Object, Void, Boolean> {
|
|||
this.err = err;
|
||||
return false;
|
||||
} catch (Exception err) {
|
||||
if (err.getMessage() != null)
|
||||
Log.e("Status Loader", err.getMessage());
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -9,12 +9,9 @@ import android.net.ConnectivityManager;
|
|||
import android.net.Uri;
|
||||
import android.os.AsyncTask.Status;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.support.v7.app.AlertDialog.Builder;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.text.method.ScrollingMovementMethod;
|
||||
import android.view.Menu;
|
||||
|
@ -28,11 +25,9 @@ import org.nuclearfog.tag.Tagger.OnTagClickListener;
|
|||
import org.nuclearfog.twidda.BuildConfig;
|
||||
import org.nuclearfog.twidda.MainActivity;
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.adapter.OnItemClickListener;
|
||||
import org.nuclearfog.twidda.adapter.TweetAdapter;
|
||||
import org.nuclearfog.twidda.adapter.TweetPagerAdapter;
|
||||
import org.nuclearfog.twidda.backend.StatusLoader;
|
||||
import org.nuclearfog.twidda.backend.StatusLoader.Mode;
|
||||
import org.nuclearfog.twidda.backend.items.Tweet;
|
||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
import org.nuclearfog.twidda.window.UserDetail.UserType;
|
||||
|
||||
|
@ -40,21 +35,16 @@ import java.util.regex.Matcher;
|
|||
import java.util.regex.Pattern;
|
||||
|
||||
|
||||
public class TweetDetail extends AppCompatActivity implements OnClickListener,
|
||||
OnItemClickListener, OnRefreshListener, OnTagClickListener {
|
||||
public class TweetDetail extends AppCompatActivity implements OnClickListener, OnTagClickListener {
|
||||
|
||||
public static final int STAT_CHANGED = 1;
|
||||
private static final int TWEET = 2;
|
||||
|
||||
private RecyclerView answer_list;
|
||||
private TweetAdapter answerAdapter;
|
||||
private StatusLoader statusAsync;
|
||||
private GlobalSettings settings;
|
||||
private SwipeRefreshLayout answerReload;
|
||||
private ConnectivityManager mConnect;
|
||||
private String username = "";
|
||||
private StatusLoader statusAsync;
|
||||
private String username;
|
||||
private boolean isHome;
|
||||
private long tweetID = 0;
|
||||
private long tweetID;
|
||||
|
||||
|
||||
@Override
|
||||
|
@ -65,25 +55,15 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
|
|||
Bundle param = getIntent().getExtras();
|
||||
Uri link = getIntent().getData();
|
||||
|
||||
if (link != null) {
|
||||
getTweet(link.getPath());
|
||||
} else if (param != null) {
|
||||
if (BuildConfig.DEBUG && param.size() != 2)
|
||||
throw new AssertionError();
|
||||
if (param != null && param.containsKey("tweetID") && param.containsKey("username")) {
|
||||
tweetID = param.getLong("tweetID");
|
||||
username = param.getString("username");
|
||||
} else {
|
||||
finish();
|
||||
} else if (link != null) {
|
||||
getTweet(link.getPath());
|
||||
} else if(BuildConfig.DEBUG) {
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
||||
Toolbar tool = findViewById(R.id.tweet_toolbar);
|
||||
setSupportActionBar(tool);
|
||||
if (getSupportActionBar() != null)
|
||||
getSupportActionBar().setDisplayShowTitleEnabled(false);
|
||||
|
||||
settings = GlobalSettings.getInstance(this);
|
||||
mConnect = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
|
||||
View root = findViewById(R.id.tweet_layout);
|
||||
View retweet = findViewById(R.id.rt_button_detail);
|
||||
View favorite = findViewById(R.id.fav_button_detail);
|
||||
|
@ -91,31 +71,35 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
|
|||
View txtFav = findViewById(R.id.no_fav_detail);
|
||||
View answer = findViewById(R.id.answer_button);
|
||||
TextView tweetTxt = findViewById(R.id.tweet_detailed);
|
||||
answerReload = findViewById(R.id.answer_reload);
|
||||
answer_list = findViewById(R.id.answer_list);
|
||||
answer_list.setLayoutManager(new LinearLayoutManager(this));
|
||||
Toolbar tool = findViewById(R.id.tweet_toolbar);
|
||||
ViewPager pager = findViewById(R.id.tweet_pager);
|
||||
|
||||
setSupportActionBar(tool);
|
||||
if (getSupportActionBar() != null)
|
||||
getSupportActionBar().setDisplayShowTitleEnabled(false);
|
||||
|
||||
GlobalSettings settings = GlobalSettings.getInstance(this);
|
||||
TweetPagerAdapter adapter = new TweetPagerAdapter(getSupportFragmentManager(), tweetID, username);
|
||||
mConnect = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
|
||||
tweetTxt.setMovementMethod(ScrollingMovementMethod.getInstance());
|
||||
tweetTxt.setLinkTextColor(settings.getHighlightColor());
|
||||
|
||||
root.setBackgroundColor(settings.getBackgroundColor());
|
||||
answerReload.setProgressBackgroundColorSchemeColor(settings.getHighlightColor());
|
||||
pager.setOffscreenPageLimit(1);
|
||||
pager.setAdapter(adapter);
|
||||
|
||||
favorite.setOnClickListener(this);
|
||||
retweet.setOnClickListener(this);
|
||||
answerReload.setOnRefreshListener(this);
|
||||
txtFav.setOnClickListener(this);
|
||||
txtRt.setOnClickListener(this);
|
||||
answer.setOnClickListener(this);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
if (statusAsync == null) {
|
||||
answerAdapter = new TweetAdapter(this);
|
||||
answerAdapter.toggleImage(settings.getImageLoad());
|
||||
answerAdapter.setColor(settings.getHighlightColor(), settings.getFontColor());
|
||||
answer_list.setAdapter(answerAdapter);
|
||||
statusAsync = new StatusLoader(this, Mode.LOAD);
|
||||
statusAsync.execute(tweetID);
|
||||
}
|
||||
|
@ -247,25 +231,6 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
|
|||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onItemClick(RecyclerView rv, int position) {
|
||||
if (!answerReload.isRefreshing()) {
|
||||
Tweet tweet = answerAdapter.getData(position);
|
||||
Intent intent = new Intent(this, TweetDetail.class);
|
||||
intent.putExtra("tweetID", tweet.getId());
|
||||
intent.putExtra("username", tweet.getUser().getScreenname());
|
||||
startActivityForResult(intent, TWEET);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
statusAsync = new StatusLoader(this, Mode.ANS);
|
||||
statusAsync.execute(tweetID);
|
||||
}
|
||||
|
||||
|
||||
public void imageClick(String[] mediaLinks) {
|
||||
Intent image = new Intent(this, ImageDetail.class);
|
||||
image.putExtra("link", mediaLinks);
|
||||
|
|
|
@ -91,7 +91,7 @@
|
|||
|
||||
<ImageView
|
||||
android:id="@+id/tweet_locked"
|
||||
android:layout_width="@dimen/icon_size"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/icon_size"
|
||||
android:layout_marginEnd="@dimen/icon_margin"
|
||||
android:layout_marginRight="@dimen/icon_margin"
|
||||
|
@ -188,21 +188,10 @@
|
|||
android:id="@+id/answer_button"
|
||||
android:layout_width="@dimen/tweet_page_icon"
|
||||
android:layout_height="@dimen/tweet_page_icon"
|
||||
android:layout_marginEnd="@dimen/icon_margin"
|
||||
android:layout_marginRight="@dimen/tweet_icon_margin"
|
||||
android:layout_marginRight="@dimen/tweet_footer_icon_dist"
|
||||
android:contentDescription="@string/answer_button"
|
||||
app:srcCompat="@drawable/answer" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/no_ans_detail"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:ems="10"
|
||||
android:gravity="center_vertical"
|
||||
android:singleLine="true"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/rt_button_detail"
|
||||
android:layout_width="@dimen/tweet_page_icon"
|
||||
|
@ -214,9 +203,9 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/no_rt_detail"
|
||||
android:layout_width="0dp"
|
||||
android:layout_width="@dimen/tweet_footer_icon_dist"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginRight="5dp"
|
||||
android:ems="10"
|
||||
android:gravity="center_vertical"
|
||||
android:singleLine="true"
|
||||
|
@ -233,9 +222,8 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/no_fav_detail"
|
||||
android:layout_width="0dp"
|
||||
android:layout_width="@dimen/tweet_footer_icon_dist"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:ems="10"
|
||||
android:gravity="center_vertical"
|
||||
android:singleLine="true"
|
||||
|
@ -243,18 +231,11 @@
|
|||
|
||||
</LinearLayout>
|
||||
|
||||
<android.support.v4.widget.SwipeRefreshLayout
|
||||
android:id="@+id/answer_reload"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<android.support.v7.widget.RecyclerView
|
||||
android:id="@+id/answer_list"
|
||||
<android.support.v4.view.ViewPager
|
||||
android:id="@+id/tweet_pager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
</android.support.v4.widget.SwipeRefreshLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</android.support.v4.widget.NestedScrollView>
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
|
||||
<!--Tabs-->
|
||||
<dimen name="tab_padding_top">5dp</dimen>
|
||||
<dimen name="tweet_footer_icon_dist">100dp</dimen>
|
||||
|
||||
<!--Text limitation-->
|
||||
<integer name="tweet_max_line">10</integer>
|
||||
|
|
Loading…
Reference in New Issue