From 0dc8618dc70a6aa23ea030eeda1ea9934b4a04c6 Mon Sep 17 00:00:00 2001 From: Wink Saville Date: Wed, 23 Feb 2011 17:28:05 -0800 Subject: Do not start RILReceiver if wifi-only. By not starting RILReceiver we don't waste any cycles trying to communicate with a vendor ril which may not exist. This allows a wifi-only device to operate as expected and the system to gracefully handle the missing radio as ril requests will report RADIO_NOT_AVAILABLE. Change-Id: I6c6f60830486c5f0447b3b9eb44c8b1f2d70c517 --- .../java/com/android/internal/telephony/RIL.java | 26 +++++++++++++++------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/telephony/java/com/android/internal/telephony/RIL.java b/telephony/java/com/android/internal/telephony/RIL.java index 91b19a97f17a..657377f94d1c 100644 --- a/telephony/java/com/android/internal/telephony/RIL.java +++ b/telephony/java/com/android/internal/telephony/RIL.java @@ -244,6 +244,8 @@ public final class RIL extends BaseCommands implements CommandsInterface { Object mLastNITZTimeInfo; + private static final String WIFI_ONLY_CARRIER = "wifi-only"; + //***** Events static final int EVENT_SEND = 1; @@ -656,14 +658,22 @@ public final class RIL extends BaseCommands implements CommandsInterface { Looper looper = mSenderThread.getLooper(); mSender = new RILSender(looper); - mReceiver = new RILReceiver(); - mReceiverThread = new Thread(mReceiver, "RILReceiver"); - mReceiverThread.start(); - - IntentFilter filter = new IntentFilter(); - filter.addAction(Intent.ACTION_SCREEN_ON); - filter.addAction(Intent.ACTION_SCREEN_OFF); - context.registerReceiver(mIntentReceiver, filter); + // TODO: Provide a common API for determining if a + // device is wifi-only. bug: 3480713 + String carrier = SystemProperties.get("ro.carrier"); + if (WIFI_ONLY_CARRIER.equals(carrier)) { + riljLog("Not starting RILReceiver: wifi-only"); + } else { + riljLog("Starting RILReceiver"); + mReceiver = new RILReceiver(); + mReceiverThread = new Thread(mReceiver, "RILReceiver"); + mReceiverThread.start(); + + IntentFilter filter = new IntentFilter(); + filter.addAction(Intent.ACTION_SCREEN_ON); + filter.addAction(Intent.ACTION_SCREEN_OFF); + context.registerReceiver(mIntentReceiver, filter); + } } //***** CommandsInterface implementation -- cgit v1.2.3-59-g8ed1b