Loading app/src/main/java/app/fedilab/android/ui/drawer/NotificationAdapter.java +7 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH private final int TYPE_POLL = 5; private final int TYPE_STATUS = 6; private final int TYPE_REACTION = 8; private final int TYPE_UPDATE = 9; public FetchMoreCallBack fetchMoreCallBack; private Context context; Loading Loading @@ -92,6 +93,8 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH return TYPE_MENTION; case "reblog": return TYPE_REBLOG; case "update": return TYPE_UPDATE; case "favourite": return TYPE_FAVOURITE; case "poll": Loading Loading @@ -227,6 +230,8 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_star_24); } else if (getItemViewType(position) == TYPE_REBLOG) { holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_repeat_24); } else if (getItemViewType(position) == TYPE_UPDATE) { holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_edit_24); } else if (getItemViewType(position) == TYPE_REACTION) { holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_insert_emoticon_24); } else if (getItemViewType(position) == TYPE_POLL) { Loading Loading @@ -292,6 +297,8 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH title = String.format(Locale.getDefault(), "%s %s", notification.account.display_name, context.getString(R.string.notif_favourite)); } else if (getItemViewType(position) == TYPE_REBLOG) { title = String.format(Locale.getDefault(), "%s %s", notification.account.display_name, context.getString(R.string.notif_reblog)); } else if (getItemViewType(position) == TYPE_UPDATE) { title = String.format(Locale.getDefault(), "%s %s", notification.account.display_name, context.getString(R.string.notif_update)); } else if (getItemViewType(position) == TYPE_POLL) { title = context.getString(R.string.notif_poll); } Loading app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonNotification.java +5 −1 Original line number Diff line number Diff line Loading @@ -230,6 +230,8 @@ public class FragmentMastodonNotification extends Fragment implements Notificati excludeType.remove("reblog"); } else if (notificationType == NotificationTypeEnum.POLLS) { excludeType.remove("poll"); } else if (notificationType == NotificationTypeEnum.UPDATES) { excludeType.remove("update"); } else if (notificationType == NotificationTypeEnum.TOOTS) { excludeType.remove("status"); } else if (notificationType == NotificationTypeEnum.FOLLOWS) { Loading Loading @@ -477,7 +479,7 @@ public class FragmentMastodonNotification extends Fragment implements Notificati if (i != refPosition) { //Loop through notifications, only fav and boost will be aggregated if they are just bellow if (notifications.get(i).type != null && notifications.get(refPosition).type != null && notifications.get(i).type.equals(notifications.get(refPosition).type) && (notifications.get(i).type.equals("favourite") || notifications.get(i).type.equals("reblog")) && (notifications.get(i).type.equals("favourite") || notifications.get(i).type.equals("reblog") || notifications.get(i).type.equals("update")) && notifications.get(i).status != null && notifications.get(refPosition).status != null && notifications.get(i).status.id.equals(notifications.get(refPosition).status.id) ) { if (notificationList.size() > 0) { Loading Loading @@ -676,6 +678,8 @@ public class FragmentMastodonNotification extends Fragment implements Notificati @SerializedName("FAVOURITES") FAVOURITES("FAVOURITES"), @SerializedName("REBLOGS") UPDATES("UPDATES"), @SerializedName("UPDATES") REBLOGS("REBLOGS"), @SerializedName("POLLS") POLLS("POLLS"), Loading app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentNotificationContainer.java +9 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,7 @@ public class FragmentNotificationContainer extends Fragment { binding.tabLayout.addTab(binding.tabLayout.newTab().setIcon(R.drawable.ic_baseline_poll_24)); binding.tabLayout.addTab(binding.tabLayout.newTab().setIcon(R.drawable.ic_baseline_home_24)); binding.tabLayout.addTab(binding.tabLayout.newTab().setIcon(R.drawable.ic_baseline_person_add_alt_1_24)); binding.tabLayout.addTab(binding.tabLayout.newTab().setIcon(R.drawable.ic_baseline_edit_24)); binding.viewpagerNotificationContainer.setAdapter(new FedilabNotificationPageAdapter(getChildFragmentManager(), true)); } AtomicBoolean changes = new AtomicBoolean(false); Loading @@ -90,6 +91,7 @@ public class FragmentNotificationContainer extends Fragment { ThemeHelper.changeButtonColor(requireActivity(), dialogView.displayPollResults); ThemeHelper.changeButtonColor(requireActivity(), dialogView.displayUpdatesFromPeople); ThemeHelper.changeButtonColor(requireActivity(), dialogView.displayFollows); ThemeHelper.changeButtonColor(requireActivity(), dialogView.displayUpdates); DrawableCompat.setTintList(DrawableCompat.wrap(dialogView.displayAllCategories.getThumbDrawable()), ThemeHelper.getSwitchCompatThumbDrawable(requireActivity())); DrawableCompat.setTintList(DrawableCompat.wrap(dialogView.displayAllCategories.getTrackDrawable()), ThemeHelper.getSwitchCompatTrackDrawable(requireActivity())); Loading Loading @@ -125,6 +127,7 @@ public class FragmentNotificationContainer extends Fragment { dialogView.displayPollResults.setChecked(true); dialogView.displayUpdatesFromPeople.setChecked(true); dialogView.displayFollows.setChecked(true); dialogView.displayUpdates.setChecked(true); String excludedCategories = sharedpreferences.getString(getString(R.string.SET_EXCLUDED_NOTIFICATIONS_TYPE) + BaseMainActivity.currentUserID + BaseMainActivity.currentInstance, null); List<String> excludedCategoriesList = new ArrayList<>(); if (excludedCategories != null) { Loading Loading @@ -155,6 +158,10 @@ public class FragmentNotificationContainer extends Fragment { excludedCategoriesList.add("follow"); dialogView.displayFollows.setChecked(false); break; case "update": excludedCategoriesList.add("update"); dialogView.displayUpdates.setChecked(false); break; } } } Loading @@ -173,6 +180,8 @@ public class FragmentNotificationContainer extends Fragment { notificationType = "status"; } else if (checkedId == R.id.display_follows) { notificationType = "follow"; } else if (checkedId == R.id.display_updates) { notificationType = "update"; } if (isChecked) { excludedCategoriesList.remove(notificationType); Loading app/src/main/java/app/fedilab/android/ui/pageadapter/FedilabNotificationPageAdapter.java +4 −1 Original line number Diff line number Diff line Loading @@ -83,6 +83,9 @@ public class FedilabNotificationPageAdapter extends FragmentStatePagerAdapter { case 6: bundle.putSerializable(Helper.ARG_NOTIFICATION_TYPE, FragmentMastodonNotification.NotificationTypeEnum.FOLLOWS); break; case 7: bundle.putSerializable(Helper.ARG_NOTIFICATION_TYPE, FragmentMastodonNotification.NotificationTypeEnum.UPDATES); break; } } fragmentMastodonNotification.setArguments(bundle); Loading @@ -91,6 +94,6 @@ public class FedilabNotificationPageAdapter extends FragmentStatePagerAdapter { @Override public int getCount() { return extended ? 7 : 2; return extended ? 8 : 2; } } No newline at end of file app/src/main/res/layout/popup_notification_settings.xml +7 −0 Original line number Diff line number Diff line Loading @@ -102,6 +102,13 @@ android:text="@string/notif_display_follows" app:icon="@drawable/ic_baseline_person_add_alt_1_24" /> <com.google.android.material.button.MaterialButton android:id="@+id/display_updates" style="@style/Widget.App.Button.IconOnly" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/notif_display_updates" app:icon="@drawable/ic_baseline_edit_24" /> </com.google.android.material.button.MaterialButtonToggleGroup> Loading Loading
app/src/main/java/app/fedilab/android/ui/drawer/NotificationAdapter.java +7 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH private final int TYPE_POLL = 5; private final int TYPE_STATUS = 6; private final int TYPE_REACTION = 8; private final int TYPE_UPDATE = 9; public FetchMoreCallBack fetchMoreCallBack; private Context context; Loading Loading @@ -92,6 +93,8 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH return TYPE_MENTION; case "reblog": return TYPE_REBLOG; case "update": return TYPE_UPDATE; case "favourite": return TYPE_FAVOURITE; case "poll": Loading Loading @@ -227,6 +230,8 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_star_24); } else if (getItemViewType(position) == TYPE_REBLOG) { holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_repeat_24); } else if (getItemViewType(position) == TYPE_UPDATE) { holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_edit_24); } else if (getItemViewType(position) == TYPE_REACTION) { holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_insert_emoticon_24); } else if (getItemViewType(position) == TYPE_POLL) { Loading Loading @@ -292,6 +297,8 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH title = String.format(Locale.getDefault(), "%s %s", notification.account.display_name, context.getString(R.string.notif_favourite)); } else if (getItemViewType(position) == TYPE_REBLOG) { title = String.format(Locale.getDefault(), "%s %s", notification.account.display_name, context.getString(R.string.notif_reblog)); } else if (getItemViewType(position) == TYPE_UPDATE) { title = String.format(Locale.getDefault(), "%s %s", notification.account.display_name, context.getString(R.string.notif_update)); } else if (getItemViewType(position) == TYPE_POLL) { title = context.getString(R.string.notif_poll); } Loading
app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonNotification.java +5 −1 Original line number Diff line number Diff line Loading @@ -230,6 +230,8 @@ public class FragmentMastodonNotification extends Fragment implements Notificati excludeType.remove("reblog"); } else if (notificationType == NotificationTypeEnum.POLLS) { excludeType.remove("poll"); } else if (notificationType == NotificationTypeEnum.UPDATES) { excludeType.remove("update"); } else if (notificationType == NotificationTypeEnum.TOOTS) { excludeType.remove("status"); } else if (notificationType == NotificationTypeEnum.FOLLOWS) { Loading Loading @@ -477,7 +479,7 @@ public class FragmentMastodonNotification extends Fragment implements Notificati if (i != refPosition) { //Loop through notifications, only fav and boost will be aggregated if they are just bellow if (notifications.get(i).type != null && notifications.get(refPosition).type != null && notifications.get(i).type.equals(notifications.get(refPosition).type) && (notifications.get(i).type.equals("favourite") || notifications.get(i).type.equals("reblog")) && (notifications.get(i).type.equals("favourite") || notifications.get(i).type.equals("reblog") || notifications.get(i).type.equals("update")) && notifications.get(i).status != null && notifications.get(refPosition).status != null && notifications.get(i).status.id.equals(notifications.get(refPosition).status.id) ) { if (notificationList.size() > 0) { Loading Loading @@ -676,6 +678,8 @@ public class FragmentMastodonNotification extends Fragment implements Notificati @SerializedName("FAVOURITES") FAVOURITES("FAVOURITES"), @SerializedName("REBLOGS") UPDATES("UPDATES"), @SerializedName("UPDATES") REBLOGS("REBLOGS"), @SerializedName("POLLS") POLLS("POLLS"), Loading
app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentNotificationContainer.java +9 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,7 @@ public class FragmentNotificationContainer extends Fragment { binding.tabLayout.addTab(binding.tabLayout.newTab().setIcon(R.drawable.ic_baseline_poll_24)); binding.tabLayout.addTab(binding.tabLayout.newTab().setIcon(R.drawable.ic_baseline_home_24)); binding.tabLayout.addTab(binding.tabLayout.newTab().setIcon(R.drawable.ic_baseline_person_add_alt_1_24)); binding.tabLayout.addTab(binding.tabLayout.newTab().setIcon(R.drawable.ic_baseline_edit_24)); binding.viewpagerNotificationContainer.setAdapter(new FedilabNotificationPageAdapter(getChildFragmentManager(), true)); } AtomicBoolean changes = new AtomicBoolean(false); Loading @@ -90,6 +91,7 @@ public class FragmentNotificationContainer extends Fragment { ThemeHelper.changeButtonColor(requireActivity(), dialogView.displayPollResults); ThemeHelper.changeButtonColor(requireActivity(), dialogView.displayUpdatesFromPeople); ThemeHelper.changeButtonColor(requireActivity(), dialogView.displayFollows); ThemeHelper.changeButtonColor(requireActivity(), dialogView.displayUpdates); DrawableCompat.setTintList(DrawableCompat.wrap(dialogView.displayAllCategories.getThumbDrawable()), ThemeHelper.getSwitchCompatThumbDrawable(requireActivity())); DrawableCompat.setTintList(DrawableCompat.wrap(dialogView.displayAllCategories.getTrackDrawable()), ThemeHelper.getSwitchCompatTrackDrawable(requireActivity())); Loading Loading @@ -125,6 +127,7 @@ public class FragmentNotificationContainer extends Fragment { dialogView.displayPollResults.setChecked(true); dialogView.displayUpdatesFromPeople.setChecked(true); dialogView.displayFollows.setChecked(true); dialogView.displayUpdates.setChecked(true); String excludedCategories = sharedpreferences.getString(getString(R.string.SET_EXCLUDED_NOTIFICATIONS_TYPE) + BaseMainActivity.currentUserID + BaseMainActivity.currentInstance, null); List<String> excludedCategoriesList = new ArrayList<>(); if (excludedCategories != null) { Loading Loading @@ -155,6 +158,10 @@ public class FragmentNotificationContainer extends Fragment { excludedCategoriesList.add("follow"); dialogView.displayFollows.setChecked(false); break; case "update": excludedCategoriesList.add("update"); dialogView.displayUpdates.setChecked(false); break; } } } Loading @@ -173,6 +180,8 @@ public class FragmentNotificationContainer extends Fragment { notificationType = "status"; } else if (checkedId == R.id.display_follows) { notificationType = "follow"; } else if (checkedId == R.id.display_updates) { notificationType = "update"; } if (isChecked) { excludedCategoriesList.remove(notificationType); Loading
app/src/main/java/app/fedilab/android/ui/pageadapter/FedilabNotificationPageAdapter.java +4 −1 Original line number Diff line number Diff line Loading @@ -83,6 +83,9 @@ public class FedilabNotificationPageAdapter extends FragmentStatePagerAdapter { case 6: bundle.putSerializable(Helper.ARG_NOTIFICATION_TYPE, FragmentMastodonNotification.NotificationTypeEnum.FOLLOWS); break; case 7: bundle.putSerializable(Helper.ARG_NOTIFICATION_TYPE, FragmentMastodonNotification.NotificationTypeEnum.UPDATES); break; } } fragmentMastodonNotification.setArguments(bundle); Loading @@ -91,6 +94,6 @@ public class FedilabNotificationPageAdapter extends FragmentStatePagerAdapter { @Override public int getCount() { return extended ? 7 : 2; return extended ? 8 : 2; } } No newline at end of file
app/src/main/res/layout/popup_notification_settings.xml +7 −0 Original line number Diff line number Diff line Loading @@ -102,6 +102,13 @@ android:text="@string/notif_display_follows" app:icon="@drawable/ic_baseline_person_add_alt_1_24" /> <com.google.android.material.button.MaterialButton android:id="@+id/display_updates" style="@style/Widget.App.Button.IconOnly" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/notif_display_updates" app:icon="@drawable/ic_baseline_edit_24" /> </com.google.android.material.button.MaterialButtonToggleGroup> Loading