Merge branch 'compact-extended-footer' into fork
This commit is contained in:
commit
eff6cc3e17
|
@ -48,7 +48,7 @@ public class ExtendedFooterStatusDisplayItem extends StatusDisplayItem{
|
||||||
|
|
||||||
public static class Holder extends StatusDisplayItem.Holder<ExtendedFooterStatusDisplayItem>{
|
public static class Holder extends StatusDisplayItem.Holder<ExtendedFooterStatusDisplayItem>{
|
||||||
private final TextView time;
|
private final TextView time;
|
||||||
private final Button favorites, reblogs, editHistory;
|
private final Button favorites, reblogs, editHistory, applicationName;
|
||||||
private final ImageView visibility;
|
private final ImageView visibility;
|
||||||
private final Context context;
|
private final Context context;
|
||||||
|
|
||||||
|
@ -58,8 +58,9 @@ public class ExtendedFooterStatusDisplayItem extends StatusDisplayItem{
|
||||||
reblogs=findViewById(R.id.reblogs);
|
reblogs=findViewById(R.id.reblogs);
|
||||||
favorites=findViewById(R.id.favorites);
|
favorites=findViewById(R.id.favorites);
|
||||||
editHistory=findViewById(R.id.edit_history);
|
editHistory=findViewById(R.id.edit_history);
|
||||||
time=findViewById(R.id.timestamp);
|
applicationName=findViewById(R.id.application_name);
|
||||||
visibility=findViewById(R.id.visibility);
|
visibility=findViewById(R.id.visibility);
|
||||||
|
time=findViewById(R.id.timestamp);
|
||||||
|
|
||||||
reblogs.setOnClickListener(v->startAccountListFragment(StatusReblogsListFragment.class));
|
reblogs.setOnClickListener(v->startAccountListFragment(StatusReblogsListFragment.class));
|
||||||
favorites.setOnClickListener(v->startAccountListFragment(StatusFavoritesListFragment.class));
|
favorites.setOnClickListener(v->startAccountListFragment(StatusFavoritesListFragment.class));
|
||||||
|
@ -79,11 +80,20 @@ public class ExtendedFooterStatusDisplayItem extends StatusDisplayItem{
|
||||||
editHistory.setVisibility(View.GONE);
|
editHistory.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
String timeStr=TIME_FORMATTER.format(item.status.createdAt.atZone(ZoneId.systemDefault()));
|
String timeStr=TIME_FORMATTER.format(item.status.createdAt.atZone(ZoneId.systemDefault()));
|
||||||
if(item.status.application!=null && !TextUtils.isEmpty(item.status.application.name)){
|
|
||||||
time.setText(item.parentFragment.getString(R.string.timestamp_via_app, timeStr, item.status.application.name));
|
if (item.status.application!=null && !TextUtils.isEmpty(item.status.application.name)) {
|
||||||
}else{
|
time.setText(item.parentFragment.getString(R.string.timestamp_via_app, timeStr, ""));
|
||||||
|
applicationName.setText(item.status.application.name);
|
||||||
|
if (item.status.application.website != null && item.status.application.website.toLowerCase().startsWith("https://")) {
|
||||||
|
applicationName.setOnClickListener(e -> UiUtils.openURL(context, null, item.status.application.website));
|
||||||
|
} else {
|
||||||
|
applicationName.setEnabled(false);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
time.setText(timeStr);
|
time.setText(timeStr);
|
||||||
|
applicationName.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
visibility.setImageResource(switch (s.visibility) {
|
visibility.setImageResource(switch (s.visibility) {
|
||||||
case PUBLIC -> R.drawable.ic_fluent_earth_20_regular;
|
case PUBLIC -> R.drawable.ic_fluent_earth_20_regular;
|
||||||
case UNLISTED -> R.drawable.ic_fluent_people_20_regular;
|
case UNLISTED -> R.drawable.ic_fluent_people_20_regular;
|
||||||
|
|
|
@ -158,7 +158,7 @@ public abstract class StatusDisplayItem{
|
||||||
}
|
}
|
||||||
|
|
||||||
public Holder(Context context, int layout, ViewGroup parent){
|
public Holder(Context context, int layout, ViewGroup parent){
|
||||||
super(context, layout, parent);
|
super(context, layout, parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getItemID(){
|
public String getItemID(){
|
||||||
|
|
|
@ -671,10 +671,10 @@ public class UiUtils{
|
||||||
return GlobalUserPreferences.theme==GlobalUserPreferences.ThemePreference.DARK;
|
return GlobalUserPreferences.theme==GlobalUserPreferences.ThemePreference.DARK;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void openURL(Context context, String accountID, String url){
|
public static void openURL(Context context, @Nullable String accountID, String url){
|
||||||
Uri uri=Uri.parse(url);
|
Uri uri=Uri.parse(url);
|
||||||
String accountDomain=AccountSessionManager.getInstance().getAccount(accountID).domain;
|
String accountDomain=accountID != null ? AccountSessionManager.getInstance().getAccount(accountID).domain : null;
|
||||||
if("https".equals(uri.getScheme()) && accountDomain.equalsIgnoreCase(uri.getAuthority())){
|
if(accountDomain!=null && "https".equals(uri.getScheme()) && accountDomain.equalsIgnoreCase(uri.getAuthority())){
|
||||||
List<String> path=uri.getPathSegments();
|
List<String> path=uri.getPathSegments();
|
||||||
// Match URLs like https://mastodon.social/@Gargron/108132679274083591
|
// Match URLs like https://mastodon.social/@Gargron/108132679274083591
|
||||||
if(path.size()==2 && path.get(0).matches("^@[a-zA-Z0-9_]+$") && path.get(1).matches("^[0-9]+$")){
|
if(path.size()==2 && path.get(0).matches("^@[a-zA-Z0-9_]+$") && path.get(1).matches("^[0-9]+$")){
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:gravity="center"
|
android:gravity="start|center"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="8dp"
|
android:layout_marginHorizontal="8dp"
|
||||||
|
@ -79,14 +79,29 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/timestamp"
|
android:id="@+id/timestamp"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginLeft="8dp"
|
android:layout_marginLeft="8dp"
|
||||||
android:minHeight="20dp"
|
android:minHeight="20dp"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:textColor="?android:textColorSecondary"
|
android:textColor="?android:textColorSecondary"
|
||||||
tools:text="Dec 12, 2021, 12:42 PM via Mastodon for Android"/>
|
tools:text="Dec 12, 2021, 12:42 PM via "/>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/application_name"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:padding="0dp"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:minHeight="48dp"
|
||||||
|
android:textColor="?android:textColorSecondary"
|
||||||
|
android:background="@drawable/bg_text_button"
|
||||||
|
android:fontFamily="sans-serif"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:ellipsize="end"
|
||||||
|
tools:text="Mastodon for Android"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue