adding click listener for activities
This commit is contained in:
parent
42b63fa405
commit
8910b80338
|
@ -60,7 +60,7 @@ import org.mariotaku.twidere.view.holder.StatusViewHolder.StatusClickListener;
|
|||
* Created by mariotaku on 15/1/3.
|
||||
*/
|
||||
public abstract class AbsActivitiesAdapter<Data> extends LoadMoreSupportAdapter<ViewHolder> implements Constants,
|
||||
IActivitiesAdapter<Data>, StatusClickListener, OnLinkClickListener {
|
||||
IActivitiesAdapter<Data>, StatusClickListener, OnLinkClickListener, ActivityTitleSummaryViewHolder.ActivityClickListener {
|
||||
|
||||
private static final int ITEM_VIEW_TYPE_STUB = 0;
|
||||
private static final int ITEM_VIEW_TYPE_GAP = 1;
|
||||
|
@ -239,6 +239,7 @@ public abstract class AbsActivitiesAdapter<Data> extends LoadMoreSupportAdapter<
|
|||
cardView.setCardBackgroundColor(mCardBackgroundColor);
|
||||
}
|
||||
final ActivityTitleSummaryViewHolder holder = new ActivityTitleSummaryViewHolder(this, view);
|
||||
holder.setOnClickListeners();
|
||||
holder.setTextSize(getTextSize());
|
||||
return holder;
|
||||
}
|
||||
|
@ -320,6 +321,11 @@ public abstract class AbsActivitiesAdapter<Data> extends LoadMoreSupportAdapter<
|
|||
return getActivityCount() + (isLoadMoreIndicatorVisible() ? 1 : 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGapItem(int position) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGapClick(ViewHolder holder, int position) {
|
||||
if (mActivityAdapterListener != null) {
|
||||
|
@ -360,8 +366,16 @@ public abstract class AbsActivitiesAdapter<Data> extends LoadMoreSupportAdapter<
|
|||
return mDisplayMediaPreview;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityClick(ActivityTitleSummaryViewHolder holder, int position) {
|
||||
if (mActivityAdapterListener == null) return;
|
||||
mActivityAdapterListener.onActivityClick(holder, position);
|
||||
}
|
||||
|
||||
public interface ActivityAdapterListener {
|
||||
void onGapClick(GapViewHolder holder, int position);
|
||||
|
||||
void onActivityClick(ActivityTitleSummaryViewHolder holder, int position);
|
||||
}
|
||||
|
||||
private static class StubViewHolder extends ViewHolder {
|
||||
|
|
|
@ -44,6 +44,7 @@ import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
|||
import org.mariotaku.twidere.util.KeyboardShortcutsHandler;
|
||||
import org.mariotaku.twidere.util.RecyclerViewNavigationHelper;
|
||||
import org.mariotaku.twidere.view.HeaderDrawerLayout.DrawerCallback;
|
||||
import org.mariotaku.twidere.view.holder.ActivityTitleSummaryViewHolder;
|
||||
import org.mariotaku.twidere.view.holder.GapViewHolder;
|
||||
|
||||
/**
|
||||
|
@ -69,6 +70,11 @@ public abstract class AbsActivitiesFragment<Data> extends AbsContentRecyclerView
|
|||
getActivities(accountIds, maxIds, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityClick(ActivityTitleSummaryViewHolder holder, int position) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handleKeyboardShortcutSingle(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event) {
|
||||
return mNavigationHelper.handleKeyboardShortcutSingle(handler, keyCode, event);
|
||||
|
|
|
@ -43,12 +43,15 @@ import org.mariotaku.twidere.model.ParcelableUser;
|
|||
import org.mariotaku.twidere.util.MediaLoaderWrapper;
|
||||
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||
import org.mariotaku.twidere.view.ActionIconView;
|
||||
import org.mariotaku.twidere.view.iface.IColorLabelView;
|
||||
import org.oshkimaadziig.george.androidutils.SpanFormatter;
|
||||
|
||||
/**
|
||||
* Created by mariotaku on 15/1/3.
|
||||
*/
|
||||
public class ActivityTitleSummaryViewHolder extends ViewHolder {
|
||||
public class ActivityTitleSummaryViewHolder extends ViewHolder implements View.OnClickListener {
|
||||
|
||||
private final IColorLabelView itemContent;
|
||||
|
||||
private final AbsActivitiesAdapter adapter;
|
||||
private final ActionIconView activityTypeView;
|
||||
|
@ -57,10 +60,14 @@ public class ActivityTitleSummaryViewHolder extends ViewHolder {
|
|||
private final ViewGroup profileImagesContainer;
|
||||
private final TextView profileImageMoreNumber;
|
||||
private final ImageView[] profileImageViews;
|
||||
private ActivityClickListener activityClickListener;
|
||||
|
||||
public ActivityTitleSummaryViewHolder(AbsActivitiesAdapter adapter, View itemView) {
|
||||
super(itemView);
|
||||
this.adapter = adapter;
|
||||
|
||||
itemContent = (IColorLabelView) itemView.findViewById(R.id.item_content);
|
||||
|
||||
activityTypeView = (ActionIconView) itemView.findViewById(R.id.activity_type);
|
||||
titleView = (TextView) itemView.findViewById(R.id.title);
|
||||
summaryView = (TextView) itemView.findViewById(R.id.summary);
|
||||
|
@ -176,7 +183,6 @@ public class ActivityTitleSummaryViewHolder extends ViewHolder {
|
|||
|
||||
public void displayActivitiesByFriends(ParcelableActivity activity) {
|
||||
final Context context = adapter.getContext();
|
||||
final Resources resources = adapter.getContext().getResources();
|
||||
switch (activity.action) {
|
||||
case Activity.ACTION_FOLLOW: {
|
||||
activityTypeView.setImageResource(R.drawable.ic_activity_action_follow);
|
||||
|
@ -313,4 +319,31 @@ public class ActivityTitleSummaryViewHolder extends ViewHolder {
|
|||
}
|
||||
}
|
||||
|
||||
public void setOnClickListeners() {
|
||||
setActivityClickListener(adapter);
|
||||
}
|
||||
|
||||
public void setActivityClickListener(ActivityClickListener listener) {
|
||||
activityClickListener = listener;
|
||||
((View) itemContent).setOnClickListener(this);
|
||||
// ((View) itemContent).setOnLongClickListener(this);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (activityClickListener == null) return;
|
||||
final int position = getLayoutPosition();
|
||||
switch (v.getId()) {
|
||||
case R.id.item_content: {
|
||||
activityClickListener.onActivityClick(this, position);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public interface ActivityClickListener {
|
||||
|
||||
void onActivityClick(ActivityTitleSummaryViewHolder holder, int position);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
app:cardCornerRadius="2dp"
|
||||
app:cardElevation="2dp">
|
||||
|
||||
<RelativeLayout
|
||||
<org.mariotaku.twidere.view.ColorLabelRelativeLayout
|
||||
android:id="@+id/item_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -149,5 +149,5 @@
|
|||
tools:text="@string/sample_status_text"
|
||||
tools:textSize="12sp" />
|
||||
|
||||
</RelativeLayout>
|
||||
</org.mariotaku.twidere.view.ColorLabelRelativeLayout>
|
||||
</android.support.v7.widget.CardView>
|
|
@ -17,7 +17,7 @@
|
|||
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<org.mariotaku.twidere.view.ColorLabelRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/item_content"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -136,4 +136,4 @@
|
|||
tools:text="@string/sample_status_text"
|
||||
tools:textSize="@dimen/text_size_extra_small" />
|
||||
|
||||
</RelativeLayout>
|
||||
</org.mariotaku.twidere.view.ColorLabelRelativeLayout>
|
Loading…
Reference in New Issue