restructured adapter, bug fix
This commit is contained in:
parent
27c846954d
commit
bef82da590
|
@ -37,6 +37,7 @@ public class MainActivity extends AppCompatActivity implements OnTabSelectedList
|
||||||
@Nullable
|
@Nullable
|
||||||
private FragmentAdapter adapter;
|
private FragmentAdapter adapter;
|
||||||
private TabLayout tablayout;
|
private TabLayout tablayout;
|
||||||
|
private GlobalSettings settings;
|
||||||
private ViewPager pager;
|
private ViewPager pager;
|
||||||
private View root;
|
private View root;
|
||||||
private long homeId;
|
private long homeId;
|
||||||
|
@ -61,6 +62,9 @@ public class MainActivity extends AppCompatActivity implements OnTabSelectedList
|
||||||
if (getSupportActionBar() != null)
|
if (getSupportActionBar() != null)
|
||||||
getSupportActionBar().setDisplayShowTitleEnabled(false);
|
getSupportActionBar().setDisplayShowTitleEnabled(false);
|
||||||
|
|
||||||
|
settings = GlobalSettings.getInstance(this);
|
||||||
|
root.setBackgroundColor(settings.getBackgroundColor());
|
||||||
|
tablayout.setSelectedTabIndicatorColor(settings.getHighlightColor());
|
||||||
tablayout.setupWithViewPager(pager);
|
tablayout.setupWithViewPager(pager);
|
||||||
tablayout.addOnTabSelectedListener(this);
|
tablayout.addOnTabSelectedListener(this);
|
||||||
pager.setOffscreenPageLimit(3);
|
pager.setOffscreenPageLimit(3);
|
||||||
|
@ -70,7 +74,7 @@ public class MainActivity extends AppCompatActivity implements OnTabSelectedList
|
||||||
@Override
|
@Override
|
||||||
protected void onStart() {
|
protected void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
GlobalSettings settings = GlobalSettings.getInstance(this);
|
|
||||||
if (!settings.getLogin()) {
|
if (!settings.getLogin()) {
|
||||||
Intent loginIntent = new Intent(this, LoginPage.class);
|
Intent loginIntent = new Intent(this, LoginPage.class);
|
||||||
startActivityForResult(loginIntent, LOGIN);
|
startActivityForResult(loginIntent, LOGIN);
|
||||||
|
@ -89,8 +93,6 @@ public class MainActivity extends AppCompatActivity implements OnTabSelectedList
|
||||||
mnTab.setIcon(R.drawable.mention);
|
mnTab.setIcon(R.drawable.mention);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
root.setBackgroundColor(settings.getBackgroundColor());
|
|
||||||
tablayout.setSelectedTabIndicatorColor(settings.getHighlightColor());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -103,14 +105,15 @@ public class MainActivity extends AppCompatActivity implements OnTabSelectedList
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SETTING:
|
case SETTING:
|
||||||
|
root.setBackgroundColor(settings.getBackgroundColor());
|
||||||
|
tablayout.setSelectedTabIndicatorColor(settings.getHighlightColor());
|
||||||
if (adapter != null) {
|
if (adapter != null) {
|
||||||
if (returnCode == DB_CLEARED) {
|
if (returnCode == DB_CLEARED)
|
||||||
adapter.clearData();
|
adapter.clearData();
|
||||||
} else if (returnCode == APP_LOGOUT) {
|
else if (returnCode == APP_LOGOUT)
|
||||||
adapter = null;
|
adapter = null;
|
||||||
} else {
|
else
|
||||||
adapter.notifySettingsChanged();
|
adapter.notifySettingsChanged();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ import android.os.Bundle;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
import androidx.fragment.app.FragmentPagerAdapter;
|
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||||
|
|
||||||
import org.nuclearfog.twidda.fragment.ListFragment;
|
import org.nuclearfog.twidda.fragment.ListFragment;
|
||||||
import org.nuclearfog.twidda.fragment.MessageFragment;
|
import org.nuclearfog.twidda.fragment.MessageFragment;
|
||||||
|
@ -25,7 +25,7 @@ import static org.nuclearfog.twidda.fragment.UserFragment.KEY_FRAG_USER_ID;
|
||||||
import static org.nuclearfog.twidda.fragment.UserFragment.KEY_FRAG_USER_MODE;
|
import static org.nuclearfog.twidda.fragment.UserFragment.KEY_FRAG_USER_MODE;
|
||||||
import static org.nuclearfog.twidda.fragment.UserFragment.KEY_FRAG_USER_SEARCH;
|
import static org.nuclearfog.twidda.fragment.UserFragment.KEY_FRAG_USER_SEARCH;
|
||||||
|
|
||||||
public class FragmentAdapter extends FragmentPagerAdapter {
|
public class FragmentAdapter extends FragmentStatePagerAdapter {
|
||||||
|
|
||||||
public enum AdapterType {
|
public enum AdapterType {
|
||||||
PROFILE_TAB,
|
PROFILE_TAB,
|
||||||
|
|
|
@ -29,16 +29,17 @@ public class ImageAdapter extends Adapter<ImageAdapter.ImageHolder> {
|
||||||
private List<Bitmap> images;
|
private List<Bitmap> images;
|
||||||
private boolean loading;
|
private boolean loading;
|
||||||
|
|
||||||
|
|
||||||
public ImageAdapter(OnImageClickListener l) {
|
public ImageAdapter(OnImageClickListener l) {
|
||||||
itemClickListener = new WeakReference<>(l);
|
itemClickListener = new WeakReference<>(l);
|
||||||
images = new LinkedList<>();
|
images = new LinkedList<>();
|
||||||
loading = true;
|
loading = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@MainThread
|
@MainThread
|
||||||
public void addLast(@NonNull Bitmap image) {
|
public void addLast(@NonNull Bitmap image) {
|
||||||
int imagePos = images.size();
|
int imagePos = images.size();
|
||||||
|
if (imagePos == 0)
|
||||||
|
loading = true;
|
||||||
images.add(image);
|
images.add(image);
|
||||||
notifyItemInserted(imagePos);
|
notifyItemInserted(imagePos);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package org.nuclearfog.twidda.adapter;
|
package org.nuclearfog.twidda.adapter;
|
||||||
|
|
||||||
import android.graphics.Color;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
|
@ -20,6 +19,7 @@ import org.nuclearfog.twidda.R;
|
||||||
import org.nuclearfog.twidda.backend.helper.StringTools;
|
import org.nuclearfog.twidda.backend.helper.StringTools;
|
||||||
import org.nuclearfog.twidda.backend.items.TwitterList;
|
import org.nuclearfog.twidda.backend.items.TwitterList;
|
||||||
import org.nuclearfog.twidda.backend.items.TwitterUser;
|
import org.nuclearfog.twidda.backend.items.TwitterUser;
|
||||||
|
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.text.NumberFormat;
|
import java.text.NumberFormat;
|
||||||
|
@ -34,13 +34,13 @@ public class ListAdapter extends Adapter<ListAdapter.ListHolder> {
|
||||||
private WeakReference<ListClickListener> listener;
|
private WeakReference<ListClickListener> listener;
|
||||||
private List<TwitterList> data;
|
private List<TwitterList> data;
|
||||||
private NumberFormat formatter;
|
private NumberFormat formatter;
|
||||||
private int fontColor;
|
private GlobalSettings settings;
|
||||||
|
|
||||||
public ListAdapter(ListClickListener l) {
|
public ListAdapter(ListClickListener l, GlobalSettings settings) {
|
||||||
data = new ArrayList<>();
|
data = new ArrayList<>();
|
||||||
listener = new WeakReference<>(l);
|
listener = new WeakReference<>(l);
|
||||||
formatter = NumberFormat.getIntegerInstance();
|
formatter = NumberFormat.getIntegerInstance();
|
||||||
fontColor = Color.WHITE;
|
this.settings = settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
@MainThread
|
@MainThread
|
||||||
|
@ -59,10 +59,6 @@ public class ListAdapter extends Adapter<ListAdapter.ListHolder> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setColor(int fontColor) {
|
|
||||||
this.fontColor = fontColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getItemCount() {
|
public int getItemCount() {
|
||||||
return data.size();
|
return data.size();
|
||||||
|
@ -85,11 +81,12 @@ public class ListAdapter extends Adapter<ListAdapter.ListHolder> {
|
||||||
vh.createdAt.setText(StringTools.getTimeString(item.getCreatedAt()));
|
vh.createdAt.setText(StringTools.getTimeString(item.getCreatedAt()));
|
||||||
vh.memberCount.setText(formatter.format(item.getMemberCount()));
|
vh.memberCount.setText(formatter.format(item.getMemberCount()));
|
||||||
vh.subscriberCount.setText(formatter.format(item.getSubscriberCount()));
|
vh.subscriberCount.setText(formatter.format(item.getSubscriberCount()));
|
||||||
vh.title.setTextColor(fontColor);
|
vh.title.setTextColor(settings.getFontColor());
|
||||||
vh.ownername.setTextColor(fontColor);
|
vh.ownername.setTextColor(settings.getFontColor());
|
||||||
vh.description.setTextColor(fontColor);
|
vh.description.setTextColor(settings.getFontColor());
|
||||||
vh.createdAt.setTextColor(fontColor);
|
vh.createdAt.setTextColor(settings.getFontColor());
|
||||||
Picasso.get().load(owner.getImageLink() + "_mini").into(vh.pb_image);
|
if (settings.getImageLoad())
|
||||||
|
Picasso.get().load(owner.getImageLink() + "_mini").into(vh.pb_image);
|
||||||
vh.pb_image.setOnClickListener(new OnClickListener() {
|
vh.pb_image.setOnClickListener(new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package org.nuclearfog.twidda.adapter;
|
package org.nuclearfog.twidda.adapter;
|
||||||
|
|
||||||
import android.graphics.Color;
|
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.text.method.LinkMovementMethod;
|
import android.text.method.LinkMovementMethod;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
@ -23,6 +22,7 @@ import org.nuclearfog.twidda.R;
|
||||||
import org.nuclearfog.twidda.backend.helper.StringTools;
|
import org.nuclearfog.twidda.backend.helper.StringTools;
|
||||||
import org.nuclearfog.twidda.backend.items.Message;
|
import org.nuclearfog.twidda.backend.items.Message;
|
||||||
import org.nuclearfog.twidda.backend.items.TwitterUser;
|
import org.nuclearfog.twidda.backend.items.TwitterUser;
|
||||||
|
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -32,17 +32,12 @@ public class MessageAdapter extends Adapter<MessageAdapter.MessageHolder> {
|
||||||
|
|
||||||
private WeakReference<OnItemSelected> itemClickListener;
|
private WeakReference<OnItemSelected> itemClickListener;
|
||||||
private List<Message> messages;
|
private List<Message> messages;
|
||||||
private int highlight;
|
private GlobalSettings settings;
|
||||||
private int fontColor;
|
|
||||||
private boolean loadImage;
|
|
||||||
|
|
||||||
|
public MessageAdapter(OnItemSelected l, GlobalSettings settings) {
|
||||||
public MessageAdapter(OnItemSelected l) {
|
|
||||||
itemClickListener = new WeakReference<>(l);
|
itemClickListener = new WeakReference<>(l);
|
||||||
messages = new ArrayList<>();
|
messages = new ArrayList<>();
|
||||||
fontColor = Color.WHITE;
|
this.settings = settings;
|
||||||
highlight = Color.WHITE;
|
|
||||||
loadImage = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@MainThread
|
@MainThread
|
||||||
|
@ -65,15 +60,6 @@ public class MessageAdapter extends Adapter<MessageAdapter.MessageHolder> {
|
||||||
notifyItemRemoved(pos);
|
notifyItemRemoved(pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setColor(int fontColor, int highlight) {
|
|
||||||
this.fontColor = fontColor;
|
|
||||||
this.highlight = highlight;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setImage(boolean loadImage) {
|
|
||||||
this.loadImage = loadImage;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getItemId(int index) {
|
public long getItemId(int index) {
|
||||||
return messages.get(index).getId();
|
return messages.get(index).getId();
|
||||||
|
@ -98,21 +84,21 @@ public class MessageAdapter extends Adapter<MessageAdapter.MessageHolder> {
|
||||||
Message message = messages.get(index);
|
Message message = messages.get(index);
|
||||||
TwitterUser sender = message.getSender();
|
TwitterUser sender = message.getSender();
|
||||||
if (itemClickListener.get() != null)
|
if (itemClickListener.get() != null)
|
||||||
text = Tagger.makeText(message.getText(), highlight, itemClickListener.get());
|
text = Tagger.makeText(message.getText(), settings.getHighlightColor(), itemClickListener.get());
|
||||||
else
|
else
|
||||||
text = Tagger.makeText(message.getText(), highlight);
|
text = Tagger.makeText(message.getText(), settings.getHighlightColor());
|
||||||
vh.message.setText(text);
|
vh.message.setText(text);
|
||||||
vh.message.setMovementMethod(LinkMovementMethod.getInstance());
|
vh.message.setMovementMethod(LinkMovementMethod.getInstance());
|
||||||
vh.message.setLinkTextColor(highlight);
|
vh.message.setLinkTextColor(settings.getHighlightColor());
|
||||||
vh.username.setText(sender.getUsername());
|
vh.username.setText(sender.getUsername());
|
||||||
vh.screenname.setText(sender.getScreenname());
|
vh.screenname.setText(sender.getScreenname());
|
||||||
vh.createdAt.setText(StringTools.getTimeString(message.getTime()));
|
vh.createdAt.setText(StringTools.getTimeString(message.getTime()));
|
||||||
vh.receivername.setText(message.getReceiver().getScreenname());
|
vh.receivername.setText(message.getReceiver().getScreenname());
|
||||||
vh.message.setTextColor(fontColor);
|
vh.message.setTextColor(settings.getFontColor());
|
||||||
vh.username.setTextColor(fontColor);
|
vh.username.setTextColor(settings.getFontColor());
|
||||||
vh.screenname.setTextColor(fontColor);
|
vh.screenname.setTextColor(settings.getFontColor());
|
||||||
vh.receivername.setTextColor(fontColor);
|
vh.receivername.setTextColor(settings.getFontColor());
|
||||||
vh.createdAt.setTextColor(fontColor);
|
vh.createdAt.setTextColor(settings.getFontColor());
|
||||||
vh.answer.setOnClickListener(new View.OnClickListener() {
|
vh.answer.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
@ -142,7 +128,7 @@ public class MessageAdapter extends Adapter<MessageAdapter.MessageHolder> {
|
||||||
vh.screenname.setCompoundDrawablesWithIntrinsicBounds(R.drawable.lock, 0, 0, 0);
|
vh.screenname.setCompoundDrawablesWithIntrinsicBounds(R.drawable.lock, 0, 0, 0);
|
||||||
else
|
else
|
||||||
vh.screenname.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
|
vh.screenname.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
|
||||||
if (loadImage)
|
if (settings.getImageLoad())
|
||||||
Picasso.get().load(sender.getImageLink() + "_mini").into(vh.profile_img);
|
Picasso.get().load(sender.getImageLink() + "_mini").into(vh.profile_img);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package org.nuclearfog.twidda.adapter;
|
package org.nuclearfog.twidda.adapter;
|
||||||
|
|
||||||
import android.graphics.Color;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
|
@ -14,6 +13,7 @@ import androidx.recyclerview.widget.RecyclerView.Adapter;
|
||||||
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
||||||
|
|
||||||
import org.nuclearfog.twidda.R;
|
import org.nuclearfog.twidda.R;
|
||||||
|
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -23,16 +23,12 @@ public class TrendAdapter extends Adapter<TrendAdapter.ItemHolder> {
|
||||||
|
|
||||||
private WeakReference<OnItemClickListener> itemClickListener;
|
private WeakReference<OnItemClickListener> itemClickListener;
|
||||||
private List<String> trends;
|
private List<String> trends;
|
||||||
private int font_color;
|
private GlobalSettings settings;
|
||||||
|
|
||||||
public TrendAdapter(OnItemClickListener l) {
|
public TrendAdapter(OnItemClickListener l, GlobalSettings settings) {
|
||||||
itemClickListener = new WeakReference<>(l);
|
itemClickListener = new WeakReference<>(l);
|
||||||
trends = new ArrayList<>();
|
trends = new ArrayList<>();
|
||||||
font_color = Color.WHITE;
|
this.settings = settings;
|
||||||
}
|
|
||||||
|
|
||||||
public void setColor(int font_color) {
|
|
||||||
this.font_color = font_color;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getData(int index) {
|
public String getData(int index) {
|
||||||
|
@ -83,8 +79,8 @@ public class TrendAdapter extends Adapter<TrendAdapter.ItemHolder> {
|
||||||
String posStr = index + 1 + ".";
|
String posStr = index + 1 + ".";
|
||||||
vh.pos.setText(posStr);
|
vh.pos.setText(posStr);
|
||||||
vh.trends.setText(trends.get(index));
|
vh.trends.setText(trends.get(index));
|
||||||
vh.pos.setTextColor(font_color);
|
vh.pos.setTextColor(settings.getFontColor());
|
||||||
vh.trends.setTextColor(font_color);
|
vh.trends.setTextColor(settings.getFontColor());
|
||||||
}
|
}
|
||||||
|
|
||||||
class ItemHolder extends ViewHolder {
|
class ItemHolder extends ViewHolder {
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package org.nuclearfog.twidda.adapter;
|
package org.nuclearfog.twidda.adapter;
|
||||||
|
|
||||||
import android.graphics.Color;
|
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
@ -21,6 +20,7 @@ import org.nuclearfog.tag.Tagger;
|
||||||
import org.nuclearfog.twidda.R;
|
import org.nuclearfog.twidda.R;
|
||||||
import org.nuclearfog.twidda.backend.helper.StringTools;
|
import org.nuclearfog.twidda.backend.helper.StringTools;
|
||||||
import org.nuclearfog.twidda.backend.items.Tweet;
|
import org.nuclearfog.twidda.backend.items.Tweet;
|
||||||
|
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.text.NumberFormat;
|
import java.text.NumberFormat;
|
||||||
|
@ -32,26 +32,13 @@ public class TweetAdapter extends Adapter<TweetAdapter.ItemHolder> {
|
||||||
private WeakReference<OnItemClickListener> itemClickListener;
|
private WeakReference<OnItemClickListener> itemClickListener;
|
||||||
private NumberFormat formatter;
|
private NumberFormat formatter;
|
||||||
private List<Tweet> tweets;
|
private List<Tweet> tweets;
|
||||||
private int highlight;
|
private GlobalSettings settings;
|
||||||
private int font_color;
|
|
||||||
private boolean image_load;
|
|
||||||
|
|
||||||
public TweetAdapter(OnItemClickListener l) {
|
public TweetAdapter(OnItemClickListener l, GlobalSettings settings) {
|
||||||
itemClickListener = new WeakReference<>(l);
|
itemClickListener = new WeakReference<>(l);
|
||||||
formatter = NumberFormat.getIntegerInstance();
|
formatter = NumberFormat.getIntegerInstance();
|
||||||
tweets = new ArrayList<>();
|
tweets = new ArrayList<>();
|
||||||
highlight = Color.WHITE;
|
this.settings = settings;
|
||||||
font_color = Color.WHITE;
|
|
||||||
image_load = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setColor(int highlight, int font_color) {
|
|
||||||
this.highlight = highlight;
|
|
||||||
this.font_color = font_color;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setImage(boolean image_load) {
|
|
||||||
this.image_load = image_load;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Tweet get(int index) {
|
public Tweet get(int index) {
|
||||||
|
@ -72,10 +59,7 @@ public class TweetAdapter extends Adapter<TweetAdapter.ItemHolder> {
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isEmpty() {
|
@MainThread
|
||||||
return tweets.isEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void remove(long id) {
|
public void remove(long id) {
|
||||||
int index = -1;
|
int index = -1;
|
||||||
for (int pos = 0; pos < tweets.size() && index < 0; pos++) {
|
for (int pos = 0; pos < tweets.size() && index < 0; pos++) {
|
||||||
|
@ -88,6 +72,10 @@ public class TweetAdapter extends Adapter<TweetAdapter.ItemHolder> {
|
||||||
notifyItemRemoved(index);
|
notifyItemRemoved(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isEmpty() {
|
||||||
|
return tweets.isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getItemId(int index) {
|
public long getItemId(int index) {
|
||||||
return tweets.get(index).getId();
|
return tweets.get(index).getId();
|
||||||
|
@ -125,17 +113,17 @@ public class TweetAdapter extends Adapter<TweetAdapter.ItemHolder> {
|
||||||
} else {
|
} else {
|
||||||
vh.retweeter.setText("");
|
vh.retweeter.setText("");
|
||||||
}
|
}
|
||||||
Spanned text = Tagger.makeText(tweet.getTweet(), highlight);
|
Spanned text = Tagger.makeText(tweet.getTweet(), settings.getHighlightColor());
|
||||||
vh.username.setText(tweet.getUser().getUsername());
|
vh.username.setText(tweet.getUser().getUsername());
|
||||||
vh.screenname.setText(tweet.getUser().getScreenname());
|
vh.screenname.setText(tweet.getUser().getScreenname());
|
||||||
vh.tweet.setText(text);
|
vh.tweet.setText(text);
|
||||||
vh.retweet.setText(formatter.format(tweet.getRetweetCount()));
|
vh.retweet.setText(formatter.format(tweet.getRetweetCount()));
|
||||||
vh.favorite.setText(formatter.format(tweet.getFavorCount()));
|
vh.favorite.setText(formatter.format(tweet.getFavorCount()));
|
||||||
vh.time.setText(StringTools.getTimeString(tweet.getTime()));
|
vh.time.setText(StringTools.getTimeString(tweet.getTime()));
|
||||||
vh.username.setTextColor(font_color);
|
vh.username.setTextColor(settings.getFontColor());
|
||||||
vh.screenname.setTextColor(font_color);
|
vh.screenname.setTextColor(settings.getFontColor());
|
||||||
vh.tweet.setTextColor(font_color);
|
vh.tweet.setTextColor(settings.getFontColor());
|
||||||
vh.time.setTextColor(font_color);
|
vh.time.setTextColor(settings.getFontColor());
|
||||||
if (tweet.retweeted())
|
if (tweet.retweeted())
|
||||||
vh.retweet.setCompoundDrawablesWithIntrinsicBounds(R.drawable.retweet_enabled, 0, 0, 0);
|
vh.retweet.setCompoundDrawablesWithIntrinsicBounds(R.drawable.retweet_enabled, 0, 0, 0);
|
||||||
else
|
else
|
||||||
|
@ -152,7 +140,7 @@ public class TweetAdapter extends Adapter<TweetAdapter.ItemHolder> {
|
||||||
vh.screenname.setCompoundDrawablesWithIntrinsicBounds(R.drawable.lock, 0, 0, 0);
|
vh.screenname.setCompoundDrawablesWithIntrinsicBounds(R.drawable.lock, 0, 0, 0);
|
||||||
else
|
else
|
||||||
vh.screenname.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
|
vh.screenname.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
|
||||||
if (image_load)
|
if (settings.getImageLoad())
|
||||||
Picasso.get().load(tweet.getUser().getImageLink() + "_mini").into(vh.profile);
|
Picasso.get().load(tweet.getUser().getImageLink() + "_mini").into(vh.profile);
|
||||||
else
|
else
|
||||||
vh.profile.setImageResource(0);
|
vh.profile.setImageResource(0);
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package org.nuclearfog.twidda.adapter;
|
package org.nuclearfog.twidda.adapter;
|
||||||
|
|
||||||
import android.graphics.Color;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
|
@ -18,6 +17,7 @@ import com.squareup.picasso.Picasso;
|
||||||
|
|
||||||
import org.nuclearfog.twidda.R;
|
import org.nuclearfog.twidda.R;
|
||||||
import org.nuclearfog.twidda.backend.items.TwitterUser;
|
import org.nuclearfog.twidda.backend.items.TwitterUser;
|
||||||
|
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -27,14 +27,12 @@ public class UserAdapter extends Adapter<UserAdapter.ItemHolder> {
|
||||||
|
|
||||||
private WeakReference<OnItemClickListener> itemClickListener;
|
private WeakReference<OnItemClickListener> itemClickListener;
|
||||||
private List<TwitterUser> users;
|
private List<TwitterUser> users;
|
||||||
private int font_color;
|
private GlobalSettings settings;
|
||||||
private boolean loadImage;
|
|
||||||
|
|
||||||
public UserAdapter(OnItemClickListener l) {
|
public UserAdapter(OnItemClickListener l, GlobalSettings settings) {
|
||||||
itemClickListener = new WeakReference<>(l);
|
itemClickListener = new WeakReference<>(l);
|
||||||
users = new ArrayList<>();
|
users = new ArrayList<>();
|
||||||
font_color = Color.WHITE;
|
this.settings = settings;
|
||||||
loadImage = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public TwitterUser getData(int index) {
|
public TwitterUser getData(int index) {
|
||||||
|
@ -48,13 +46,6 @@ public class UserAdapter extends Adapter<UserAdapter.ItemHolder> {
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setColor(int font_color) {
|
|
||||||
this.font_color = font_color;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setImage(boolean image) {
|
|
||||||
loadImage = image;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getItemCount() {
|
public int getItemCount() {
|
||||||
|
@ -86,11 +77,11 @@ public class UserAdapter extends Adapter<UserAdapter.ItemHolder> {
|
||||||
public void onBindViewHolder(@NonNull ItemHolder vh, int index) {
|
public void onBindViewHolder(@NonNull ItemHolder vh, int index) {
|
||||||
TwitterUser user = users.get(index);
|
TwitterUser user = users.get(index);
|
||||||
vh.username.setText(user.getUsername());
|
vh.username.setText(user.getUsername());
|
||||||
vh.username.setTextColor(font_color);
|
vh.username.setTextColor(settings.getFontColor());
|
||||||
vh.screenname.setText(user.getScreenname());
|
vh.screenname.setText(user.getScreenname());
|
||||||
vh.screenname.setTextColor(font_color);
|
vh.screenname.setTextColor(settings.getFontColor());
|
||||||
|
|
||||||
if (loadImage) {
|
if (settings.getImageLoad()) {
|
||||||
Picasso.get().load(user.getImageLink() + "_mini").into(vh.profileImg);
|
Picasso.get().load(user.getImageLink() + "_mini").into(vh.profileImg);
|
||||||
}
|
}
|
||||||
if (user.isVerified()) {
|
if (user.isVerified()) {
|
||||||
|
|
|
@ -791,11 +791,13 @@ public class TwitterEngine {
|
||||||
TwitterList followUserList(long listId) throws EngineException {
|
TwitterList followUserList(long listId) throws EngineException {
|
||||||
try {
|
try {
|
||||||
UserList list = twitter.showUserList(listId);
|
UserList list = twitter.showUserList(listId);
|
||||||
if (list.isFollowing())
|
if (list.isFollowing()) {
|
||||||
list = twitter.destroyUserListSubscription(listId);
|
twitter.destroyUserListSubscription(listId);
|
||||||
else
|
return new TwitterList(list, twitterID, false);
|
||||||
list = twitter.createUserListSubscription(listId);
|
} else {
|
||||||
return new TwitterList(list, twitterID);
|
twitter.createUserListSubscription(listId);
|
||||||
|
return new TwitterList(list, twitterID, true);
|
||||||
|
}
|
||||||
} catch (TwitterException err) {
|
} catch (TwitterException err) {
|
||||||
throw new EngineException(err);
|
throw new EngineException(err);
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,17 +21,21 @@ public class TwitterList {
|
||||||
private final int memberCount;
|
private final int memberCount;
|
||||||
private final int subscriberCnt;
|
private final int subscriberCnt;
|
||||||
|
|
||||||
public TwitterList(UserList list, long homeId) {
|
public TwitterList(UserList list, long homeId, boolean isFollowing) {
|
||||||
id = list.getId();
|
id = list.getId();
|
||||||
title = list.getName();
|
title = list.getName();
|
||||||
createdAt = list.getCreatedAt().getTime();
|
createdAt = list.getCreatedAt().getTime();
|
||||||
description = list.getDescription();
|
description = list.getDescription();
|
||||||
owner = new TwitterUser(list.getUser());
|
owner = new TwitterUser(list.getUser());
|
||||||
isFollowing = list.isFollowing();
|
|
||||||
isPrivate = !list.isPublic();
|
isPrivate = !list.isPublic();
|
||||||
memberCount = list.getMemberCount();
|
memberCount = list.getMemberCount();
|
||||||
subscriberCnt = list.getSubscriberCount();
|
subscriberCnt = list.getSubscriberCount();
|
||||||
enableFollow = homeId != owner.getId();
|
enableFollow = homeId != owner.getId();
|
||||||
|
this.isFollowing = isFollowing;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TwitterList(UserList list, long homeId) {
|
||||||
|
this(list, homeId, list.isFollowing());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -52,8 +52,7 @@ public class ListFragment extends Fragment implements OnRefreshListener, ListCli
|
||||||
Context context = inflater.getContext();
|
Context context = inflater.getContext();
|
||||||
GlobalSettings settings = GlobalSettings.getInstance(context);
|
GlobalSettings settings = GlobalSettings.getInstance(context);
|
||||||
|
|
||||||
adapter = new ListAdapter(this);
|
adapter = new ListAdapter(this, settings);
|
||||||
adapter.setColor(settings.getFontColor());
|
|
||||||
|
|
||||||
RecyclerView listView = new RecyclerView(inflater.getContext());
|
RecyclerView listView = new RecyclerView(inflater.getContext());
|
||||||
listView.setLayoutManager(new LinearLayoutManager(context));
|
listView.setLayoutManager(new LinearLayoutManager(context));
|
||||||
|
@ -62,8 +61,8 @@ public class ListFragment extends Fragment implements OnRefreshListener, ListCli
|
||||||
|
|
||||||
reloadLayout = new SwipeRefreshLayout(context);
|
reloadLayout = new SwipeRefreshLayout(context);
|
||||||
reloadLayout.setProgressBackgroundColorSchemeColor(settings.getHighlightColor());
|
reloadLayout.setProgressBackgroundColorSchemeColor(settings.getHighlightColor());
|
||||||
reloadLayout.addView(listView);
|
|
||||||
reloadLayout.setOnRefreshListener(this);
|
reloadLayout.setOnRefreshListener(this);
|
||||||
|
reloadLayout.addView(listView);
|
||||||
return reloadLayout;
|
return reloadLayout;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,9 +42,7 @@ public class MessageFragment extends Fragment implements OnRefreshListener, OnIt
|
||||||
Context context = inflater.getContext();
|
Context context = inflater.getContext();
|
||||||
GlobalSettings settings = GlobalSettings.getInstance(context);
|
GlobalSettings settings = GlobalSettings.getInstance(context);
|
||||||
|
|
||||||
adapter = new MessageAdapter(this);
|
adapter = new MessageAdapter(this, settings);
|
||||||
adapter.setColor(settings.getFontColor(), settings.getHighlightColor());
|
|
||||||
adapter.setImage(settings.getImageLoad());
|
|
||||||
|
|
||||||
RecyclerView list = new RecyclerView(context);
|
RecyclerView list = new RecyclerView(context);
|
||||||
list.setLayoutManager(new LinearLayoutManager(context));
|
list.setLayoutManager(new LinearLayoutManager(context));
|
||||||
|
@ -52,10 +50,9 @@ public class MessageFragment extends Fragment implements OnRefreshListener, OnIt
|
||||||
list.setAdapter(adapter);
|
list.setAdapter(adapter);
|
||||||
|
|
||||||
reload = new SwipeRefreshLayout(context);
|
reload = new SwipeRefreshLayout(context);
|
||||||
reload.addView(list);
|
|
||||||
reload.setOnRefreshListener(this);
|
|
||||||
reload.setProgressBackgroundColorSchemeColor(settings.getHighlightColor());
|
reload.setProgressBackgroundColorSchemeColor(settings.getHighlightColor());
|
||||||
|
reload.setOnRefreshListener(this);
|
||||||
|
reload.addView(list);
|
||||||
return reload;
|
return reload;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ public class TrendFragment extends Fragment implements OnRefreshListener, OnItem
|
||||||
Context context = inflater.getContext();
|
Context context = inflater.getContext();
|
||||||
|
|
||||||
settings = GlobalSettings.getInstance(context);
|
settings = GlobalSettings.getInstance(context);
|
||||||
adapter = new TrendAdapter(this);
|
adapter = new TrendAdapter(this, settings);
|
||||||
|
|
||||||
list = new RecyclerView(context);
|
list = new RecyclerView(context);
|
||||||
list.setLayoutManager(new LinearLayoutManager(context));
|
list.setLayoutManager(new LinearLayoutManager(context));
|
||||||
|
@ -47,10 +47,8 @@ public class TrendFragment extends Fragment implements OnRefreshListener, OnItem
|
||||||
list.setAdapter(adapter);
|
list.setAdapter(adapter);
|
||||||
|
|
||||||
reload = new SwipeRefreshLayout(context);
|
reload = new SwipeRefreshLayout(context);
|
||||||
reload.addView(list);
|
|
||||||
reload.setOnRefreshListener(this);
|
reload.setOnRefreshListener(this);
|
||||||
|
reload.addView(list);
|
||||||
setColors();
|
|
||||||
return reload;
|
return reload;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,6 +58,7 @@ public class TrendFragment extends Fragment implements OnRefreshListener, OnItem
|
||||||
super.onStart();
|
super.onStart();
|
||||||
if (trendTask == null)
|
if (trendTask == null)
|
||||||
load();
|
load();
|
||||||
|
reload.setProgressBackgroundColorSchemeColor(settings.getHighlightColor());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -93,10 +92,8 @@ public class TrendFragment extends Fragment implements OnRefreshListener, OnItem
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSettingsChange() {
|
public void onSettingsChange() {
|
||||||
if (adapter != null && reload != null) {
|
if (adapter != null)
|
||||||
adapter.clear();
|
adapter.notifyDataSetChanged();
|
||||||
setColors();
|
|
||||||
}
|
|
||||||
trendTask = null;
|
trendTask = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,10 +137,4 @@ public class TrendFragment extends Fragment implements OnRefreshListener, OnItem
|
||||||
trendTask = new TrendLoader(this);
|
trendTask = new TrendLoader(this);
|
||||||
trendTask.execute(settings.getTrendLocation().getWoeId());
|
trendTask.execute(settings.getTrendLocation().getWoeId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void setColors() {
|
|
||||||
reload.setProgressBackgroundColorSchemeColor(settings.getHighlightColor());
|
|
||||||
adapter.setColor(settings.getFontColor());
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -71,19 +71,16 @@ public class TweetFragment extends Fragment implements OnRefreshListener, OnItem
|
||||||
search = b.getString(KEY_FRAG_TWEET_SEARCH, "");
|
search = b.getString(KEY_FRAG_TWEET_SEARCH, "");
|
||||||
fixSize = b.getBoolean(KEY_FRAG_TWEET_FIX_LAYOUT, false);
|
fixSize = b.getBoolean(KEY_FRAG_TWEET_FIX_LAYOUT, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
settings = GlobalSettings.getInstance(context);
|
settings = GlobalSettings.getInstance(context);
|
||||||
adapter = new TweetAdapter(this);
|
adapter = new TweetAdapter(this, settings);
|
||||||
list = new RecyclerView(context);
|
list = new RecyclerView(context);
|
||||||
list.setLayoutManager(new LinearLayoutManager(context));
|
list.setLayoutManager(new LinearLayoutManager(context));
|
||||||
list.setHasFixedSize(fixSize);
|
list.setHasFixedSize(fixSize);
|
||||||
list.setAdapter(adapter);
|
list.setAdapter(adapter);
|
||||||
|
|
||||||
reload = new SwipeRefreshLayout(context);
|
reload = new SwipeRefreshLayout(context);
|
||||||
reload.addView(list);
|
|
||||||
reload.setOnRefreshListener(this);
|
reload.setOnRefreshListener(this);
|
||||||
|
reload.addView(list);
|
||||||
setColors();
|
|
||||||
return reload;
|
return reload;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,6 +90,7 @@ public class TweetFragment extends Fragment implements OnRefreshListener, OnItem
|
||||||
super.onStart();
|
super.onStart();
|
||||||
if (tweetTask == null)
|
if (tweetTask == null)
|
||||||
load();
|
load();
|
||||||
|
reload.setProgressBackgroundColorSchemeColor(settings.getHighlightColor());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -136,11 +134,8 @@ public class TweetFragment extends Fragment implements OnRefreshListener, OnItem
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSettingsChange() {
|
public void onSettingsChange() {
|
||||||
if (adapter != null && reload != null) {
|
if (adapter != null)
|
||||||
adapter.clear();
|
adapter.notifyDataSetChanged();
|
||||||
setColors();
|
|
||||||
}
|
|
||||||
tweetTask = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -221,11 +216,4 @@ public class TweetFragment extends Fragment implements OnRefreshListener, OnItem
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void setColors() {
|
|
||||||
reload.setProgressBackgroundColorSchemeColor(settings.getHighlightColor());
|
|
||||||
adapter.setColor(settings.getHighlightColor(), settings.getFontColor());
|
|
||||||
adapter.setImage(settings.getImageLoad());
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -66,20 +66,16 @@ public class UserFragment extends Fragment implements OnRefreshListener, OnItemC
|
||||||
search = b.getString(KEY_FRAG_USER_SEARCH, "");
|
search = b.getString(KEY_FRAG_USER_SEARCH, "");
|
||||||
fixLayout = b.getBoolean(KEY_FRAG_USER_FIX_LAYOUT, true);
|
fixLayout = b.getBoolean(KEY_FRAG_USER_FIX_LAYOUT, true);
|
||||||
}
|
}
|
||||||
adapter = new UserAdapter(this);
|
adapter = new UserAdapter(this, settings);
|
||||||
adapter.setColor(settings.getFontColor());
|
|
||||||
adapter.setImage(settings.getImageLoad());
|
|
||||||
|
|
||||||
list = new RecyclerView(context);
|
list = new RecyclerView(context);
|
||||||
list.setLayoutManager(new LinearLayoutManager(context));
|
list.setLayoutManager(new LinearLayoutManager(context));
|
||||||
list.setHasFixedSize(fixLayout);
|
list.setHasFixedSize(fixLayout);
|
||||||
list.setAdapter(adapter);
|
list.setAdapter(adapter);
|
||||||
|
|
||||||
reload = new SwipeRefreshLayout(context);
|
reload = new SwipeRefreshLayout(context);
|
||||||
reload.addView(list);
|
|
||||||
reload.setProgressBackgroundColorSchemeColor(settings.getHighlightColor());
|
reload.setProgressBackgroundColorSchemeColor(settings.getHighlightColor());
|
||||||
reload.setOnRefreshListener(this);
|
reload.setOnRefreshListener(this);
|
||||||
|
reload.addView(list);
|
||||||
return reload;
|
return reload;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue