mirror of
https://github.com/playmusicexporter/playmusicexporter
synced 2024-05-14 12:46:42 +00:00
61 lines
2.3 KiB
Java
61 lines
2.3 KiB
Java
package re.jcg.playmusicexporter.services;
|
|
|
|
import android.app.job.JobInfo;
|
|
import android.app.job.JobParameters;
|
|
import android.app.job.JobScheduler;
|
|
import android.app.job.JobService;
|
|
import android.content.ComponentName;
|
|
import android.content.Context;
|
|
import android.util.Log;
|
|
|
|
import re.jcg.playmusicexporter.settings.PlayMusicExporterPreferences;
|
|
|
|
public class ExportAllJob extends JobService {
|
|
public static final String TAG = "AutoGPME_ExportJob";
|
|
public static final int AUTO_EXPORT_JOB_ID = 0;
|
|
|
|
|
|
/**
|
|
* Schedules an export with the current settings
|
|
*
|
|
* @param pContext
|
|
*/
|
|
public static void scheduleExport(final Context pContext) {
|
|
PlayMusicExporterPreferences.init(pContext);
|
|
JobScheduler lJobScheduler = (JobScheduler) pContext.getSystemService(JOB_SCHEDULER_SERVICE);
|
|
if (PlayMusicExporterPreferences.getAutoExportEnabled()) {
|
|
long lInterval = PlayMusicExporterPreferences.getAutoExportFrequency();
|
|
boolean lRequireUnmeteredNetwork = PlayMusicExporterPreferences.getAutoExportRequireUnmetered();
|
|
boolean lRequireCharging = PlayMusicExporterPreferences.getAutoExportRequireCharging();
|
|
ComponentName lComponentName = new ComponentName(pContext, ExportAllJob.class);
|
|
JobInfo.Builder lBuilder = new JobInfo.Builder(AUTO_EXPORT_JOB_ID, lComponentName);
|
|
lBuilder.setPeriodic(lInterval);
|
|
lBuilder.setPersisted(true);
|
|
if (lRequireUnmeteredNetwork)
|
|
lBuilder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED);
|
|
lBuilder.setRequiresCharging(lRequireCharging);
|
|
lJobScheduler.schedule(lBuilder.build());
|
|
} else {
|
|
lJobScheduler.cancel(AUTO_EXPORT_JOB_ID);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public boolean onStartJob(JobParameters params) {
|
|
PlayMusicExporterPreferences.init(this.getApplicationContext());
|
|
Log.i(TAG, "Started Job: " + params.toString());
|
|
if (PlayMusicExporterPreferences.getAutoExportEnabled()) {
|
|
ExportAllService.startExport(this);
|
|
} else {
|
|
scheduleExport(getApplicationContext());
|
|
}
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean onStopJob(JobParameters params) {
|
|
Log.i(TAG, "Stopped Job: " + params.toString());
|
|
return true;
|
|
}
|
|
}
|