Possibly fixing #29 for good, but the mastodon servers of the accounts I own are slow, so there is basically no way to test it

This commit is contained in:
LucasGGamerM 2023-01-10 21:45:35 -03:00
parent 4fcc07fcd6
commit a48dc18df5
2 changed files with 9 additions and 3 deletions

View File

@ -57,7 +57,7 @@ public class MainActivity extends FragmentStackActivity{
fragment.setArguments(args); fragment.setArguments(args);
showFragmentClearingBackStack(fragment); showFragmentClearingBackStack(fragment);
if(intent.getBooleanExtra("fromNotification", false) && intent.hasExtra("notification")){ if(intent.getBooleanExtra("fromNotification", false) && intent.hasExtra("notification")){
Notification notification=Parcels.unwrap(intent.getParcelableExtra("notification")); Notification notification=Parcels.unwrap(intent.getParcelableExtra("notification"+intent.getParcelableExtra("notificationID")));
showFragmentForNotification(notification, session.getID()); showFragmentForNotification(notification, session.getID());
}else if(intent.getBooleanExtra("compose", false)){ }else if(intent.getBooleanExtra("compose", false)){
showCompose(); showCompose();

View File

@ -38,6 +38,8 @@ public class PushNotificationReceiver extends BroadcastReceiver{
public static final int NOTIFICATION_ID=178; public static final int NOTIFICATION_ID=178;
private static int notificationID;
@Override @Override
public void onReceive(Context context, Intent intent){ public void onReceive(Context context, Intent intent){
if(BuildConfig.DEBUG){ if(BuildConfig.DEBUG){
@ -125,12 +127,16 @@ public class PushNotificationReceiver extends BroadcastReceiver{
.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE); .setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE);
} }
Drawable avatar=ImageCache.getInstance(context).get(new UrlImageLoaderRequest(pn.icon, V.dp(50), V.dp(50))); Drawable avatar=ImageCache.getInstance(context).get(new UrlImageLoaderRequest(pn.icon, V.dp(50), V.dp(50)));
notificationID = GlobalUserPreferences.keepOnlyLatestNotification ? NOTIFICATION_ID : (int)System.currentTimeMillis();
Intent contentIntent=new Intent(context, MainActivity.class); Intent contentIntent=new Intent(context, MainActivity.class);
contentIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); contentIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
contentIntent.putExtra("fromNotification", true); contentIntent.putExtra("fromNotification", true);
contentIntent.putExtra("accountID", accountID); contentIntent.putExtra("accountID", accountID);
contentIntent.putExtra("notificationID", notificationID);
if(notification!=null){ if(notification!=null){
contentIntent.putExtra("notification", Parcels.wrap(notification)); contentIntent.putExtra("notification" + notificationID, Parcels.wrap(notification));
} }
builder.setContentTitle(pn.title) builder.setContentTitle(pn.title)
.setContentText(pn.body) .setContentText(pn.body)
@ -160,6 +166,6 @@ public class PushNotificationReceiver extends BroadcastReceiver{
if(AccountSessionManager.getInstance().getLoggedInAccounts().size()>1){ if(AccountSessionManager.getInstance().getLoggedInAccounts().size()>1){
builder.setSubText(accountName); builder.setSubText(accountName);
} }
nm.notify(accountID, GlobalUserPreferences.keepOnlyLatestNotification ? NOTIFICATION_ID : (int)System.currentTimeMillis(), builder.build()); nm.notify(accountID, notificationID, builder.build());
} }
} }