Fix issue #285 - Allow to set the fetch time for delayed.
This commit is contained in:
parent
784041f693
commit
249b36f987
|
@ -84,19 +84,7 @@ public class PushHelper {
|
||||||
WorkManager.getInstance(context).cancelAllWorkByTag(Helper.WORKER_REFRESH_NOTIFICATION);
|
WorkManager.getInstance(context).cancelAllWorkByTag(Helper.WORKER_REFRESH_NOTIFICATION);
|
||||||
break;
|
break;
|
||||||
case "REPEAT_NOTIFICATIONS":
|
case "REPEAT_NOTIFICATIONS":
|
||||||
new Thread(() -> {
|
setRepeat(context);
|
||||||
List<BaseAccount> accounts = new Account(context).getPushNotificationAccounts();
|
|
||||||
if (accounts != null) {
|
|
||||||
for (BaseAccount account : accounts) {
|
|
||||||
((Activity) context).runOnUiThread(() -> {
|
|
||||||
UnifiedPush.unregisterApp(context, account.user_id + "@" + account.instance);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}).start();
|
|
||||||
new PeriodicWorkRequest.Builder(NotificationsWorker.class, 20, TimeUnit.MINUTES)
|
|
||||||
.addTag(Helper.WORKER_REFRESH_NOTIFICATION)
|
|
||||||
.build();
|
|
||||||
break;
|
break;
|
||||||
case "NO_NOTIFICATIONS":
|
case "NO_NOTIFICATIONS":
|
||||||
WorkManager.getInstance(context).cancelAllWorkByTag(Helper.WORKER_REFRESH_NOTIFICATION);
|
WorkManager.getInstance(context).cancelAllWorkByTag(Helper.WORKER_REFRESH_NOTIFICATION);
|
||||||
|
@ -112,6 +100,25 @@ public class PushHelper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setRepeat(Context context) {
|
||||||
|
WorkManager.getInstance(context).cancelAllWorkByTag(Helper.WORKER_REFRESH_NOTIFICATION);
|
||||||
|
new Thread(() -> {
|
||||||
|
List<BaseAccount> accounts = new Account(context).getPushNotificationAccounts();
|
||||||
|
if (accounts != null) {
|
||||||
|
for (BaseAccount account : accounts) {
|
||||||
|
((Activity) context).runOnUiThread(() -> {
|
||||||
|
UnifiedPush.unregisterApp(context, account.user_id + "@" + account.instance);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).start();
|
||||||
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||||
|
String value = prefs.getString(context.getString(R.string.SET_NOTIFICATION_DELAY_VALUE), "15");
|
||||||
|
new PeriodicWorkRequest.Builder(NotificationsWorker.class, Long.parseLong(value), TimeUnit.MINUTES)
|
||||||
|
.addTag(Helper.WORKER_REFRESH_NOTIFICATION)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private static void registerAppWithDialog(Context context, List<BaseAccount> accounts) {
|
private static void registerAppWithDialog(Context context, List<BaseAccount> accounts) {
|
||||||
if (accounts == null) {
|
if (accounts == null) {
|
||||||
|
|
|
@ -92,7 +92,21 @@ public class FragmentNotificationsSettings extends PreferenceFragmentCompat impl
|
||||||
if (notification_time_slot != null) {
|
if (notification_time_slot != null) {
|
||||||
preferenceScreen.removePreference(notification_time_slot);
|
preferenceScreen.removePreference(notification_time_slot);
|
||||||
}
|
}
|
||||||
|
ListPreference SET_NOTIFICATION_DELAY_VALUE = findPreference("SET_NOTIFICATION_DELAY_VALUE");
|
||||||
|
if (SET_NOTIFICATION_DELAY_VALUE != null) {
|
||||||
|
preferenceScreen.removePreferenceRecursively("SET_NOTIFICATION_DELAY_VALUE");
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
|
} else if (SET_NOTIFICATION_TYPE != null && SET_NOTIFICATION_TYPE.getValue().equals(notificationValues[1])) {
|
||||||
|
ListPreference SET_NOTIFICATION_DELAY_VALUE = findPreference(getString(R.string.SET_NOTIFICATION_DELAY_VALUE));
|
||||||
|
if (SET_NOTIFICATION_DELAY_VALUE != null) {
|
||||||
|
SET_NOTIFICATION_DELAY_VALUE.getContext().setTheme(Helper.dialogStyle());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ListPreference SET_NOTIFICATION_DELAY_VALUE = findPreference("SET_NOTIFICATION_DELAY_VALUE");
|
||||||
|
if (SET_NOTIFICATION_DELAY_VALUE != null) {
|
||||||
|
preferenceScreen.removePreferenceRecursively("SET_NOTIFICATION_DELAY_VALUE");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Preference button_mention = findPreference("button_mention");
|
Preference button_mention = findPreference("button_mention");
|
||||||
|
@ -178,6 +192,10 @@ public class FragmentNotificationsSettings extends PreferenceFragmentCompat impl
|
||||||
createPref();
|
createPref();
|
||||||
PushHelper.startStreaming(requireActivity());
|
PushHelper.startStreaming(requireActivity());
|
||||||
}
|
}
|
||||||
|
if (key.compareToIgnoreCase(getString(R.string.SET_NOTIFICATION_DELAY_VALUE)) == 0) {
|
||||||
|
createPref();
|
||||||
|
PushHelper.setRepeat(requireActivity());
|
||||||
|
}
|
||||||
if (key.compareToIgnoreCase(getString(R.string.SET_LED_COLOUR_VAL)) == 0) {
|
if (key.compareToIgnoreCase(getString(R.string.SET_LED_COLOUR_VAL)) == 0) {
|
||||||
try {
|
try {
|
||||||
int value = Integer.parseInt(key);
|
int value = Integer.parseInt(key);
|
||||||
|
|
|
@ -738,12 +738,20 @@
|
||||||
<string name="no_account_in_list">No accounts found for this list!</string>
|
<string name="no_account_in_list">No accounts found for this list!</string>
|
||||||
<string name="scheduled">Scheduled</string>
|
<string name="scheduled">Scheduled</string>
|
||||||
|
|
||||||
<string-array name="set_notification_type_value" >
|
<string-array name="set_notification_type_value">
|
||||||
<item>Push notifications</item>
|
<item>Push notifications</item>
|
||||||
<item>Fetch at fixed times</item>
|
<item>Fetch at fixed times</item>
|
||||||
<item>No notifications</item>
|
<item>No notifications</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
|
<string-array name="set_notification_delay_values">
|
||||||
|
<item>15 minutes</item>
|
||||||
|
<item>30 minutes</item>
|
||||||
|
<item>1 hour</item>
|
||||||
|
<item>2 hours</item>
|
||||||
|
<item>6 hours</item>
|
||||||
|
<item>12 hours</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
<string name="SET_COOKIES" translatable="false">SET_COOKIES</string>
|
<string name="SET_COOKIES" translatable="false">SET_COOKIES</string>
|
||||||
<string name="SET_PROXY_ENABLED" translatable="false">SET_PROXY_ENABLED</string>
|
<string name="SET_PROXY_ENABLED" translatable="false">SET_PROXY_ENABLED</string>
|
||||||
|
@ -758,11 +766,21 @@
|
||||||
<string name="SET_CUSTOM_USER_AGENT" translatable="false">SET_CUSTOM_USER_AGENT</string>
|
<string name="SET_CUSTOM_USER_AGENT" translatable="false">SET_CUSTOM_USER_AGENT</string>
|
||||||
<string name="SET_NSFW_TIMEOUT" translatable="false">SET_NSFW_TIMEOUT</string>
|
<string name="SET_NSFW_TIMEOUT" translatable="false">SET_NSFW_TIMEOUT</string>
|
||||||
<string name="SET_NOTIFICATION_TYPE" translatable="false">SET_NOTIFICATION_TYPE</string>
|
<string name="SET_NOTIFICATION_TYPE" translatable="false">SET_NOTIFICATION_TYPE</string>
|
||||||
|
<string name="SET_NOTIFICATION_DELAY_VALUE" translatable="false">SET_NOTIFICATION_DELAY_VALUE</string>
|
||||||
|
|
||||||
<string-array name="SET_NOTIFICATION_TYPE_VALUE" translatable="false">
|
<string-array name="SET_NOTIFICATION_TYPE_VALUE" translatable="false">
|
||||||
<item>PUSH_NOTIFICATIONS</item>
|
<item>PUSH_NOTIFICATIONS</item>
|
||||||
<item>REPEAT_NOTIFICATIONS</item>
|
<item>REPEAT_NOTIFICATIONS</item>
|
||||||
<item>NO_NOTIFICATIONS</item>
|
<item>NO_NOTIFICATIONS</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
<string-array name="SET_NOTIFICATION_DELAYS_VALUES" translatable="false">
|
||||||
|
<item>15</item>
|
||||||
|
<item>30</item>
|
||||||
|
<item>60</item>
|
||||||
|
<item>120</item>
|
||||||
|
<item>360</item>
|
||||||
|
<item>720</item>
|
||||||
|
</string-array>
|
||||||
<string name="SET_PICTURE_COMPRESSED" translatable="false">SET_PICTURE_COMPRESSED</string>
|
<string name="SET_PICTURE_COMPRESSED" translatable="false">SET_PICTURE_COMPRESSED</string>
|
||||||
<string name="SET_VIDEO_COMPRESSED" translatable="false">SET_VIDEO_COMPRESSED</string>
|
<string name="SET_VIDEO_COMPRESSED" translatable="false">SET_VIDEO_COMPRESSED</string>
|
||||||
<string name="SET_FORWARD_TAGS_IN_REPLY" translatable="false">SET_FORWARD_TAGS_IN_REPLY</string>
|
<string name="SET_FORWARD_TAGS_IN_REPLY" translatable="false">SET_FORWARD_TAGS_IN_REPLY</string>
|
||||||
|
@ -994,6 +1012,9 @@
|
||||||
<string name="toast_token">The app failed to get a token</string>
|
<string name="toast_token">The app failed to get a token</string>
|
||||||
<string name="media_cannot_be_uploaded">Media cannot be uploaded!</string>
|
<string name="media_cannot_be_uploaded">Media cannot be uploaded!</string>
|
||||||
<string name="open_draft">Open draft</string>
|
<string name="open_draft">Open draft</string>
|
||||||
|
<string name="set_push_notifications_delay">Set the delay between each new fetch</string>
|
||||||
|
<string name="refresh_every">Fetch notifications every:</string>
|
||||||
|
<string name="type_of_notifications_delay_title">Notifications fetch time</string>
|
||||||
|
|
||||||
<string-array name="photo_editor_emoji" translatable="false">
|
<string-array name="photo_editor_emoji" translatable="false">
|
||||||
<!-- Smiles -->
|
<!-- Smiles -->
|
||||||
|
|
|
@ -15,6 +15,17 @@
|
||||||
app:dialogTitle="@string/type_of_notifications"
|
app:dialogTitle="@string/type_of_notifications"
|
||||||
app:iconSpaceReserved="false"
|
app:iconSpaceReserved="false"
|
||||||
app:useSimpleSummaryProvider="true" />
|
app:useSimpleSummaryProvider="true" />
|
||||||
|
|
||||||
|
<ListPreference
|
||||||
|
app:defaultValue="15"
|
||||||
|
app:dialogTitle="@string/refresh_every"
|
||||||
|
app:entries="@array/set_notification_delay_values"
|
||||||
|
app:entryValues="@array/SET_NOTIFICATION_DELAYS_VALUES"
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
|
app:key="@string/SET_NOTIFICATION_DELAY_VALUE"
|
||||||
|
app:summary="@string/set_push_notifications_delay"
|
||||||
|
app:title="@string/type_of_notifications_delay_title"
|
||||||
|
app:useSimpleSummaryProvider="true" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue