diff --git a/android/build.gradle b/android/build.gradle index a374c52d81..521f381be2 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -73,10 +73,8 @@ dependencies { implementation('uk.co.samuelwall:material-tap-target-prompt:3.1.0', { exclude group: 'androidx.lifecycle', module: 'lifecycle-extensions' }) - implementation 'com.firebase:firebase-jobdispatcher:0.8.5' implementation 'com.google.android:flexbox:1.0.0' implementation 'com.trafi:anchor-bottom-sheet-behavior:0.13-alpha' - implementation 'com.google.firebase:firebase-messaging:17.0.0' implementation 'com.github.yoksnod:MPAndroidChart:3.2.0-alpha' implementation 'com.google.android.material:material:1.3.0-alpha03' implementation 'androidx.appcompat:appcompat:1.2.0' diff --git a/android/src/com/mapswithme/maps/scheduling/ConnectivityJobScheduler.java b/android/src/com/mapswithme/maps/scheduling/ConnectivityJobScheduler.java index 0384141988..e77d2bd266 100644 --- a/android/src/com/mapswithme/maps/scheduling/ConnectivityJobScheduler.java +++ b/android/src/com/mapswithme/maps/scheduling/ConnectivityJobScheduler.java @@ -1,24 +1,12 @@ package com.mapswithme.maps.scheduling; -import android.annotation.TargetApi; import android.app.job.JobInfo; import android.app.job.JobScheduler; import android.content.ComponentName; import android.content.Context; -import android.os.Build; import androidx.annotation.NonNull; -import com.firebase.jobdispatcher.Constraint; -import com.firebase.jobdispatcher.FirebaseJobDispatcher; -import com.firebase.jobdispatcher.GooglePlayDriver; -import com.firebase.jobdispatcher.Job; -import com.firebase.jobdispatcher.Lifetime; -import com.firebase.jobdispatcher.Trigger; -import com.google.android.gms.common.ConnectionResult; -import com.google.android.gms.common.GoogleApiAvailability; import com.mapswithme.maps.MwmApplication; -import com.mapswithme.util.CrashlyticsUtils; -import com.mapswithme.util.Utils; import java.util.Objects; import java.util.concurrent.TimeUnit; @@ -32,17 +20,7 @@ public class ConnectivityJobScheduler implements ConnectivityListener public ConnectivityJobScheduler(@NonNull MwmApplication context) { - mMasterConnectivityListener = Utils.isLollipopOrLater() - ? createNativeJobScheduler(context) - : createCompatJobScheduler(context); - } - - @NonNull - private ConnectivityListener createCompatJobScheduler(@NonNull MwmApplication context) - { - int status = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context); - boolean isAvailable = status == ConnectionResult.SUCCESS; - return isAvailable ? new ConnectivityListenerCompat(context) : new ConnectivityListenerStub(); + mMasterConnectivityListener = createNativeJobScheduler(context); } @NonNull @@ -64,7 +42,6 @@ public class ConnectivityJobScheduler implements ConnectivityListener return (ConnectivityJobScheduler) application.getConnectivityListener(); } - @TargetApi(Build.VERSION_CODES.LOLLIPOP) private static class NativeConnectivityListener implements ConnectivityListener { @NonNull @@ -94,47 +71,4 @@ public class ConnectivityJobScheduler implements ConnectivityListener mJobScheduler.schedule(jobInfo); } } - - private static class ConnectivityListenerCompat implements ConnectivityListener - { - @NonNull - private final FirebaseJobDispatcher mJobDispatcher; - - ConnectivityListenerCompat(@NonNull MwmApplication context) - { - mJobDispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(context)); - } - - @Override - public void listen() - { - String tag = String.valueOf(JobIdMap.getId(FirebaseJobService.class)); - int executionWindowStart = (int) TimeUnit.HOURS.toSeconds(SCHEDULE_PERIOD_IN_HOURS); - Job job = mJobDispatcher.newJobBuilder() - .setTag(tag) - .setService(FirebaseJobService.class) - .setConstraints(Constraint.ON_ANY_NETWORK) - .setLifetime(Lifetime.FOREVER) - .setTrigger(Trigger.executionWindow(executionWindowStart, ++executionWindowStart)) - .build(); - mJobDispatcher.mustSchedule(job); - } - } - - private static class ConnectivityListenerStub implements ConnectivityListener - { - ConnectivityListenerStub() - { - IllegalStateException exception = new IllegalStateException("Play services doesn't exist on" + - " the device"); - CrashlyticsUtils.INSTANCE.logException(exception); - } - - @Override - public void listen() - { - /* Do nothing */ - } - } - } diff --git a/android/src/com/mapswithme/maps/scheduling/FirebaseJobService.java b/android/src/com/mapswithme/maps/scheduling/FirebaseJobService.java deleted file mode 100644 index f02f68420a..0000000000 --- a/android/src/com/mapswithme/maps/scheduling/FirebaseJobService.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.mapswithme.maps.scheduling; - -import androidx.annotation.NonNull; - -import com.firebase.jobdispatcher.JobParameters; -import com.firebase.jobdispatcher.JobService; -import com.mapswithme.util.log.Logger; -import com.mapswithme.util.log.LoggerFactory; - -public class FirebaseJobService extends JobService -{ - private static final Logger LOGGER = LoggerFactory.INSTANCE.getLogger(LoggerFactory.Type.MISC); - private static final String TAG = FirebaseJobService.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"); - return mDelegate.onStartJob(); - } - - @Override - public boolean onStopJob(JobParameters job) - { - return mDelegate.onStopJob(); - } -} diff --git a/android/src/com/mapswithme/maps/scheduling/JobIdMap.java b/android/src/com/mapswithme/maps/scheduling/JobIdMap.java index eb8f44b314..758e3516dc 100644 --- a/android/src/com/mapswithme/maps/scheduling/JobIdMap.java +++ b/android/src/com/mapswithme/maps/scheduling/JobIdMap.java @@ -15,7 +15,7 @@ public class JobIdMap private static final Map, Integer> MAP = new HashMap<>(); static { - MAP.put(Utils.isLollipopOrLater() ? NativeJobService.class : FirebaseJobService.class, calcIdentifier(MAP.size())); + MAP.put(NativeJobService.class, calcIdentifier(MAP.size())); MAP.put(NotificationService.class, calcIdentifier(MAP.size())); MAP.put(TrackRecorderWakeService.class, calcIdentifier(MAP.size())); MAP.put(SystemDownloadCompletedService.class, calcIdentifier(MAP.size())); diff --git a/android/src/com/mapswithme/maps/scheduling/NativeJobService.java b/android/src/com/mapswithme/maps/scheduling/NativeJobService.java index 2dc176cb52..5bebc26855 100644 --- a/android/src/com/mapswithme/maps/scheduling/NativeJobService.java +++ b/android/src/com/mapswithme/maps/scheduling/NativeJobService.java @@ -9,7 +9,6 @@ import androidx.annotation.NonNull; import com.mapswithme.util.log.Logger; import com.mapswithme.util.log.LoggerFactory; -@TargetApi(Build.VERSION_CODES.LOLLIPOP) public class NativeJobService extends JobService { private static final String TAG = NativeJobService.class.getSimpleName();