Charging trigger bug fixed

This commit is contained in:
jens 2023-08-24 20:04:05 +02:00
parent 36173f2fcb
commit ea01806915
3 changed files with 36 additions and 33 deletions

View File

@ -36,7 +36,7 @@ android {
{ {
dimension "version" dimension "version"
versionNameSuffix "-googlePlay" versionNameSuffix "-googlePlay"
targetSdkVersion 31 targetSdkVersion 32
} }
/* /*

View File

@ -32,21 +32,21 @@ public class BatteryReceiver extends BroadcastReceiver implements AutomationList
if(!batteryReceiverActive) if(!batteryReceiverActive)
{ {
BatteryReceiver.automationServiceRef = automationServiceRef; BatteryReceiver.automationServiceRef = automationServiceRef;
if(batteryInfoReceiverInstance == null) if(batteryInfoReceiverInstance == null)
batteryInfoReceiverInstance = new BatteryReceiver(); batteryInfoReceiverInstance = new BatteryReceiver();
if(batteryIntentFilter == null) if(batteryIntentFilter == null)
{ {
batteryIntentFilter = new IntentFilter(); batteryIntentFilter = new IntentFilter();
batteryIntentFilter.addAction(Intent.ACTION_BATTERY_CHANGED); batteryIntentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);
batteryIntentFilter.addAction(Intent.ACTION_BATTERY_LOW); batteryIntentFilter.addAction(Intent.ACTION_BATTERY_LOW);
// batteryIntentFilter.addAction(Intent.ACTION_POWER_CONNECTED); // batteryIntentFilter.addAction(Intent.ACTION_POWER_CONNECTED);
// batteryIntentFilter.addAction(Intent.ACTION_POWER_DISCONNECTED); // batteryIntentFilter.addAction(Intent.ACTION_POWER_DISCONNECTED);
} }
batteryStatus = automationServiceRef.registerReceiver(batteryInfoReceiverInstance, batteryIntentFilter); batteryStatus = automationServiceRef.registerReceiver(batteryInfoReceiverInstance, batteryIntentFilter);
batteryReceiverActive = true; batteryReceiverActive = true;
} }
} }
@ -59,16 +59,16 @@ public class BatteryReceiver extends BroadcastReceiver implements AutomationList
automationServiceRef.unregisterReceiver(batteryInfoReceiverInstance); automationServiceRef.unregisterReceiver(batteryInfoReceiverInstance);
batteryInfoReceiverInstance = null; batteryInfoReceiverInstance = null;
} }
batteryReceiverActive = false; batteryReceiverActive = false;
} }
} }
public static boolean isBatteryReceiverActive() public static boolean isBatteryReceiverActive()
{ {
return batteryReceiverActive; return batteryReceiverActive;
} }
public static boolean isUsbHostConnected() public static boolean isUsbHostConnected()
{ {
return usbHostConnected; return usbHostConnected;
@ -80,7 +80,7 @@ public class BatteryReceiver extends BroadcastReceiver implements AutomationList
} }
private static int currentChargingState = 0; //0=unknown, 1=no, 2=yes private static int currentChargingState = 0; //0=unknown, 1=no, 2=yes
public static int getCurrentChargingState() public static int getCurrentChargingState()
{ {
return currentChargingState; return currentChargingState;
@ -90,11 +90,11 @@ public class BatteryReceiver extends BroadcastReceiver implements AutomationList
public void onReceive(Context context, Intent intent) public void onReceive(Context context, Intent intent)
{ {
Miscellaneous.logEvent("i", "BatteryReceiver", "Received event " + intent.getAction(), 5); Miscellaneous.logEvent("i", "BatteryReceiver", "Received event " + intent.getAction(), 5);
if (intent == null) if (intent == null)
return; return;
if (context == null) if (context == null)
return; return;
if(intent.getAction().equals(Intent.ACTION_BATTERY_LOW)) if(intent.getAction().equals(Intent.ACTION_BATTERY_LOW))
{ {
@ -105,12 +105,12 @@ public class BatteryReceiver extends BroadcastReceiver implements AutomationList
try try
{ {
batteryLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); batteryLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
// int scale = -1; // int scale = -1;
// int voltage = -1; // int voltage = -1;
// int temp = -1; // int temp = -1;
// scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); // scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
// temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1); // temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);
// voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1); // voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);
Log.i("Battery", "Level: " + String.valueOf(batteryLevel)); Log.i("Battery", "Level: " + String.valueOf(batteryLevel));
this.actionBatteryLevel(context); this.actionBatteryLevel(context);
@ -121,7 +121,7 @@ public class BatteryReceiver extends BroadcastReceiver implements AutomationList
switch(statusPlugged) switch(statusPlugged)
{ {
case BatteryManager.BATTERY_PLUGGED_AC: case BatteryManager.BATTERY_PLUGGED_AC:
// Toast.makeText(context, "Regular charging", Toast.LENGTH_LONG).show(); // Toast.makeText(context, "Regular charging", Toast.LENGTH_LONG).show();
Miscellaneous.logEvent("i", "BatteryReceiver", "Regular charging.", 5); Miscellaneous.logEvent("i", "BatteryReceiver", "Regular charging.", 5);
this.actionCharging(context); this.actionCharging(context);
break; break;
@ -138,6 +138,7 @@ public class BatteryReceiver extends BroadcastReceiver implements AutomationList
this.actionCharging(context); this.actionCharging(context);
break; break;
case BatteryManager.BATTERY_STATUS_DISCHARGING: case BatteryManager.BATTERY_STATUS_DISCHARGING:
case BatteryManager.BATTERY_STATUS_NOT_CHARGING:
this.actionDischarging(context); this.actionDischarging(context);
break; break;
} }
@ -148,7 +149,7 @@ public class BatteryReceiver extends BroadcastReceiver implements AutomationList
} }
} }
} }
public static int isDeviceCharging(Context context) public static int isDeviceCharging(Context context)
{ {
switch(currentChargingState) switch(currentChargingState)
@ -163,10 +164,10 @@ public class BatteryReceiver extends BroadcastReceiver implements AutomationList
Miscellaneous.logEvent("i", "ChargingInfo", "Status of device charging was requested. Device is charging.", 3); Miscellaneous.logEvent("i", "ChargingInfo", "Status of device charging was requested. Device is charging.", 3);
break; break;
} }
return currentChargingState; return currentChargingState;
} }
private void actionCharging(Context context) private void actionCharging(Context context)
{ {
if(currentChargingState != BatteryManager.BATTERY_STATUS_CHARGING) // Avoid flooding the log. This event will occur on a regular basis even though charging state wasn't changed. if(currentChargingState != BatteryManager.BATTERY_STATUS_CHARGING) // Avoid flooding the log. This event will occur on a regular basis even though charging state wasn't changed.
@ -183,7 +184,7 @@ public class BatteryReceiver extends BroadcastReceiver implements AutomationList
} }
} }
} }
private void actionBatteryLevel(Context context) private void actionBatteryLevel(Context context)
{ {
Miscellaneous.logEvent("i", "BatteryReceiver", "Battery level has changed.", 3); Miscellaneous.logEvent("i", "BatteryReceiver", "Battery level has changed.", 3);
@ -195,7 +196,7 @@ public class BatteryReceiver extends BroadcastReceiver implements AutomationList
ruleCandidates.get(i).activate(automationServiceRef, false); ruleCandidates.get(i).activate(automationServiceRef, false);
} }
} }
private void actionDischarging(Context context) private void actionDischarging(Context context)
{ {
if(currentChargingState != BatteryManager.BATTERY_STATUS_UNKNOWN) // Avoid flooding the log. This event will occur on a regular basis even though charging state wasn't changed. if(currentChargingState != BatteryManager.BATTERY_STATUS_UNKNOWN) // Avoid flooding the log. This event will occur on a regular basis even though charging state wasn't changed.
@ -210,17 +211,17 @@ public class BatteryReceiver extends BroadcastReceiver implements AutomationList
if(ruleCandidates.get(i).getsGreenLight(context)) if(ruleCandidates.get(i).getsGreenLight(context))
ruleCandidates.get(i).activate(automationServiceRef, false); ruleCandidates.get(i).activate(automationServiceRef, false);
} }
this.actionUsbDisconnected(context); this.actionUsbDisconnected(context);
} }
} }
private void actionUsbConnected(Context context) private void actionUsbConnected(Context context)
{ {
// Event usbConnected // Event usbConnected
// Miscellaneous.logEvent("i", "BatteryReceiver", "BATTERY_PLUGGED_USB"); // Miscellaneous.logEvent("i", "BatteryReceiver", "BATTERY_PLUGGED_USB");
if(!usbHostConnected) if(!usbHostConnected)
{ {
usbHostConnected = true; usbHostConnected = true;
@ -234,15 +235,15 @@ public class BatteryReceiver extends BroadcastReceiver implements AutomationList
if(oneRule.getsGreenLight(context)) if(oneRule.getsGreenLight(context))
oneRule.activate(automationServiceRef, false); oneRule.activate(automationServiceRef, false);
} }
this.actionCharging(context); this.actionCharging(context);
} }
} }
private void actionUsbDisconnected(Context context) private void actionUsbDisconnected(Context context)
{ {
// Event usbDisConnected // Event usbDisConnected
if(usbHostConnected) if(usbHostConnected)
{ {
usbHostConnected = false; usbHostConnected = false;

View File

@ -1 +1,3 @@
* Fixed: Added device admin permission for start-phone-call action * Fixed: Added device admin permission for start-phone-call action
* Fixed: Trigger "battery is charging" would only fire once and not after disconnecting and connecting charger
* Change: Was forced to raise targetSdk to 32 for Google Play version. If that should break something, consider switching to the F-Droid or APK version.