From 86992fe5c8d9754fce2c2c0c1b557bef9e63fadb Mon Sep 17 00:00:00 2001 From: Matt Walliser <mattwalliser@google.com> Date: Tue, 18 Apr 2023 00:23:43 +0000 Subject: [PATCH] Move IsBatteryCharging from extras bundle to API. Bug: 273947205 Test: atest -c android.net.wifi.sharedconnectivity.cts Change-Id: I1d6e50e07eeca9d3b681b6a359355d23e90d93b0 --- core/api/system-current.txt | 2 + .../app/NetworkProviderInfo.java | 43 ++++++++++++++----- 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/core/api/system-current.txt b/core/api/system-current.txt index dab8a1075366..8ecb63487f1e 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -10112,6 +10112,7 @@ package android.net.wifi.sharedconnectivity.app { method public int getDeviceType(); method @NonNull public android.os.Bundle getExtras(); method @NonNull public String getModelName(); + method public boolean isBatteryCharging(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.sharedconnectivity.app.NetworkProviderInfo> CREATOR; field public static final int DEVICE_TYPE_AUTO = 5; // 0x5 @@ -10125,6 +10126,7 @@ package android.net.wifi.sharedconnectivity.app { public static final class NetworkProviderInfo.Builder { ctor public NetworkProviderInfo.Builder(@NonNull String, @NonNull String); method @NonNull public android.net.wifi.sharedconnectivity.app.NetworkProviderInfo build(); + method @NonNull public android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.Builder setBatteryCharging(boolean); method @NonNull public android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.Builder setBatteryPercentage(@IntRange(from=0, to=100) int); method @NonNull public android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.Builder setConnectionStrength(@IntRange(from=0, to=4) int); method @NonNull public android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.Builder setDeviceName(@NonNull String); diff --git a/wifi/java/src/android/net/wifi/sharedconnectivity/app/NetworkProviderInfo.java b/wifi/java/src/android/net/wifi/sharedconnectivity/app/NetworkProviderInfo.java index c6e675ade262..638791953fde 100644 --- a/wifi/java/src/android/net/wifi/sharedconnectivity/app/NetworkProviderInfo.java +++ b/wifi/java/src/android/net/wifi/sharedconnectivity/app/NetworkProviderInfo.java @@ -84,17 +84,12 @@ public final class NetworkProviderInfo implements Parcelable { public @interface DeviceType { } - /** - * Key in extras bundle indicating that the device battery is charging. - * @hide - */ - public static final String EXTRA_KEY_IS_BATTERY_CHARGING = "is_battery_charging"; - @DeviceType private final int mDeviceType; private final String mDeviceName; private final String mModelName; private final int mBatteryPercentage; + private final boolean mIsBatteryCharging; private final int mConnectionStrength; private final Bundle mExtras; @@ -106,6 +101,7 @@ public final class NetworkProviderInfo implements Parcelable { private String mDeviceName; private String mModelName; private int mBatteryPercentage; + private boolean mIsBatteryCharging; private int mConnectionStrength; private Bundle mExtras = Bundle.EMPTY; @@ -166,6 +162,18 @@ public final class NetworkProviderInfo implements Parcelable { return this; } + /** + * Sets if the battery of the remote device is charging. + * + * @param isBatteryCharging True if battery is charging. + * @return Returns the Builder object. + */ + @NonNull + public Builder setBatteryCharging(boolean isBatteryCharging) { + mIsBatteryCharging = isBatteryCharging; + return this; + } + /** * Sets the displayed connection strength of the remote device to the internet. * @@ -197,7 +205,7 @@ public final class NetworkProviderInfo implements Parcelable { @NonNull public NetworkProviderInfo build() { return new NetworkProviderInfo(mDeviceType, mDeviceName, mModelName, mBatteryPercentage, - mConnectionStrength, mExtras); + mIsBatteryCharging, mConnectionStrength, mExtras); } } @@ -217,13 +225,14 @@ public final class NetworkProviderInfo implements Parcelable { } private NetworkProviderInfo(@DeviceType int deviceType, @NonNull String deviceName, - @NonNull String modelName, int batteryPercentage, int connectionStrength, - @NonNull Bundle extras) { + @NonNull String modelName, int batteryPercentage, boolean isBatteryCharging, + int connectionStrength, @NonNull Bundle extras) { validate(deviceType, deviceName, modelName, batteryPercentage, connectionStrength); mDeviceType = deviceType; mDeviceName = deviceName; mModelName = modelName; mBatteryPercentage = batteryPercentage; + mIsBatteryCharging = isBatteryCharging; mConnectionStrength = connectionStrength; mExtras = extras; } @@ -268,6 +277,15 @@ public final class NetworkProviderInfo implements Parcelable { return mBatteryPercentage; } + /** + * Gets the charging state of the battery on the remote device. + * + * @return Returns true if the battery of the remote device is charging. + */ + public boolean isBatteryCharging() { + return mIsBatteryCharging; + } + /** * Gets the displayed connection strength of the remote device to the internet. * @@ -296,13 +314,14 @@ public final class NetworkProviderInfo implements Parcelable { && Objects.equals(mDeviceName, other.mDeviceName) && Objects.equals(mModelName, other.mModelName) && mBatteryPercentage == other.mBatteryPercentage + && mIsBatteryCharging == other.mIsBatteryCharging && mConnectionStrength == other.mConnectionStrength; } @Override public int hashCode() { return Objects.hash(mDeviceType, mDeviceName, mModelName, mBatteryPercentage, - mConnectionStrength); + mIsBatteryCharging, mConnectionStrength); } @Override @@ -311,6 +330,7 @@ public final class NetworkProviderInfo implements Parcelable { dest.writeString(mDeviceName); dest.writeString(mModelName); dest.writeInt(mBatteryPercentage); + dest.writeBoolean(mIsBatteryCharging); dest.writeInt(mConnectionStrength); dest.writeBundle(mExtras); } @@ -328,7 +348,7 @@ public final class NetworkProviderInfo implements Parcelable { @NonNull public static NetworkProviderInfo readFromParcel(@NonNull Parcel in) { return new NetworkProviderInfo(in.readInt(), in.readString(), in.readString(), in.readInt(), - in.readInt(), in.readBundle()); + in.readBoolean(), in.readInt(), in.readBundle()); } @NonNull @@ -351,6 +371,7 @@ public final class NetworkProviderInfo implements Parcelable { .append(", deviceName=").append(mDeviceName) .append(", modelName=").append(mModelName) .append(", batteryPercentage=").append(mBatteryPercentage) + .append(", isBatteryCharging=").append(mIsBatteryCharging) .append(", connectionStrength=").append(mConnectionStrength) .append(", extras=").append(mExtras.toString()) .append("]").toString(); -- GitLab