From 77154a81afe0494799d11eba7d27999f70147890 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Wed, 30 Aug 2017 15:34:45 +1200 Subject: [PATCH] Use some new Android APIs --- app/src/main/java/org/traccar/client/MainFragment.java | 6 ++++-- app/src/main/java/org/traccar/client/ShortcutActivity.java | 7 ++++--- app/src/main/java/org/traccar/client/TrackingService.java | 3 ++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/traccar/client/MainFragment.java b/app/src/main/java/org/traccar/client/MainFragment.java index fbb040a..317b649 100644 --- a/app/src/main/java/org/traccar/client/MainFragment.java +++ b/app/src/main/java/org/traccar/client/MainFragment.java @@ -51,6 +51,8 @@ public class MainFragment extends PreferenceFragment implements OnSharedPreferen private static final String TAG = MainFragment.class.getSimpleName(); + private static final int ALARM_MANAGER_INTERVAL = 15000; + public static final String KEY_DEVICE = "id"; public static final String KEY_URL = "url"; public static final String KEY_INTERVAL = "interval"; @@ -259,9 +261,9 @@ public class MainFragment extends PreferenceFragment implements OnSharedPreferen if (permission) { setPreferencesEnabled(false); - getActivity().startService(new Intent(getActivity(), TrackingService.class)); + ContextCompat.startForegroundService(getActivity(), new Intent(getActivity(), TrackingService.class)); alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, - 15000, 15000, alarmIntent); + ALARM_MANAGER_INTERVAL, ALARM_MANAGER_INTERVAL, alarmIntent); } else { sharedPreferences.edit().putBoolean(KEY_STATUS, false).apply(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { diff --git a/app/src/main/java/org/traccar/client/ShortcutActivity.java b/app/src/main/java/org/traccar/client/ShortcutActivity.java index ef17f4f..ec4fcf8 100644 --- a/app/src/main/java/org/traccar/client/ShortcutActivity.java +++ b/app/src/main/java/org/traccar/client/ShortcutActivity.java @@ -22,6 +22,7 @@ import android.location.Location; import android.location.LocationManager; import android.os.Bundle; import android.preference.PreferenceManager; +import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.widget.Toast; @@ -94,13 +95,13 @@ public class ShortcutActivity extends AppCompatActivity { switch (action) { case EXTRA_ACTION_START: PreferenceManager.getDefaultSharedPreferences(this) - .edit().putBoolean(MainFragment.KEY_STATUS, true).commit(); - startService(new Intent(this, TrackingService.class)); + .edit().putBoolean(MainFragment.KEY_STATUS, true).apply(); + ContextCompat.startForegroundService(this, new Intent(this, TrackingService.class)); Toast.makeText(this, R.string.status_service_create, Toast.LENGTH_SHORT).show(); break; case EXTRA_ACTION_STOP: PreferenceManager.getDefaultSharedPreferences(this) - .edit().putBoolean(MainFragment.KEY_STATUS, false).commit(); + .edit().putBoolean(MainFragment.KEY_STATUS, false).apply(); stopService(new Intent(this, TrackingService.class)); Toast.makeText(this, R.string.status_service_destroy, Toast.LENGTH_SHORT).show(); break; diff --git a/app/src/main/java/org/traccar/client/TrackingService.java b/app/src/main/java/org/traccar/client/TrackingService.java index ffa41a4..48a692a 100644 --- a/app/src/main/java/org/traccar/client/TrackingService.java +++ b/app/src/main/java/org/traccar/client/TrackingService.java @@ -24,6 +24,7 @@ import android.content.Intent; import android.os.Build; import android.os.IBinder; import android.support.v4.app.NotificationCompat; +import android.support.v4.content.ContextCompat; import android.util.Log; public class TrackingService extends Service { @@ -72,7 +73,7 @@ public class TrackingService extends Service { trackingController.start(); startForeground(NOTIFICATION_ID, createNotification(this)); - startService(new Intent(this, HideNotificationService.class)); + ContextCompat.startForegroundService(this, new Intent(this, HideNotificationService.class)); } @Override