From ca4f54778b3d135b96625ec01038a93b01bb05e8 Mon Sep 17 00:00:00 2001 From: NudeDude Date: Fri, 19 Jan 2018 15:07:23 +0100 Subject: [PATCH] Raised SDK to 21 Added Scrollview --- .../org/nuclearfog/twidda/MainActivity.java | 4 +- .../twidda/backend/ImageDownloader.java | 8 +- .../twidda/backend/ProfileAction.java | 2 +- .../nuclearfog/twidda/backend/ShowStatus.java | 35 +++++++- .../twidda/database/AppDatabase.java | 2 +- .../twidda/database/TweetDatabase.java | 3 +- .../twidda/viewadapter/TimelineAdapter.java | 11 ++- .../twidda/viewadapter/UserAdapter.java | 4 +- .../nuclearfog/twidda/window/TweetDetail.java | 13 ++- .../nuclearfog/twidda/window/UserProfile.java | 3 +- app/src/main/res/drawable/favorite_icon.xml | 5 -- app/src/main/res/drawable/ic_arrow_down.xml | 4 - .../res/drawable/ic_search_black_24dp.xml | 9 -- app/src/main/res/drawable/mention_icon.xml | 5 -- app/src/main/res/layout/profile.xml | 5 +- app/src/main/res/layout/tweet.xml | 82 +++++++++++-------- app/src/main/res/layout/tweet_detail.xml | 16 +++- app/src/main/res/values/strings.xml | 3 +- 18 files changed, 128 insertions(+), 86 deletions(-) delete mode 100644 app/src/main/res/drawable/favorite_icon.xml delete mode 100644 app/src/main/res/drawable/ic_arrow_down.xml delete mode 100644 app/src/main/res/drawable/ic_search_black_24dp.xml delete mode 100644 app/src/main/res/drawable/mention_icon.xml diff --git a/app/src/main/java/org/nuclearfog/twidda/MainActivity.java b/app/src/main/java/org/nuclearfog/twidda/MainActivity.java index a0460bbf..2b13eae7 100644 --- a/app/src/main/java/org/nuclearfog/twidda/MainActivity.java +++ b/app/src/main/java/org/nuclearfog/twidda/MainActivity.java @@ -140,8 +140,6 @@ public class MainActivity extends AppCompatActivity implements AdapterView.OnIte @Override protected void onPause() { - if(!searchQuery.isIconified()) - searchQuery.onActionViewCollapsed(); super.onPause(); } @@ -307,7 +305,7 @@ public class MainActivity extends AppCompatActivity implements AdapterView.OnIte // Tab #3 TabSpec tab3 = tabhost.newTabSpec("mention"); tab3.setContent(R.id.mention); - tab3.setIndicator("",getResources().getDrawable(R.drawable.mention_icon)); + tab3.setIndicator("",getResources().getDrawable(R.drawable.mention)); tabhost.addTab(tab3); tabhost.setOnTabChangedListener(this); diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/ImageDownloader.java b/app/src/main/java/org/nuclearfog/twidda/backend/ImageDownloader.java index 1912dea2..578a2750 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/ImageDownloader.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/ImageDownloader.java @@ -15,8 +15,12 @@ public class ImageDownloader extends AsyncTask { private final WeakReference imgReference ; - public ImageDownloader(ImageView imgView) { - imgReference = new WeakReference<>(imgView); + public ImageDownloader(WeakReference imgReference) { + this.imgReference = imgReference; + } + + public ImageDownloader(ImageView img) { + imgReference = new WeakReference<>(img); } @Override diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/ProfileAction.java b/app/src/main/java/org/nuclearfog/twidda/backend/ProfileAction.java index 9499ad5d..9b52f5a7 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/ProfileAction.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/ProfileAction.java @@ -115,7 +115,7 @@ public class ProfileAction extends AsyncTask link = user.getURL(); follower = "Follower: "+user.getFollowersCount(); following = "Following: "+user.getFriendsCount(); - imageLink = user.getProfileImageURL(); + imageLink = user.getMiniProfileImageURL(); bannerLink = user.getProfileBannerMobileURL(); } else if(MODE == GET_TWEETS) diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/ShowStatus.java b/app/src/main/java/org/nuclearfog/twidda/backend/ShowStatus.java index 4e205460..5c7c42d5 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/ShowStatus.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/ShowStatus.java @@ -1,10 +1,13 @@ package org.nuclearfog.twidda.backend; import android.content.Context; +import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; +import android.os.Bundle; +import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.ListView; @@ -35,15 +38,16 @@ public class ShowStatus extends AsyncTask { private Context c; private Twitter twitter; private ListView replyList; - private TextView username,scrName, tweet, txtAns, txtRet, txtFav, date; + private TextView username,scrName, replyName, tweet, txtAns, txtRet, txtFav, date; private Button retweetButton, favoriteButton; private ImageView profile_img, tweet_img; private ArrayList answers; private String usernameStr, scrNameStr, tweetStr, dateString; - private String ansStr, rtStr, favStr; + private String ansStr, rtStr, favStr, repliedUsername; private boolean retweeted, favorited, toggleImg; private SharedPreferences settings; private int load, ansNo; + private long userReply, tweetReplyID; private Date d; private Bitmap profile_btm, tweet_btm; @@ -64,7 +68,7 @@ public class ShowStatus extends AsyncTask { username = (TextView) ((TweetDetail)c).findViewById(R.id.usernamedetail); scrName = (TextView) ((TweetDetail)c).findViewById(R.id.scrnamedetail); date = (TextView) ((TweetDetail)c).findViewById(R.id.timedetail); - + replyName = (TextView) ((TweetDetail)c).findViewById(R.id.answer_reference_detail); txtAns = (TextView) ((TweetDetail)c).findViewById(R.id.no_ans_detail); txtRet = (TextView) ((TweetDetail)c).findViewById(R.id.no_rt_detail); txtFav = (TextView) ((TweetDetail)c).findViewById(R.id.no_fav_detail); @@ -78,6 +82,7 @@ public class ShowStatus extends AsyncTask { /** * @param id [0] TWEET ID , [1] Mode + * @returns false if Tweet is already loaded. */ @Override protected Boolean doInBackground(Long... id) { @@ -86,12 +91,18 @@ public class ShowStatus extends AsyncTask { twitter4j.Status currentTweet = twitter.showStatus(tweetID); rtStr = Integer.toString(currentTweet.getRetweetCount()); favStr = Integer.toString(currentTweet.getFavoriteCount()); + userReply = currentTweet.getInReplyToUserId(); + tweetReplyID = currentTweet.getInReplyToStatusId(); + retweeted = currentTweet.isRetweetedByMe(); favorited = currentTweet.isFavorited(); if(id.length == 1) { tweetStr = currentTweet.getText(); usernameStr = currentTweet.getUser().getName(); scrNameStr = '@'+currentTweet.getUser().getScreenName(); + if(userReply > 0) { + repliedUsername = "Antwort an @"+currentTweet.getInReplyToScreenName(); + } d = currentTweet.getCreatedAt(); SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss"); dateString = sdf.format(d); @@ -143,6 +154,11 @@ public class ShowStatus extends AsyncTask { scrName.setText(scrNameStr); txtAns.setText(ansStr); date.setText(dateString); + if(repliedUsername != null) { + replyName.setText(repliedUsername); + replyName.setVisibility(View.VISIBLE); + } + TweetDatabase tweetDatabase = new TweetDatabase(answers,c); TimelineAdapter tlAdp = new TimelineAdapter(c, tweetDatabase); replyList.setAdapter(tlAdp); @@ -151,10 +167,21 @@ public class ShowStatus extends AsyncTask { profile_img.setImageBitmap(profile_btm); tweet_img.setImageBitmap(tweet_btm); } - setIcons(); txtRet.setText(rtStr); txtFav.setText(favStr); + + replyName.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(c, TweetDetail.class); + Bundle bundle = new Bundle(); + bundle.putLong("tweetID",tweetReplyID); + bundle.putLong("userID",userReply); + intent.putExtras(bundle); + c.startActivity(intent); + } + }); } private void setMedia(twitter4j.Status tweet) throws Exception { diff --git a/app/src/main/java/org/nuclearfog/twidda/database/AppDatabase.java b/app/src/main/java/org/nuclearfog/twidda/database/AppDatabase.java index 08c3c3fb..8a6ad7e1 100644 --- a/app/src/main/java/org/nuclearfog/twidda/database/AppDatabase.java +++ b/app/src/main/java/org/nuclearfog/twidda/database/AppDatabase.java @@ -12,7 +12,7 @@ public class AppDatabase extends SQLiteOpenHelper private AppDatabase(Context context) { super(context, context.getString(R.string.database),null, 1); - context = context; + this.context = context; } @Override diff --git a/app/src/main/java/org/nuclearfog/twidda/database/TweetDatabase.java b/app/src/main/java/org/nuclearfog/twidda/database/TweetDatabase.java index 0e8f73ca..17a0b8ae 100644 --- a/app/src/main/java/org/nuclearfog/twidda/database/TweetDatabase.java +++ b/app/src/main/java/org/nuclearfog/twidda/database/TweetDatabase.java @@ -23,7 +23,7 @@ public class TweetDatabase { public static final int GET_MENT = 4; // GET MENTION TL private AppDatabase dataHelper; - private List user,scrname, tweet,pbLink; + private List user,scrname,tweet,pbLink; private List userId,tweetId,timeMillis; private List noRT,noFav,noAns; private List stats; @@ -200,6 +200,7 @@ public class TweetDatabase { public String getDate(int pos){return timeToString(getTime(pos));} public String getPbImg (int pos){return pbLink.get(pos);} public boolean loadImages(){return toggleImg;} + public Bitmap getProfileImg(int pos){return profileImg.get(pos);} /** * Convert Time to String diff --git a/app/src/main/java/org/nuclearfog/twidda/viewadapter/TimelineAdapter.java b/app/src/main/java/org/nuclearfog/twidda/viewadapter/TimelineAdapter.java index 8fbbbbab..74f02980 100644 --- a/app/src/main/java/org/nuclearfog/twidda/viewadapter/TimelineAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/viewadapter/TimelineAdapter.java @@ -15,6 +15,8 @@ import org.nuclearfog.twidda.backend.ImageDownloader; import org.nuclearfog.twidda.window.ColorPreferences; import org.nuclearfog.twidda.database.TweetDatabase; +import java.lang.ref.WeakReference; + public class TimelineAdapter extends ArrayAdapter implements View.OnClickListener { private TweetDatabase mTweets; private ViewGroup p; @@ -60,10 +62,11 @@ public class TimelineAdapter extends ArrayAdapter implements View.OnClickListene ((TextView) v.findViewById(R.id.favorite_number)).setText(favoriteStr); ((TextView) v.findViewById(R.id.time)).setText(mTweets.getDate(position)); ((TextView) v.findViewById(R.id.tweettext)).setTextColor(textColor); - ImageView imgView = v.findViewById(R.id.tweetPb); - imgView.setImageResource(R.mipmap.pb); - if(mTweets.loadImages()) - new ImageDownloader(imgView).execute(mTweets.getPbImg(position)); + + if(mTweets.loadImages()) { + ImageView imgView = v.findViewById(R.id.tweetPb); + new ImageDownloader(new WeakReference<>(imgView)).execute(mTweets.getPbImg(position)); + } return v; } diff --git a/app/src/main/java/org/nuclearfog/twidda/viewadapter/UserAdapter.java b/app/src/main/java/org/nuclearfog/twidda/viewadapter/UserAdapter.java index 414609a6..efda221a 100644 --- a/app/src/main/java/org/nuclearfog/twidda/viewadapter/UserAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/viewadapter/UserAdapter.java @@ -15,6 +15,8 @@ import org.nuclearfog.twidda.window.ColorPreferences; import org.nuclearfog.twidda.database.UserDatabase; import org.nuclearfog.twidda.R; +import java.lang.ref.WeakReference; + public class UserAdapter extends ArrayAdapter implements View.OnClickListener { private UserDatabase userDatabase; @@ -56,7 +58,7 @@ public class UserAdapter extends ArrayAdapter implements View.OnClickListener { if(userDatabase.loadImages()) { - ImageDownloader imgDl = new ImageDownloader(imgView); + ImageDownloader imgDl = new ImageDownloader(new WeakReference<>(imgView)); imgDl.execute(userDatabase.getProfileURL(position)); } else { imgView.setImageResource(R.mipmap.pb); diff --git a/app/src/main/java/org/nuclearfog/twidda/window/TweetDetail.java b/app/src/main/java/org/nuclearfog/twidda/window/TweetDetail.java index 6ce1081e..8a056dd0 100644 --- a/app/src/main/java/org/nuclearfog/twidda/window/TweetDetail.java +++ b/app/src/main/java/org/nuclearfog/twidda/window/TweetDetail.java @@ -9,6 +9,7 @@ import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; +import android.widget.TextView; import org.nuclearfog.twidda.backend.ShowStatus; import org.nuclearfog.twidda.database.TweetDatabase; @@ -24,6 +25,7 @@ public class TweetDetail extends AppCompatActivity implements View.OnClickListen private ListView answer_list; private long tweetID; private long userID; + private long replyID = -1; private boolean home = false; @Override @@ -31,10 +33,13 @@ public class TweetDetail extends AppCompatActivity implements View.OnClickListen super.onCreate(b); setContentView(R.layout.tweet_detail); tweetID = getIntent().getExtras().getLong("tweetID"); - userID = getIntent().getExtras().getLong("userID");//userID - if(getIntent().hasExtra("home") ){ + userID = getIntent().getExtras().getLong("userID"); + if(getIntent().hasExtra("home")) { home = getIntent().getExtras().getBoolean("home"); } + if(getIntent().hasExtra("replyID")) { + replyID = getIntent().getExtras().getLong("replyID"); + } answer_list = (ListView) findViewById(R.id.answer_list); Button answer = (Button) findViewById(R.id.answer_button); @@ -43,9 +48,9 @@ public class TweetDetail extends AppCompatActivity implements View.OnClickListen ImageView pb = (ImageView) findViewById(R.id.profileimage_detail); answer_list.setOnItemClickListener(this); - answer.setOnClickListener(this); - retweet.setOnClickListener(this); favorite.setOnClickListener(this); + retweet.setOnClickListener(this); + answer.setOnClickListener(this); pb.setOnClickListener(this); setContent(); } 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 eb608a39..89d6900f 100644 --- a/app/src/main/java/org/nuclearfog/twidda/window/UserProfile.java +++ b/app/src/main/java/org/nuclearfog/twidda/window/UserProfile.java @@ -3,6 +3,7 @@ package org.nuclearfog.twidda.window; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; +import android.support.design.widget.AppBarLayout; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.RecyclerView; @@ -66,7 +67,7 @@ public class UserProfile extends AppCompatActivity implements View.OnClickListen // Tab #2 TabHost.TabSpec tab2 = mTab.newTabSpec("favorites"); tab2.setContent(R.id.homefavorits); - tab2.setIndicator("",getResources().getDrawable(R.drawable.favorite_icon)); + tab2.setIndicator("",getResources().getDrawable(R.drawable.favorite)); mTab.addTab(tab2); mTab.setOnTabChangedListener(this); diff --git a/app/src/main/res/drawable/favorite_icon.xml b/app/src/main/res/drawable/favorite_icon.xml deleted file mode 100644 index 629795e7..00000000 --- a/app/src/main/res/drawable/favorite_icon.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_arrow_down.xml b/app/src/main/res/drawable/ic_arrow_down.xml deleted file mode 100644 index 06461537..00000000 --- a/app/src/main/res/drawable/ic_arrow_down.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_search_black_24dp.xml b/app/src/main/res/drawable/ic_search_black_24dp.xml deleted file mode 100644 index affc7ba2..00000000 --- a/app/src/main/res/drawable/ic_search_black_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/mention_icon.xml b/app/src/main/res/drawable/mention_icon.xml deleted file mode 100644 index e0290e92..00000000 --- a/app/src/main/res/drawable/mention_icon.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/profile.xml b/app/src/main/res/layout/profile.xml index 162ebea9..cb59da40 100644 --- a/app/src/main/res/layout/profile.xml +++ b/app/src/main/res/layout/profile.xml @@ -6,7 +6,7 @@ android:fitsSystemWindows="true"> + android:layout_height="@dimen/bar_wide"/> - - - - - - - - - - - + android:layout_margin="5dp" + android:orientation="vertical"> + + + + + + + + + + + + + @@ -67,6 +71,14 @@ + + WOEID Standort Link Löschen + Aktualisieren CREATE TABLE IF NOT EXISTS user ( @@ -80,6 +81,6 @@ trendname TEXT, trendlink TEXT); - Aktualisieren + \ No newline at end of file