diff --git a/app/src/main/java/app/fedilab/android/mastodon/helper/Helper.java b/app/src/main/java/app/fedilab/android/mastodon/helper/Helper.java index 5ee38997..93b4422b 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/helper/Helper.java +++ b/app/src/main/java/app/fedilab/android/mastodon/helper/Helper.java @@ -1994,23 +1994,13 @@ public class Helper { } catch (Exception ignored) { } if (BuildConfig.DONATIONS) { - binding.aboutSupport.setVisibility(View.VISIBLE); - binding.aboutSupportPaypal.setVisibility(View.VISIBLE); + binding.donationsMethods.setVisibility(View.VISIBLE); + binding.donateLiberapay.setOnClickListener(v -> Helper.openBrowser(activity, "https://liberapay.com/tom79")); + binding.donatePaypal.setOnClickListener(v -> Helper.openBrowser(activity, "https://www.paypal.me/Mastalab")); + binding.donateOpencollective.setOnClickListener(v -> Helper.openBrowser(activity, "https://opencollective.com/fedilab")); } else { - binding.aboutSupport.setVisibility(View.GONE); - binding.aboutSupportPaypal.setVisibility(View.GONE); + binding.donationsMethods.setVisibility(View.GONE); } - binding.accountFollow.setIconResource(R.drawable.ic_baseline_person_add_24); - binding.aboutSupport.setOnClickListener(v -> { - Intent intentLiberapay = new Intent(Intent.ACTION_VIEW); - intentLiberapay.setData(Uri.parse("https://liberapay.com/tom79")); - try { - activity.startActivity(intentLiberapay); - } catch (Exception e) { - Helper.openBrowser(activity, "https://liberapay.com/tom79"); - } - }); - binding.aboutSupportPaypal.setOnClickListener(v -> Helper.openBrowser(activity, "https://www.paypal.me/Mastalab")); CrossActionHelper.fetchRemoteAccount(activity, "@apps@toot.fedilab.app", new CrossActionHelper.Callback() { @Override public void federatedStatus(Status status) { @@ -2021,10 +2011,10 @@ public class Helper { public void federatedAccount(app.fedilab.android.mastodon.client.entities.api.Account account) { if (account != null && account.username.equalsIgnoreCase("apps")) { - MastodonHelper.loadPPMastodon(binding.accountPp, account); - binding.accountDn.setText(account.display_name); - binding.accountUn.setText(account.acct); - binding.accountPp.setOnClickListener(v -> { + MastodonHelper.loadPPMastodon(binding.accountContainer.avatar, account); + binding.accountContainer.displayName.setText(account.display_name); + binding.accountContainer.username.setText(account.acct); + binding.accountContainer.avatar.setOnClickListener(v -> { Intent intent = new Intent(activity, ProfileActivity.class); Bundle args = new Bundle(); args.putSerializable(Helper.ARG_ACCOUNT, account); @@ -2043,10 +2033,9 @@ public class Helper { .observe((LifecycleOwner) activity, relationShips -> { if (relationShips != null && relationShips.size() > 0) { if (!relationShips.get(0).following) { - binding.acccountContainer.setVisibility(View.VISIBLE); - binding.accountFollow.setVisibility(View.VISIBLE); - binding.accountFollow.setOnClickListener(v -> accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false, null) - .observe((LifecycleOwner) activity, relationShip -> binding.accountFollow.setVisibility(View.GONE))); + binding.accountContainer.getRoot().setVisibility(View.VISIBLE); + binding.accountContainer.listAction.setOnClickListener(v -> accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false, null) + .observe((LifecycleOwner) activity, relationShip -> binding.accountContainer.listAction.setVisibility(View.GONE))); } } }); diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReleaseNoteAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReleaseNoteAdapter.java index 7b9c4056..f0e1056f 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReleaseNoteAdapter.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReleaseNoteAdapter.java @@ -22,6 +22,7 @@ import android.view.ViewGroup; import android.widget.Toast; import androidx.annotation.NonNull; +import androidx.core.view.ViewCompat; import androidx.recyclerview.widget.RecyclerView; import java.util.List; @@ -68,23 +69,32 @@ public class ReleaseNoteAdapter extends RecyclerView.Adapter TranslateHelper.translate(context, note.note, "en", translated -> { + holder.binding.translate.setOnClickListener(v -> onTranslatePressed(note, holder.getBindingAdapterPosition())); + ViewCompat.addAccessibilityAction(holder.binding.note, context.getString(R.string.translate), (view, arguments) -> { + onTranslatePressed(note, holder.getBindingAdapterPosition()); + return true; + }); + holder.binding.translate.setOnClickListener(v -> onTranslatePressed(note, holder.getBindingAdapterPosition())); + } + + private void onTranslatePressed(ReleaseNote.Note note, int bindingAdapterPosition) { + TranslateHelper.translate(context, note.note, "en", translated -> { if (translated != null) { note.noteTranslated = translated; - notifyItemChanged(holder.getBindingAdapterPosition()); + notifyItemChanged(bindingAdapterPosition); } else { Toasty.error(context, context.getString(R.string.toast_error_translate), Toast.LENGTH_LONG).show(); } - })); + }); } - public static class ReleaseNoteViewHolder extends RecyclerView.ViewHolder { DrawerReleaseNoteBinding binding; diff --git a/app/src/main/res/layouts/mastodon/layout/drawer_account_list.xml b/app/src/main/res/layouts/mastodon/layout/drawer_account_list.xml index 43c9f7a5..e28f569f 100644 --- a/app/src/main/res/layouts/mastodon/layout/drawer_account_list.xml +++ b/app/src/main/res/layouts/mastodon/layout/drawer_account_list.xml @@ -46,13 +46,13 @@ android:scaleType="fitCenter" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - tools:src="@drawable/ic_person" /> + tools:src="@tools:sample/avatars" /> - diff --git a/app/src/main/res/layouts/mastodon/layout/drawer_release_note.xml b/app/src/main/res/layouts/mastodon/layout/drawer_release_note.xml index b45a01f8..7466c0f8 100644 --- a/app/src/main/res/layouts/mastodon/layout/drawer_release_note.xml +++ b/app/src/main/res/layouts/mastodon/layout/drawer_release_note.xml @@ -1,85 +1,108 @@ - + android:layout_margin="6dp"> - - - - - - - + android:padding="6dp"> - - - - - - - + android:ellipsize="end" + android:focusable="true" + android:lines="1" + android:padding="6dp" + android:textAppearance="@style/TextAppearance.Material3.TitleMedium" + tools:text="1.0.0 (100)" /> - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layouts/mastodon/layout/popup_release_notes.xml b/app/src/main/res/layouts/mastodon/layout/popup_release_notes.xml index b6ca774f..5e6c7cf8 100644 --- a/app/src/main/res/layouts/mastodon/layout/popup_release_notes.xml +++ b/app/src/main/res/layouts/mastodon/layout/popup_release_notes.xml @@ -20,88 +20,77 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical"> + android:orientation="vertical" + android:padding="6dp"> - + android:layout_marginTop="12dp" /> - + - + + - - - - - - + android:ellipsize="end" + android:maxLines="1" + android:text="Liberapay" + app:cornerRadius="0dp" + app:icon="@drawable/ic_liberapay" + app:iconGravity="top" + tools:ignore="HardcodedText" /> + android:id="@+id/donate_opencollective" + style="@style/Widget.Material3.Button.TextButton" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:ellipsize="end" + android:maxLines="1" + android:text="OpenCollective" + app:cornerRadius="0dp" + app:icon="@drawable/ic_opencollective" + app:iconGravity="top" + tools:ignore="HardcodedText" /> + + + - - - diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 65f948f5..75ad8586 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -86,6 +86,7 @@ Translated content: %s %s. List timeline %s. Hash tag timeline + Translated release note: %s No message to display