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