mirror of
https://github.com/nuclearfog/Shitter.git
synced 2025-02-09 08:38:38 +01:00
restructured classes, bug fix
added RegEx for Syntax highlighting
This commit is contained in:
parent
db8ca5c46a
commit
2353535311
@ -19,11 +19,11 @@ import android.widget.TabHost;
|
||||
import android.widget.TabHost.OnTabChangeListener;
|
||||
import android.widget.TabHost.TabSpec;
|
||||
|
||||
import org.nuclearfog.twidda.adapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.adapter.TrendAdapter;
|
||||
import org.nuclearfog.twidda.backend.MainPage;
|
||||
import org.nuclearfog.twidda.backend.listitems.Tweet;
|
||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.viewadapter.TrendAdapter;
|
||||
import org.nuclearfog.twidda.window.AppSettings;
|
||||
import org.nuclearfog.twidda.window.LoginPage;
|
||||
import org.nuclearfog.twidda.window.SearchPage;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package org.nuclearfog.twidda.viewadapter;
|
||||
package org.nuclearfog.twidda.adapter;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v7.widget.RecyclerView;
|
@ -1,12 +1,10 @@
|
||||
package org.nuclearfog.twidda.viewadapter;
|
||||
package org.nuclearfog.twidda.adapter;
|
||||
|
||||
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;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.Spanned;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
@ -17,6 +15,7 @@ import android.widget.TextView;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.backend.clickable.Tagger;
|
||||
import org.nuclearfog.twidda.backend.listitems.Tweet;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
@ -102,10 +101,10 @@ public class TimelineAdapter extends Adapter<TimelineAdapter.ItemHolder> {
|
||||
} else {
|
||||
vh.retweeter.setText("");
|
||||
}
|
||||
|
||||
Spanned text = Tagger.makeText(tweet.tweet, highlight);
|
||||
vh.username.setText(tweet.user.username);
|
||||
vh.screenname.setText(tweet.user.screenname);
|
||||
vh.tweet.setText(highlight(tweet.tweet));
|
||||
vh.tweet.setText(text);
|
||||
vh.retweet.setText(retweet);
|
||||
vh.favorite.setText(favorit);
|
||||
vh.time.setText(stringTime(tweet.time));
|
||||
@ -151,47 +150,6 @@ public class TimelineAdapter extends Adapter<TimelineAdapter.ItemHolder> {
|
||||
}
|
||||
|
||||
|
||||
public SpannableStringBuilder highlight(String tweet) {
|
||||
SpannableStringBuilder sTweet = new SpannableStringBuilder(tweet);
|
||||
int start = 0;
|
||||
boolean marked = false;
|
||||
for (int i = 0; i < tweet.length(); i++) {
|
||||
char current = tweet.charAt(i);
|
||||
switch (current) {
|
||||
case '@':
|
||||
start = i;
|
||||
marked = true;
|
||||
break;
|
||||
case '#':
|
||||
start = i;
|
||||
marked = true;
|
||||
break;
|
||||
|
||||
case '\'':
|
||||
case '\"':
|
||||
case '\n':
|
||||
case ')':
|
||||
case '(':
|
||||
case ':':
|
||||
case ' ':
|
||||
case '.':
|
||||
case ',':
|
||||
case '!':
|
||||
case '?':
|
||||
case '-':
|
||||
if (marked)
|
||||
sTweet.setSpan(new ForegroundColorSpan(highlight), start, i, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
marked = false;
|
||||
break;
|
||||
}
|
||||
if (i == tweet.length() - 1 && marked) {
|
||||
sTweet.setSpan(new ForegroundColorSpan(highlight), start, i + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
}
|
||||
}
|
||||
return sTweet;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Custom Click Listener
|
||||
*/
|
@ -1,4 +1,4 @@
|
||||
package org.nuclearfog.twidda.viewadapter;
|
||||
package org.nuclearfog.twidda.adapter;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v7.widget.RecyclerView;
|
@ -1,4 +1,4 @@
|
||||
package org.nuclearfog.twidda.viewadapter;
|
||||
package org.nuclearfog.twidda.adapter;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v7.widget.RecyclerView;
|
@ -1,4 +1,4 @@
|
||||
package org.nuclearfog.twidda.viewadapter;
|
||||
package org.nuclearfog.twidda.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
@ -8,12 +8,12 @@ import android.widget.Toast;
|
||||
|
||||
import org.nuclearfog.twidda.MainActivity;
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.adapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.adapter.TrendAdapter;
|
||||
import org.nuclearfog.twidda.backend.listitems.Trend;
|
||||
import org.nuclearfog.twidda.backend.listitems.Tweet;
|
||||
import org.nuclearfog.twidda.database.DatabaseAdapter;
|
||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.viewadapter.TrendAdapter;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.ArrayList;
|
||||
|
@ -7,9 +7,9 @@ import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.adapter.MessageAdapter;
|
||||
import org.nuclearfog.twidda.backend.listitems.Message;
|
||||
import org.nuclearfog.twidda.database.DatabaseAdapter;
|
||||
import org.nuclearfog.twidda.viewadapter.MessageAdapter;
|
||||
import org.nuclearfog.twidda.window.DirectMessage;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
|
@ -13,11 +13,11 @@ import android.widget.Toast;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.adapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.backend.listitems.Tweet;
|
||||
import org.nuclearfog.twidda.backend.listitems.TwitterUser;
|
||||
import org.nuclearfog.twidda.database.DatabaseAdapter;
|
||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.window.UserDetail;
|
||||
import org.nuclearfog.twidda.window.UserProfile;
|
||||
|
||||
|
@ -5,10 +5,6 @@ import android.os.AsyncTask;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.text.Spannable;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.Spanned;
|
||||
import android.text.TextPaint;
|
||||
import android.text.style.ClickableSpan;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
@ -19,11 +15,11 @@ import android.widget.Toast;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.adapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.backend.clickable.Tagger;
|
||||
import org.nuclearfog.twidda.backend.listitems.Tweet;
|
||||
import org.nuclearfog.twidda.database.DatabaseAdapter;
|
||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.window.SearchPage;
|
||||
import org.nuclearfog.twidda.window.TweetDetail;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
@ -154,7 +150,8 @@ public class StatusLoader extends AsyncTask<Long, Void, Long> {
|
||||
View mediaButton = ui.get().findViewById(R.id.image_attach);
|
||||
View tweet_verify = ui.get().findViewById(R.id.tweet_verify);
|
||||
|
||||
tweetText.setText(highlight(tweet.tweet));
|
||||
Spannable sTweet = Tagger.makeText(tweet.tweet, highlight, ui.get());
|
||||
tweetText.setText(sTweet);
|
||||
tweetText.setTextColor(font_color);
|
||||
username.setText(tweet.user.username);
|
||||
username.setTextColor(font_color);
|
||||
@ -218,6 +215,7 @@ public class StatusLoader extends AsyncTask<Long, Void, Long> {
|
||||
answerAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Long mode) {
|
||||
if (ui.get() == null) return;
|
||||
@ -225,10 +223,14 @@ public class StatusLoader extends AsyncTask<Long, Void, Long> {
|
||||
SwipeRefreshLayout ansReload = ui.get().findViewById(R.id.answer_reload);
|
||||
ansReload.setRefreshing(false);
|
||||
|
||||
if (mode == DELETE) {
|
||||
if (mode == FAVORITE || mode == RETWEET) {
|
||||
ui.get().setResult(TweetDetail.CHANGED);
|
||||
|
||||
} else if (mode == DELETE) {
|
||||
Toast.makeText(ui.get(), R.string.tweet_removed, Toast.LENGTH_SHORT).show();
|
||||
ui.get().setResult(ui.get().CHANGED);
|
||||
ui.get().setResult(TweetDetail.CHANGED);
|
||||
ui.get().finish();
|
||||
|
||||
} else if (mode == ERROR) {
|
||||
switch (returnCode) {
|
||||
case 136:
|
||||
@ -244,64 +246,4 @@ public class StatusLoader extends AsyncTask<Long, Void, Long> {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private Spannable highlight(String tweet) {
|
||||
Spannable sTweet = new SpannableStringBuilder(tweet);
|
||||
int start = 0;
|
||||
boolean marked = false;
|
||||
for (int i = 0; i < tweet.length(); i++) {
|
||||
char current = tweet.charAt(i);
|
||||
switch (current) {
|
||||
case '@':
|
||||
case '#':
|
||||
start = i;
|
||||
marked = true;
|
||||
break;
|
||||
case '\'':
|
||||
case '\"':
|
||||
case '\n':
|
||||
case ')':
|
||||
case '(':
|
||||
case ':':
|
||||
case ' ':
|
||||
case '.':
|
||||
case ',':
|
||||
case '!':
|
||||
case '?':
|
||||
case '-':
|
||||
if (marked && start != i - 1)
|
||||
sTweet = spanning(sTweet, start, i);
|
||||
marked = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (marked && start != tweet.length() - 1) {
|
||||
sTweet = spanning(sTweet, start, tweet.length());
|
||||
}
|
||||
return sTweet;
|
||||
}
|
||||
|
||||
|
||||
private Spannable spanning(Spannable sTweet, final int start, final int end) {
|
||||
sTweet.setSpan(new ClickableSpan() {
|
||||
@Override
|
||||
public void onClick(View widget) {
|
||||
TextView tv = (TextView) widget;
|
||||
Spanned s = (Spanned) tv.getText();
|
||||
String search = s.subSequence(start, end).toString();
|
||||
Intent intent = new Intent(ui.get(), SearchPage.class);
|
||||
if (search.startsWith("#"))
|
||||
intent.putExtra("Addition", search);
|
||||
intent.putExtra("search", search);
|
||||
ui.get().startActivity(intent);
|
||||
}
|
||||
@Override
|
||||
public void updateDrawState(TextPaint ds) {
|
||||
ds.setColor(highlight);
|
||||
ds.setUnderlineText(false);
|
||||
}
|
||||
}, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
return sTweet;
|
||||
}
|
||||
}
|
@ -7,10 +7,10 @@ import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.adapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.adapter.UserAdapter;
|
||||
import org.nuclearfog.twidda.backend.listitems.Tweet;
|
||||
import org.nuclearfog.twidda.backend.listitems.TwitterUser;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.viewadapter.UserAdapter;
|
||||
import org.nuclearfog.twidda.window.SearchPage;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
|
@ -8,8 +8,8 @@ import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.adapter.UserAdapter;
|
||||
import org.nuclearfog.twidda.backend.listitems.TwitterUser;
|
||||
import org.nuclearfog.twidda.viewadapter.UserAdapter;
|
||||
import org.nuclearfog.twidda.window.UserDetail;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
|
@ -0,0 +1,65 @@
|
||||
package org.nuclearfog.twidda.backend.clickable;
|
||||
|
||||
import android.text.Spannable;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.Spanned;
|
||||
import android.text.TextPaint;
|
||||
import android.text.style.ClickableSpan;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.view.View;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class Tagger {
|
||||
|
||||
private static final String PATTERN = "[@#][^\\s@#\\.\\,]+";
|
||||
private static final int MODE = Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
|
||||
|
||||
|
||||
private Tagger() {
|
||||
}
|
||||
|
||||
|
||||
public static Spannable makeText(final String text, final int color, final OnTagClickListener l) {
|
||||
SpannableStringBuilder sText = new SpannableStringBuilder(text);
|
||||
Pattern p = Pattern.compile(PATTERN);
|
||||
Matcher m = p.matcher(text);
|
||||
while (m.find()) {
|
||||
final int start = m.start();
|
||||
final int end = m.end();
|
||||
sText.setSpan(new ClickableSpan() {
|
||||
@Override
|
||||
public void onClick(View widget) {
|
||||
l.onClick(text.substring(start, end));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateDrawState(TextPaint ds) {
|
||||
ds.setColor(color);
|
||||
ds.setUnderlineText(false);
|
||||
}
|
||||
}, start, end, MODE);
|
||||
}
|
||||
return sText;
|
||||
}
|
||||
|
||||
|
||||
public static Spannable makeText(String text, int color) {
|
||||
SpannableStringBuilder sText = new SpannableStringBuilder(text);
|
||||
Pattern p = Pattern.compile(PATTERN);
|
||||
Matcher m = p.matcher(text);
|
||||
while (m.find()) {
|
||||
final int start = m.start();
|
||||
final int end = m.end();
|
||||
ForegroundColorSpan sColor = new ForegroundColorSpan(color);
|
||||
sText.setSpan(sColor, start, end, MODE);
|
||||
}
|
||||
return sText;
|
||||
}
|
||||
|
||||
|
||||
public interface OnTagClickListener {
|
||||
void onClick(String text);
|
||||
}
|
||||
}
|
@ -22,9 +22,9 @@ import com.flask.colorpicker.OnColorChangedListener;
|
||||
import com.flask.colorpicker.builder.ColorPickerDialogBuilder;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.adapter.WorldIdAdapter;
|
||||
import org.nuclearfog.twidda.backend.TwitterEngine;
|
||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
import org.nuclearfog.twidda.viewadapter.WorldIdAdapter;
|
||||
|
||||
/**
|
||||
* App settings page
|
||||
|
@ -13,11 +13,11 @@ import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.adapter.MessageAdapter;
|
||||
import org.nuclearfog.twidda.adapter.MessageAdapter.OnItemSelected;
|
||||
import org.nuclearfog.twidda.backend.MessageLoader;
|
||||
import org.nuclearfog.twidda.backend.listitems.TwitterUser;
|
||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
import org.nuclearfog.twidda.viewadapter.MessageAdapter;
|
||||
import org.nuclearfog.twidda.viewadapter.MessageAdapter.OnItemSelected;
|
||||
|
||||
import static android.os.AsyncTask.Status.RUNNING;
|
||||
|
||||
|
@ -19,13 +19,13 @@ import android.widget.TabHost;
|
||||
import android.widget.TabHost.OnTabChangeListener;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.adapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.adapter.TimelineAdapter.OnItemClicked;
|
||||
import org.nuclearfog.twidda.adapter.UserAdapter;
|
||||
import org.nuclearfog.twidda.backend.TwitterSearch;
|
||||
import org.nuclearfog.twidda.backend.listitems.Tweet;
|
||||
import org.nuclearfog.twidda.backend.listitems.TwitterUser;
|
||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter.OnItemClicked;
|
||||
import org.nuclearfog.twidda.viewadapter.UserAdapter;
|
||||
|
||||
import static android.os.AsyncTask.Status.RUNNING;
|
||||
|
||||
|
@ -21,12 +21,13 @@ import android.view.ViewGroup;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.adapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.adapter.TimelineAdapter.OnItemClicked;
|
||||
import org.nuclearfog.twidda.backend.ImagePopup;
|
||||
import org.nuclearfog.twidda.backend.StatusLoader;
|
||||
import org.nuclearfog.twidda.backend.clickable.Tagger;
|
||||
import org.nuclearfog.twidda.backend.listitems.Tweet;
|
||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter.OnItemClicked;
|
||||
|
||||
import static android.os.AsyncTask.Status.RUNNING;
|
||||
|
||||
@ -37,12 +38,14 @@ import static android.os.AsyncTask.Status.RUNNING;
|
||||
* @see ImagePopup
|
||||
*/
|
||||
public class TweetDetail extends AppCompatActivity implements OnClickListener,
|
||||
OnItemClicked, OnRefreshListener {
|
||||
OnItemClicked, OnRefreshListener, Tagger.OnTagClickListener {
|
||||
|
||||
public static final int CHANGED = 1;
|
||||
private static final int TWEET = 2;
|
||||
|
||||
private RecyclerView answer_list;
|
||||
private StatusLoader mStat;
|
||||
private GlobalSettings settings;
|
||||
private SwipeRefreshLayout answerReload;
|
||||
private ConnectivityManager mConnect;
|
||||
private String username = "";
|
||||
@ -68,7 +71,7 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
|
||||
if (getSupportActionBar() != null)
|
||||
getSupportActionBar().setDisplayShowTitleEnabled(false);
|
||||
|
||||
GlobalSettings settings = GlobalSettings.getInstance(this);
|
||||
settings = GlobalSettings.getInstance(this);
|
||||
isHome = userID == settings.getUserId();
|
||||
mConnect = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
|
||||
@ -85,10 +88,6 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
|
||||
answer_list.setLayoutManager(new LinearLayoutManager(this));
|
||||
|
||||
root.setBackgroundColor(settings.getBackgroundColor());
|
||||
TimelineAdapter answerAdapter = new TimelineAdapter(this);
|
||||
answerAdapter.toggleImage(settings.loadImages());
|
||||
answerAdapter.setColor(settings.getHighlightColor(), settings.getFontColor());
|
||||
answer_list.setAdapter(answerAdapter);
|
||||
|
||||
favorite.setOnClickListener(this);
|
||||
retweet.setOnClickListener(this);
|
||||
@ -103,6 +102,11 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
if (mStat == null) {
|
||||
TimelineAdapter answerAdapter = new TimelineAdapter(this);
|
||||
answerAdapter.toggleImage(settings.loadImages());
|
||||
answerAdapter.setColor(settings.getHighlightColor(), settings.getFontColor());
|
||||
answer_list.setAdapter(answerAdapter);
|
||||
|
||||
answerReload.setRefreshing(true);
|
||||
mStat = new StatusLoader(this);
|
||||
mStat.execute(tweetID, StatusLoader.LOAD);
|
||||
@ -120,6 +124,14 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int reqCode, int returnCode, Intent i) {
|
||||
if (reqCode == TWEET && returnCode == CHANGED) {
|
||||
mStat = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu m) {
|
||||
getMenuInflater().inflate(R.menu.tweet, m);
|
||||
@ -209,6 +221,16 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onClick(String text) {
|
||||
Intent intent = new Intent(this, SearchPage.class);
|
||||
if (text.startsWith("#"))
|
||||
intent.putExtra("Addition", text);
|
||||
intent.putExtra("search", text);
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onItemClick(ViewGroup parent, int position) {
|
||||
TimelineAdapter timeLineAdapter = (TimelineAdapter) answer_list.getAdapter();
|
||||
@ -218,7 +240,7 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
|
||||
intent.putExtra("tweetID", tweet.tweetID);
|
||||
intent.putExtra("userID", tweet.user.userID);
|
||||
intent.putExtra("username", tweet.user.screenname);
|
||||
startActivity(intent);
|
||||
startActivityForResult(intent, TWEET);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -12,11 +12,11 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.adapter.UserAdapter;
|
||||
import org.nuclearfog.twidda.adapter.UserAdapter.OnItemClicked;
|
||||
import org.nuclearfog.twidda.backend.UserLists;
|
||||
import org.nuclearfog.twidda.backend.listitems.TwitterUser;
|
||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
import org.nuclearfog.twidda.viewadapter.UserAdapter;
|
||||
import org.nuclearfog.twidda.viewadapter.UserAdapter.OnItemClicked;
|
||||
|
||||
import static android.os.AsyncTask.Status.RUNNING;
|
||||
|
||||
|
@ -20,11 +20,11 @@ import android.widget.TabHost;
|
||||
import android.widget.TabHost.OnTabChangeListener;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.adapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.adapter.TimelineAdapter.OnItemClicked;
|
||||
import org.nuclearfog.twidda.backend.ProfileLoader;
|
||||
import org.nuclearfog.twidda.backend.listitems.Tweet;
|
||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter.OnItemClicked;
|
||||
|
||||
import static android.os.AsyncTask.Status.RUNNING;
|
||||
|
||||
@ -36,7 +36,10 @@ import static android.os.AsyncTask.Status.RUNNING;
|
||||
public class UserProfile extends AppCompatActivity implements
|
||||
OnRefreshListener, OnTabChangeListener, OnItemClicked {
|
||||
|
||||
private static final int TWEET = 1;
|
||||
|
||||
private ProfileLoader mProfile;
|
||||
private GlobalSettings settings;
|
||||
private SwipeRefreshLayout homeReload, favoriteReload;
|
||||
private RecyclerView homeList, favoriteList;
|
||||
private TabHost mTab;
|
||||
@ -72,7 +75,7 @@ public class UserProfile extends AppCompatActivity implements
|
||||
if (getSupportActionBar() != null)
|
||||
getSupportActionBar().setDisplayShowTitleEnabled(false);
|
||||
|
||||
GlobalSettings settings = GlobalSettings.getInstance(this);
|
||||
settings = GlobalSettings.getInstance(this);
|
||||
home = userId == settings.getUserId();
|
||||
|
||||
homeList.setLayoutManager(new LinearLayoutManager(this));
|
||||
@ -90,16 +93,6 @@ public class UserProfile extends AppCompatActivity implements
|
||||
mTab.addTab(tab2);
|
||||
lastTab = mTab.getCurrentView();
|
||||
|
||||
TimelineAdapter homeTl = new TimelineAdapter(this);
|
||||
homeTl.setColor(settings.getHighlightColor(), settings.getFontColor());
|
||||
homeTl.toggleImage(settings.loadImages());
|
||||
homeList.setAdapter(homeTl);
|
||||
|
||||
TimelineAdapter homeFav = new TimelineAdapter(this);
|
||||
homeFav.setColor(settings.getHighlightColor(), settings.getFontColor());
|
||||
homeFav.toggleImage(settings.loadImages());
|
||||
favoriteList.setAdapter(homeFav);
|
||||
|
||||
mTab.setOnTabChangedListener(this);
|
||||
homeReload.setOnRefreshListener(this);
|
||||
favoriteReload.setOnRefreshListener(this);
|
||||
@ -110,6 +103,16 @@ public class UserProfile extends AppCompatActivity implements
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
if (mProfile == null) {
|
||||
TimelineAdapter homeTl = new TimelineAdapter(this);
|
||||
homeTl.setColor(settings.getHighlightColor(), settings.getFontColor());
|
||||
homeTl.toggleImage(settings.loadImages());
|
||||
homeList.setAdapter(homeTl);
|
||||
|
||||
TimelineAdapter homeFav = new TimelineAdapter(this);
|
||||
homeFav.setColor(settings.getHighlightColor(), settings.getFontColor());
|
||||
homeFav.toggleImage(settings.loadImages());
|
||||
favoriteList.setAdapter(homeFav);
|
||||
|
||||
mProfile = new ProfileLoader(this);
|
||||
mProfile.execute(userId, 0L);
|
||||
homeReload.setRefreshing(true);
|
||||
@ -129,6 +132,14 @@ public class UserProfile extends AppCompatActivity implements
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int reqCode, int returnCode, Intent i) {
|
||||
if (reqCode == TWEET && returnCode == TweetDetail.CHANGED) {
|
||||
mProfile = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu m) {
|
||||
getMenuInflater().inflate(R.menu.profile, m);
|
||||
@ -293,7 +304,7 @@ public class UserProfile extends AppCompatActivity implements
|
||||
intent.putExtra("tweetID", tweet.tweetID);
|
||||
intent.putExtra("userID", tweet.user.userID);
|
||||
intent.putExtra("username", tweet.user.screenname);
|
||||
startActivity(intent);
|
||||
startActivityForResult(intent, TWEET);
|
||||
}
|
||||
} else {
|
||||
TimelineAdapter tweetAdapter = (TimelineAdapter) favoriteList.getAdapter();
|
||||
@ -305,7 +316,7 @@ public class UserProfile extends AppCompatActivity implements
|
||||
intent.putExtra("tweetID", tweet.tweetID);
|
||||
intent.putExtra("userID", tweet.user.userID);
|
||||
intent.putExtra("username", tweet.user.screenname);
|
||||
startActivity(intent);
|
||||
startActivityForResult(intent, TWEET);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user