restructured adapter, bug fix

This commit is contained in:
nuclearfog 2019-12-26 11:40:09 +01:00
parent 27c846954d
commit bef82da590
No known key found for this signature in database
GPG Key ID: ED35E22099354A64
15 changed files with 96 additions and 157 deletions

View File

@ -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;
} }

View File

@ -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,

View File

@ -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);
} }

View File

@ -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) {

View File

@ -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);
} }

View File

@ -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 {

View File

@ -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);

View File

@ -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()) {

View File

@ -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);
} }

View File

@ -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());
} }
/** /**

View File

@ -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;
} }

View File

@ -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;
} }

View File

@ -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());
}
} }

View File

@ -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());
}
} }

View File

@ -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;
} }