mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-23 04:28:35 +00:00
Enable scheduled backups regardless of API version.
This commit is contained in:
@@ -2,7 +2,6 @@ package org.thoughtcrime.securesms.jobs;
|
|||||||
|
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.os.Build;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
@@ -22,10 +21,8 @@ import org.thoughtcrime.securesms.crypto.AttachmentSecretProvider;
|
|||||||
import org.thoughtcrime.securesms.database.NoExternalStorageException;
|
import org.thoughtcrime.securesms.database.NoExternalStorageException;
|
||||||
import org.thoughtcrime.securesms.database.SignalDatabase;
|
import org.thoughtcrime.securesms.database.SignalDatabase;
|
||||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobmanager.JsonJobData;
|
|
||||||
import org.thoughtcrime.securesms.jobmanager.Job;
|
import org.thoughtcrime.securesms.jobmanager.Job;
|
||||||
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
||||||
import org.thoughtcrime.securesms.jobmanager.impl.ChargingConstraint;
|
|
||||||
import org.thoughtcrime.securesms.notifications.NotificationChannels;
|
import org.thoughtcrime.securesms.notifications.NotificationChannels;
|
||||||
import org.thoughtcrime.securesms.permissions.Permissions;
|
import org.thoughtcrime.securesms.permissions.Permissions;
|
||||||
import org.thoughtcrime.securesms.service.GenericForegroundService;
|
import org.thoughtcrime.securesms.service.GenericForegroundService;
|
||||||
@@ -59,8 +56,6 @@ public final class LocalBackupJob extends BaseJob {
|
|||||||
.setMaxAttempts(3);
|
.setMaxAttempts(3);
|
||||||
if (force) {
|
if (force) {
|
||||||
jobManager.cancelAllInQueue(QUEUE);
|
jobManager.cancelAllInQueue(QUEUE);
|
||||||
} else if (Build.VERSION.SDK_INT < 31) {
|
|
||||||
parameters.addConstraint(ChargingConstraint.KEY);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BackupUtil.isUserSelectionRequired(ApplicationDependencies.getApplication())) {
|
if (BackupUtil.isUserSelectionRequired(ApplicationDependencies.getApplication())) {
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package org.thoughtcrime.securesms.service;
|
|||||||
|
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Build;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
@@ -12,15 +11,12 @@ import org.thoughtcrime.securesms.util.JavaTimeExtensionsKt;
|
|||||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
public class LocalBackupListener extends PersistentAlarmManagerListener {
|
public class LocalBackupListener extends PersistentAlarmManagerListener {
|
||||||
|
|
||||||
private static final long INTERVAL = TimeUnit.DAYS.toMillis(1);
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean shouldScheduleExact() {
|
protected boolean shouldScheduleExact() {
|
||||||
return Build.VERSION.SDK_INT >= 31;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -44,22 +40,16 @@ public class LocalBackupListener extends PersistentAlarmManagerListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static long setNextBackupTimeToIntervalFromNow(@NonNull Context context) {
|
public static long setNextBackupTimeToIntervalFromNow(@NonNull Context context) {
|
||||||
long nextTime;
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
int hour = SignalStore.settings().getBackupHour();
|
||||||
if (Build.VERSION.SDK_INT < 31) {
|
int minute = SignalStore.settings().getBackupMinute();
|
||||||
nextTime = System.currentTimeMillis() + INTERVAL;
|
LocalDateTime next = now.withHour(hour).withMinute(minute).withSecond(0);
|
||||||
} else {
|
if (now.isAfter(next)) {
|
||||||
LocalDateTime now = LocalDateTime.now();
|
next = next.plusDays(1);
|
||||||
int hour = SignalStore.settings().getBackupHour();
|
|
||||||
int minute = SignalStore.settings().getBackupMinute();
|
|
||||||
LocalDateTime next = now.withHour(hour).withMinute(minute).withSecond(0);
|
|
||||||
if (now.isAfter(next)) {
|
|
||||||
next = next.plusDays(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
nextTime = JavaTimeExtensionsKt.toMillis(next);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
long nextTime = JavaTimeExtensionsKt.toMillis(next);
|
||||||
|
|
||||||
TextSecurePreferences.setNextBackupTime(context, nextTime);
|
TextSecurePreferences.setNextBackupTime(context, nextTime);
|
||||||
|
|
||||||
return nextTime;
|
return nextTime;
|
||||||
|
|||||||
Reference in New Issue
Block a user