Proper way to schedule

Signed-off-by: Mario Danic <mario@lovelyhq.com>
This commit is contained in:
Mario Danic 2017-07-30 08:29:35 +02:00 committed by AndyScherzinger
parent a5a6476e00
commit 9b4b90cc8d
No known key found for this signature in database
GPG key ID: 6CADC7E3523C308B
2 changed files with 17 additions and 9 deletions

View file

@ -457,6 +457,7 @@ public class SyncedFoldersActivity extends FileActivity implements SyncedFolderA
if (syncedFolderDisplayItem.getId() > UNPERSISTED_ID) {
mSyncedFolderProvider.updateSyncedFolderEnabled(syncedFolderDisplayItem.getId(),
syncedFolderDisplayItem.isEnabled());
FilesSyncHelper.scheduleM1Jobs();
} else {
long storedId = mSyncedFolderProvider.storeSyncedFolder(syncedFolderDisplayItem);
if (storedId != -1) {
@ -533,6 +534,7 @@ public class SyncedFoldersActivity extends FileActivity implements SyncedFolderA
} else {
// existing synced folder setup to be updated
mSyncedFolderProvider.updateSyncFolder(item);
FilesSyncHelper.scheduleM1Jobs();
}
mAdapter.setSyncFolderItem(syncedFolder.getSection(), item);
@ -607,6 +609,7 @@ public class SyncedFoldersActivity extends FileActivity implements SyncedFolderA
@Subscribe(threadMode = ThreadMode.BACKGROUND)
public void onMessageEvent(InitiateSyncedFolder event) {
FilesSyncHelper.insertAllDBEntriesForSyncedFolder(event.getSyncedFolder());
FilesSyncHelper.scheduleM1Jobs();
}
public void onAddCustomFolderClick(View view) {

View file

@ -244,7 +244,7 @@ public class FilesSyncHelper {
return false;
}
public static void scheduleFilesSyncIfNeeded() {
public static void scheduleM1Jobs() {
SyncedFolderProvider syncedFolderProvider = new SyncedFolderProvider(MainApp.getAppContext().
getContentResolver());
@ -265,12 +265,6 @@ public class FilesSyncHelper {
}
}
new JobRequest.Builder(FilesSyncJob.TAG)
.setPeriodic(900000L, 300000L)
.setUpdateCurrent(true)
.build()
.schedule();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
if (hasImageFolders || hasVideoFolders) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
@ -278,14 +272,25 @@ public class FilesSyncHelper {
}
} else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
cancelJobsOnM1();
cancelJobOnM1();
}
}
}
}
public static void scheduleFilesSyncIfNeeded() {
// always run this because it also allows us to perform retries of manual uploads
new JobRequest.Builder(FilesSyncJob.TAG)
.setPeriodic(900000L, 300000L)
.setUpdateCurrent(true)
.build()
.schedule();
scheduleM1Jobs();
}
@RequiresApi(api = Build.VERSION_CODES.N)
private static void cancelJobsOnM1() {
private static void cancelJobOnM1() {
JobScheduler jobScheduler = MainApp.getAppContext().getSystemService(JobScheduler.class);
if (isContentObserverJobScheduled()) {
jobScheduler.cancel(ContentSyncJobId);