Merge "BluetoothManager: Make requestControllerActivityInfo one call" into nyc-dev

This commit is contained in:
Adam Lesinski
2016-05-12 00:59:28 +00:00
committed by Android (Google) Code Review
4 changed files with 100 additions and 112 deletions

View File

@@ -472,12 +472,6 @@ public final class BluetoothAdapter {
private static final int ADDRESS_LENGTH = 17; private static final int ADDRESS_LENGTH = 17;
private static final int CONTROLLER_ENERGY_UPDATE_TIMEOUT_MILLIS = 30;
/** @hide */
public static final int ACTIVITY_ENERGY_INFO_CACHED = 0;
/** @hide */
public static final int ACTIVITY_ENERGY_INFO_REFRESHED = 1;
/** /**
* Lazily initialized singleton. Guaranteed final after first object * Lazily initialized singleton. Guaranteed final after first object
* constructed. * constructed.
@@ -1374,13 +1368,13 @@ public final class BluetoothAdapter {
* @return a record with {@link BluetoothActivityEnergyInfo} or null if * @return a record with {@link BluetoothActivityEnergyInfo} or null if
* report is unavailable or unsupported * report is unavailable or unsupported
* @deprecated use the asynchronous * @deprecated use the asynchronous
* {@link #requestControllerActivityEnergyInfo(int, ResultReceiver)} instead. * {@link #requestControllerActivityEnergyInfo(ResultReceiver)} instead.
* @hide * @hide
*/ */
@Deprecated @Deprecated
public BluetoothActivityEnergyInfo getControllerActivityEnergyInfo(int updateType) { public BluetoothActivityEnergyInfo getControllerActivityEnergyInfo(int updateType) {
SynchronousResultReceiver receiver = new SynchronousResultReceiver(); SynchronousResultReceiver receiver = new SynchronousResultReceiver();
requestControllerActivityEnergyInfo(updateType, receiver); requestControllerActivityEnergyInfo(receiver);
try { try {
SynchronousResultReceiver.Result result = receiver.awaitResult(1000); SynchronousResultReceiver.Result result = receiver.awaitResult(1000);
if (result.bundle != null) { if (result.bundle != null) {
@@ -1400,36 +1394,26 @@ public final class BluetoothAdapter {
* A null value for the activity info object may be sent if the bluetooth service is * A null value for the activity info object may be sent if the bluetooth service is
* unreachable or the device does not support reporting such information. * unreachable or the device does not support reporting such information.
* *
* @param updateType Type of info, cached vs refreshed.
* @param result The callback to which to send the activity info. * @param result The callback to which to send the activity info.
* @hide * @hide
*/ */
public void requestControllerActivityEnergyInfo(int updateType, ResultReceiver result) { public void requestControllerActivityEnergyInfo(ResultReceiver result) {
if (getState() != STATE_ON) {
result.send(0, null);
return;
}
try { try {
if (!mService.isActivityAndEnergyReportingSupported()) { synchronized(mManagerCallback) {
result.send(0, null); if (mService != null) {
return;
}
synchronized(this) {
if (updateType == ACTIVITY_ENERGY_INFO_REFRESHED) {
mService.getActivityEnergyInfoFromController();
wait(CONTROLLER_ENERGY_UPDATE_TIMEOUT_MILLIS);
}
mService.requestActivityInfo(result); mService.requestActivityInfo(result);
result = null;
}
} }
} catch (InterruptedException e) {
Log.e(TAG, "getControllerActivityEnergyInfoCallback wait interrupted: " + e);
result.send(0, null);
} catch (RemoteException e) { } catch (RemoteException e) {
Log.e(TAG, "getControllerActivityEnergyInfoCallback: " + e); Log.e(TAG, "getControllerActivityEnergyInfoCallback: " + e);
} finally {
if (result != null) {
// Only send an immediate result if we failed.
result.send(0, null); result.send(0, null);
} }
} }
}
/** /**
* Return the set of {@link BluetoothDevice} objects that are bonded * Return the set of {@link BluetoothDevice} objects that are bonded

View File

@@ -102,7 +102,6 @@ interface IBluetooth
boolean isOffloadedFilteringSupported(); boolean isOffloadedFilteringSupported();
boolean isOffloadedScanBatchingSupported(); boolean isOffloadedScanBatchingSupported();
boolean isActivityAndEnergyReportingSupported(); boolean isActivityAndEnergyReportingSupported();
void getActivityEnergyInfoFromController();
BluetoothActivityEnergyInfo reportActivityInfo(); BluetoothActivityEnergyInfo reportActivityInfo();
/** /**

View File

@@ -309,6 +309,8 @@ public class ResourcesImpl {
public void updateConfiguration(Configuration config, DisplayMetrics metrics, public void updateConfiguration(Configuration config, DisplayMetrics metrics,
CompatibilityInfo compat) { CompatibilityInfo compat) {
Trace.traceBegin(Trace.TRACE_TAG_RESOURCES, "ResourcesImpl#updateConfiguration");
try {
synchronized (mAccessLock) { synchronized (mAccessLock) {
if (false) { if (false) {
Slog.i(TAG, "**** Updating config of " + this + ": old config is " Slog.i(TAG, "**** Updating config of " + this + ": old config is "
@@ -342,7 +344,8 @@ public class ResourcesImpl {
} }
if (mConfiguration.densityDpi != Configuration.DENSITY_DPI_UNDEFINED) { if (mConfiguration.densityDpi != Configuration.DENSITY_DPI_UNDEFINED) {
mMetrics.densityDpi = mConfiguration.densityDpi; mMetrics.densityDpi = mConfiguration.densityDpi;
mMetrics.density = mConfiguration.densityDpi * DisplayMetrics.DENSITY_DEFAULT_SCALE; mMetrics.density =
mConfiguration.densityDpi * DisplayMetrics.DENSITY_DEFAULT_SCALE;
} }
mMetrics.scaledDensity = mMetrics.density * mConfiguration.fontScale; mMetrics.scaledDensity = mMetrics.density * mConfiguration.fontScale;
@@ -359,7 +362,8 @@ public class ResourcesImpl {
final int keyboardHidden; final int keyboardHidden;
if (mConfiguration.keyboardHidden == Configuration.KEYBOARDHIDDEN_NO if (mConfiguration.keyboardHidden == Configuration.KEYBOARDHIDDEN_NO
&& mConfiguration.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) { && mConfiguration.hardKeyboardHidden
== Configuration.HARDKEYBOARDHIDDEN_YES) {
keyboardHidden = Configuration.KEYBOARDHIDDEN_SOFT; keyboardHidden = Configuration.KEYBOARDHIDDEN_SOFT;
} else { } else {
keyboardHidden = mConfiguration.keyboardHidden; keyboardHidden = mConfiguration.keyboardHidden;
@@ -394,6 +398,9 @@ public class ResourcesImpl {
mPluralRule = PluralRules.forLocale(mConfiguration.getLocales().get(0)); mPluralRule = PluralRules.forLocale(mConfiguration.getLocales().get(0));
} }
} }
} finally {
Trace.traceEnd(Trace.TRACE_TAG_RESOURCES);
}
} }
/** /**

View File

@@ -1448,9 +1448,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub
final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
if (adapter != null) { if (adapter != null) {
bluetoothReceiver = new SynchronousResultReceiver(); bluetoothReceiver = new SynchronousResultReceiver();
adapter.requestControllerActivityEnergyInfo( adapter.requestControllerActivityEnergyInfo(bluetoothReceiver);
BluetoothAdapter.ACTIVITY_ENERGY_INFO_REFRESHED,
bluetoothReceiver);
} }
} }