Cleanup, bugfix

This commit is contained in:
Sufian 2018-05-20 15:28:55 +02:00
parent 069fd694c3
commit fb71d5e1a0
14 changed files with 195 additions and 96 deletions

View File

@ -24,7 +24,7 @@
</value>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" project-jdk-name="9.0" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">

View File

@ -54,9 +54,24 @@ public class MainPage extends AsyncTask<Integer, Void, Integer> {
image = settings.getBoolean("image_load", true);
RecyclerView timelineList = ui.get().findViewById(R.id.tl_list);
RecyclerView trendList = ui.get().findViewById(R.id.tr_list);
RecyclerView mentionList = ui.get().findViewById(R.id.m_list);
timelineAdapter = (TimelineRecycler) timelineList.getAdapter();
trendsAdapter = (TrendRecycler) trendList.getAdapter();
mentionAdapter = (TimelineRecycler) mentionList.getAdapter();
if(timelineAdapter == null) {
timelineAdapter = new TimelineRecycler(ui.get());
timelineList.setAdapter(timelineAdapter);
}
if(trendsAdapter == null) {
trendsAdapter = new TrendRecycler(ui.get());
trendList.setAdapter(trendsAdapter);
}
if(mentionAdapter == null) {
mentionAdapter = new TimelineRecycler(ui.get());
mentionList.setAdapter(mentionAdapter);
}
}
/**
@ -75,7 +90,7 @@ public class MainPage extends AsyncTask<Integer, Void, Integer> {
switch (MODE) {
case HOME:
if(timelineAdapter != null && timelineAdapter.getItemCount() > 0) {
if(timelineAdapter.getItemCount() > 0) {
id = timelineAdapter.getItemId(0);
tweets = mTwitter.getHome(page,id);
tweetDb.store(tweets, DatabaseAdapter.HOME,-1L);
@ -84,35 +99,38 @@ public class MainPage extends AsyncTask<Integer, Void, Integer> {
tweets = mTwitter.getHome(page,id);
tweetDb.store(tweets, DatabaseAdapter.HOME,-1L);
}
timelineAdapter = new TimelineRecycler(tweets, ui.get());
timelineAdapter.setData(tweets);
timelineAdapter.setColor(highlight, font);
timelineAdapter.toggleImage(image);
break;
case H_LOAD:
DatabaseAdapter tweetDeck = new DatabaseAdapter(ui.get());
tweets = tweetDeck.load(DatabaseAdapter.HOME, -1L);
timelineAdapter = new TimelineRecycler(tweets, ui.get());
timelineAdapter.setData(tweets);
timelineAdapter.setColor(highlight, font);
timelineAdapter.toggleImage(image);
break;
case TRND:
List<Trend> trends = mTwitter.getTrends(woeid);
trendDb.store(trends);
trendsAdapter = new TrendRecycler(trends, ui.get());
trendsAdapter.setData(trends);
trendsAdapter.setColor(font);
break;
case T_LOAD:
trendsAdapter = new TrendRecycler(trendDb.load(), ui.get());
trendsAdapter.setData(trendDb.load());
trendsAdapter.setColor(font);
break;
case MENT:
List<Tweet> mention;
if(mentionAdapter != null && mentionAdapter.getItemCount() != 0) {
if(mentionAdapter.getItemCount() != 0) {
id = mentionAdapter.getItemId(0);
mention = mTwitter.getMention(page,id);
tweetDb.store(mention, DatabaseAdapter.MENT,-1L);
@ -121,23 +139,26 @@ public class MainPage extends AsyncTask<Integer, Void, Integer> {
mention = mTwitter.getMention(page,id);
tweetDb.store(mention, DatabaseAdapter.MENT,-1L);
}
mentionAdapter = new TimelineRecycler(mention, ui.get());
mentionAdapter.setData(mention);
mentionAdapter.setColor(highlight, font);
mentionAdapter.toggleImage(image);
break;
case M_LOAD:
DatabaseAdapter mentDeck = new DatabaseAdapter(ui.get());
tweets = mentDeck.load(DatabaseAdapter.MENT,-1L);
mentionAdapter = new TimelineRecycler(tweets, ui.get());
mention = mentDeck.load(DatabaseAdapter.MENT,-1L);
mentionAdapter.setData(mention);
mentionAdapter.setColor(highlight, font);
mentionAdapter.toggleImage(image);
break;
}
} catch (Exception e) {
errMsg = e.getMessage();
ErrorLog errorLog = new ErrorLog(ui.get());
errorLog.add(errMsg);
if(ui.get() != null) {
ErrorLog errorLog = new ErrorLog(ui.get());
errorLog.add(errMsg);
}
return FAIL;
}
return MODE;
@ -151,26 +172,24 @@ public class MainPage extends AsyncTask<Integer, Void, Integer> {
SwipeRefreshLayout timelineRefresh = connect.findViewById(R.id.timeline);
SwipeRefreshLayout trendRefresh = connect.findViewById(R.id.trends);
SwipeRefreshLayout mentionRefresh = connect.findViewById(R.id.mention);
RecyclerView timelineList = ui.get().findViewById(R.id.tl_list);
RecyclerView mentionList = ui.get().findViewById(R.id.m_list);
RecyclerView trendList = ui.get().findViewById(R.id.tr_list);
switch(MODE) {
case HOME:
case H_LOAD:
timelineList.setAdapter(timelineAdapter);
timelineAdapter.notifyDataSetChanged();
timelineRefresh.setRefreshing(false);
break;
case TRND:
case T_LOAD:
trendList.setAdapter(trendsAdapter);
trendsAdapter.notifyDataSetChanged();
trendRefresh.setRefreshing(false);
break;
case MENT:
case M_LOAD:
mentionList.setAdapter(mentionAdapter);
mentionAdapter.notifyDataSetChanged();
mentionRefresh.setRefreshing(false);
break;

View File

@ -71,6 +71,15 @@ public class ProfileLoader extends AsyncTask<Long,Void,Long> {
RecyclerView profileFavorits = ui.get().findViewById(R.id.hf_list);
homeTl = (TimelineRecycler) profileTweets.getAdapter();
homeFav = (TimelineRecycler) profileFavorits.getAdapter();
if(homeTl == null) {
homeTl = new TimelineRecycler(ui.get());
profileTweets.setAdapter(homeTl);
}
if(homeFav == null) {
homeFav = new TimelineRecycler(ui.get());
profileFavorits.setAdapter(homeFav);
}
}
@ -119,19 +128,19 @@ public class ProfileLoader extends AsyncTask<Long,Void,Long> {
DatabaseAdapter tweetDb = new DatabaseAdapter(ui.get());
List<Tweet> tweets;
if(homeTl != null && homeTl.getItemCount() > 0) {
if(homeTl.getItemCount() > 0) {
id = homeTl.getItemId(0);
tweets = mTwitter.getUserTweets(userId,args[2],id);
tweetDb.store(tweets, DatabaseAdapter.TWEET, userId);
tweets.addAll(homeTl.getData());
} else {
tweets = new DatabaseAdapter(ui.get()).load(DatabaseAdapter.TWEET,userId);
tweets = tweetDb.load(DatabaseAdapter.TWEET,userId);
if(tweets.size() < 10) {
tweets = mTwitter.getUserTweets(userId,args[2],id);
tweetDb.store(tweets, DatabaseAdapter.TWEET, userId);
}
}
homeTl = new TimelineRecycler(tweets,ui.get());
homeTl.setData(tweets);
homeTl.setColor(highlight,font);
homeTl.toggleImage(imgEnabled);
}
@ -139,37 +148,30 @@ public class ProfileLoader extends AsyncTask<Long,Void,Long> {
{
DatabaseAdapter tweetDb = new DatabaseAdapter(ui.get());
List<Tweet> favorits;
if(homeFav != null && homeFav.getItemCount() > 0) {
if(homeFav.getItemCount() > 0) {
id = homeFav.getItemId(0);
favorits = mTwitter.getUserFavs(userId,args[2],id);
tweetDb.store(favorits, DatabaseAdapter.FAVT, userId);
favorits.addAll(homeFav.getData());
} else {
favorits = new DatabaseAdapter(ui.get()).load(DatabaseAdapter.FAVT,userId);
favorits = tweetDb.load(DatabaseAdapter.FAVT,userId);
if(favorits.size() < 10) {
favorits = mTwitter.getUserFavs(userId,args[2],id);
tweetDb.store(favorits, DatabaseAdapter.FAVT, userId);
}
}
homeFav = new TimelineRecycler(favorits,ui.get());
homeFav.setData(favorits);
homeFav.setColor(highlight,font);
homeFav.toggleImage(imgEnabled);
}
else if(MODE == ACTION_FOLLOW)
{
if(isFollowing) {
isFollowing = mTwitter.toggleFollow(userId);
} else {
isFollowing = mTwitter.toggleFollow(userId);
}
isFollowing = mTwitter.toggleFollow(userId);
}
else if(MODE == ACTION_MUTE)
{
if(muted) {
muted = mTwitter.toggleBlock(userId);
} else {
muted = mTwitter.toggleBlock(userId);
}
muted = mTwitter.toggleBlock(userId);
}
} catch (TwitterException err) {
int errCode = err.getErrorCode();
@ -245,18 +247,32 @@ public class ProfileLoader extends AsyncTask<Long,Void,Long> {
}
else if(mode == GET_TWEETS)
{
RecyclerView profileTweets = ui.get().findViewById(R.id.ht_list);
profileTweets.setAdapter(homeTl);
homeTl.notifyDataSetChanged();
SwipeRefreshLayout tweetsReload = connect.findViewById(R.id.hometweets);
tweetsReload.setRefreshing(false);
}
else if(mode == GET_FAVS)
{
RecyclerView profileFavorits = ui.get().findViewById(R.id.hf_list);
profileFavorits.setAdapter(homeFav);
homeFav.notifyDataSetChanged();
SwipeRefreshLayout favoritsReload = connect.findViewById(R.id.homefavorits);
favoritsReload.setRefreshing(false);
}
else if(mode == ACTION_FOLLOW) {
String text;
if(isFollowing)
text = "gefolgt!";
else
text = "entfolgt!";
Toast.makeText(ui.get(),text,Toast.LENGTH_LONG).show();
}
else if(mode == ACTION_MUTE) {
String text;
if(muted)
text = "gesperrt!";
else
text = "entsperrt!";
Toast.makeText(ui.get(),text,Toast.LENGTH_LONG).show();
}
else if(mode == FAILURE)
{
Toast.makeText(connect,"Fehler: "+errMsg,Toast.LENGTH_LONG).show();

View File

@ -72,6 +72,10 @@ public class StatusLoader extends AsyncTask<Long, Void, Long> implements View.On
ui = new WeakReference<>((TweetDetail)c);
RecyclerView replyList = ui.get().findViewById(R.id.answer_list);
tlAdp = (TimelineRecycler) replyList.getAdapter();
if(tlAdp == null) {
tlAdp = new TimelineRecycler(ui.get());
replyList.setAdapter(tlAdp);
}
}
@ -89,17 +93,17 @@ public class StatusLoader extends AsyncTask<Long, Void, Long> implements View.On
tweet = dbAdp.getStatus(tweetID);
if(tweet == null)
return IGNORE;
List<Tweet> answers = dbAdp.load(DatabaseAdapter.ANS, tweetID);
tlAdp = new TimelineRecycler(answers,ui.get());
tlAdp.setColor(highlight, font);
}
else {
} else {
tweet = mTwitter.getStatus(tweetID);
if(MODE == LOAD_TWEET) {
new DatabaseAdapter(ui.get()).storeStatus(tweet);
}
}
if(tweet.embedded != null) {
retweeter = tweet.user.screenname;
retweeterID = tweet.user.userID;
@ -153,14 +157,14 @@ public class StatusLoader extends AsyncTask<Long, Void, Long> implements View.On
List<Tweet> answers;
DatabaseAdapter twdb = new DatabaseAdapter(ui.get());
String replyname = tweet.user.screenname;
if(tlAdp != null && tlAdp.getItemCount() > 0) {
if(tlAdp.getItemCount() > 0) {
long sinceId = tlAdp.getItemId(0);
answers = mTwitter.getAnswers(replyname, tweetID, sinceId);
answers.addAll(tlAdp.getData());
} else {
answers = mTwitter.getAnswers(replyname, tweetID, tweetID);
}
tlAdp = new TimelineRecycler(answers,ui.get());
tlAdp.setData(answers);
tlAdp.setColor(highlight, font);
twdb.store(answers,DatabaseAdapter.TWEET,-1L);
}
@ -201,6 +205,7 @@ public class StatusLoader extends AsyncTask<Long, Void, Long> implements View.On
TextView used_api = connect.findViewById(R.id.used_api);
TextView txtRet = connect.findViewById(R.id.no_rt_detail);
TextView txtFav = connect.findViewById(R.id.no_fav_detail);
TextView txtAns = connect.findViewById(R.id.no_ans_detail);
ImageView profile_img = connect.findViewById(R.id.profileimage_detail);
tweet.setMovementMethod(LinkMovementMethod.getInstance());
@ -211,14 +216,10 @@ public class StatusLoader extends AsyncTask<Long, Void, Long> implements View.On
used_api.setText(apiName);
String favStr = Integer.toString(fav);
String rtStr = Integer.toString(rt);
String ansStr = Integer.toString(tlAdp.getItemCount());
txtFav.setText(favStr);
txtRet.setText(rtStr);
if(tlAdp != null) {
String ansStr = Integer.toString(tlAdp.getItemCount());
TextView txtAns = connect.findViewById(R.id.no_ans_detail);
txtAns.setText(ansStr);
}
txtAns.setText(ansStr);
if(repliedUsername != null) {
String reply = "antwort @"+repliedUsername;
@ -274,6 +275,7 @@ public class StatusLoader extends AsyncTask<Long, Void, Long> implements View.On
ansReload.setRefreshing(false);
String ansStr = Integer.toString(tlAdp.getItemCount());
TextView txtAns = connect.findViewById(R.id.no_ans_detail);
tlAdp.notifyDataSetChanged();
txtAns.setText(ansStr);
}
else if(mode == DELETE) {

View File

@ -38,7 +38,7 @@ import twitter4j.conf.ConfigurationBuilder;
public class TwitterEngine {
private final String TWITTER_CONSUMER_KEY = "0EKRHWYcakpCkl8Lr4OcBFMZb";
private final String TWITTER_CONSUMER_SECRET = "insert your own key";
private final String TWITTER_CONSUMER_SECRET = "GET YOUR OWN KEY";
private static TwitterEngine mTwitter;
private static long twitterID = -1L;
@ -288,7 +288,7 @@ public class TwitterEngine {
* @throws TwitterException if Access is unavailable
*/
public boolean toggleFollow(long id) throws TwitterException {
if(getConnection(id)[1]) {
if(getConnection(id)[0]) {
twitter.destroyFriendship(id);
return false;
} else {
@ -559,8 +559,9 @@ public class TwitterEngine {
String medialinks[] = new String[mediaEntities.length];
byte i = 0;
for(MediaEntity media : mediaEntities) {
medialinks[i++] = media.getMediaURL();
medialinks[i++] = media.getMediaURLHttps();
}
return medialinks;
}

View File

@ -21,8 +21,8 @@ import java.util.List;
public class TwitterSearch extends AsyncTask<String, Void, Void> {
private TimelineRecycler tlRc;
private UserRecycler uAdp;
private TimelineRecycler searchAdapter;
private UserRecycler userAdapter;
private TwitterEngine mTwitter;
private WeakReference<SearchPage> ui;
private int highlight, font_color;
@ -40,8 +40,17 @@ public class TwitterSearch extends AsyncTask<String, Void, Void> {
RecyclerView tweetSearch = ui.get().findViewById(R.id.tweet_result);
RecyclerView userSearch = ui.get().findViewById(R.id.user_result);
tlRc = (TimelineRecycler) tweetSearch.getAdapter();
uAdp = (UserRecycler) userSearch.getAdapter();
searchAdapter = (TimelineRecycler) tweetSearch.getAdapter();
userAdapter = (UserRecycler) userSearch.getAdapter();
if(searchAdapter == null) {
searchAdapter = new TimelineRecycler(ui.get());
tweetSearch.setAdapter(searchAdapter);
}
if(userAdapter == null) {
userAdapter = new UserRecycler(ui.get());
userSearch.setAdapter(userAdapter);
}
}
@ -50,23 +59,23 @@ public class TwitterSearch extends AsyncTask<String, Void, Void> {
String strSearch = search[0];
long id = 1L;
try {
if(tlRc != null && tlRc.getItemCount() > 0) {
id = tlRc.getItemId(0);
if(searchAdapter.getItemCount() > 0) {
id = searchAdapter.getItemId(0);
List<Tweet> tweets = mTwitter.searchTweets(strSearch,id);
tweets.addAll(tlRc.getData());
tlRc = new TimelineRecycler(tweets,ui.get());
tweets.addAll(searchAdapter.getData());
searchAdapter.setData(tweets);
} else {
List<Tweet> tweets = mTwitter.searchTweets(strSearch,id);
tlRc = new TimelineRecycler(tweets,ui.get());
searchAdapter.setData(tweets);
}
if(uAdp == null ||uAdp.getItemCount() == 0) {
if(userAdapter.getItemCount() == 0) {
List<TwitterUser> user = mTwitter.searchUsers(strSearch);
uAdp = new UserRecycler(user, ui.get());
userAdapter.setData(user);
}
tlRc.setColor(highlight,font_color);
tlRc.toggleImage(imageload);
uAdp.toggleImage(imageload);
searchAdapter.setColor(highlight,font_color);
searchAdapter.toggleImage(imageload);
userAdapter.toggleImage(imageload);
} catch(Exception err) {
error = err.getMessage();
@ -88,10 +97,8 @@ public class TwitterSearch extends AsyncTask<String, Void, Void> {
SwipeRefreshLayout tweetReload = connect.findViewById(R.id.searchtweets);
View circleLoad = connect.findViewById(R.id.search_progress);
circleLoad.setVisibility(View.INVISIBLE);
RecyclerView tweetSearch = ui.get().findViewById(R.id.tweet_result);
RecyclerView userSearch = ui.get().findViewById(R.id.user_result);
tweetSearch.setAdapter(tlRc);
userSearch.setAdapter(uAdp);
searchAdapter.notifyDataSetChanged();
userAdapter.notifyDataSetChanged();
tweetReload.setRefreshing(false);
}
}

View File

@ -5,7 +5,6 @@ import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.Toast;
import org.nuclearfog.twidda.R;
@ -30,18 +29,19 @@ public class UserLists extends AsyncTask <Long, Void, Void> {
private String errmsg;
private boolean imageload;
/**
*@see UserDetail
*/
public UserLists(Context context) {
SharedPreferences settings = context.getSharedPreferences("settings", 0);
imageload = settings.getBoolean("image_load",true);
ui = new WeakReference<>((UserDetail)context);
mTwitter = TwitterEngine.getInstance(context);
RecyclerView userList = ui.get().findViewById(R.id.userlist);
usrAdp = (UserRecycler) userList.getAdapter();
SharedPreferences settings = context.getSharedPreferences("settings", 0);
imageload = settings.getBoolean("image_load",true);
usrAdp = new UserRecycler(ui.get());
userList.setAdapter(usrAdp);
}
@ -51,18 +51,18 @@ public class UserLists extends AsyncTask <Long, Void, Void> {
long mode = data[1];
long cursor = data[2];
try {
List<TwitterUser> user;
if(mode == FOLLOWING) {
List<TwitterUser> user = mTwitter.getFollowing(id,cursor);
usrAdp = new UserRecycler(user,ui.get());
user = mTwitter.getFollowing(id,cursor);
usrAdp.setData(user);
}
else if(mode == FOLLOWERS) {
List<TwitterUser> user = mTwitter.getFollower(id,cursor);
usrAdp = new UserRecycler(user,ui.get());
user = mTwitter.getFollower(id,cursor);
usrAdp.setData(user);
}
else if(mode == RETWEETER) {
List<TwitterUser> user = mTwitter.getRetweeter(id,cursor);
usrAdp = new UserRecycler(user,ui.get());
user = mTwitter.getRetweeter(id,cursor);
usrAdp.setData(user);
}
usrAdp.toggleImage(imageload);
}
@ -80,12 +80,11 @@ public class UserLists extends AsyncTask <Long, Void, Void> {
if(ui.get() == null)
return;
ProgressBar mProgress = ui.get().findViewById(R.id.userlist_progress);
View mProgress = ui.get().findViewById(R.id.userlist_progress);
mProgress.setVisibility(View.INVISIBLE);
if(errmsg == null) {
RecyclerView userList = ui.get().findViewById(R.id.userlist);
userList.setAdapter(usrAdp);
usrAdp.notifyDataSetChanged();
}
else {
Toast.makeText(ui.get(),errmsg,Toast.LENGTH_LONG).show();

View File

@ -1,5 +1,6 @@
package org.nuclearfog.twidda.viewadapter;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
@ -21,14 +22,16 @@ public class LogAdapter extends RecyclerView.Adapter<LogAdapter.ItemHolder> {
@Override
public int getItemCount(){return messages.size();}
@NonNull
@Override
public LogAdapter.ItemHolder onCreateViewHolder(ViewGroup parent, int index) {
public LogAdapter.ItemHolder onCreateViewHolder(@NonNull ViewGroup parent, int index) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_error, parent,false);
return new ItemHolder(v);
}
@Override
public void onBindViewHolder(LogAdapter.ItemHolder vh, int index) {
public void onBindViewHolder(@NonNull ItemHolder vh, int index) {
vh.message.setText(messages.get(index));
vh.message.setTextColor(0xffff0000);
}

View File

@ -1,5 +1,6 @@
package org.nuclearfog.twidda.viewadapter;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.Adapter;
import android.support.v7.widget.RecyclerView.ViewHolder;
@ -18,6 +19,7 @@ import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.backend.listitems.Tweet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@ -31,6 +33,11 @@ public class TimelineRecycler extends Adapter<TimelineRecycler.ItemHolder> imple
private boolean img_ldr = true;
public TimelineRecycler(OnItemClicked mListener) {
tweets = new ArrayList<>();
this.mListener = mListener;
}
/**
* @param mListener Item Click Listener
*/
@ -55,6 +62,11 @@ public class TimelineRecycler extends Adapter<TimelineRecycler.ItemHolder> imple
}
public void setData(List<Tweet> tweets) {
this.tweets = tweets;
}
@Override
public int getItemCount(){
return tweets.size();
@ -67,8 +79,9 @@ public class TimelineRecycler extends Adapter<TimelineRecycler.ItemHolder> imple
}
@NonNull
@Override
public ItemHolder onCreateViewHolder(ViewGroup parent, int viewtype) {
public ItemHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewtype) {
this.parent = parent;
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_tweet, parent,false);
v.setOnClickListener(this);
@ -78,7 +91,7 @@ public class TimelineRecycler extends Adapter<TimelineRecycler.ItemHolder> imple
@Override
public void onBindViewHolder(ItemHolder vh, int index) {
public void onBindViewHolder(@NonNull ItemHolder vh, int index) {
Tweet tweet = tweets.get(index);
String retweet = Integer.toString(tweet.retweet);
String favorit = Integer.toString(tweet.favorit);

View File

@ -1,5 +1,6 @@
package org.nuclearfog.twidda.viewadapter;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.view.LayoutInflater;
@ -10,6 +11,7 @@ import android.widget.TextView;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.backend.listitems.Trend;
import java.util.ArrayList;
import java.util.List;
public class TrendRecycler extends RecyclerView.Adapter<TrendRecycler.ItemHolder>
@ -20,6 +22,13 @@ public class TrendRecycler extends RecyclerView.Adapter<TrendRecycler.ItemHolder
private OnItemClicked mListener;
private int font_color = 0xFFFFFFFF;
public TrendRecycler(OnItemClicked mListener) {
trendList = new ArrayList<>();
this.mListener = mListener;
}
public TrendRecycler(List<Trend> trendList, OnItemClicked mListener) {
this.mListener = mListener;
this.trendList = trendList;
@ -31,6 +40,11 @@ public class TrendRecycler extends RecyclerView.Adapter<TrendRecycler.ItemHolder
}
public void setData(List<Trend> trendList) {
this.trendList = trendList;
}
public List<Trend> getData(){return trendList;}
@ -40,8 +54,9 @@ public class TrendRecycler extends RecyclerView.Adapter<TrendRecycler.ItemHolder
}
@NonNull
@Override
public ItemHolder onCreateViewHolder(ViewGroup parent, int index) {
public ItemHolder onCreateViewHolder(@NonNull ViewGroup parent, int index) {
this.parent = parent;
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_trend, parent,false);
v.setOnClickListener(this);
@ -50,7 +65,7 @@ public class TrendRecycler extends RecyclerView.Adapter<TrendRecycler.ItemHolder
@Override
public void onBindViewHolder(ItemHolder vh, int index) {
public void onBindViewHolder(@NonNull ItemHolder vh, int index) {
String posStr = Integer.toString(trendList.get(index).position)+'.';
vh.trends.setText(trendList.get(index).trend);
vh.pos.setText(posStr);

View File

@ -1,5 +1,6 @@
package org.nuclearfog.twidda.viewadapter;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.view.LayoutInflater;
@ -13,6 +14,7 @@ import com.squareup.picasso.Picasso;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.backend.listitems.TwitterUser;
import java.util.ArrayList;
import java.util.List;
public class UserRecycler extends RecyclerView.Adapter<UserRecycler.ItemHolder> implements View.OnClickListener {
@ -22,12 +24,24 @@ public class UserRecycler extends RecyclerView.Adapter<UserRecycler.ItemHolder>
private ViewGroup parent;
private boolean loadImage = true;
public UserRecycler(OnItemClicked mListener) {
mUser = new ArrayList<>();
this.mListener = mListener;
}
public UserRecycler(List<TwitterUser> mUser, OnItemClicked mListener) {
this.mListener = mListener;
this.mUser = mUser;
}
public void setData(List<TwitterUser> mUser) {
this.mUser = mUser;
}
public List<TwitterUser> getData(){return mUser; }
@ -48,8 +62,9 @@ public class UserRecycler extends RecyclerView.Adapter<UserRecycler.ItemHolder>
}
@NonNull
@Override
public ItemHolder onCreateViewHolder(ViewGroup parent, int index) {
public ItemHolder onCreateViewHolder(@NonNull ViewGroup parent, int index) {
this.parent = parent;
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_user, parent,false);
v.setOnClickListener(this);
@ -58,7 +73,7 @@ public class UserRecycler extends RecyclerView.Adapter<UserRecycler.ItemHolder>
@Override
public void onBindViewHolder(ItemHolder vh, int index) {
public void onBindViewHolder(@NonNull ItemHolder vh, int index) {
TwitterUser user = mUser.get(index);
vh.screenname.setText(user.screenname);
vh.username.setText(user.username);

View File

@ -125,12 +125,15 @@ public class UserProfile extends AppCompatActivity implements View.OnClickListen
intent.putExtras(extra);
startActivity(intent);
return true;
case R.id.profile_follow:
mProfile.execute(userId, ProfileLoader.ACTION_FOLLOW);
return true;
case R.id.profile_block:
mProfile.execute(userId, ProfileLoader.ACTION_MUTE);
return true;
default: return false;
}
}

View File

@ -227,8 +227,7 @@
<android.support.v7.widget.RecyclerView
android:id="@+id/answer_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:nestedScrollingEnabled="true" />
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
</LinearLayout>