summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/TelephonyRegistry.java
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-02 22:54:33 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-02 22:54:33 -0800
commit3dec7d563a2f3e1eb967ce2054a00b6620e3558c (patch)
treeaa3b0365c47cb3c1607c0dc76c8d32b4046fc287 /services/java/com/android/server/TelephonyRegistry.java
parent15ab3eae2ec3d73b3e8aa60b33ae41445bf83f4b (diff)
auto import from //depot/cupcake/@137055
Diffstat (limited to 'services/java/com/android/server/TelephonyRegistry.java')
-rw-r--r--services/java/com/android/server/TelephonyRegistry.java20
1 files changed, 18 insertions, 2 deletions
diff --git a/services/java/com/android/server/TelephonyRegistry.java b/services/java/com/android/server/TelephonyRegistry.java
index b5cf1aabd702..5e5fb935a1e8 100644
--- a/services/java/com/android/server/TelephonyRegistry.java
+++ b/services/java/com/android/server/TelephonyRegistry.java
@@ -33,12 +33,14 @@ import java.util.ArrayList;
import java.io.FileDescriptor;
import java.io.PrintWriter;
+import com.android.internal.app.IBatteryStats;
import com.android.internal.telephony.ITelephonyRegistry;
import com.android.internal.telephony.IPhoneStateListener;
import com.android.internal.telephony.DefaultPhoneNotifier;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneStateIntentReceiver;
import com.android.internal.telephony.TelephonyIntents;
+import com.android.server.am.BatteryStatsService;
/**
@@ -55,8 +57,9 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
int events;
}
- private Context mContext;
- private ArrayList<Record> mRecords = new ArrayList();
+ private final Context mContext;
+ private final ArrayList<Record> mRecords = new ArrayList();
+ private final IBatteryStats mBatteryStats;
private int mCallState = TelephonyManager.CALL_STATE_IDLE;
private String mCallIncomingNumber = "";
@@ -81,6 +84,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
TelephonyRegistry(Context context) {
CellLocation.getEmpty().fillInNotifierBundle(mCellLocation);
mContext = context;
+ mBatteryStats = BatteryStatsService.getService();
}
public void listen(String pkgForDebug, IPhoneStateListener callback, int events,
@@ -414,6 +418,18 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
}
private void broadcastCallStateChanged(int state, String incomingNumber) {
+ long ident = Binder.clearCallingIdentity();
+ try {
+ if (state == TelephonyManager.CALL_STATE_IDLE) {
+ mBatteryStats.notePhoneOff();
+ } else {
+ mBatteryStats.notePhoneOn();
+ }
+ } catch (RemoteException e) {
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+
Intent intent = new Intent(TelephonyManager.ACTION_PHONE_STATE_CHANGED);
intent.putExtra(Phone.STATE_KEY,
DefaultPhoneNotifier.convertCallState(state).toString());