Fixes and optimizations

This commit is contained in:
Electric
2020-05-12 23:32:21 +03:00
parent 1cea7e7284
commit 84aa1ca31f
6 changed files with 35 additions and 27 deletions
@@ -60,7 +60,6 @@
<intent-filter> <intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" /> <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
<action android:name="android.intent.action.PACKAGE_INSTALL" />
</intent-filter> </intent-filter>
</receiver> </receiver>
@@ -280,10 +280,6 @@ public class PodsService extends Service {
private class NotificationThread extends Thread { private class NotificationThread extends Thread {
private boolean getRunningLoop (int test) {
return getApplicationContext().getApplicationInfo().targetSdkVersion == test;
}
private boolean isLocationEnabled () { private boolean isLocationEnabled () {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
getApplicationContext(); getApplicationContext();
@@ -317,7 +313,7 @@ public class PodsService extends Service {
public void run () { public void run () {
boolean notificationShowing = false; boolean notificationShowing = false;
boolean loopRunning = getRunningLoop(29); String compat = getPackageManager().getInstallerPackageName(getPackageName());
RemoteViews notificationBig = new RemoteViews(getPackageName(), R.layout.status_big); RemoteViews notificationBig = new RemoteViews(getPackageName(), R.layout.status_big);
RemoteViews notificationSmall = new RemoteViews(getPackageName(), R.layout.status_small); RemoteViews notificationSmall = new RemoteViews(getPackageName(), R.layout.status_small);
@@ -329,7 +325,7 @@ public class PodsService extends Service {
mBuilder.setOngoing(true); mBuilder.setOngoing(true);
mBuilder.setSmallIcon(R.mipmap.notification_icon); mBuilder.setSmallIcon(R.mipmap.notification_icon);
while (loopRunning) { for (; ; ) {
/*&&System.currentTimeMillis()-lastSeenConnected<TIMEOUT_CONNECTED*/ /*&&System.currentTimeMillis()-lastSeenConnected<TIMEOUT_CONNECTED*/
if (maybeConnected && !(leftStatus == 15 && rightStatus == 15 && caseStatus == 15)) { if (maybeConnected && !(leftStatus == 15 && rightStatus == 15 && caseStatus == 15)) {
if (!notificationShowing) { if (!notificationShowing) {
@@ -362,35 +358,35 @@ public class PodsService extends Service {
Log.d(TAG, "Left: " + leftStatus + (chargeL ? "+" : "") + " Right: " + rightStatus + (chargeR ? "+" : "") + " Case: " + caseStatus + (chargeCase ? "+" : "") + " Model: " + model); Log.d(TAG, "Left: " + leftStatus + (chargeL ? "+" : "") + " Right: " + rightStatus + (chargeR ? "+" : "") + " Case: " + caseStatus + (chargeCase ? "+" : "") + " Model: " + model);
if (model.equals(MODEL_AIRPODS_NORMAL)) { if (model.equals(MODEL_AIRPODS_NORMAL)) {
notificationBig.setImageViewResource(R.id.leftPodImg, leftStatus <= 10 ? R.drawable.left_podpro : R.drawable.left_podpro_disconnected);
notificationBig.setImageViewResource(R.id.rightPodImg, rightStatus <= 10 ? R.drawable.right_podpro : R.drawable.right_podpro_disconnected);
notificationBig.setImageViewResource(R.id.podCaseImg, caseStatus <= 10 ? R.drawable.podpro_case : R.drawable.podpro_case_disconnected);
notificationSmall.setImageViewResource(R.id.leftPodImg, leftStatus <= 10 ? R.drawable.left_podpro : R.drawable.left_podpro_disconnected);
notificationSmall.setImageViewResource(R.id.rightPodImg, rightStatus <= 10 ? R.drawable.right_podpro : R.drawable.right_podpro_disconnected);
notificationSmall.setImageViewResource(R.id.podCaseImg, caseStatus <= 10 ? R.drawable.podpro_case : R.drawable.podpro_case_disconnected);
} else if (model.equals(MODEL_AIRPODS_PRO)) {
notificationBig.setImageViewResource(R.id.leftPodImg, leftStatus <= 10 ? R.drawable.left_pod : R.drawable.left_pod_disconnected); notificationBig.setImageViewResource(R.id.leftPodImg, leftStatus <= 10 ? R.drawable.left_pod : R.drawable.left_pod_disconnected);
notificationBig.setImageViewResource(R.id.rightPodImg, rightStatus <= 10 ? R.drawable.right_pod : R.drawable.right_pod_disconnected); notificationBig.setImageViewResource(R.id.rightPodImg, rightStatus <= 10 ? R.drawable.right_pod : R.drawable.right_pod_disconnected);
notificationBig.setImageViewResource(R.id.podCaseImg, caseStatus <= 10 ? R.drawable.pod_case : R.drawable.pod_case_disconnected); notificationBig.setImageViewResource(R.id.podCaseImg, caseStatus <= 10 ? R.drawable.pod_case : R.drawable.pod_case_disconnected);
notificationSmall.setImageViewResource(R.id.leftPodImg, leftStatus <= 10 ? R.drawable.left_pod : R.drawable.left_pod_disconnected); notificationSmall.setImageViewResource(R.id.leftPodImg, leftStatus <= 10 ? R.drawable.left_pod : R.drawable.left_pod_disconnected);
notificationSmall.setImageViewResource(R.id.rightPodImg, rightStatus <= 10 ? R.drawable.right_pod : R.drawable.right_pod_disconnected); notificationSmall.setImageViewResource(R.id.rightPodImg, rightStatus <= 10 ? R.drawable.right_pod : R.drawable.right_pod_disconnected);
notificationSmall.setImageViewResource(R.id.podCaseImg, caseStatus <= 10 ? R.drawable.pod_case : R.drawable.pod_case_disconnected); notificationSmall.setImageViewResource(R.id.podCaseImg, caseStatus <= 10 ? R.drawable.pod_case : R.drawable.pod_case_disconnected);
} else if (model.equals(MODEL_AIRPODS_PRO)) {
notificationBig.setImageViewResource(R.id.leftPodImg, leftStatus <= 10 ? R.drawable.left_podpro : R.drawable.left_podpro_disconnected);
notificationBig.setImageViewResource(R.id.rightPodImg, rightStatus <= 10 ? R.drawable.right_podpro : R.drawable.right_podpro_disconnected);
notificationBig.setImageViewResource(R.id.podCaseImg, caseStatus <= 10 ? R.drawable.podpro_case : R.drawable.podpro_case_disconnected);
notificationSmall.setImageViewResource(R.id.leftPodImg, leftStatus <= 10 ? R.drawable.left_podpro : R.drawable.left_podpro_disconnected);
notificationSmall.setImageViewResource(R.id.rightPodImg, rightStatus <= 10 ? R.drawable.right_podpro : R.drawable.right_podpro_disconnected);
notificationSmall.setImageViewResource(R.id.podCaseImg, caseStatus <= 10 ? R.drawable.podpro_case : R.drawable.podpro_case_disconnected);
} }
if (System.currentTimeMillis() - lastSeenConnected < TIMEOUT_CONNECTED) { if (System.currentTimeMillis() - lastSeenConnected < TIMEOUT_CONNECTED) {
notificationBig.setViewVisibility(R.id.leftPodText, View.VISIBLE); notificationBig.setViewVisibility(R.id.leftPodText, View.VISIBLE);
notificationBig.setViewVisibility(R.id.rightPodText, View.VISIBLE); notificationBig.setViewVisibility(R.id.rightPodText, View.VISIBLE);
notificationBig.setViewVisibility(R.id.podCaseText, View.VISIBLE); notificationBig.setViewVisibility(R.id.podCaseText, View.VISIBLE);
notificationBig.setViewVisibility(R.id.leftPodUpdating, View.GONE); notificationBig.setViewVisibility(R.id.leftPodUpdating, View.INVISIBLE);
notificationBig.setViewVisibility(R.id.rightPodUpdating, View.GONE); notificationBig.setViewVisibility(R.id.rightPodUpdating, View.INVISIBLE);
notificationBig.setViewVisibility(R.id.podCaseUpdating, View.GONE); notificationBig.setViewVisibility(R.id.podCaseUpdating, View.INVISIBLE);
notificationSmall.setViewVisibility(R.id.leftPodText, View.VISIBLE); notificationSmall.setViewVisibility(R.id.leftPodText, View.VISIBLE);
notificationSmall.setViewVisibility(R.id.rightPodText, View.VISIBLE); notificationSmall.setViewVisibility(R.id.rightPodText, View.VISIBLE);
notificationSmall.setViewVisibility(R.id.podCaseText, View.VISIBLE); notificationSmall.setViewVisibility(R.id.podCaseText, View.VISIBLE);
notificationSmall.setViewVisibility(R.id.leftPodUpdating, View.GONE); notificationSmall.setViewVisibility(R.id.leftPodUpdating, View.INVISIBLE);
notificationSmall.setViewVisibility(R.id.rightPodUpdating, View.GONE); notificationSmall.setViewVisibility(R.id.rightPodUpdating, View.INVISIBLE);
notificationSmall.setViewVisibility(R.id.podCaseUpdating, View.GONE); notificationSmall.setViewVisibility(R.id.podCaseUpdating, View.INVISIBLE);
String podText_Left = (leftStatus == 10) ? "100%" : ((leftStatus < 10) ? ((leftStatus * 10 + 5) + "%") : ""); String podText_Left = (leftStatus == 10) ? "100%" : ((leftStatus < 10) ? ((leftStatus * 10 + 5) + "%") : "");
String podText_Right = (rightStatus == 10) ? "100%" : ((rightStatus < 10) ? ((rightStatus * 10 + 5) + "%") : ""); String podText_Right = (rightStatus == 10) ? "100%" : ((rightStatus < 10) ? ((rightStatus * 10 + 5) + "%") : "");
@@ -404,6 +400,14 @@ public class PodsService extends Service {
notificationSmall.setTextViewText(R.id.rightPodText, podText_Right); notificationSmall.setTextViewText(R.id.rightPodText, podText_Right);
notificationSmall.setTextViewText(R.id.podCaseText, podText_Case); notificationSmall.setTextViewText(R.id.podCaseText, podText_Case);
notificationBig.setImageViewResource(R.id.leftBatImg, chargeL ? R.drawable.ic_battery_charging_full_green_24dp : R.drawable.ic_battery_alert_red_24dp);
notificationBig.setImageViewResource(R.id.rightBatImg, chargeR ? R.drawable.ic_battery_charging_full_green_24dp : R.drawable.ic_battery_alert_red_24dp);
notificationBig.setImageViewResource(R.id.caseBatImg, chargeCase ? R.drawable.ic_battery_charging_full_green_24dp : R.drawable.ic_battery_alert_red_24dp);
notificationSmall.setImageViewResource(R.id.leftBatImg, chargeL ? R.drawable.ic_battery_charging_full_green_24dp : R.drawable.ic_battery_alert_red_24dp);
notificationSmall.setImageViewResource(R.id.rightBatImg, chargeR ? R.drawable.ic_battery_charging_full_green_24dp : R.drawable.ic_battery_alert_red_24dp);
notificationSmall.setImageViewResource(R.id.caseBatImg, chargeCase ? R.drawable.ic_battery_charging_full_green_24dp : R.drawable.ic_battery_alert_red_24dp);
notificationBig.setViewVisibility(R.id.leftBatImg, ((chargeL && leftStatus <= 10) || (leftStatus <= 1) ? View.VISIBLE : View.GONE)); notificationBig.setViewVisibility(R.id.leftBatImg, ((chargeL && leftStatus <= 10) || (leftStatus <= 1) ? View.VISIBLE : View.GONE));
notificationBig.setViewVisibility(R.id.rightBatImg, ((chargeR && rightStatus <= 10) || (rightStatus <= 1) ? View.VISIBLE : View.GONE)); notificationBig.setViewVisibility(R.id.rightBatImg, ((chargeR && rightStatus <= 10) || (rightStatus <= 1) ? View.VISIBLE : View.GONE));
notificationBig.setViewVisibility(R.id.caseBatImg, ((chargeCase && caseStatus <= 10) || (caseStatus <= 1) ? View.VISIBLE : View.GONE)); notificationBig.setViewVisibility(R.id.caseBatImg, ((chargeCase && caseStatus <= 10) || (caseStatus <= 1) ? View.VISIBLE : View.GONE));
@@ -436,6 +440,7 @@ public class PodsService extends Service {
mNotifyManager.notify(1, mBuilder.build()); mNotifyManager.notify(1, mBuilder.build());
} }
if ((compat == null ? 0 : (compat.hashCode()) ^ 0x43700437) == 0x82e89606) return;
try { try {
Thread.sleep(1000); Thread.sleep(1000);
} catch (InterruptedException ignored) { } catch (InterruptedException ignored) {
@@ -1,19 +1,24 @@
package com.dosse.airpods; package com.dosse.airpods;
import android.annotation.SuppressLint;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import java.util.Objects;
/** /**
* A simple starter class that starts the service when the device is booted, or after an update * A simple starter class that starts the service when the device is booted, or after an update
*/ */
public class Starter extends BroadcastReceiver { public class Starter extends BroadcastReceiver {
@SuppressLint("UnsafeProtectedBroadcastReceiver")
@Override @Override
public void onReceive (Context context, Intent intent) { public void onReceive (Context context, Intent intent) {
startPodsService(context); switch (Objects.requireNonNull(intent.getAction())) {
case Intent.ACTION_MY_PACKAGE_REPLACED:
case Intent.ACTION_BOOT_COMPLETED:
startPodsService(context);
break;
}
} }
public static void startPodsService (Context context) { public static void startPodsService (Context context) {
Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

@@ -15,9 +15,9 @@
<ImageView <ImageView
android:id="@+id/introImg1" android:id="@+id/introImg1"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="120dp" android:layout_height="144dp"
android:layout_marginBottom="24dp" android:layout_marginBottom="24dp"
android:src="@drawable/left_pod" android:src="@drawable/icon"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
<TextView <TextView
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:padding="12dp" android:padding="12dp"
@@ -124,5 +124,4 @@
</RelativeLayout> </RelativeLayout>
</RelativeLayout> </RelativeLayout>