Merge "Emergency callback mode handling"
This commit is contained in:
committed by
Android (Google) Code Review
commit
45caa44717
@@ -69,6 +69,7 @@ import java.io.FileDescriptor;
|
|||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
|
|
||||||
import com.android.internal.app.IBatteryStats;
|
import com.android.internal.app.IBatteryStats;
|
||||||
|
import com.android.internal.telephony.TelephonyIntents;
|
||||||
import com.android.internal.util.AsyncChannel;
|
import com.android.internal.util.AsyncChannel;
|
||||||
import com.android.server.am.BatteryStatsService;
|
import com.android.server.am.BatteryStatsService;
|
||||||
import com.android.internal.R;
|
import com.android.internal.R;
|
||||||
@@ -96,6 +97,7 @@ public class WifiService extends IWifiManager.Stub {
|
|||||||
private static final int IDLE_REQUEST = 0;
|
private static final int IDLE_REQUEST = 0;
|
||||||
private boolean mScreenOff;
|
private boolean mScreenOff;
|
||||||
private boolean mDeviceIdle;
|
private boolean mDeviceIdle;
|
||||||
|
private boolean mEmergencyCallbackMode = false;
|
||||||
private int mPluggedType;
|
private int mPluggedType;
|
||||||
|
|
||||||
/* Chipset supports background scan */
|
/* Chipset supports background scan */
|
||||||
@@ -996,6 +998,9 @@ public class WifiService extends IWifiManager.Stub {
|
|||||||
int state = intent.getIntExtra(BluetoothAdapter.EXTRA_CONNECTION_STATE,
|
int state = intent.getIntExtra(BluetoothAdapter.EXTRA_CONNECTION_STATE,
|
||||||
BluetoothAdapter.STATE_DISCONNECTED);
|
BluetoothAdapter.STATE_DISCONNECTED);
|
||||||
mWifiStateMachine.sendBluetoothAdapterStateChange(state);
|
mWifiStateMachine.sendBluetoothAdapterStateChange(state);
|
||||||
|
} else if (action.equals(TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED)) {
|
||||||
|
mEmergencyCallbackMode = intent.getBooleanExtra("phoneinECMState", false);
|
||||||
|
updateWifiState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1057,7 +1062,13 @@ public class WifiService extends IWifiManager.Stub {
|
|||||||
private void updateWifiState() {
|
private void updateWifiState() {
|
||||||
boolean lockHeld = mLocks.hasLocks();
|
boolean lockHeld = mLocks.hasLocks();
|
||||||
int strongestLockMode = WifiManager.WIFI_MODE_FULL;
|
int strongestLockMode = WifiManager.WIFI_MODE_FULL;
|
||||||
boolean wifiShouldBeStarted = !mDeviceIdle || lockHeld;
|
boolean wifiShouldBeStarted;
|
||||||
|
|
||||||
|
if (mEmergencyCallbackMode) {
|
||||||
|
wifiShouldBeStarted = false;
|
||||||
|
} else {
|
||||||
|
wifiShouldBeStarted = !mDeviceIdle || lockHeld;
|
||||||
|
}
|
||||||
|
|
||||||
if (lockHeld) {
|
if (lockHeld) {
|
||||||
strongestLockMode = mLocks.getStrongestLockMode();
|
strongestLockMode = mLocks.getStrongestLockMode();
|
||||||
@@ -1097,6 +1108,7 @@ public class WifiService extends IWifiManager.Stub {
|
|||||||
intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);
|
intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);
|
||||||
intentFilter.addAction(ACTION_DEVICE_IDLE);
|
intentFilter.addAction(ACTION_DEVICE_IDLE);
|
||||||
intentFilter.addAction(BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED);
|
intentFilter.addAction(BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED);
|
||||||
|
intentFilter.addAction(TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED);
|
||||||
mContext.registerReceiver(mReceiver, intentFilter);
|
mContext.registerReceiver(mReceiver, intentFilter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ import android.view.WindowManager;
|
|||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
|
|
||||||
import com.android.internal.R;
|
import com.android.internal.R;
|
||||||
|
import com.android.internal.telephony.TelephonyIntents;
|
||||||
import com.android.internal.util.AsyncChannel;
|
import com.android.internal.util.AsyncChannel;
|
||||||
import com.android.internal.util.Protocol;
|
import com.android.internal.util.Protocol;
|
||||||
import com.android.internal.util.State;
|
import com.android.internal.util.State;
|
||||||
@@ -134,6 +135,8 @@ public class WifiP2pService extends IWifiP2pManager.Stub {
|
|||||||
|
|
||||||
/* Airplane mode changed */
|
/* Airplane mode changed */
|
||||||
private static final int AIRPLANE_MODE_CHANGED = BASE + 6;
|
private static final int AIRPLANE_MODE_CHANGED = BASE + 6;
|
||||||
|
/* Emergency callback mode */
|
||||||
|
private static final int EMERGENCY_CALLBACK_MODE = BASE + 7;
|
||||||
|
|
||||||
private final boolean mP2pSupported;
|
private final boolean mP2pSupported;
|
||||||
private final String mDeviceType;
|
private final String mDeviceType;
|
||||||
@@ -172,6 +175,7 @@ public class WifiP2pService extends IWifiP2pManager.Stub {
|
|||||||
IntentFilter filter = new IntentFilter();
|
IntentFilter filter = new IntentFilter();
|
||||||
filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
|
filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
|
||||||
filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
|
filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
|
||||||
|
filter.addAction(TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED);
|
||||||
filter.addAction(WifiManager.WIFI_AP_STATE_CHANGED_ACTION);
|
filter.addAction(WifiManager.WIFI_AP_STATE_CHANGED_ACTION);
|
||||||
mContext.registerReceiver(new WifiStateReceiver(), filter);
|
mContext.registerReceiver(new WifiStateReceiver(), filter);
|
||||||
|
|
||||||
@@ -185,14 +189,19 @@ public class WifiP2pService extends IWifiP2pManager.Stub {
|
|||||||
private class WifiStateReceiver extends BroadcastReceiver {
|
private class WifiStateReceiver extends BroadcastReceiver {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
if (intent.getAction().equals(WifiManager.WIFI_STATE_CHANGED_ACTION)) {
|
String action = intent.getAction();
|
||||||
|
if (action.equals(WifiManager.WIFI_STATE_CHANGED_ACTION)) {
|
||||||
mWifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,
|
mWifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,
|
||||||
WifiManager.WIFI_STATE_DISABLED);
|
WifiManager.WIFI_STATE_DISABLED);
|
||||||
} else if (intent.getAction().equals(WifiManager.WIFI_AP_STATE_CHANGED_ACTION)) {
|
} else if (action.equals(WifiManager.WIFI_AP_STATE_CHANGED_ACTION)) {
|
||||||
mWifiApState = intent.getIntExtra(WifiManager.EXTRA_WIFI_AP_STATE,
|
mWifiApState = intent.getIntExtra(WifiManager.EXTRA_WIFI_AP_STATE,
|
||||||
WifiManager.WIFI_AP_STATE_DISABLED);
|
WifiManager.WIFI_AP_STATE_DISABLED);
|
||||||
} else if (intent.getAction().equals(Intent.ACTION_AIRPLANE_MODE_CHANGED)) {
|
} else if (action.equals(Intent.ACTION_AIRPLANE_MODE_CHANGED)) {
|
||||||
mP2pStateMachine.sendMessage(AIRPLANE_MODE_CHANGED);
|
mP2pStateMachine.sendMessage(AIRPLANE_MODE_CHANGED);
|
||||||
|
} else if (action.equals(TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED)) {
|
||||||
|
if (intent.getBooleanExtra("phoneinECMState", false) == true) {
|
||||||
|
mP2pStateMachine.sendMessage(EMERGENCY_CALLBACK_MODE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -361,6 +370,9 @@ public class WifiP2pService extends IWifiP2pManager.Stub {
|
|||||||
case AIRPLANE_MODE_CHANGED:
|
case AIRPLANE_MODE_CHANGED:
|
||||||
if (isAirplaneModeOn()) sendMessage(WifiP2pManager.DISABLE_P2P);
|
if (isAirplaneModeOn()) sendMessage(WifiP2pManager.DISABLE_P2P);
|
||||||
break;
|
break;
|
||||||
|
case EMERGENCY_CALLBACK_MODE:
|
||||||
|
sendMessage(WifiP2pManager.DISABLE_P2P);
|
||||||
|
break;
|
||||||
// Ignore
|
// Ignore
|
||||||
case WIFI_DISABLE_USER_ACCEPT:
|
case WIFI_DISABLE_USER_ACCEPT:
|
||||||
case WIFI_DISABLE_USER_REJECT:
|
case WIFI_DISABLE_USER_REJECT:
|
||||||
|
|||||||
Reference in New Issue
Block a user