Include battery info debuglog.

This commit is contained in:
Greyson Parrelli
2026-02-09 11:39:37 -05:00
parent c9bd81d332
commit 2c6524f6c0
3 changed files with 23 additions and 1 deletions

View File

@@ -104,6 +104,7 @@ import org.thoughtcrime.securesms.service.webrtc.AndroidTelecomUtil;
import org.thoughtcrime.securesms.storage.StorageSyncHelper;
import org.thoughtcrime.securesms.util.AppForegroundObserver;
import org.thoughtcrime.securesms.util.AppStartup;
import org.thoughtcrime.securesms.util.DeviceProperties;
import org.thoughtcrime.securesms.util.DynamicTheme;
import org.thoughtcrime.securesms.util.RemoteConfig;
import org.thoughtcrime.securesms.util.SignalLocalMetrics;
@@ -241,7 +242,7 @@ public class ApplicationContext extends Application implements AppForegroundObse
@Override
public void onForeground() {
long startTime = System.currentTimeMillis();
Log.i(TAG, "App is now visible.");
Log.i(TAG, "App is now visible. Battery: " + DeviceProperties.getBatteryLevel(this) + "% (charging: " + DeviceProperties.isCharging(this) + ")");
AppDependencies.getFrameRateTracker().start();
AppDependencies.getMegaphoneRepository().onAppForegrounded();

View File

@@ -79,6 +79,7 @@ class LogSectionSystemInfo : LogSection {
Telecom : $telecomSupported
User-Agent : ${StandardUserAgentInterceptor.USER_AGENT}
SlowNotifications : ${isHavingDelayedNotifications()}
Battery Level : ${DeviceProperties.getBatteryLevel(context)}% (charging: ${DeviceProperties.isCharging(context)})
IgnoringBatteryOpt: ${PowerManagerCompat.isIgnoringBatteryOptimizations(context)}
BkgRestricted : ${if (Build.VERSION.SDK_INT >= 28) DeviceProperties.isBackgroundRestricted(context) else "N/A"}
Data Saver : ${DeviceProperties.getDataSaverState(context)}

View File

@@ -4,6 +4,7 @@ import android.app.ActivityManager;
import android.app.ActivityManager.MemoryInfo;
import android.content.Context;
import android.net.ConnectivityManager;
import android.os.BatteryManager;
import android.os.Build;
import androidx.annotation.NonNull;
@@ -79,6 +80,25 @@ public final class DeviceProperties {
return activityManager.isBackgroundRestricted();
}
/**
* Returns the current battery level as a percentage (0-100), or -1 if unavailable.
*/
public static int getBatteryLevel(@NonNull Context context) {
BatteryManager batteryManager = (BatteryManager) context.getSystemService(Context.BATTERY_SERVICE);
if (batteryManager != null) {
return batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);
}
return -1;
}
/**
* Returns whether the device is currently charging.
*/
public static boolean isCharging(@NonNull Context context) {
BatteryManager batteryManager = (BatteryManager) context.getSystemService(Context.BATTERY_SERVICE);
return batteryManager != null && batteryManager.isCharging();
}
public static DataSaverState getDataSaverState(@NonNull Context context) {
if (Build.VERSION.SDK_INT >= 24) {
switch (ServiceUtil.getConnectivityManager(context).getRestrictBackgroundStatus()) {