poll notifications 2/3

fix notifications not showing for polls
This commit is contained in:
Kasun 2019-05-04 16:37:09 +05:30
parent 3b96fb9bb7
commit d55b7aac1b
5 changed files with 39 additions and 3 deletions

View File

@ -1079,6 +1079,7 @@ public abstract class BaseMainActivity extends BaseActivity
editor.putBoolean(Helper.SET_NOTIF_ASK, set_push_notification.isChecked());
editor.putBoolean(Helper.SET_NOTIF_MENTION, set_push_notification.isChecked());
editor.putBoolean(Helper.SET_NOTIF_SHARE, set_push_notification.isChecked());
editor.putBoolean(Helper.SET_NOTIF_POLL, set_push_notification.isChecked());
// editor.putBoolean(Helper.SET_NOTIF_HOMETIMELINE, set_push_hometimeline.isChecked());
editor.putBoolean(Helper.SET_POPUP_PUSH, true);
editor.apply();

View File

@ -458,6 +458,7 @@ public class Helper {
MENTION,
BOOST,
FAV,
POLL,
BACKUP,
STORE,
TOOT
@ -1012,6 +1013,10 @@ public class Helper {
channelId = "channel_mention";
channelTitle = context.getString(R.string.channel_notif_mention);
break;
case POLL:
channelId = "channel_poll";
channelTitle = context.getString(R.string.channel_notif_poll);
break;
case BACKUP:
channelId = "channel_backup";
channelTitle = context.getString(R.string.channel_notif_backup);

View File

@ -118,8 +118,9 @@ public class NotificationsSyncJob extends Job {
boolean notif_add = sharedpreferences.getBoolean(Helper.SET_NOTIF_ADD, true);
boolean notif_mention = sharedpreferences.getBoolean(Helper.SET_NOTIF_MENTION, true);
boolean notif_share = sharedpreferences.getBoolean(Helper.SET_NOTIF_SHARE, true);
boolean notif_poll = sharedpreferences.getBoolean(Helper.SET_NOTIF_POLL, true);
//User disagree with all notifications
if( !notif_follow && !notif_add && !notif_mention && !notif_share)
if( !notif_follow && !notif_add && !notif_mention && !notif_share && !notif_poll)
return; //Nothing is done
//No account connected, the service is stopped
if(!Helper.isLoggedIn(getContext()))
@ -151,6 +152,7 @@ public class NotificationsSyncJob extends Job {
boolean notif_add = sharedpreferences.getBoolean(Helper.SET_NOTIF_ADD, true);
boolean notif_mention = sharedpreferences.getBoolean(Helper.SET_NOTIF_MENTION, true);
boolean notif_share = sharedpreferences.getBoolean(Helper.SET_NOTIF_SHARE, true);
boolean notif_poll = sharedpreferences.getBoolean(Helper.SET_NOTIF_POLL, true);
final String max_id = sharedpreferences.getString(Helper.LAST_NOTIFICATION_MAX_ID + account.getId() + account.getInstance(), null);
final List<Notification> notifications = new ArrayList<>();
int pos = 0;
@ -167,6 +169,7 @@ public class NotificationsSyncJob extends Job {
int newAdds = 0;
int newMentions = 0;
int newShare = 0;
int newPolls = 0;
String notificationUrl = null;
String title = null;
final String message;
@ -229,11 +232,25 @@ public class NotificationsSyncJob extends Job {
}
}
break;
case "poll":
notifType = Helper.NotifType.POLL;
if(notif_poll){
newPolls++;
if( notificationUrl == null){
notificationUrl = notification.getAccount().getAvatar();
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
if (notification.getAccount().getId() != null && notification.getAccount().getId().equals(userId))
title = getContext().getString(R.string.notif_poll_self);
else
title = getContext().getString(R.string.notif_poll);
}
}
break;
default:
}
}
int allNotifCount = newFollows + newAdds + newMentions + newShare;
int allNotifCount = newFollows + newAdds + newMentions + newShare + newPolls;
if( allNotifCount > 0){
//Some others notification
int other = allNotifCount -1;

View File

@ -327,7 +327,8 @@ public class LiveNotificationService extends Service implements NetworkStateRece
boolean notif_add = sharedpreferences.getBoolean(Helper.SET_NOTIF_ADD, true);
boolean notif_mention = sharedpreferences.getBoolean(Helper.SET_NOTIF_MENTION, true);
boolean notif_share = sharedpreferences.getBoolean(Helper.SET_NOTIF_SHARE, true);
boolean somethingToPush = (notif_follow || notif_add || notif_mention || notif_share);
boolean notif_poll = sharedpreferences.getBoolean(Helper.SET_NOTIF_POLL, true);
boolean somethingToPush = (notif_follow || notif_add || notif_mention || notif_share || notif_poll);
String title = null;
if (somethingToPush && notification != null) {
switch (notification.getType()) {
@ -376,6 +377,17 @@ public class LiveNotificationService extends Service implements NetworkStateRece
canSendBroadCast = false;
}
break;
case "poll":
notifType = Helper.NotifType.POLL;
if (notif_poll) {
if (notification.getAccount().getId() != null && notification.getAccount().getId().equals(userId))
title = getString(R.string.notif_poll_self);
else
title = getString(R.string.notif_poll);
} else {
canSendBroadCast = false;
}
break;
default:
}
//Some others notification

View File

@ -918,6 +918,7 @@
<string name="vote">Vote</string>
<string name="poll_not_private">A poll cannot be attached to a direct message!</string>
<string name="notif_poll">A poll you have voted in has ended</string>
<string name="notif_poll_self">A poll you tooted has ended</string>
<string name="settings_category_notif_customize">Customize</string>
<string name="settings_category_notif_categories">Categories</string>
<string name="settings_category_notif_news">News</string>