From b29e5bc1947c133347b99f0d1baff18528aa6de1 Mon Sep 17 00:00:00 2001 From: 0xd9a <0xd9a@noreply.codeberg.org> Date: Wed, 29 Oct 2025 16:56:35 +0530 Subject: [PATCH] Some code changes - Replace some 'if' with 'switch' - Reduce some repetitive actions --- .../ui/drawer/NotificationAdapter.java | 146 ++++++++---------- 1 file changed, 64 insertions(+), 82 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/NotificationAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/NotificationAdapter.java index b903f706..7689becd 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/NotificationAdapter.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/NotificationAdapter.java @@ -135,11 +135,12 @@ public class NotificationAdapter extends RecyclerView.Adapter { @@ -149,49 +150,49 @@ public class NotificationAdapter extends RecyclerView.Adapter { - if (notificationList.get(position).status != null) { + if (notification.status != null) { return TYPE_MENTION; } else { return TYPE_HIDDEN; } } case "reblog" -> { - if (notificationList.get(position).status != null) { + if (notification.status != null) { return TYPE_REBLOG; } else { return TYPE_HIDDEN; } } case "quote" -> { - if (notificationList.get(position).status != null) { + if (notification.status != null) { return TYPE_QUOTE; } else { return TYPE_HIDDEN; } } case "update" -> { - if (notificationList.get(position).status != null) { + if (notification.status != null) { return TYPE_UPDATE; } else { return TYPE_HIDDEN; } } case "favourite" -> { - if (notificationList.get(position).status != null) { + if (notification.status != null) { return TYPE_FAVOURITE; } else { return TYPE_HIDDEN; } } case "poll" -> { - if (notificationList.get(position).status != null) { + if (notification.status != null) { return TYPE_POLL; } else { return TYPE_HIDDEN; } } case "status" -> { - if (notificationList.get(position).status != null) { + if (notification.status != null) { return TYPE_STATUS; } else { return TYPE_HIDDEN; @@ -204,7 +205,7 @@ public class NotificationAdapter extends RecyclerView.Adapter { - if (notificationList.get(position).status != null) { + if (notification.status != null) { return TYPE_REACTION; } else { return TYPE_HIDDEN; @@ -250,7 +251,8 @@ public class NotificationAdapter extends RecyclerView.Adapter { + holderFollow.binding.rejectButton.setVisibility(View.VISIBLE); + holderFollow.binding.acceptButton.setVisibility(View.VISIBLE); + holderFollow.binding.title.setText(R.string.follow_request); + } + case TYPE_ADMIN_REPORT -> + holderFollow.binding.title.setText(String.format(Locale.getDefault(), "%s %s", notification.account.display_name, context.getString(R.string.notif_submitted_report))); + case TYPE_ADMIN_SIGNUP -> + holderFollow.binding.title.setText(String.format(Locale.getDefault(), "%s %s", notification.account.display_name, context.getString(R.string.notif_signed_up))); + default -> holderFollow.binding.title.setText(R.string.follow); } AccountsVM accountsVM = new ViewModelProvider((ViewModelStoreOwner) context).get(AccountsVM.class); holderFollow.binding.rejectButton.setOnClickListener(v -> accountsVM.rejectFollow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, notification.account.id) @@ -335,7 +338,7 @@ public class NotificationAdapter extends RecyclerView.Adapter + holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_message_24); + case TYPE_FAVOURITE -> holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_star_24); + case TYPE_REBLOG -> holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_repeat_24); + case TYPE_QUOTE -> + holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_format_quote_24); + case TYPE_UPDATE -> holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_edit_24); + case TYPE_REACTION -> + holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_insert_emoticon_24); + case TYPE_POLL -> holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_poll_24); } int theme_icons_color = -1; boolean customLight = sharedpreferences.getBoolean(context.getString(R.string.SET_CUSTOMIZE_LIGHT_COLORS), false); @@ -395,34 +393,31 @@ public class NotificationAdapter extends RecyclerView.Adapter { - Intent intent = new Intent(context, ProfileActivity.class); - Bundle args = new Bundle(); - args.putSerializable(Helper.ARG_ACCOUNT, notification.account); - new CachedBundle(context).insertBundle(args, Helper.getCurrentAccount(context), bundleId -> { - Bundle bundle = new Bundle(); - bundle.putLong(Helper.ARG_INTENT_ID, bundleId); - intent.putExtras(bundle); - context.startActivity(intent); + switch (itemViewType) { + case TYPE_MENTION, TYPE_STATUS, TYPE_QUOTE -> title = notification.account.display_name; + case TYPE_REACTION -> { + if (notification.emoji == null) { + notification.emoji = ""; + } + //title = String.format(Locale.getDefault(), "%s reacted with %s", notification.account.username, notification.emoji); + title = notification.account.username; + MastodonHelper.loadPPMastodon(holderStatus.bindingNotification.status.avatar, notification.account); + holderStatus.bindingNotification.status.statusUserInfo.setOnClickListener(v -> { + Intent intent = new Intent(context, ProfileActivity.class); + Bundle args = new Bundle(); + args.putSerializable(Helper.ARG_ACCOUNT, notification.account); + new CachedBundle(context).insertBundle(args, Helper.getCurrentAccount(context), bundleId -> { + Bundle bundle = new Bundle(); + bundle.putLong(Helper.ARG_INTENT_ID, bundleId); + intent.putExtras(bundle); + context.startActivity(intent); + }); }); - }); - holderStatus.bindingNotification.status.mainContainer.setAlpha(.8f); + holderStatus.bindingNotification.status.mainContainer.setAlpha(.8f); + } } holderStatus.bindingNotification.status.displayName.setText( notification.account.getSpanDisplayNameTitle(context, @@ -437,25 +432,12 @@ public class NotificationAdapter extends RecyclerView.Adapter notification.account.display_name; + case TYPE_POLL -> context.getString(R.string.notif_poll); + default -> ""; + }; MastodonHelper.loadPPMastodon(holderStatus.binding.avatar, notification.account); - if (getItemViewType(position) == TYPE_FAVOURITE) { - // title = String.format(Locale.getDefault(), "%s %s", notification.account.display_name, context.getString(R.string.notif_favourite)); - title = notification.account.display_name; - } else if (getItemViewType(position) == TYPE_REBLOG) { - // title = String.format(Locale.getDefault(), "%s %s", notification.account.display_name, context.getString(R.string.notif_reblog)); - title = notification.account.display_name; - } else if (getItemViewType(position) == TYPE_QUOTE) { - // title = String.format(Locale.getDefault(), "%s %s", notification.account.display_name, context.getString(R.string.notif_reblog)); - title = notification.account.display_name; - }else if (getItemViewType(position) == TYPE_UPDATE) { - // title = String.format(Locale.getDefault(), "%s %s", notification.account.display_name, context.getString(R.string.notif_update)); - title = notification.account.display_name; - } else if (getItemViewType(position) == TYPE_POLL) { - title = context.getString(R.string.notif_poll); - } else if (getItemViewType(position) == TYPE_POLL) { - title = context.getString(R.string.notif_poll); - } if (notification.relatedNotifications != null && !notification.relatedNotifications.isEmpty()) { if (notification.type.equals("favourite")) { holderStatus.bindingNotification.typeOfConcat.setText(R.string.also_favourite_by);