Fixed flipped Charging & Added manual flip airpods option.

This commit is contained in:
Electric
2020-05-12 12:58:30 +03:00
parent fd7be864d3
commit a284bda622
16 changed files with 78 additions and 42 deletions
@@ -31,6 +31,7 @@ import android.view.View;
import android.widget.RemoteViews;
import androidx.core.app.NotificationCompat;
import androidx.preference.PreferenceManager;
import java.util.ArrayList;
import java.util.Collections;
@@ -87,7 +88,7 @@ public class PodsService extends Service {
if (ENABLE_LOGGING)
Log.d(TAG, "START SCANNER");
SharedPreferences prefs = getSharedPreferences("openpods", MODE_PRIVATE);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
BluetoothManager btManager = (BluetoothManager)getSystemService(Context.BLUETOOTH_SERVICE);
assert btManager != null;
BluetoothAdapter btAdapter = btManager.getAdapter();
@@ -160,11 +161,17 @@ public class PodsService extends Service {
return;
String a = decodeHex(Objects.requireNonNull(Objects.requireNonNull(result.getScanRecord()).getManufacturerSpecificData(76)));
boolean flip = isFlipped(a);
Log.i(TAG, String.valueOf(prefs.getBoolean("flipPods", false)));
if (prefs.getBoolean("flipPods", false))
flip = !flip;
String leftAirpodStr; // Left airpod (0-10 batt; 15=disconnected)
String rightAirpodStr; // Right airpod (0-10 batt; 15=disconnected)
if (isFlipped(a)) {
if (flip) {
leftAirpodStr = "" + a.charAt(12);
rightAirpodStr = "" + a.charAt(13);
} else {
@@ -181,8 +188,14 @@ public class PodsService extends Service {
int chargeStatus = Integer.parseInt(chargeStatusStr, 16);
chargeL = (chargeStatus & 0b00000001) != 0;
chargeR = (chargeStatus & 0b00000010) != 0;
if (flip) {
chargeL = (chargeStatus & 0b00000010) != 0;
chargeR = (chargeStatus & 0b00000001) != 0;
} else {
chargeL = (chargeStatus & 0b00000001) != 0;
chargeR = (chargeStatus & 0b00000010) != 0;
}
chargeCase = (chargeStatus & 0b00000100) != 0;
if (a.charAt(7) == 'E')
@@ -288,6 +301,7 @@ public class PodsService extends Service {
private NotificationManager mNotifyManager;
@SuppressWarnings("WeakerAccess")
public NotificationThread () {
mNotifyManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
// On Oreo (API27) and newer, create a notification channel.
@@ -574,7 +588,7 @@ public class PodsService extends Service {
} catch (Throwable ignored) {
}
SharedPreferences prefs = getSharedPreferences("openpods", MODE_PRIVATE);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
if (prefs.getBoolean("batterySaver", false)) {
IntentFilter screenIntentFilter = new IntentFilter();
@@ -28,7 +28,7 @@ public class SettingsActivity extends AppCompatActivity implements SharedPrefere
@Override
public void onSharedPreferenceChanged (SharedPreferences sharedPreferences, String key) {
if (key.equalsIgnoreCase("batterySaver"))
if (key.equalsIgnoreCase("batterySaver") || key.equalsIgnoreCase("flipPods"))
Starter.restartPodsService(getApplicationContext());
}
@@ -17,7 +17,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
private Context context;
@SuppressWarnings("FieldCanBeLocal")
private Preference mAboutPreference, mHideAppPrefernce;
private Preference mAboutPreference, mHideAppPreference;
@Override
public void onCreatePreferences (Bundle savedInstanceState, String rootKey) {
@@ -30,8 +30,8 @@ public class SettingsFragment extends PreferenceFragmentCompat {
return true;
});
mHideAppPrefernce = getPreferenceManager().findPreference("hideApp");
Objects.requireNonNull(mHideAppPrefernce).setOnPreferenceClickListener(preference -> {
mHideAppPreference = getPreferenceManager().findPreference("hideApp");
Objects.requireNonNull(mHideAppPreference).setOnPreferenceClickListener(preference -> {
PackageManager p = requireContext().getPackageManager();
p.setComponentEnabledSetting(new ComponentName(context, MainActivity.class), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
Toast.makeText(context, getString(R.string.hideClicked), Toast.LENGTH_LONG).show();
@@ -52,7 +52,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
private void enableDisableOptions () {
try {
context.openFileInput("hidden").close();
mHideAppPrefernce.setEnabled(false);
mHideAppPreference.setEnabled(false);
} catch (Throwable ignored) {
}
}
@@ -38,7 +38,7 @@
android:layout_marginTop="8dp"
android:layout_toStartOf="@id/logo"
android:gravity="center"
android:text="@string/about1"
android:text="@string/about_dev"
android:textColor="#404040" />
<LinearLayout
@@ -37,7 +37,7 @@
android:layout_below="@id/logo"
android:layout_marginBottom="16dp"
android:gravity="center"
android:text="@string/about1"
android:text="@string/about_dev"
android:textColor="#404040" />
<LinearLayout
@@ -12,13 +12,15 @@
<string name="supportedDevicesTitle"><u>Unterstützte Geräte:</u></string>
<string name="supportedDevicesItems">&#8226; Apple AirPods 1st gen\n&#8226; Apple AirPods 2nd gen\n&#8226; Apple AirPods Pro</string>
<string name="hide">App verstecken</string>
<string name="hideClicked">Das Icon wird bald verschwinden</string>
<string name="flipPods">Flip Airpods</string>
<string name="flipPods_desc">Aktiviere diesen Modus, wenn Ihre Airpods umgekehrt sind</string>
<string name="batterySaver">Stromsparmodus (nicht empfohlen)</string>
<string name="batterySaver_desc">Aktiviere diesen Modus, wenn Bluetooth zu viel Batterieleistung erfordert</string>
<string name="hide">App verstecken</string>
<string name="hideClicked">Das Icon wird bald verschwinden</string>
<string name="about">Über</string>
<string name="about1">Entwickelt von Federico Dossena</string>
<string name="about_dev">Entwickelt von Federico Dossena</string>
<string name="website">Webseite</string>
<string name="github">Github</string>
<string name="donate">Spenden</string>
@@ -12,13 +12,15 @@
<string name="supportedDevicesTitle"><u>Dispositivos compatibles:</u></string>
<string name="supportedDevicesItems">&#8226; Apple AirPods 1ª generación\n&#8226; Apple AirPods 2ª generación\n&#8226; Apple AirPods Pro</string>
<string name="hide">Ocultar app</string>
<string name="hideClicked">El icono desaparecerá pronto</string>
<string name="flipPods">Airpods reverso</string>
<string name="flipPods_desc">Activa ésta opción si sus Airpods están invertidos</string>
<string name="batterySaver">Ahorro de energía (no recomendado)</string>
<string name="batterySaver_desc">Activa ésta opción si el Bluetooth consume mucha batería.</string>
<string name="hide">Ocultar app</string>
<string name="hideClicked">El icono desaparecerá pronto</string>
<string name="about">Acerca de</string>
<string name="about1">Desarrollado por Federico Dossena</string>
<string name="about_dev">Desarrollado por Federico Dossena</string>
<string name="website">Página web</string>
<string name="github">Github</string>
<string name="donate">Donar</string>
@@ -12,13 +12,15 @@
<string name="supportedDevicesTitle"><u>Dispositivi supportati:</u></string>
<string name="supportedDevicesItems">&#8226; Apple AirPods 1st gen\n&#8226; Apple AirPods 2nd gen\n&#8226; Apple AirPods Pro</string>
<string name="hide">Nascondi app</string>
<string name="hideClicked">L\'icona sarà rimossa presto</string>
<string name="flipPods">Flip Airpods</string>
<string name="flipPods_desc">Attiva se il tuoi Airpods sono invertiti</string>
<string name="batterySaver">Risparmio batteria (sconsigliato)</string>
<string name="batterySaver_desc">Attiva se il Bluetooth usa molta batteria</string>
<string name="hide">Nascondi app</string>
<string name="hideClicked">L\'icona sarà rimossa presto</string>
<string name="about">Informazioni su</string>
<string name="about1">Sviluppata da Federico Dossena</string>
<string name="about_dev">Sviluppata da Federico Dossena</string>
<string name="website">Sito web</string>
<string name="github">Github</string>
<string name="donate">Donazioni</string>
@@ -12,13 +12,15 @@
<string name="supportedDevicesTitle"><u>מכשירים נתמכים</u></string>
<string name="supportedDevicesItems">&#8226; אפל איירפודס דור ראשון \n&#8226; אפל איירפודס דור שני \n&#8226; אפל איירפודס פרו </string>
<string name="flipPods">הפוך איירפודס</string>
<string name="flipPods_desc">הפעל אם האיירפודס שלך הפוכים</string>
<string name="batterySaver">חיסכון בסוללה (לא מומלץ)</string>
<string name="batterySaver_desc">הפעל אם Bluetooth משתמש בהרבה סוללה</string>
<string name="hide">הסתר אפליקציה</string>
<string name="hideClicked">האפליקציה תוסתר בקרוב</string>
<string name="batterySaver">חיסכון בסוללה (לא מומלץ)</string>
<string name="batterySaver_desc">הפעל זאת אם Bluetooth משתמש בהרבה סוללה</string>
<string name="about">אודות</string>
<string name="about1">פותח על ידי פדריקו דוסנה</string>
<string name="about_dev">פותח על ידי פדריקו דוסנה</string>
<string name="website">אתר המפתח</string>
<string name="github">Github</string>
<string name="donate">תרומה</string>
@@ -12,13 +12,15 @@
<string name="supportedDevicesTitle"><u>Ondersteunde apparaten:</u></string>
<string name="supportedDevicesItems">&#8226; Apple AirPods 1e gen\n&#8226; Apple AirPods 2e gen\n&#8226; Apple AirPods Pro</string>
<string name="hide">App verbergen</string>
<string name="hideClicked">Het pictogram verdwijnt spoedig</string>
<string name="flipPods">Flip Airpods</string>
<string name="flipPods_desc">Schakel dit in als uw Airpods zijn omgekeerd</string>
<string name="batterySaver">Accu-optimalisatie (niet aanbevolen)</string>
<string name="batterySaver_desc">Schakel dit in als je merkt dat het accuverbruik hoger is door Bluetooth</string>
<string name="hide">App verbergen</string>
<string name="hideClicked">Het pictogram verdwijnt spoedig</string>
<string name="about">Over</string>
<string name="about1">Gemaakt door Federico Dossena</string>
<string name="about_dev">Gemaakt door Federico Dossena</string>
<string name="website">Website</string>
<string name="github">GitHub</string>
<string name="donate">Doneren</string>
@@ -12,13 +12,15 @@
<string name="supportedDevicesTitle"><u>Поддерживаемые устройства:</u></string>
<string name="supportedDevicesItems">&#8226; Apple AirPods 1st gen\n&#8226; Apple AirPods 2nd gen\n&#8226; Apple AirPods Pro</string>
<string name="hide">Скрыть приложение</string>
<string name="hideClicked">Иконка скоро исчезнет</string>
<string name="flipPods">обратные Airpods</string>
<string name="flipPods_desc">Включите, если ваши Airpods меняются местами</string>
<string name="batterySaver">Режим энергосбережения (Не рекомендуется)</string>
<string name="batterySaver_desc">Включите, если Bluetooth использует слишком много ресурсов</string>
<string name="hide">Скрыть приложение</string>
<string name="hideClicked">Иконка скоро исчезнет</string>
<string name="about">О приложении</string>
<string name="about1">Разработано Federico Dossena</string>
<string name="about_dev">Разработано Federico Dossena</string>
<string name="website">Сайт</string>
<string name="github">Github</string>
<string name="donate">Поддержать</string>
@@ -12,13 +12,15 @@
<string name="supportedDevicesTitle"><u>Supported devices:</u></string>
<string name="supportedDevicesItems">&#8226; Apple AirPods 1st gen\n&#8226; Apple AirPods 2nd gen\n&#8226; Apple AirPods Pro</string>
<string name="hide">Сховати додаток</string>
<string name="hideClicked">Іконка скоро зникне</string>
<string name="flipPods">зворотні Airpods</string>
<string name="flipPods_desc">Увімкніть, якщо ваші Airpods помінялися місцями</string>
<string name="batterySaver">Режим збереження енергії (Не рекомендовано)</string>
<string name="batterySaver_desc">Увімкніть, якщо Bluetooth використовує багато ресурсів</string>
<string name="hide">Сховати додаток</string>
<string name="hideClicked">Іконка скоро зникне</string>
<string name="about">Про програму</string>
<string name="about1">Розроблено Federico Dossena</string>
<string name="about_dev">Розроблено Federico Dossena</string>
<string name="website">Сайт</string>
<string name="github">Github</string>
<string name="donate">Підтримати</string>
@@ -12,13 +12,15 @@
<string name="supportedDevicesTitle"><u>支持的设备:</u></string>
<string name="supportedDevicesItems">&#8226; Apple AirPods 一代\n&#8226; Apple AirPods 二代\n&#8226; Apple AirPods Pro</string>
<string name="hide">隐藏</string>
<string name="hideClicked">桌面图标很快就会被隐藏掉</string>
<string name="flipPods">反向 Airpods</string>
<string name="flipPods_desc">如果您的 Airpods 倒转,请启用此功能</string>
<string name="batterySaver">省电模式 (不推荐)</string>
<string name="batterySaver_desc">可在蓝牙消耗过多电量时开启</string>
<string name="hide">隐藏</string>
<string name="hideClicked">桌面图标很快就会被隐藏掉</string>
<string name="about">关于</string>
<string name="about1">由 Federico Dossena 开发</string>
<string name="about_dev">由 Federico Dossena 开发</string>
<string name="website">网站</string>
<string name="github">Github</string>
<string name="donate">捐赠</string>
@@ -1,3 +0,0 @@
<resources>
<dimen name="fab_margin">16dp</dimen>
</resources>
+6 -3
View File
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name" translatable="false">OpenPods</string>
<string name="intro1">This app lets you check the status of your AirPods on any Android device</string>
<string name="intro2">To operate, we need permission to use Bluetooth LE (Location) and permission to run in background</string>
<string name="introAllow">Allow</string>
@@ -13,13 +14,15 @@
<string name="supportedDevicesTitle"><u>Supported devices:</u></string>
<string name="supportedDevicesItems">&#8226; Apple AirPods 1st gen\n&#8226; Apple AirPods 2nd gen\n&#8226; Apple AirPods Pro</string>
<string name="hide">Hide app</string>
<string name="hideClicked">The icon will disappear soon</string>
<string name="flipPods">Flip Airpods</string>
<string name="flipPods_desc">Enable this if your Airpods are reversed</string>
<string name="batterySaver">Battery saver (Not recommended)</string>
<string name="batterySaver_desc">Enable this if Bluetooth uses a lot of battery</string>
<string name="hide">Hide app</string>
<string name="hideClicked">The icon will disappear soon</string>
<string name="about">About</string>
<string name="about1">Developed by Federico Dossena</string>
<string name="about_dev">Developed by Federico Dossena</string>
<string name="website">Website</string>
<string name="github">Github</string>
<string name="donate">Donate</string>
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference
android:defaultValue="false"
android:key="flipPods"
android:summary="@string/flipPods_desc"
android:title="@string/flipPods" />
<CheckBoxPreference
android:defaultValue="false"
android:key="batterySaver"