From 1d89a19207b14f3717afbf403732dca0f286e1ec Mon Sep 17 00:00:00 2001 From: Vasu Nori Date: Fri, 11 Dec 2015 11:56:50 -0800 Subject: [PATCH] When Airplane mode is changed due to Voice Intent, use the system provided ConnectionManager method to do that, instead of changing it directly using Settings.Global.putInt() - because that doesn't case ACTION_AIRPLANE_MODE_CHANGED intent to be broadcast. This breaks Google Search App (GSA) code that relies on the above broadcast to do a variety of things. Change-Id: I2aa61643ed23b373aa362a59af83427a4548c492 --- src/com/android/settings/AirplaneModeVoiceActivity.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/AirplaneModeVoiceActivity.java b/src/com/android/settings/AirplaneModeVoiceActivity.java index e0649e4b9f1..21bfef2053d 100644 --- a/src/com/android/settings/AirplaneModeVoiceActivity.java +++ b/src/com/android/settings/AirplaneModeVoiceActivity.java @@ -16,7 +16,9 @@ package com.android.settings; +import android.content.Context; import android.content.Intent; +import android.net.ConnectivityManager; import android.provider.Settings; import android.util.Log; @@ -31,9 +33,10 @@ public class AirplaneModeVoiceActivity extends VoiceSettingsActivity { protected boolean onVoiceSettingInteraction(Intent intent) { if (intent.hasExtra(Settings.EXTRA_AIRPLANE_MODE_ENABLED)) { - Settings.Global.putInt(getContentResolver(), - Settings.Global.AIRPLANE_MODE_ON, - intent.getBooleanExtra(Settings.EXTRA_AIRPLANE_MODE_ENABLED, false) ? 1 : 0); + ConnectivityManager mgr = (ConnectivityManager) getSystemService( + Context.CONNECTIVITY_SERVICE); + mgr.setAirplaneMode(intent.getBooleanExtra( + Settings.EXTRA_AIRPLANE_MODE_ENABLED, false)); } else { Log.v(TAG, "Missing airplane mode extra"); }