From 97f73590572ece95ad565fd09bc195c9088ce885 Mon Sep 17 00:00:00 2001 From: Electric1447 Date: Sun, 12 Sep 2021 16:25:51 +0300 Subject: [PATCH] Location permission is now required --- app/build.gradle | 4 ++-- .../notification/NotificationBuilder.java | 19 +++---------------- .../com/dosse/airpods/pods/PodsService.java | 2 +- .../airpods/receivers/StartupReceiver.java | 2 +- .../com/dosse/airpods/ui/IntroActivity.java | 6 +++--- .../dosse/airpods/utils/PermissionUtils.java | 2 +- .../main/res/layout/location_disabled_big.xml | 16 ---------------- .../res/layout/location_disabled_small.xml | 16 ---------------- app/src/main/res/values-de/strings.xml | 1 - app/src/main/res/values-es/strings.xml | 1 - app/src/main/res/values-fr/strings.xml | 1 - app/src/main/res/values-it/strings.xml | 1 - app/src/main/res/values-iw-rIL/strings.xml | 1 - app/src/main/res/values-ko/strings.xml | 1 - app/src/main/res/values-nl/strings.xml | 1 - app/src/main/res/values-ru/strings.xml | 1 - app/src/main/res/values-uk/strings.xml | 1 - app/src/main/res/values-zh-rCN/strings.xml | 1 - app/src/main/res/values/strings.xml | 1 - 19 files changed, 11 insertions(+), 67 deletions(-) delete mode 100644 app/src/main/res/layout/location_disabled_big.xml delete mode 100644 app/src/main/res/layout/location_disabled_small.xml diff --git a/app/build.gradle b/app/build.gradle index d9bf099..1ffa5a4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "com.dosse.airpods" minSdkVersion 23 targetSdkVersion 31 - versionCode 18 - versionName '1.7' + versionCode 19 + versionName '1.7.1' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/com/dosse/airpods/notification/NotificationBuilder.java b/app/src/main/java/com/dosse/airpods/notification/NotificationBuilder.java index bd7230f..4554cf3 100644 --- a/app/src/main/java/com/dosse/airpods/notification/NotificationBuilder.java +++ b/app/src/main/java/com/dosse/airpods/notification/NotificationBuilder.java @@ -2,7 +2,6 @@ package com.dosse.airpods.notification; import android.app.Notification; import android.content.Context; -import android.os.Build; import android.view.View; import android.widget.RemoteViews; import androidx.core.app.NotificationCompat; @@ -12,41 +11,29 @@ import com.dosse.airpods.pods.PodsStatus; import com.dosse.airpods.pods.data.IPods; import com.dosse.airpods.pods.data.RegularPods; import com.dosse.airpods.pods.data.SinglePods; -import com.dosse.airpods.utils.PermissionUtils; public class NotificationBuilder { public static final String TAG = "AirPods"; public static final long TIMEOUT_CONNECTED = 30000; public static final int NOTIFICATION_ID = 1; - private final RemoteViews[] notificationArr, notificationLocation; - private final Context mContext; + private final RemoteViews[] notificationArr; private final NotificationCompat.Builder mBuilder; public NotificationBuilder (Context context) { - mContext = context; - notificationArr = new RemoteViews[] {new RemoteViews(context.getPackageName(), R.layout.status_big), new RemoteViews(context.getPackageName(), R.layout.status_small)}; - notificationLocation = new RemoteViews[] {new RemoteViews(context.getPackageName(), R.layout.location_disabled_big), new RemoteViews(context.getPackageName(), R.layout.location_disabled_small)}; mBuilder = new NotificationCompat.Builder(context, TAG); mBuilder.setShowWhen(false); mBuilder.setOngoing(true); mBuilder.setSmallIcon(R.mipmap.notification_icon); mBuilder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC); + mBuilder.setCustomContentView(notificationArr[1]); + mBuilder.setCustomBigContentView(notificationArr[0]); } public Notification build (PodsStatus status) { - // Apparently this restriction was removed ONLY in android Q - if (PermissionUtils.getLocationPermissions(mContext) || Build.VERSION.SDK_INT == Build.VERSION_CODES.Q) { - mBuilder.setCustomContentView(notificationArr[1]); - mBuilder.setCustomBigContentView(notificationArr[0]); - } else { - mBuilder.setCustomContentView(notificationLocation[1]); - mBuilder.setCustomBigContentView(notificationLocation[0]); - } - IPods airpods = status.getAirpods(); boolean single = airpods.isSingle(); diff --git a/app/src/main/java/com/dosse/airpods/pods/PodsService.java b/app/src/main/java/com/dosse/airpods/pods/PodsService.java index dc4802c..9c1efc5 100644 --- a/app/src/main/java/com/dosse/airpods/pods/PodsService.java +++ b/app/src/main/java/com/dosse/airpods/pods/PodsService.java @@ -132,7 +132,7 @@ public class PodsService extends Service { public void onCreate () { super.onCreate(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) startForeground(101, createBackgroundNotification()); unregisterBtReceiver(); diff --git a/app/src/main/java/com/dosse/airpods/receivers/StartupReceiver.java b/app/src/main/java/com/dosse/airpods/receivers/StartupReceiver.java index e3ff21f..dc5ac48 100644 --- a/app/src/main/java/com/dosse/airpods/receivers/StartupReceiver.java +++ b/app/src/main/java/com/dosse/airpods/receivers/StartupReceiver.java @@ -25,7 +25,7 @@ public class StartupReceiver extends BroadcastReceiver { } public static void startPodsService (Context context) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) context.startForegroundService(new Intent(context, PodsService.class)); else context.startService(new Intent(context, PodsService.class)); diff --git a/app/src/main/java/com/dosse/airpods/ui/IntroActivity.java b/app/src/main/java/com/dosse/airpods/ui/IntroActivity.java index 5807bcb..1c3580d 100644 --- a/app/src/main/java/com/dosse/airpods/ui/IntroActivity.java +++ b/app/src/main/java/com/dosse/airpods/ui/IntroActivity.java @@ -72,7 +72,7 @@ public class IntroActivity extends AppCompatActivity { return STEP_PERMISSION_BATTERY_OPTIMIZATION; if (!PermissionUtils.getFineLocationPermission(this)) return STEP_PERMISSION_LOCATION; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) if (!PermissionUtils.getBackgroundLocationPermission(this)) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) if (!PermissionUtils.getBackgroundLocationPermission(this)) return STEP_PERMISSION_BACKGROUND_LOCATION; return 0; @@ -81,7 +81,7 @@ public class IntroActivity extends AppCompatActivity { @SuppressLint("BatteryLife") private void initScreen () { int currentStep = getPermissionState() - ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) ? 0 : 1); - int numOfSteps = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) ? ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) ? 4 : 3) : 2; + int numOfSteps = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) ? ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) ? 4 : 3) : 2; runOnUiThread(() -> { switch (getPermissionState()) { @@ -109,7 +109,7 @@ public class IntroActivity extends AppCompatActivity { case STEP_PERMISSION_BACKGROUND_LOCATION: msg.setText(String.format(Locale.getDefault(), "%s %d/%d: %s", getString(R.string.intro_step), currentStep, numOfSteps, getString(R.string.intro_loc2_perm))); btn.setOnClickListener(view -> { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) requestPermissions(new String[] {Manifest.permission.ACCESS_BACKGROUND_LOCATION}, BACKGROUND_LOCATION_REQUEST_CODE); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) requestPermissions(new String[] {Manifest.permission.ACCESS_BACKGROUND_LOCATION}, BACKGROUND_LOCATION_REQUEST_CODE); }); break; } diff --git a/app/src/main/java/com/dosse/airpods/utils/PermissionUtils.java b/app/src/main/java/com/dosse/airpods/utils/PermissionUtils.java index 08d5cc7..9944a26 100644 --- a/app/src/main/java/com/dosse/airpods/utils/PermissionUtils.java +++ b/app/src/main/java/com/dosse/airpods/utils/PermissionUtils.java @@ -37,7 +37,7 @@ public class PermissionUtils { } public static boolean getLocationPermissions (Context context) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) return getFineLocationPermission(context) && getBackgroundLocationPermission(context); else return getFineLocationPermission(context); diff --git a/app/src/main/res/layout/location_disabled_big.xml b/app/src/main/res/layout/location_disabled_big.xml deleted file mode 100644 index 635703b..0000000 --- a/app/src/main/res/layout/location_disabled_big.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - diff --git a/app/src/main/res/layout/location_disabled_small.xml b/app/src/main/res/layout/location_disabled_small.xml deleted file mode 100644 index 9e92a02..0000000 --- a/app/src/main/res/layout/location_disabled_small.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index cefa78e..45a47e3 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -21,7 +21,6 @@ Fortsetzen Es sieht so aus, als hätte dieses Gerät kein Bluetooth LE - Du musst Standortinformationen aktivieren, damit OpenPods den Status deiner AirPods auslesen kann Einstellungen Stromsparmodus (nicht empfohlen) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index ef68532..802679e 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -21,7 +21,6 @@ Continuar Parece que éste dispositivo no tiene Bluetooth LE. - Necesitas activar la Localización para permitir que OpenPods lea el estado. Ajustes Ahorro de energía (no recomendado) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 8b8f4bd..c4dd8af 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -21,7 +21,6 @@ Continuer Il semble que cet appareil ne dispose pas de Bluetooth LE. - Vous devez activer la localisation pour permettre aux OpenPod de lire l\'état de vos AirPods. Réglages Économiseur de batterie (non recommandé) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 1079f7e..c49a452 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -22,7 +22,6 @@ Continua Questo dispositivo non supporta Bluetooth LE - Attiva la posizione per permttere a OpenPods di leggere lo stato Impostazioni Risparmio batteria (sconsigliato) diff --git a/app/src/main/res/values-iw-rIL/strings.xml b/app/src/main/res/values-iw-rIL/strings.xml index 1bf03ea..8c3cb70 100644 --- a/app/src/main/res/values-iw-rIL/strings.xml +++ b/app/src/main/res/values-iw-rIL/strings.xml @@ -22,7 +22,6 @@ המשך נראה כי מכשיר זה אינו תומך ב-Bluetooth LE - אתה צריך להפעיל שיתוף מיקום בכדי לאפשר ל-OpenPods לקרוא את סטטוס האוזניות הגדרות חיסכון בסוללה (לא מומלץ) diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index e8faaa6..ebe10e5 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -22,7 +22,6 @@ 계속 이 장치에는 Bluetooth LE가 없는 것 같습니다. - OpenPod에서 상태를 읽을 수 있도록 하려면 위치를 허용해야 합니다. 설정 배터리 관리모드 (추천하지 않음) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index bb8a154..56e2a1b 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -33,7 +33,6 @@ Doorgaan Het lijkt er op dat dit apparaat niet beschikt over Bluetooth LE - Schakel je locatie in zodat OpenPods de status kan uitlezen Instellingen Accu-optimalisatie (niet aanbevolen) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 82b2389..94f7a1c 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -21,7 +21,6 @@ Продолжать Похоже, что Bluetooth LE не поддерживается на Вашем устройстве - Вам нужно включить местоположение, чтобы разрешить OpenPods читать статус Настройки Режим энергосбережения (Не рекомендуется) diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index c6a2b6a..9548302 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -21,7 +21,6 @@ продовжувати Схоже, що цей пристрій не підтримує Bluetooth LE - Вам потрібно ввімкнути місцезнаходження, для того, щоб дозволити OpenPods читати статус Налаштування Режим збереження енергії (Не рекомендовано) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 2dccb0c..71ec508 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -18,7 +18,6 @@ • Powerbeats Pro 看起来您的设备并不支持蓝牙 - 您需要开启定位来让 OpenPods 读取状态 省电模式 (不推荐) 可在蓝牙消耗过多电量时开启 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index db47420..c674cc8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -36,7 +36,6 @@ Continue It looks like this device doesn\'t have Bluetooth LE - You need to turn on Location to allow OpenPods to read the status Settings Battery saver (Not recommended)