[Settings] Avoid access Controller from Slice

AirplaneModePreferenceController is designed to be run in UI thread.
However, MobileDataSlice is designed to be run in SliceProvider.

Accessing AirplaneModePreferenceController within SliceProvider which
create a possibility of crash.

Bug: 145689275
Test: manual
Change-Id: Ic9eee407917a94c7247feb3afc709d4642cd9900
This commit is contained in:
Bonian Chen
2019-12-13 13:34:12 +08:00
parent ada1f6b10b
commit 9d49e1b51f

View File

@@ -38,11 +38,11 @@ import androidx.slice.builders.SliceAction;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.network.AirplaneModePreferenceController;
import com.android.settings.network.MobileDataContentObserver; import com.android.settings.network.MobileDataContentObserver;
import com.android.settings.slices.CustomSliceRegistry; import com.android.settings.slices.CustomSliceRegistry;
import com.android.settings.slices.CustomSliceable; import com.android.settings.slices.CustomSliceable;
import com.android.settings.slices.SliceBackgroundWorker; import com.android.settings.slices.SliceBackgroundWorker;
import com.android.settingslib.WirelessUtils;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
@@ -184,10 +184,7 @@ public class MobileDataSlice implements CustomSliceable {
@VisibleForTesting @VisibleForTesting
boolean isAirplaneModeEnabled() { boolean isAirplaneModeEnabled() {
// Generic key since we only want the method check - no UI. return WirelessUtils.isAirplaneModeOn(mContext);
AirplaneModePreferenceController controller = new AirplaneModePreferenceController(mContext,
"key" /* Key */);
return controller.isChecked();
} }
@VisibleForTesting @VisibleForTesting