Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2212)

Unified Diff: device/battery/android/java/src/org/chromium/device/battery/BatteryMonitorImpl.java

Issue 833983002: Stop using [Client=...] feature of Mojom for BatteryMonitor (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix comments Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: device/battery/android/java/src/org/chromium/device/battery/BatteryMonitorImpl.java
diff --git a/device/battery/android/java/src/org/chromium/device/battery/BatteryMonitorImpl.java b/device/battery/android/java/src/org/chromium/device/battery/BatteryMonitorImpl.java
index e44158912644a43af4c2c4aaeb1f88e6cd139517..14a5d76fc740b0e875190bafde2a070661bde703 100644
--- a/device/battery/android/java/src/org/chromium/device/battery/BatteryMonitorImpl.java
+++ b/device/battery/android/java/src/org/chromium/device/battery/BatteryMonitorImpl.java
@@ -7,7 +7,9 @@ package org.chromium.device.battery;
import org.chromium.mojo.system.MojoException;
import org.chromium.mojom.device.BatteryMonitor;
import org.chromium.mojom.device.BatteryStatus;
-import org.chromium.mojom.device.BatteryStatusObserver;
+
+import java.util.ArrayList;
+import java.util.List;
/**
* Android implementation of the battery monitor service defined in
@@ -16,12 +18,15 @@ import org.chromium.mojom.device.BatteryStatusObserver;
public class BatteryMonitorImpl implements BatteryMonitor {
// Factory that created this instance and notifies it about battery status changes.
private final BatteryMonitorFactory mFactory;
+ private final List<QueryNextStatusResponse> mCallbacks;
+ private BatteryStatus mStatus;
+ private boolean mStatusToReport;
ppi 2015/01/07 19:37:36 nit: maybe "mHasStatusToReport"?
private boolean mSubscribed;
- private BatteryStatusObserver mClient;
-
public BatteryMonitorImpl(BatteryMonitorFactory batteryMonitorFactory) {
mFactory = batteryMonitorFactory;
+ mCallbacks = new ArrayList<QueryNextStatusResponse>();
+ mStatusToReport = false;
mSubscribed = true;
}
@@ -33,11 +38,6 @@ public class BatteryMonitorImpl implements BatteryMonitor {
}
@Override
- public void setClient(BatteryStatusObserver client) {
- mClient = client;
- }
-
- @Override
public void close() {
unsubscribe();
}
@@ -47,12 +47,26 @@ public class BatteryMonitorImpl implements BatteryMonitor {
unsubscribe();
}
- /**
- * Notifies the client passing the given battery status information.
- */
+ @Override
+ public void queryNextStatus(QueryNextStatusResponse callback) {
+ mCallbacks.add(callback);
+
+ if (mStatusToReport)
ppi 2015/01/07 19:37:36 As per AOSP Java style guide[1], this should be ei
+ reportStatus();
+ }
+
void didChange(BatteryStatus batteryStatus) {
- if (mClient != null) {
- mClient.didChange(batteryStatus);
- }
- };
+ mStatus = batteryStatus;
+ mStatusToReport = true;
+
+ if (!mCallbacks.isEmpty())
ppi 2015/01/07 19:37:36 As mentioned above - for conditionals we need to a
+ reportStatus();
+ }
+
+ void reportStatus() {
+ for (QueryNextStatusResponse callback : mCallbacks)
+ callback.call(mStatus);
+ mCallbacks.clear();
+ mStatusToReport = false;
+ }
}

Powered by Google App Engine
This is Rietveld 408576698