From fb71d5e1a046ac3773420c4b296a3302f7d08cfd Mon Sep 17 00:00:00 2001 From: Sufian Date: Sun, 20 May 2018 15:28:55 +0200 Subject: [PATCH] Cleanup, bugfix --- .idea/misc.xml | 2 +- .../nuclearfog/twidda/backend/MainPage.java | 55 ++++++++++++------ .../twidda/backend/ProfileLoader.java | 56 ++++++++++++------- .../twidda/backend/StatusLoader.java | 24 ++++---- .../twidda/backend/TwitterEngine.java | 7 ++- .../twidda/backend/TwitterSearch.java | 43 ++++++++------ .../nuclearfog/twidda/backend/UserLists.java | 29 +++++----- .../twidda/viewadapter/LogAdapter.java | 7 ++- .../twidda/viewadapter/TimelineRecycler.java | 17 +++++- .../twidda/viewadapter/TrendRecycler.java | 19 ++++++- .../twidda/viewadapter/UserRecycler.java | 19 ++++++- .../nuclearfog/twidda/window/UserProfile.java | 3 + app/src/main/res/layout/tweetpage.xml | 3 +- app/src/main/res/layout/videopreview.xml | 7 +++ 14 files changed, 195 insertions(+), 96 deletions(-) create mode 100644 app/src/main/res/layout/videopreview.xml diff --git a/.idea/misc.xml b/.idea/misc.xml index ba7052b8..b980d0c9 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -24,7 +24,7 @@ - + diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/MainPage.java b/app/src/main/java/org/nuclearfog/twidda/backend/MainPage.java index 72462e1a..64d41ef7 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/MainPage.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/MainPage.java @@ -54,9 +54,24 @@ public class MainPage extends AsyncTask { 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 { 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 { 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 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 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 { 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 { 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; diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/ProfileLoader.java b/app/src/main/java/org/nuclearfog/twidda/backend/ProfileLoader.java index 222f74f9..c0a32e66 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/ProfileLoader.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/ProfileLoader.java @@ -71,6 +71,15 @@ public class ProfileLoader extends AsyncTask { 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 { DatabaseAdapter tweetDb = new DatabaseAdapter(ui.get()); List 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 { { DatabaseAdapter tweetDb = new DatabaseAdapter(ui.get()); List 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 { } 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(); diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/StatusLoader.java b/app/src/main/java/org/nuclearfog/twidda/backend/StatusLoader.java index 9551014b..f736390e 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/StatusLoader.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/StatusLoader.java @@ -72,6 +72,10 @@ public class StatusLoader extends AsyncTask 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 implements View.On tweet = dbAdp.getStatus(tweetID); if(tweet == null) return IGNORE; - List 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 implements View.On List 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 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 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 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) { diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/TwitterEngine.java b/app/src/main/java/org/nuclearfog/twidda/backend/TwitterEngine.java index 0db7ee9b..6b6be871 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/TwitterEngine.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/TwitterEngine.java @@ -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; } diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/TwitterSearch.java b/app/src/main/java/org/nuclearfog/twidda/backend/TwitterSearch.java index 677f2075..d87753c1 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/TwitterSearch.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/TwitterSearch.java @@ -21,8 +21,8 @@ import java.util.List; public class TwitterSearch extends AsyncTask { - private TimelineRecycler tlRc; - private UserRecycler uAdp; + private TimelineRecycler searchAdapter; + private UserRecycler userAdapter; private TwitterEngine mTwitter; private WeakReference ui; private int highlight, font_color; @@ -40,8 +40,17 @@ public class TwitterSearch extends AsyncTask { 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 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 tweets = mTwitter.searchTweets(strSearch,id); - tweets.addAll(tlRc.getData()); - tlRc = new TimelineRecycler(tweets,ui.get()); + tweets.addAll(searchAdapter.getData()); + searchAdapter.setData(tweets); } else { List 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 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 { 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); } } \ No newline at end of file diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/UserLists.java b/app/src/main/java/org/nuclearfog/twidda/backend/UserLists.java index 83baeb43..7680e219 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/UserLists.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/UserLists.java @@ -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 { 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 mode = data[1]; long cursor = data[2]; try { - + List user; if(mode == FOLLOWING) { - List user = mTwitter.getFollowing(id,cursor); - usrAdp = new UserRecycler(user,ui.get()); + user = mTwitter.getFollowing(id,cursor); + usrAdp.setData(user); } else if(mode == FOLLOWERS) { - List user = mTwitter.getFollower(id,cursor); - usrAdp = new UserRecycler(user,ui.get()); + user = mTwitter.getFollower(id,cursor); + usrAdp.setData(user); } else if(mode == RETWEETER) { - List 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 { 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(); diff --git a/app/src/main/java/org/nuclearfog/twidda/viewadapter/LogAdapter.java b/app/src/main/java/org/nuclearfog/twidda/viewadapter/LogAdapter.java index efcc3dae..adc7107e 100644 --- a/app/src/main/java/org/nuclearfog/twidda/viewadapter/LogAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/viewadapter/LogAdapter.java @@ -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 { @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); } diff --git a/app/src/main/java/org/nuclearfog/twidda/viewadapter/TimelineRecycler.java b/app/src/main/java/org/nuclearfog/twidda/viewadapter/TimelineRecycler.java index c37259dd..4105b6d3 100644 --- a/app/src/main/java/org/nuclearfog/twidda/viewadapter/TimelineRecycler.java +++ b/app/src/main/java/org/nuclearfog/twidda/viewadapter/TimelineRecycler.java @@ -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 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 imple } + public void setData(List tweets) { + this.tweets = tweets; + } + + @Override public int getItemCount(){ return tweets.size(); @@ -67,8 +79,9 @@ public class TimelineRecycler extends Adapter 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 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); diff --git a/app/src/main/java/org/nuclearfog/twidda/viewadapter/TrendRecycler.java b/app/src/main/java/org/nuclearfog/twidda/viewadapter/TrendRecycler.java index 2df2ce68..e24eb98a 100644 --- a/app/src/main/java/org/nuclearfog/twidda/viewadapter/TrendRecycler.java +++ b/app/src/main/java/org/nuclearfog/twidda/viewadapter/TrendRecycler.java @@ -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 @@ -20,6 +22,13 @@ public class TrendRecycler extends RecyclerView.Adapter(); + this.mListener = mListener; + } + + public TrendRecycler(List trendList, OnItemClicked mListener) { this.mListener = mListener; this.trendList = trendList; @@ -31,6 +40,11 @@ public class TrendRecycler extends RecyclerView.Adapter trendList) { + this.trendList = trendList; + } + + public List getData(){return trendList;} @@ -40,8 +54,9 @@ public class TrendRecycler extends RecyclerView.Adapter implements View.OnClickListener { @@ -22,12 +24,24 @@ public class UserRecycler extends RecyclerView.Adapter private ViewGroup parent; private boolean loadImage = true; + + public UserRecycler(OnItemClicked mListener) { + mUser = new ArrayList<>(); + this.mListener = mListener; + } + + public UserRecycler(List mUser, OnItemClicked mListener) { this.mListener = mListener; this.mUser = mUser; } + public void setData(List mUser) { + this.mUser = mUser; + } + + public List getData(){return mUser; } @@ -48,8 +62,9 @@ public class UserRecycler extends RecyclerView.Adapter } + @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 @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); diff --git a/app/src/main/java/org/nuclearfog/twidda/window/UserProfile.java b/app/src/main/java/org/nuclearfog/twidda/window/UserProfile.java index 5bbe2bc5..5691e811 100644 --- a/app/src/main/java/org/nuclearfog/twidda/window/UserProfile.java +++ b/app/src/main/java/org/nuclearfog/twidda/window/UserProfile.java @@ -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; } } diff --git a/app/src/main/res/layout/tweetpage.xml b/app/src/main/res/layout/tweetpage.xml index 73d27b21..ca06a372 100644 --- a/app/src/main/res/layout/tweetpage.xml +++ b/app/src/main/res/layout/tweetpage.xml @@ -227,8 +227,7 @@ + android:layout_height="match_parent" /> diff --git a/app/src/main/res/layout/videopreview.xml b/app/src/main/res/layout/videopreview.xml new file mode 100644 index 00000000..06984413 --- /dev/null +++ b/app/src/main/res/layout/videopreview.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file