diff --git a/android/src/com/mapswithme/maps/scheduling/ConnectivityJobScheduler.java b/android/src/com/mapswithme/maps/scheduling/ConnectivityJobScheduler.java index 46fd4cb220..0958f0e49c 100644 --- a/android/src/com/mapswithme/maps/scheduling/ConnectivityJobScheduler.java +++ b/android/src/com/mapswithme/maps/scheduling/ConnectivityJobScheduler.java @@ -46,7 +46,7 @@ public class ConnectivityJobScheduler implements ConnectivityListener } @NonNull - private NativeConnectivityListener createNativeJobScheduler(@NonNull MwmApplication context) + private ConnectivityListener createNativeJobScheduler(@NonNull MwmApplication context) { return new NativeConnectivityListener(context); } @@ -57,6 +57,7 @@ public class ConnectivityJobScheduler implements ConnectivityListener mMasterConnectivityListener.listen(); } + @NonNull public static ConnectivityJobScheduler from(@NonNull Context context) { MwmApplication application = (MwmApplication) context.getApplicationContext(); diff --git a/android/src/com/mapswithme/maps/scheduling/FirebaseJobService.java b/android/src/com/mapswithme/maps/scheduling/FirebaseJobService.java index fa4321c96b..e32e1bc3a5 100644 --- a/android/src/com/mapswithme/maps/scheduling/FirebaseJobService.java +++ b/android/src/com/mapswithme/maps/scheduling/FirebaseJobService.java @@ -1,5 +1,7 @@ package com.mapswithme.maps.scheduling; +import android.support.annotation.NonNull; + import com.firebase.jobdispatcher.JobParameters; import com.firebase.jobdispatcher.JobService; import com.mapswithme.util.log.Logger; @@ -9,19 +11,27 @@ public class FirebaseJobService extends JobService { private static final Logger LOGGER = LoggerFactory.INSTANCE.getLogger(LoggerFactory.Type.MISC); private static final String TAG = NativeJobService.class.getSimpleName(); + @SuppressWarnings("NullableProblems") + @NonNull + private JobServiceDelegate mDelegate; + + @Override + public void onCreate() + { + super.onCreate(); + mDelegate = new JobServiceDelegate(getApplication()); + } @Override public boolean onStartJob(JobParameters job) { LOGGER.d(TAG, "onStartJob FirebaseJobService"); - JobServiceDelegate delegate = new JobServiceDelegate(getApplication()); - delegate.onStartJob(); - return true; + return mDelegate.onStartJob(); } @Override public boolean onStopJob(JobParameters job) { - return false; + return mDelegate.onStopJob(); } } diff --git a/android/src/com/mapswithme/maps/scheduling/JobServiceDelegate.java b/android/src/com/mapswithme/maps/scheduling/JobServiceDelegate.java index c258d962e4..dc1041075a 100644 --- a/android/src/com/mapswithme/maps/scheduling/JobServiceDelegate.java +++ b/android/src/com/mapswithme/maps/scheduling/JobServiceDelegate.java @@ -16,18 +16,23 @@ class JobServiceDelegate mApp = app; } - public void onStartJob() + public boolean onStartJob() { ConnectionState.Type type = ConnectionState.requestCurrentType(); if (type == ConnectionState.Type.WIFI) NotificationService.startOnConnectivityChanged(mApp); retryJob(); + return true; } - private void retryJob() { ConnectivityJobScheduler.from(mApp).listen(); } + + public boolean onStopJob() + { + return false; + } } diff --git a/android/src/com/mapswithme/maps/scheduling/NativeJobService.java b/android/src/com/mapswithme/maps/scheduling/NativeJobService.java index 32bb01b17d..cf7bee36e6 100644 --- a/android/src/com/mapswithme/maps/scheduling/NativeJobService.java +++ b/android/src/com/mapswithme/maps/scheduling/NativeJobService.java @@ -4,6 +4,7 @@ import android.annotation.TargetApi; import android.app.job.JobParameters; import android.app.job.JobService; import android.os.Build; +import android.support.annotation.NonNull; import com.mapswithme.util.log.Logger; import com.mapswithme.util.log.LoggerFactory; @@ -14,18 +15,27 @@ public class NativeJobService extends JobService private static final Logger LOGGER = LoggerFactory.INSTANCE.getLogger(LoggerFactory.Type.MISC); private static final String TAG = NativeJobService.class.getSimpleName(); + @SuppressWarnings("NullableProblems") + @NonNull + private JobServiceDelegate mDelegate; + + @Override + public void onCreate() + { + super.onCreate(); + mDelegate = new JobServiceDelegate(getApplication()); + } + @Override public boolean onStartJob(JobParameters params) { LOGGER.d(TAG, "onStartJob"); - JobServiceDelegate delegate = new JobServiceDelegate(getApplication()); - delegate.onStartJob(); - return true; + return mDelegate.onStartJob(); } @Override public boolean onStopJob(JobParameters params) { - return false; + return mDelegate.onStopJob(); } } diff --git a/android/src/com/mapswithme/util/ConnectionState.java b/android/src/com/mapswithme/util/ConnectionState.java index fb0b056a9c..51efeac7fd 100644 --- a/android/src/com/mapswithme/util/ConnectionState.java +++ b/android/src/com/mapswithme/util/ConnectionState.java @@ -118,7 +118,7 @@ public class ConnectionState return info != null && info.isRoaming(); } - /*jni call*/ + // Called from JNI. @SuppressWarnings("unused") public static byte getConnectionState() {