Improve notifications

This commit is contained in:
Thomas 2023-01-18 15:42:20 +01:00
parent e50c0fa9fe
commit d3bb4a285b
4 changed files with 18 additions and 0 deletions

View File

@ -210,6 +210,7 @@ public class Helper {
public static final String ARG_EXCLUDED_NOTIFICATION_TYPE = "ARG_EXCLUDED_NOTIFICATION_TYPE";
public static final String ARG_STATUS = "ARG_STATUS";
public static final String ARG_TIMELINE_REFRESH_ALL = "ARG_TIMELINE_REFRESH_ALL";
public static final String ARG_REFRESH_NOTFICATION = "ARG_REFRESH_NOTFICATION";
public static final String ARG_STATUS_DELETED = "ARG_STATUS_DELETED";
public static final String ARG_STATUS_UPDATED = "ARG_STATUS_UPDATED";

View File

@ -17,6 +17,7 @@ package app.fedilab.android.helper;
import static android.text.Html.FROM_HTML_MODE_LEGACY;
import static app.fedilab.android.helper.Helper.notify_user;
import static app.fedilab.android.helper.LogoHelper.getMainLogo;
import static app.fedilab.android.ui.drawer.StatusAdapter.sendAction;
import android.content.Context;
import android.content.Intent;
@ -379,6 +380,7 @@ public class NotificationsHelper {
Helper.NotifType finalNotifType = notifType;
String finalMessage = message;
String finalTitle = title;
sendAction(context, Helper.ARG_REFRESH_NOTFICATION, null, null);
Runnable myRunnable = () -> Glide.with(context)
.asBitmap()
.load(finalNotificationUrl != null ? finalNotificationUrl : R.drawable.fedilab_logo_bubbles)

View File

@ -64,6 +64,17 @@ public class FragmentMastodonNotification extends Fragment implements Notificati
private boolean flagLoading;
private List<Notification> notificationList;
private NotificationAdapter notificationAdapter;
private final BroadcastReceiver receive_refresh = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (notificationType != null && notificationType == NotificationTypeEnum.ALL) {
if (notificationList != null && notificationList.size() > 0) {
route(FragmentMastodonTimeline.DIRECTION.FETCH_NEW, true);
}
}
}
};
private final BroadcastReceiver receive_action = new BroadcastReceiver() {
@Override
@ -192,6 +203,7 @@ public class FragmentMastodonNotification extends Fragment implements Notificati
aggregateNotification = false;
LocalBroadcastManager.getInstance(requireActivity()).registerReceiver(receive_action, new IntentFilter(Helper.RECEIVE_STATUS_ACTION));
LocalBroadcastManager.getInstance(requireActivity()).registerReceiver(receive_refresh, new IntentFilter(Helper.ARG_REFRESH_NOTFICATION));
return root;
}
@ -655,6 +667,7 @@ public class FragmentMastodonNotification extends Fragment implements Notificati
@Override
public void onDestroyView() {
LocalBroadcastManager.getInstance(requireActivity()).unregisterReceiver(receive_action);
LocalBroadcastManager.getInstance(requireActivity()).unregisterReceiver(receive_refresh);
if (isAdded()) {
storeMarker();
}

View File

@ -71,6 +71,7 @@ public class FragmentNotificationContainer extends Fragment {
binding.tabLayout.addTab(binding.tabLayout.newTab().setText(getString(R.string.mention)));
binding.tabLayout.setTabMode(TabLayout.MODE_FIXED);
binding.viewpagerNotificationContainer.setAdapter(new FedilabNotificationPageAdapter(getChildFragmentManager(), false));
binding.viewpagerNotificationContainer.setOffscreenPageLimit(2);
} else {
binding.tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
binding.tabLayout.addTab(binding.tabLayout.newTab().setText(getString(R.string.all)));
@ -84,6 +85,7 @@ public class FragmentNotificationContainer extends Fragment {
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_report_24));
binding.viewpagerNotificationContainer.setAdapter(new FedilabNotificationPageAdapter(getChildFragmentManager(), true));
binding.viewpagerNotificationContainer.setOffscreenPageLimit(10);
}
AtomicBoolean changes = new AtomicBoolean(false);
binding.settings.setOnClickListener(v -> {