mirror of
https://github.com/TwidereProject/Twidere-Android
synced 2025-02-17 04:00:48 +01:00
improved activity related items
This commit is contained in:
parent
60877c4394
commit
14559e576e
@ -74,7 +74,7 @@ public interface TwidereConstants extends SharedPreferenceConstants, IntentConst
|
||||
String AUTHORITY_TWIDERE_CACHE = "twidere.cache";
|
||||
|
||||
String AUTHORITY_USER = "user";
|
||||
String AUTHORITY_USERS = "users";
|
||||
String AUTHORITY_ITEMS = "items";
|
||||
String AUTHORITY_USER_TIMELINE = "user_timeline";
|
||||
String AUTHORITY_USER_MEDIA_TIMELINE = "user_media_timeline";
|
||||
String AUTHORITY_USER_FAVORITES = "user_favorites";
|
||||
@ -82,7 +82,6 @@ public interface TwidereConstants extends SharedPreferenceConstants, IntentConst
|
||||
String AUTHORITY_USER_FRIENDS = "user_friends";
|
||||
String AUTHORITY_USER_BLOCKS = "user_blocks";
|
||||
String AUTHORITY_STATUS = "status";
|
||||
String AUTHORITY_STATUSES = "statuses";
|
||||
String AUTHORITY_PUBLIC_TIMELINE = "public_timeline";
|
||||
String AUTHORITY_DIRECT_MESSAGES_CONVERSATION = "direct_messages_conversation";
|
||||
String AUTHORITY_DIRECT_MESSAGES = "direct_messages";
|
||||
|
@ -145,6 +145,7 @@ public interface IntentConstants {
|
||||
String EXTRA_IS_PUBLIC = "is_public";
|
||||
String EXTRA_USER = "user";
|
||||
String EXTRA_USERS = "users";
|
||||
String EXTRA_ITEMS = "items";
|
||||
String EXTRA_USER_LIST = "user_list";
|
||||
String EXTRA_APPEND_TEXT = "append_text";
|
||||
String EXTRA_NAME = "name";
|
||||
|
@ -60,10 +60,9 @@ public interface Constants extends TwidereConstants {
|
||||
int LINK_ID_USER_LIST_MEMBERSHIPS = 15;
|
||||
int LINK_ID_USER_GROUPS = 16;
|
||||
int LINK_ID_SAVED_SEARCHES = 19;
|
||||
int LINK_ID_ITEMS = 20;
|
||||
int LINK_ID_USER_MENTIONS = 21;
|
||||
int LINK_ID_INCOMING_FRIENDSHIPS = 22;
|
||||
int LINK_ID_USERS = 23;
|
||||
int LINK_ID_STATUSES = 24;
|
||||
int LINK_ID_STATUS_RETWEETERS = 25;
|
||||
int LINK_ID_STATUS_FAVORITERS = 27;
|
||||
int LINK_ID_SEARCH = 28;
|
||||
|
@ -353,12 +353,8 @@ public class LinkHandlerActivity extends BaseActivity implements SystemWindowsIn
|
||||
setTitle(R.string.incoming_friendships);
|
||||
break;
|
||||
}
|
||||
case LINK_ID_USERS: {
|
||||
setTitle(R.string.users);
|
||||
break;
|
||||
}
|
||||
case LINK_ID_STATUSES: {
|
||||
setTitle(R.string.statuses);
|
||||
case LINK_ID_ITEMS: {
|
||||
// TODO show title
|
||||
break;
|
||||
}
|
||||
case LINK_ID_USER_MEDIA_TIMELINE: {
|
||||
|
@ -9,8 +9,12 @@ import android.support.v7.widget.RecyclerView;
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.TwidereConstants;
|
||||
import org.mariotaku.twidere.adapter.iface.IStatusesAdapter;
|
||||
import org.mariotaku.twidere.adapter.iface.IUserListsAdapter;
|
||||
import org.mariotaku.twidere.adapter.iface.IUsersAdapter;
|
||||
import org.mariotaku.twidere.constant.SharedPreferenceConstants;
|
||||
import org.mariotaku.twidere.model.ParcelableStatus;
|
||||
import org.mariotaku.twidere.model.ParcelableUser;
|
||||
import org.mariotaku.twidere.model.ParcelableUserList;
|
||||
import org.mariotaku.twidere.model.UserKey;
|
||||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||
import org.mariotaku.twidere.util.MediaLoaderWrapper;
|
||||
@ -27,7 +31,8 @@ import javax.inject.Inject;
|
||||
/**
|
||||
* Created by mariotaku on 16/1/22.
|
||||
*/
|
||||
public final class DummyStatusHolderAdapter implements IStatusesAdapter<Object>, SharedPreferenceConstants {
|
||||
public final class DummyItemAdapter implements IStatusesAdapter<Object>,
|
||||
IUsersAdapter<Object>, IUserListsAdapter<Object>, SharedPreferenceConstants {
|
||||
|
||||
private final Context context;
|
||||
private final SharedPreferencesWrapper preferences;
|
||||
@ -58,12 +63,12 @@ public final class DummyStatusHolderAdapter implements IStatusesAdapter<Object>,
|
||||
private boolean showAbsoluteTime;
|
||||
private int showingActionCardPosition = RecyclerView.NO_POSITION;
|
||||
|
||||
public DummyStatusHolderAdapter(Context context) {
|
||||
public DummyItemAdapter(Context context) {
|
||||
this(context, new TwidereLinkify(null), null);
|
||||
}
|
||||
|
||||
public DummyStatusHolderAdapter(Context context, TwidereLinkify linkify,
|
||||
@Nullable RecyclerView.Adapter<? extends RecyclerView.ViewHolder> adapter) {
|
||||
public DummyItemAdapter(Context context, TwidereLinkify linkify,
|
||||
@Nullable RecyclerView.Adapter<? extends RecyclerView.ViewHolder> adapter) {
|
||||
GeneralComponentHelper.build(context).inject(this);
|
||||
this.context = context;
|
||||
preferences = SharedPreferencesWrapper.getInstance(context, TwidereConstants.SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
@ -83,6 +88,12 @@ public final class DummyStatusHolderAdapter implements IStatusesAdapter<Object>,
|
||||
return loader;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public UserListAdapterListener getUserListAdapterListener() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public BidiFormatter getBidiFormatter() {
|
||||
@ -256,11 +267,58 @@ public final class DummyStatusHolderAdapter implements IStatusesAdapter<Object>,
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ParcelableUser getUser(int position) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public String getUserId(int position) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getUserCount() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ParcelableUserList getUserList(int position) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getUserListId(int position) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getUserListsCount() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setData(Object o) {
|
||||
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public UserAdapterListener getUserAdapterListener() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RequestClickListener getRequestClickListener() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FollowClickListener getFollowClickListener() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldUseStarsForLikes() {
|
||||
return useStarsForLikes;
|
@ -8,6 +8,7 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.adapter.iface.IStatusesAdapter;
|
||||
import org.mariotaku.twidere.view.holder.StatusViewHolder;
|
||||
import org.mariotaku.twidere.view.holder.iface.IStatusViewHolder;
|
||||
|
||||
@ -28,19 +29,24 @@ public class ListParcelableStatusesAdapter extends ParcelableStatusesAdapter {
|
||||
@NonNull
|
||||
@Override
|
||||
protected IStatusViewHolder onCreateStatusViewHolder(ViewGroup parent, boolean compact) {
|
||||
return createStatusViewHolder(this, getInflater(), parent, compact,
|
||||
getCardBackgroundColor());
|
||||
}
|
||||
|
||||
public static StatusViewHolder createStatusViewHolder(IStatusesAdapter<?> adapter,
|
||||
LayoutInflater inflater, ViewGroup parent,
|
||||
boolean compact, int cardBackgroundColor) {
|
||||
final View view;
|
||||
final int backgroundColor = getCardBackgroundColor();
|
||||
final LayoutInflater inflater = getInflater();
|
||||
if (compact) {
|
||||
view = inflater.inflate(R.layout.card_item_status_compact, parent, false);
|
||||
final View itemContent = view.findViewById(R.id.item_content);
|
||||
itemContent.setBackgroundColor(backgroundColor);
|
||||
itemContent.setBackgroundColor(cardBackgroundColor);
|
||||
} else {
|
||||
view = inflater.inflate(R.layout.card_item_status, parent, false);
|
||||
final CardView cardView = (CardView) view.findViewById(R.id.card);
|
||||
cardView.setCardBackgroundColor(backgroundColor);
|
||||
cardView.setCardBackgroundColor(cardBackgroundColor);
|
||||
}
|
||||
final StatusViewHolder holder = new StatusViewHolder(this, view);
|
||||
final StatusViewHolder holder = new StatusViewHolder(adapter, view);
|
||||
holder.setOnClickListeners();
|
||||
holder.setupViewOptions();
|
||||
return holder;
|
||||
|
@ -42,6 +42,7 @@ import org.mariotaku.twidere.model.ParcelableActivity;
|
||||
import org.mariotaku.twidere.model.ParcelableActivityCursorIndices;
|
||||
import org.mariotaku.twidere.model.ParcelableMedia;
|
||||
import org.mariotaku.twidere.model.ParcelableStatus;
|
||||
import org.mariotaku.twidere.model.ParcelableStatusCursorIndices;
|
||||
import org.mariotaku.twidere.model.UserKey;
|
||||
import org.mariotaku.twidere.model.util.ParcelableActivityUtils;
|
||||
import org.mariotaku.twidere.util.IntentUtils;
|
||||
@ -75,7 +76,7 @@ public class ParcelableActivitiesAdapter extends LoadMoreSupportAdapter<Recycler
|
||||
private final MediaLoadingHandler mLoadingHandler;
|
||||
private final int mCardBackgroundColor;
|
||||
private final boolean mCompactCards;
|
||||
private final DummyStatusHolderAdapter mStatusAdapterDelegate;
|
||||
private final DummyItemAdapter mStatusAdapterDelegate;
|
||||
private final EventListener mEventListener;
|
||||
private List<ParcelableActivity> mData;
|
||||
private final boolean mIsByFriends;
|
||||
@ -86,7 +87,7 @@ public class ParcelableActivitiesAdapter extends LoadMoreSupportAdapter<Recycler
|
||||
|
||||
public ParcelableActivitiesAdapter(Context context, boolean compact, boolean byFriends) {
|
||||
super(context);
|
||||
mStatusAdapterDelegate = new DummyStatusHolderAdapter(context,
|
||||
mStatusAdapterDelegate = new DummyItemAdapter(context,
|
||||
new TwidereLinkify(new OnLinkClickHandler(context, null)), this);
|
||||
mCardBackgroundColor = ThemeUtils.getCardBackgroundColor(context,
|
||||
ThemeUtils.getThemeBackgroundOption(context),
|
||||
@ -102,8 +103,18 @@ public class ParcelableActivitiesAdapter extends LoadMoreSupportAdapter<Recycler
|
||||
@Override
|
||||
public boolean isGapItem(int adapterPosition) {
|
||||
int dataPosition = adapterPosition - getActivityStartIndex();
|
||||
if (dataPosition < 0 || dataPosition >= getActivityCount()) return false;
|
||||
return getActivity(adapterPosition).is_gap;
|
||||
final int activityCount = getActivityCount();
|
||||
if (dataPosition < 0 || dataPosition >= activityCount) return false;
|
||||
// Don't show gap if it's last item
|
||||
if (dataPosition == activityCount - 1) {
|
||||
return false;
|
||||
}
|
||||
if (mData instanceof ObjectCursor) {
|
||||
final Cursor cursor = ((ObjectCursor) mData).getCursor(dataPosition);
|
||||
final ParcelableActivityCursorIndices indices = (ParcelableActivityCursorIndices) ((ObjectCursor) mData).getIndices();
|
||||
return cursor.getShort(indices.is_gap) == 1;
|
||||
}
|
||||
return mData.get(dataPosition).is_gap;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -113,7 +113,17 @@ public abstract class ParcelableStatusesAdapter extends LoadMoreSupportAdapter<R
|
||||
|
||||
@Override
|
||||
public boolean isGapItem(int position) {
|
||||
return getStatus(position).is_gap && position != getStatusCount() - 1;
|
||||
int dataPosition = position - getStatusStartIndex();
|
||||
final int statusCount = getStatusCount();
|
||||
if (dataPosition < 0 || dataPosition >= statusCount) return false;
|
||||
// Don't show gap if it's last item
|
||||
if (dataPosition == statusCount - 1) return false;
|
||||
if (mData instanceof ObjectCursor) {
|
||||
final Cursor cursor = ((ObjectCursor) mData).getCursor(dataPosition);
|
||||
final ParcelableStatusCursorIndices indices = (ParcelableStatusCursorIndices) ((ObjectCursor) mData).getIndices();
|
||||
return cursor.getShort(indices.is_gap) == 1;
|
||||
}
|
||||
return mData.get(dataPosition).is_gap;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -142,14 +142,7 @@ public class ParcelableUserListsAdapter extends LoadMoreSupportAdapter<RecyclerV
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
switch (viewType) {
|
||||
case ITEM_VIEW_TYPE_USER_LIST: {
|
||||
final View view;
|
||||
view = mInflater.inflate(R.layout.card_item_user_list_compact, parent, false);
|
||||
final View itemContent = view.findViewById(R.id.item_content);
|
||||
itemContent.setBackgroundColor(mCardBackgroundColor);
|
||||
final UserListViewHolder holder = new UserListViewHolder(this, view);
|
||||
holder.setOnClickListeners();
|
||||
holder.setupViewOptions();
|
||||
return holder;
|
||||
return createUserListViewHolder(this, mInflater, parent, mCardBackgroundColor);
|
||||
}
|
||||
case ITEM_VIEW_TYPE_LOAD_INDICATOR: {
|
||||
final View view = mInflater.inflate(R.layout.card_item_load_indicator, parent, false);
|
||||
@ -195,6 +188,20 @@ public class ParcelableUserListsAdapter extends LoadMoreSupportAdapter<RecyclerV
|
||||
return mEventListener;
|
||||
}
|
||||
|
||||
public static UserListViewHolder createUserListViewHolder(IUserListsAdapter<?> adapter,
|
||||
LayoutInflater inflater,
|
||||
ViewGroup parent,
|
||||
int cardBackgroundColor) {
|
||||
final View view;
|
||||
view = inflater.inflate(R.layout.card_item_user_list_compact, parent, false);
|
||||
final View itemContent = view.findViewById(R.id.item_content);
|
||||
itemContent.setBackgroundColor(cardBackgroundColor);
|
||||
final UserListViewHolder holder = new UserListViewHolder(adapter, view);
|
||||
holder.setOnClickListeners();
|
||||
holder.setupViewOptions();
|
||||
return holder;
|
||||
}
|
||||
|
||||
public interface UserListAdapterListener {
|
||||
|
||||
void onUserListClick(UserListViewHolder holder, int position);
|
||||
|
@ -167,14 +167,7 @@ public class ParcelableUsersAdapter extends LoadMoreSupportAdapter<RecyclerView.
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
switch (viewType) {
|
||||
case ITEM_VIEW_TYPE_USER: {
|
||||
final View view;
|
||||
view = mInflater.inflate(R.layout.card_item_user_compact, parent, false);
|
||||
final View itemContent = view.findViewById(R.id.item_content);
|
||||
itemContent.setBackgroundColor(mCardBackgroundColor);
|
||||
final UserViewHolder holder = new UserViewHolder(this, view);
|
||||
holder.setOnClickListeners();
|
||||
holder.setupViewOptions();
|
||||
return holder;
|
||||
return createUserViewHolder(this, mInflater, parent, mCardBackgroundColor);
|
||||
}
|
||||
case ITEM_VIEW_TYPE_LOAD_INDICATOR: {
|
||||
final View view = mInflater.inflate(R.layout.card_item_load_indicator, parent, false);
|
||||
@ -237,4 +230,16 @@ public class ParcelableUsersAdapter extends LoadMoreSupportAdapter<RecyclerView.
|
||||
public boolean shouldShowAccountsColor() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static UserViewHolder createUserViewHolder(IUsersAdapter<?> adapter,
|
||||
LayoutInflater inflater, ViewGroup parent,
|
||||
int cardBackgroundColor) {
|
||||
final View view = inflater.inflate(R.layout.card_item_user_compact, parent, false);
|
||||
final View itemContent = view.findViewById(R.id.item_content);
|
||||
itemContent.setBackgroundColor(cardBackgroundColor);
|
||||
final UserViewHolder holder = new UserViewHolder(adapter, view);
|
||||
holder.setOnClickListeners();
|
||||
holder.setupViewOptions();
|
||||
return holder;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,110 @@
|
||||
package org.mariotaku.twidere.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import org.mariotaku.twidere.model.ParcelableStatus;
|
||||
import org.mariotaku.twidere.model.ParcelableUser;
|
||||
import org.mariotaku.twidere.model.ParcelableUserList;
|
||||
import org.mariotaku.twidere.util.ThemeUtils;
|
||||
import org.mariotaku.twidere.view.holder.StatusViewHolder;
|
||||
import org.mariotaku.twidere.view.holder.UserListViewHolder;
|
||||
import org.mariotaku.twidere.view.holder.UserViewHolder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by mariotaku on 16/3/20.
|
||||
*/
|
||||
public class VariousItemsAdapter extends LoadMoreSupportAdapter<RecyclerView.ViewHolder> {
|
||||
|
||||
public static final int VIEW_TYPE_STATUS = 1;
|
||||
public static final int VIEW_TYPE_USER = 2;
|
||||
public static final int VIEW_TYPE_USER_LIST = 3;
|
||||
|
||||
private final boolean mCompact;
|
||||
private final LayoutInflater mInflater;
|
||||
private final int mCardBackgroundColor;
|
||||
private final DummyItemAdapter mDummyAdapter;
|
||||
|
||||
private List<?> mData;
|
||||
|
||||
public VariousItemsAdapter(Context context, boolean compact) {
|
||||
super(context);
|
||||
mCompact = compact;
|
||||
mInflater = LayoutInflater.from(context);
|
||||
mCardBackgroundColor = ThemeUtils.getCardBackgroundColor(context,
|
||||
ThemeUtils.getThemeBackgroundOption(context),
|
||||
ThemeUtils.getUserThemeBackgroundAlpha(context));
|
||||
mDummyAdapter = new DummyItemAdapter(context);
|
||||
setLoadMoreIndicatorPosition(IndicatorPosition.NONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
switch (viewType) {
|
||||
case VIEW_TYPE_STATUS: {
|
||||
return ListParcelableStatusesAdapter.createStatusViewHolder(mDummyAdapter,
|
||||
mInflater, parent, mCompact, mCardBackgroundColor);
|
||||
}
|
||||
case VIEW_TYPE_USER: {
|
||||
return ParcelableUsersAdapter.createUserViewHolder(mDummyAdapter, mInflater, parent,
|
||||
mCardBackgroundColor);
|
||||
}
|
||||
case VIEW_TYPE_USER_LIST: {
|
||||
return ParcelableUserListsAdapter.createUserListViewHolder(mDummyAdapter, mInflater,
|
||||
parent, mCardBackgroundColor);
|
||||
}
|
||||
}
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
|
||||
final Object obj = mData.get(position);
|
||||
switch (getItemViewType(obj)) {
|
||||
case VIEW_TYPE_STATUS: {
|
||||
((StatusViewHolder) holder).displayStatus(((ParcelableStatus) obj), true);
|
||||
break;
|
||||
}
|
||||
case VIEW_TYPE_USER: {
|
||||
((UserViewHolder) holder).displayUser(((ParcelableUser) obj));
|
||||
break;
|
||||
}
|
||||
case VIEW_TYPE_USER_LIST: {
|
||||
((UserListViewHolder) holder).displayUserList(((ParcelableUserList) obj));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
Object obj = mData.get(position);
|
||||
return getItemViewType(obj);
|
||||
}
|
||||
|
||||
protected int getItemViewType(Object obj) {
|
||||
if (obj instanceof ParcelableStatus) {
|
||||
return VIEW_TYPE_STATUS;
|
||||
} else if (obj instanceof ParcelableUser) {
|
||||
return VIEW_TYPE_USER;
|
||||
} else if (obj instanceof ParcelableUserList) {
|
||||
return VIEW_TYPE_USER_LIST;
|
||||
}
|
||||
throw new UnsupportedOperationException("Unsupported object " + obj);
|
||||
}
|
||||
|
||||
public void setData(List<?> data) {
|
||||
mData = data;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
if (mData == null) return 0;
|
||||
return mData.size();
|
||||
}
|
||||
}
|
@ -24,6 +24,7 @@ import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.Rect;
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcelable;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.FragmentActivity;
|
||||
@ -74,7 +75,7 @@ import org.mariotaku.twidere.view.holder.iface.IStatusViewHolder;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.TimeZone;
|
||||
|
||||
@ -397,7 +398,14 @@ public abstract class AbsActivitiesFragment extends AbsContentListRecyclerViewFr
|
||||
public void onActivityClick(ActivityTitleSummaryViewHolder holder, int position) {
|
||||
final ParcelableActivity activity = getAdapter().getActivity(position);
|
||||
if (activity == null) return;
|
||||
IntentUtils.openUsers(getActivity(), Arrays.asList(ParcelableActivityUtils.getAfterFilteredSources(activity)));
|
||||
final List<Parcelable> list = new ArrayList<>();
|
||||
if (activity.target_object_statuses != null) {
|
||||
Collections.addAll(list, activity.target_object_statuses);
|
||||
} else if (activity.target_statuses != null) {
|
||||
Collections.addAll(list, activity.target_statuses);
|
||||
}
|
||||
Collections.addAll(list, ParcelableActivityUtils.getAfterFilteredSources(activity));
|
||||
IntentUtils.openItems(getActivity(), list);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -0,0 +1,114 @@
|
||||
package org.mariotaku.twidere.fragment;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcelable;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.LoaderManager.LoaderCallbacks;
|
||||
import android.support.v4.content.AsyncTaskLoader;
|
||||
import android.support.v4.content.Loader;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
|
||||
import org.mariotaku.twidere.adapter.VariousItemsAdapter;
|
||||
import org.mariotaku.twidere.adapter.decorator.DividerItemDecoration;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by mariotaku on 16/3/20.
|
||||
*/
|
||||
public class ItemsListFragment extends AbsContentListRecyclerViewFragment<VariousItemsAdapter>
|
||||
implements LoaderCallbacks<List<?>> {
|
||||
@Override
|
||||
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
getLoaderManager().initLoader(0, null, this);
|
||||
setRefreshEnabled(false);
|
||||
showContent();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
protected VariousItemsAdapter onCreateAdapter(Context context, boolean compact) {
|
||||
return new VariousItemsAdapter(context, compact);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Loader<List<?>> onCreateLoader(int id, Bundle args) {
|
||||
return new ItemsLoader(getContext(), getArguments());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadFinished(Loader<List<?>> loader, List<?> data) {
|
||||
getAdapter().setData(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoaderReset(Loader<List<?>> loader) {
|
||||
getAdapter().setData(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setupRecyclerView(Context context, boolean compact) {
|
||||
if (compact) {
|
||||
super.setupRecyclerView(context, true);
|
||||
return;
|
||||
}
|
||||
final RecyclerView recyclerView = getRecyclerView();
|
||||
final VariousItemsAdapter adapter = getAdapter();
|
||||
// Dividers are drawn on bottom of view
|
||||
recyclerView.addItemDecoration(new DividerItemDecoration(context, getLayoutManager().getOrientation()) {
|
||||
|
||||
@Override
|
||||
protected boolean isDividerEnabled(int childPos) {
|
||||
// Don't draw for last item
|
||||
if (childPos == RecyclerView.NO_POSITION || childPos == adapter.getItemCount() - 1) {
|
||||
return false;
|
||||
}
|
||||
final int itemViewType = adapter.getItemViewType(childPos);
|
||||
// Draw only if current item and next item is TITLE_SUMMARY
|
||||
if (shouldUseDividerFor(itemViewType)) {
|
||||
if (shouldUseDividerFor(adapter.getItemViewType(childPos + 1))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean shouldUseDividerFor(int itemViewType) {
|
||||
switch (itemViewType) {
|
||||
case VariousItemsAdapter.VIEW_TYPE_USER:
|
||||
case VariousItemsAdapter.VIEW_TYPE_USER_LIST:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isRefreshing() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static class ItemsLoader extends AsyncTaskLoader<List<?>> {
|
||||
private final Bundle mArguments;
|
||||
|
||||
public ItemsLoader(Context context, Bundle args) {
|
||||
super(context);
|
||||
mArguments = args;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<?> loadInBackground() {
|
||||
return mArguments.<Parcelable>getParcelableArrayList(EXTRA_ITEMS);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStartLoading() {
|
||||
forceLoad();
|
||||
}
|
||||
}
|
||||
}
|
@ -44,7 +44,7 @@ import com.twitter.Validator;
|
||||
|
||||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.adapter.DummyStatusHolderAdapter;
|
||||
import org.mariotaku.twidere.adapter.DummyItemAdapter;
|
||||
import org.mariotaku.twidere.model.Draft;
|
||||
import org.mariotaku.twidere.model.ParcelableAccount;
|
||||
import org.mariotaku.twidere.model.ParcelableCredentials;
|
||||
@ -79,7 +79,7 @@ public class RetweetQuoteDialogFragment extends BaseSupportDialogFragment implem
|
||||
final Context context = builder.getContext();
|
||||
final LayoutInflater inflater = LayoutInflater.from(context);
|
||||
@SuppressLint("InflateParams") final View view = inflater.inflate(R.layout.dialog_status_quote_retweet, null);
|
||||
final DummyStatusHolderAdapter adapter = new DummyStatusHolderAdapter(context);
|
||||
final DummyItemAdapter adapter = new DummyItemAdapter(context);
|
||||
adapter.setShouldShowAccountsColor(true);
|
||||
final IStatusViewHolder holder = new StatusViewHolder(adapter, view.findViewById(R.id.item_content));
|
||||
final ParcelableStatus status = getStatus();
|
||||
|
@ -1,70 +0,0 @@
|
||||
/*
|
||||
* Twidere - Twitter client for Android
|
||||
*
|
||||
* Copyright (C) 2012-2014 Mariotaku Lee <mariotaku.lee@gmail.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.mariotaku.twidere.fragment;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.content.Loader;
|
||||
|
||||
import org.mariotaku.twidere.loader.IntentExtrasStatusesLoader;
|
||||
import org.mariotaku.twidere.model.ParcelableStatus;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import edu.tsinghua.hotmobi.model.TimelineType;
|
||||
|
||||
public class StatusesListFragment extends ParcelableStatusesFragment {
|
||||
|
||||
@Override
|
||||
protected Loader<List<ParcelableStatus>> onCreateStatusesLoader(final Context context,
|
||||
final Bundle args,
|
||||
final boolean fromUser) {
|
||||
return new IntentExtrasStatusesLoader(context, getArguments(), getAdapterData(), fromUser);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String[] getSavedStatusesFileArgs() {
|
||||
return null;
|
||||
}
|
||||
|
||||
// @Override
|
||||
// protected boolean shouldShowAccountColor() {
|
||||
// final List<ParcelableStatus> data = getData();
|
||||
// if (data != null) {
|
||||
// long account_id = -1;
|
||||
// for (final ParcelableStatus status : data) {
|
||||
// final long prev = account_id;
|
||||
// account_id = status.account_id;
|
||||
// if (prev > 0 && account_id != prev) return true;
|
||||
// }
|
||||
// }
|
||||
// return false;
|
||||
// }
|
||||
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
@TimelineType
|
||||
protected String getTimelineType() {
|
||||
return TimelineType.OTHER;
|
||||
}
|
||||
|
||||
}
|
@ -1,65 +0,0 @@
|
||||
/*
|
||||
* Twidere - Twitter client for Android
|
||||
*
|
||||
* Copyright (C) 2012-2014 Mariotaku Lee <mariotaku.lee@gmail.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.mariotaku.twidere.fragment;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.content.Loader;
|
||||
|
||||
import org.mariotaku.twidere.loader.IntentExtrasUsersLoader;
|
||||
import org.mariotaku.twidere.model.ParcelableUser;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class UsersListFragment extends ParcelableUsersFragment {
|
||||
|
||||
@Override
|
||||
protected boolean hasMoreData(List<ParcelableUser> data) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isRefreshing() {
|
||||
if (getContext() == null || isDetached()) return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadFinished(Loader<List<ParcelableUser>> loader, List<ParcelableUser> data) {
|
||||
super.onLoadFinished(loader, data);
|
||||
setRefreshEnabled(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
setRefreshEnabled(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Loader<List<ParcelableUser>> onCreateUsersLoader(final Context context, @NonNull final Bundle args, boolean fromUser) {
|
||||
if (args.containsKey(EXTRA_USERS))
|
||||
return new IntentExtrasUsersLoader(context, args, getData(), fromUser);
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
@ -29,7 +29,7 @@ import android.util.AttributeSet;
|
||||
|
||||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.adapter.DummyStatusHolderAdapter;
|
||||
import org.mariotaku.twidere.adapter.DummyItemAdapter;
|
||||
import org.mariotaku.twidere.graphic.like.LikeAnimationDrawable;
|
||||
import org.mariotaku.twidere.view.holder.StatusViewHolder;
|
||||
import org.mariotaku.twidere.view.holder.iface.IStatusViewHolder;
|
||||
@ -38,7 +38,7 @@ public class CardPreviewPreference extends Preference implements Constants, OnSh
|
||||
|
||||
private StatusViewHolder mHolder;
|
||||
private boolean mCompactModeChanged;
|
||||
private DummyStatusHolderAdapter mAdapter;
|
||||
private DummyItemAdapter mAdapter;
|
||||
|
||||
public CardPreviewPreference(final Context context) {
|
||||
this(context, null);
|
||||
@ -54,7 +54,7 @@ public class CardPreviewPreference extends Preference implements Constants, OnSh
|
||||
Context.MODE_PRIVATE);
|
||||
setLayoutResources(preferences);
|
||||
preferences.registerOnSharedPreferenceChangeListener(this);
|
||||
mAdapter = new DummyStatusHolderAdapter(context);
|
||||
mAdapter = new DummyItemAdapter(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -7,6 +7,7 @@ import android.content.SharedPreferences;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcelable;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
@ -19,7 +20,6 @@ import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.mariotaku.twidere.BuildConfig;
|
||||
import org.mariotaku.twidere.Constants;
|
||||
import org.mariotaku.twidere.R;
|
||||
import org.mariotaku.twidere.TwidereConstants;
|
||||
import org.mariotaku.twidere.activity.MediaViewerActivity;
|
||||
import org.mariotaku.twidere.constant.SharedPreferenceConstants;
|
||||
import org.mariotaku.twidere.fragment.SensitiveContentWarningDialogFragment;
|
||||
@ -59,14 +59,14 @@ public class IntentUtils implements Constants {
|
||||
final Bundle extras = new Bundle();
|
||||
extras.putParcelable(EXTRA_USER, user);
|
||||
final Uri.Builder builder = new Uri.Builder();
|
||||
builder.scheme(TwidereConstants.SCHEME_TWIDERE);
|
||||
builder.authority(TwidereConstants.AUTHORITY_USER);
|
||||
builder.appendQueryParameter(TwidereConstants.QUERY_PARAM_ACCOUNT_KEY, user.account_key.toString());
|
||||
builder.scheme(SCHEME_TWIDERE);
|
||||
builder.authority(AUTHORITY_USER);
|
||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, user.account_key.toString());
|
||||
if (user.key != null) {
|
||||
builder.appendQueryParameter(TwidereConstants.QUERY_PARAM_USER_ID, user.key.toString());
|
||||
builder.appendQueryParameter(QUERY_PARAM_USER_ID, user.key.toString());
|
||||
}
|
||||
if (user.screen_name != null) {
|
||||
builder.appendQueryParameter(TwidereConstants.QUERY_PARAM_SCREEN_NAME, user.screen_name);
|
||||
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, user.screen_name);
|
||||
}
|
||||
final Intent intent = new Intent(Intent.ACTION_VIEW, builder.build());
|
||||
intent.setExtrasClassLoader(context.getClassLoader());
|
||||
@ -100,13 +100,13 @@ public class IntentUtils implements Constants {
|
||||
}
|
||||
}
|
||||
|
||||
public static void openUsers(@NonNull final Context context, final List<ParcelableUser> users) {
|
||||
if (users == null) return;
|
||||
public static void openItems(@NonNull final Context context, final List<Parcelable> items) {
|
||||
if (items == null) return;
|
||||
final Bundle extras = new Bundle();
|
||||
extras.putParcelableArrayList(EXTRA_USERS, new ArrayList<>(users));
|
||||
extras.putParcelableArrayList(EXTRA_ITEMS, new ArrayList<>(items));
|
||||
final Uri.Builder builder = new Uri.Builder();
|
||||
builder.scheme(TwidereConstants.SCHEME_TWIDERE);
|
||||
builder.authority(TwidereConstants.AUTHORITY_USERS);
|
||||
builder.scheme(SCHEME_TWIDERE);
|
||||
builder.authority(AUTHORITY_ITEMS);
|
||||
final Intent intent = new Intent(Intent.ACTION_VIEW, builder.build());
|
||||
intent.putExtras(extras);
|
||||
context.startActivity(intent);
|
||||
@ -115,12 +115,12 @@ public class IntentUtils implements Constants {
|
||||
public static void openUserMentions(@NonNull final Context context, @Nullable final UserKey accountKey,
|
||||
@NonNull final String screenName) {
|
||||
final Uri.Builder builder = new Uri.Builder();
|
||||
builder.scheme(TwidereConstants.SCHEME_TWIDERE);
|
||||
builder.authority(TwidereConstants.AUTHORITY_USER_MENTIONS);
|
||||
builder.scheme(SCHEME_TWIDERE);
|
||||
builder.authority(AUTHORITY_USER_MENTIONS);
|
||||
if (accountKey != null) {
|
||||
builder.appendQueryParameter(TwidereConstants.QUERY_PARAM_ACCOUNT_KEY, accountKey.toString());
|
||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString());
|
||||
}
|
||||
builder.appendQueryParameter(TwidereConstants.QUERY_PARAM_SCREEN_NAME, screenName);
|
||||
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName);
|
||||
final Intent intent = new Intent(Intent.ACTION_VIEW, builder.build());
|
||||
context.startActivity(intent);
|
||||
}
|
||||
@ -150,7 +150,7 @@ public class IntentUtils implements Constants {
|
||||
final ParcelableMedia current, final ParcelableMedia[] media,
|
||||
final Bundle options, final boolean newDocument) {
|
||||
if (media == null) return;
|
||||
final SharedPreferences prefs = context.getSharedPreferences(TwidereConstants.SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
final SharedPreferences prefs = context.getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
|
||||
if (context instanceof FragmentActivity && isPossiblySensitive
|
||||
&& !prefs.getBoolean(SharedPreferenceConstants.KEY_DISPLAY_SENSITIVE_CONTENTS, false)) {
|
||||
final FragmentActivity activity = (FragmentActivity) context;
|
||||
@ -373,18 +373,6 @@ public class IntentUtils implements Constants {
|
||||
}
|
||||
}
|
||||
|
||||
public static void openStatuses(final Context context, final List<ParcelableStatus> statuses) {
|
||||
if (context == null || statuses == null) return;
|
||||
final Bundle extras = new Bundle();
|
||||
extras.putParcelableArrayList(EXTRA_STATUSES, new ArrayList<>(statuses));
|
||||
final Uri.Builder builder = new Uri.Builder();
|
||||
builder.scheme(SCHEME_TWIDERE);
|
||||
builder.authority(AUTHORITY_STATUSES);
|
||||
final Intent intent = new Intent(Intent.ACTION_VIEW, builder.build());
|
||||
intent.putExtras(extras);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
public static void openStatusFavoriters(@NonNull final Context context, @Nullable final UserKey accountKey,
|
||||
@NonNull final String statusId) {
|
||||
final Uri.Builder builder = new Uri.Builder();
|
||||
|
@ -132,6 +132,7 @@ import org.mariotaku.twidere.fragment.DraftsFragment;
|
||||
import org.mariotaku.twidere.fragment.FiltersFragment;
|
||||
import org.mariotaku.twidere.fragment.IncomingFriendshipsFragment;
|
||||
import org.mariotaku.twidere.fragment.InteractionsTimelineFragment;
|
||||
import org.mariotaku.twidere.fragment.ItemsListFragment;
|
||||
import org.mariotaku.twidere.fragment.ListsFragment;
|
||||
import org.mariotaku.twidere.fragment.MessagesConversationFragment;
|
||||
import org.mariotaku.twidere.fragment.MutesUsersListFragment;
|
||||
@ -142,7 +143,6 @@ import org.mariotaku.twidere.fragment.SearchFragment;
|
||||
import org.mariotaku.twidere.fragment.StatusFavoritersListFragment;
|
||||
import org.mariotaku.twidere.fragment.StatusFragment;
|
||||
import org.mariotaku.twidere.fragment.StatusRetweetersListFragment;
|
||||
import org.mariotaku.twidere.fragment.StatusesListFragment;
|
||||
import org.mariotaku.twidere.fragment.UserBlocksListFragment;
|
||||
import org.mariotaku.twidere.fragment.UserFavoritesFragment;
|
||||
import org.mariotaku.twidere.fragment.UserFollowersFragment;
|
||||
@ -158,7 +158,6 @@ import org.mariotaku.twidere.fragment.UserMediaTimelineFragment;
|
||||
import org.mariotaku.twidere.fragment.UserMentionsFragment;
|
||||
import org.mariotaku.twidere.fragment.UserProfileEditorFragment;
|
||||
import org.mariotaku.twidere.fragment.UserTimelineFragment;
|
||||
import org.mariotaku.twidere.fragment.UsersListFragment;
|
||||
import org.mariotaku.twidere.fragment.iface.IBaseFragment.SystemWindowsInsetsCallback;
|
||||
import org.mariotaku.twidere.graphic.PaddingDrawable;
|
||||
import org.mariotaku.twidere.model.AccountPreferences;
|
||||
@ -256,8 +255,7 @@ public final class Utils implements Constants {
|
||||
LINK_HANDLER_URI_MATCHER.addURI(AUTHORITY_SAVED_SEARCHES, null, LINK_ID_SAVED_SEARCHES);
|
||||
LINK_HANDLER_URI_MATCHER.addURI(AUTHORITY_USER_MENTIONS, null, LINK_ID_USER_MENTIONS);
|
||||
LINK_HANDLER_URI_MATCHER.addURI(AUTHORITY_INCOMING_FRIENDSHIPS, null, LINK_ID_INCOMING_FRIENDSHIPS);
|
||||
LINK_HANDLER_URI_MATCHER.addURI(AUTHORITY_USERS, null, LINK_ID_USERS);
|
||||
LINK_HANDLER_URI_MATCHER.addURI(AUTHORITY_STATUSES, null, LINK_ID_STATUSES);
|
||||
LINK_HANDLER_URI_MATCHER.addURI(AUTHORITY_ITEMS, null, LINK_ID_ITEMS);
|
||||
LINK_HANDLER_URI_MATCHER.addURI(AUTHORITY_STATUS_RETWEETERS, null, LINK_ID_STATUS_RETWEETERS);
|
||||
LINK_HANDLER_URI_MATCHER.addURI(AUTHORITY_STATUS_FAVORITERS, null, LINK_ID_STATUS_FAVORITERS);
|
||||
LINK_HANDLER_URI_MATCHER.addURI(AUTHORITY_SEARCH, null, LINK_ID_SEARCH);
|
||||
@ -728,12 +726,8 @@ public final class Utils implements Constants {
|
||||
fragment = new IncomingFriendshipsFragment();
|
||||
break;
|
||||
}
|
||||
case LINK_ID_USERS: {
|
||||
fragment = new UsersListFragment();
|
||||
break;
|
||||
}
|
||||
case LINK_ID_STATUSES: {
|
||||
fragment = new StatusesListFragment();
|
||||
case LINK_ID_ITEMS: {
|
||||
fragment = new ItemsListFragment();
|
||||
break;
|
||||
}
|
||||
case LINK_ID_STATUS_RETWEETERS: {
|
||||
|
@ -30,7 +30,7 @@ import org.mariotaku.twidere.adapter.BaseArrayAdapter;
|
||||
import org.mariotaku.twidere.adapter.BaseRecyclerViewAdapter;
|
||||
import org.mariotaku.twidere.adapter.ComposeAutoCompleteAdapter;
|
||||
import org.mariotaku.twidere.adapter.DraftsAdapter;
|
||||
import org.mariotaku.twidere.adapter.DummyStatusHolderAdapter;
|
||||
import org.mariotaku.twidere.adapter.DummyItemAdapter;
|
||||
import org.mariotaku.twidere.adapter.UserAutoCompleteAdapter;
|
||||
import org.mariotaku.twidere.fragment.BaseListFragment;
|
||||
import org.mariotaku.twidere.fragment.BasePreferenceFragment;
|
||||
@ -65,7 +65,7 @@ import dagger.Component;
|
||||
@Singleton
|
||||
@Component(modules = ApplicationModule.class)
|
||||
public interface GeneralComponent {
|
||||
void inject(DummyStatusHolderAdapter object);
|
||||
void inject(DummyItemAdapter object);
|
||||
|
||||
void inject(BaseSupportFragment object);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user