mirror of
https://github.com/adolfintel/OpenPods.git
synced 2026-09-14 14:56:11 -04:00
Location permission is now required
This commit is contained in:
+2
-2
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="120dp"
|
||||
android:background="@color/bgColorPrimary"
|
||||
android:gravity="center"
|
||||
android:padding="@dimen/padding_default">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:text="@string/locationDisabledText"
|
||||
android:textColor="@color/textColorPrimary" />
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="70dp"
|
||||
android:background="@color/bgColorPrimary"
|
||||
android:gravity="center"
|
||||
android:padding="@dimen/padding_default">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:text="@string/locationDisabledText"
|
||||
android:textColor="@color/textColorPrimary" />
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -21,7 +21,6 @@
|
||||
<string name="miui_warning_continue">Fortsetzen</string>
|
||||
|
||||
<string name="noBtText">Es sieht so aus, als hätte dieses Gerät kein Bluetooth LE</string>
|
||||
<string name="locationDisabledText">Du musst Standortinformationen aktivieren, damit OpenPods den Status deiner AirPods auslesen kann</string>
|
||||
|
||||
<string name="settings">Einstellungen</string>
|
||||
<string name="batterySaver">Stromsparmodus (nicht empfohlen)</string>
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
<string name="miui_warning_continue">Continuar</string>
|
||||
|
||||
<string name="noBtText">Parece que éste dispositivo no tiene Bluetooth LE.</string>
|
||||
<string name="locationDisabledText">Necesitas activar la Localización para permitir que OpenPods lea el estado.</string>
|
||||
|
||||
<string name="settings">Ajustes</string>
|
||||
<string name="batterySaver">Ahorro de energía (no recomendado)</string>
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
<string name="miui_warning_continue">Continuer</string>
|
||||
|
||||
<string name="noBtText">Il semble que cet appareil ne dispose pas de Bluetooth LE.</string>
|
||||
<string name="locationDisabledText">Vous devez activer la localisation pour permettre aux OpenPod de lire l\'état de vos AirPods.</string>
|
||||
|
||||
<string name="settings">Réglages</string>
|
||||
<string name="batterySaver">Économiseur de batterie (non recommandé)</string>
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<string name="miui_warning_continue">Continua</string>
|
||||
|
||||
<string name="noBtText">Questo dispositivo non supporta Bluetooth LE</string>
|
||||
<string name="locationDisabledText">Attiva la posizione per permttere a OpenPods di leggere lo stato</string>
|
||||
|
||||
<string name="settings">Impostazioni</string>
|
||||
<string name="batterySaver">Risparmio batteria (sconsigliato)</string>
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<string name="miui_warning_continue">המשך</string>
|
||||
|
||||
<string name="noBtText">נראה כי מכשיר זה אינו תומך ב-Bluetooth LE</string>
|
||||
<string name="locationDisabledText">אתה צריך להפעיל שיתוף מיקום בכדי לאפשר ל-OpenPods לקרוא את סטטוס האוזניות</string>
|
||||
|
||||
<string name="settings">הגדרות</string>
|
||||
<string name="batterySaver">חיסכון בסוללה (לא מומלץ)</string>
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<string name="miui_warning_continue">계속</string>
|
||||
|
||||
<string name="noBtText">이 장치에는 Bluetooth LE가 없는 것 같습니다.</string>
|
||||
<string name="locationDisabledText">OpenPod에서 상태를 읽을 수 있도록 하려면 위치를 허용해야 합니다.</string>
|
||||
|
||||
<string name="settings">설정</string>
|
||||
<string name="batterySaver">배터리 관리모드 (추천하지 않음)</string>
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
<string name="miui_warning_continue">Doorgaan</string>
|
||||
|
||||
<string name="noBtText">Het lijkt er op dat dit apparaat niet beschikt over Bluetooth LE</string>
|
||||
<string name="locationDisabledText">Schakel je locatie in zodat OpenPods de status kan uitlezen</string>
|
||||
|
||||
<string name="settings">Instellingen</string>
|
||||
<string name="batterySaver">Accu-optimalisatie (niet aanbevolen)</string>
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
<string name="miui_warning_continue">Продолжать</string>
|
||||
|
||||
<string name="noBtText">Похоже, что Bluetooth LE не поддерживается на Вашем устройстве</string>
|
||||
<string name="locationDisabledText">Вам нужно включить местоположение, чтобы разрешить OpenPods читать статус</string>
|
||||
|
||||
<string name="settings">Настройки</string>
|
||||
<string name="batterySaver">Режим энергосбережения (Не рекомендуется)</string>
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
<string name="miui_warning_continue">продовжувати</string>
|
||||
|
||||
<string name="noBtText">Схоже, що цей пристрій не підтримує Bluetooth LE</string>
|
||||
<string name="locationDisabledText">Вам потрібно ввімкнути місцезнаходження, для того, щоб дозволити OpenPods читати статус</string>
|
||||
|
||||
<string name="settings">Налаштування</string>
|
||||
<string name="batterySaver">Режим збереження енергії (Не рекомендовано)</string>
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
<string name="powerbeatspro">• Powerbeats Pro</string>
|
||||
|
||||
<string name="noBtText">看起来您的设备并不支持蓝牙</string>
|
||||
<string name="locationDisabledText">您需要开启定位来让 OpenPods 读取状态</string>
|
||||
|
||||
<string name="batterySaver">省电模式 (不推荐)</string>
|
||||
<string name="batterySaver_desc">可在蓝牙消耗过多电量时开启</string>
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
<string name="miui_warning_continue" tools:ignore="MissingTranslation">Continue</string>
|
||||
|
||||
<string name="noBtText">It looks like this device doesn\'t have Bluetooth LE</string>
|
||||
<string name="locationDisabledText">You need to turn on Location to allow OpenPods to read the status</string>
|
||||
|
||||
<string name="settings" tools:ignore="MissingTranslation">Settings</string>
|
||||
<string name="batterySaver">Battery saver (Not recommended)</string>
|
||||
|
||||
Reference in New Issue
Block a user