Merge "Add confirmation dialog when turning off cell data from QS" into oc-dr1-dev

This commit is contained in:
TreeHugger Robot
2017-07-25 22:55:08 +00:00
committed by Android (Google) Code Review
3 changed files with 32 additions and 3 deletions

View File

@@ -2046,4 +2046,7 @@
been identified for them as running). [CHAR LIMIT=NONE] -->
<string name="running_foreground_services_msg">Tap for details on battery and data usage</string>
<!-- Prompt to turn off data usage [CHAR LIMIT=NONE] -->
<string name="data_usage_disable_mobile" msgid="8656552431969276305">Turn off mobile data?</string>
</resources>

View File

@@ -16,6 +16,7 @@
package com.android.systemui.qs.tiles;
import android.app.AlertDialog;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -38,8 +39,9 @@ import com.android.systemui.plugins.qs.QSTile.SignalState;
import com.android.systemui.qs.CellTileView;
import com.android.systemui.qs.CellTileView.SignalIcon;
import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.SignalTileView;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.statusbar.phone.SystemUIDialog;
import com.android.systemui.statusbar.policy.KeyguardMonitor;
import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.NetworkController.IconState;
import com.android.systemui.statusbar.policy.NetworkController.SignalCallback;
@@ -55,11 +57,13 @@ public class CellularTile extends QSTileImpl<SignalState> {
private final CellSignalCallback mSignalCallback = new CellSignalCallback();
private final ActivityStarter mActivityStarter;
private final KeyguardMonitor mKeyguardMonitor;
public CellularTile(QSHost host) {
super(host);
mController = Dependency.get(NetworkController.class);
mActivityStarter = Dependency.get(ActivityStarter.class);
mKeyguardMonitor = Dependency.get(KeyguardMonitor.class);
mDataController = mController.getMobileDataController();
mDetailAdapter = new CellularDetailAdapter();
}
@@ -95,7 +99,28 @@ public class CellularTile extends QSTileImpl<SignalState> {
@Override
protected void handleClick() {
mDataController.setMobileDataEnabled(!mDataController.isMobileDataEnabled());
if (mDataController.isMobileDataEnabled()) {
if (mKeyguardMonitor.isSecure() && !mKeyguardMonitor.canSkipBouncer()) {
mActivityStarter.postQSRunnableDismissingKeyguard(() -> {
showDisableDialog();
});
} else {
showDisableDialog();
}
} else {
mDataController.setMobileDataEnabled(true);
}
}
private void showDisableDialog() {
mHost.collapsePanels();
SystemUIDialog.applyFlags(new AlertDialog.Builder(mContext)
.setMessage(R.string.data_usage_disable_mobile)
.setNegativeButton(android.R.string.cancel, null)
.setPositiveButton(
com.android.internal.R.string.alert_windows_notification_turn_off_action,
(d, w) -> mDataController.setMobileDataEnabled(false))
.create()).show();
}
@Override

View File

@@ -69,9 +69,10 @@ public class SystemUIDialog extends AlertDialog {
}
}
public static void applyFlags(AlertDialog dialog) {
public static AlertDialog applyFlags(AlertDialog dialog) {
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL);
dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM
| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
return dialog;
}
}