kopia lustrzana https://github.com/ryukoposting/Signal-Android
47 wiersze
1.5 KiB
Java
47 wiersze
1.5 KiB
Java
package org.thoughtcrime.securesms.service;
|
|
|
|
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
|
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
|
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
|
|
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
|
import org.thoughtcrime.securesms.util.FeatureFlags;
|
|
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
public class DirectoryRefreshListener extends PersistentAlarmManagerListener {
|
|
|
|
@Override
|
|
protected long getNextScheduledExecutionTime(Context context) {
|
|
return TextSecurePreferences.getDirectoryRefreshTime(context);
|
|
}
|
|
|
|
@Override
|
|
protected long onAlarm(Context context, long scheduledTime) {
|
|
if (scheduledTime != 0 && SignalStore.account().isRegistered()) {
|
|
ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(true));
|
|
}
|
|
|
|
long newTime;
|
|
|
|
if (SignalStore.misc().isCdsBlocked()) {
|
|
newTime = Math.min(System.currentTimeMillis() + TimeUnit.HOURS.toMillis(6),
|
|
SignalStore.misc().getCdsBlockedUtil());
|
|
} else {
|
|
newTime = System.currentTimeMillis() + TimeUnit.SECONDS.toMillis(FeatureFlags.cdsRefreshIntervalSeconds());
|
|
TextSecurePreferences.setDirectoryRefreshTime(context, newTime);
|
|
}
|
|
|
|
TextSecurePreferences.setDirectoryRefreshTime(context, newTime);
|
|
|
|
return newTime;
|
|
}
|
|
|
|
public static void schedule(Context context) {
|
|
new DirectoryRefreshListener().onReceive(context, getScheduleIntent());
|
|
}
|
|
}
|