Skip to content

Commit

Permalink
customize extended footer
Browse files Browse the repository at this point in the history
  • Loading branch information
sk22 committed Dec 5, 2023
1 parent a9a4778 commit 17e3d52
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,13 @@
import org.joinmastodon.android.R;
import org.joinmastodon.android.fragments.BaseStatusListFragment;
import org.joinmastodon.android.fragments.StatusEditHistoryFragment;
import org.joinmastodon.android.fragments.ThreadFragment;
import org.joinmastodon.android.fragments.account_list.StatusFavoritesListFragment;
import org.joinmastodon.android.fragments.account_list.StatusReblogsListFragment;
import org.joinmastodon.android.fragments.account_list.StatusRelatedAccountListFragment;
import org.joinmastodon.android.model.Status;
import org.joinmastodon.android.model.StatusPrivacy;
import org.joinmastodon.android.ui.Snackbar;
import org.joinmastodon.android.ui.utils.UiUtils;
import org.parceler.Parcels;

Expand All @@ -37,9 +39,8 @@
public class ExtendedFooterStatusDisplayItem extends StatusDisplayItem{
public final String accountID;

private static final DateTimeFormatter TIME_FORMATTER=DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT);
private static final DateTimeFormatter TIME_FORMATTER_LONG=DateTimeFormatter.ofLocalizedTime(FormatStyle.MEDIUM);
private static final DateTimeFormatter DATE_FORMATTER=DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM);
private static final DateTimeFormatter TIME_FORMATTER=DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG, FormatStyle.SHORT);
private static final DateTimeFormatter TIME_FORMATTER_LONG=DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL, FormatStyle.MEDIUM);

public ExtendedFooterStatusDisplayItem(String parentID, BaseStatusListFragment parentFragment, String accountID, Status status){
super(parentID, parentFragment);
Expand All @@ -53,8 +54,8 @@ public Type getType(){
}

public static class Holder extends StatusDisplayItem.Holder<ExtendedFooterStatusDisplayItem>{
private final TextView date, time, dateAppSeparator;
private final Button favorites, reblogs, editHistory, app;
private final TextView dateAppSeparator;
private final Button favorites, reblogs, editHistory, app, time;
private final ImageView visibility;
private final Context context;

Expand All @@ -66,13 +67,13 @@ public Holder(Context context, ViewGroup parent){
editHistory=findViewById(R.id.edit_history);
app=findViewById(R.id.app_name);
visibility=findViewById(R.id.visibility);
date=findViewById(R.id.date);
time=findViewById(R.id.time);
dateAppSeparator=findViewById(R.id.date_app_separator);

reblogs.setOnClickListener(v->startAccountListFragment(StatusReblogsListFragment.class));
favorites.setOnClickListener(v->startAccountListFragment(StatusFavoritesListFragment.class));
editHistory.setOnClickListener(v->startEditHistoryFragment());
time.setOnClickListener(v->showTimeSnackbar());
app.setOnClickListener(v->UiUtils.launchWebBrowser(context, item.status.application.website));
}

Expand All @@ -94,7 +95,6 @@ public void onBind(ExtendedFooterStatusDisplayItem item){

ZonedDateTime dt=item.status.createdAt.atZone(ZoneId.systemDefault());
time.setText(TIME_FORMATTER.format(dt));
date.setText(DATE_FORMATTER.format(dt));
if(item.status.application!=null && !TextUtils.isEmpty(item.status.application.name)){
app.setVisibility(View.VISIBLE);
dateAppSeparator.setVisibility(View.VISIBLE);
Expand Down Expand Up @@ -147,5 +147,16 @@ private void startEditHistoryFragment(){
args.putString("url", item.status.url);
Nav.go(item.parentFragment.getActivity(), StatusEditHistoryFragment.class, args);
}

private void showTimeSnackbar(){
int bottomOffset=0;
if(item.parentFragment instanceof ThreadFragment tf){
bottomOffset=tf.getSnackbarOffset();
}
new Snackbar.Builder(itemView.getContext())
.setText(TIME_FORMATTER_LONG.format(item.status.createdAt.atZone(ZoneId.systemDefault())))
.setBottomOffset(bottomOffset)
.show();
}
}
}
39 changes: 20 additions & 19 deletions mastodon/src/main/res/layout/display_item_extended_footer.xml
Original file line number Diff line number Diff line change
Expand Up @@ -83,41 +83,42 @@
android:src="@drawable/ic_fluent_earth_20_regular"
android:tint="?colorM3OnSurfaceVariant" />

<TextView
<Button
android:id="@+id/time"
style="@style/Widget.Mastodon.M3.Button.Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:minHeight="20dp"
android:gravity="center_vertical"
android:textAppearance="@style/m3_body_medium"
android:textColor="?colorM3OnSurfaceVariant"
tools:text="12:42 PM"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="4sp"
android:layout_marginStart="-4dp"
android:gravity="center"
android:paddingStart="12dp"
android:paddingEnd="12dp"
android:padding="0dp"
android:minWidth="0dp"
android:minHeight="48dp"
android:textAppearance="@style/m3_body_medium"
android:textColor="?colorM3OnSurfaceVariant"
android:importantForAccessibility="no"
android:text="@string/sk_separator"/>
android:fontFamily="sans-serif"
android:singleLine="true"
android:ellipsize="end"
tools:text="Megalodon"/>

<TextView
android:id="@+id/date"
<!-- TextView
android:id="@+id/time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:minHeight="20dp"
android:gravity="center_vertical"
android:textAppearance="@style/m3_body_medium"
android:textColor="?colorM3OnSurfaceVariant"
tools:text="Dec 12, 2021"/>
tools:text="12:42 PM"/ -->

<TextView
android:id="@+id/date_app_separator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="4sp"
android:layout_marginStart="-12dp"
android:paddingHorizontal="6sp"
android:textAppearance="@style/m3_body_medium"
android:textColor="?colorM3OnSurfaceVariant"
android:importantForAccessibility="no"
Expand All @@ -128,8 +129,8 @@
style="@style/Widget.Mastodon.M3.Button.Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginStart="-12dp"
android:gravity="center"
android:paddingStart="12dp"
android:paddingEnd="12dp"
android:padding="0dp"
Expand Down

0 comments on commit 17e3d52

Please sign in to comment.