Don't show dialog for USB Accessory's information URL if device is not yet provisioned.

Bug: 246542917
Test: During SUW, connect to another phone running CTS Verifier USB Companion app (accessory test companion) and verify that no dialog shows up.
Change-Id: I52f4092a8a359451377e5ccd3a357917e8160152
This commit is contained in:
Khoa Hong
2022-11-07 11:15:02 +08:00
parent 4f1ceac15e
commit 1686623194
2 changed files with 27 additions and 3 deletions

View File

@@ -29,6 +29,7 @@ import com.android.systemui.sensorprivacy.television.TvUnblockSensorActivity;
import com.android.systemui.settings.brightness.BrightnessDialog;
import com.android.systemui.statusbar.tv.notifications.TvNotificationPanelActivity;
import com.android.systemui.tuner.TunerActivity;
import com.android.systemui.usb.UsbAccessoryUriActivity;
import com.android.systemui.usb.UsbConfirmActivity;
import com.android.systemui.usb.UsbDebuggingActivity;
import com.android.systemui.usb.UsbDebuggingSecondaryUserActivity;
@@ -94,6 +95,12 @@ public abstract class DefaultActivityBinder {
@ClassKey(UsbConfirmActivity.class)
public abstract Activity bindUsbConfirmActivity(UsbConfirmActivity activity);
/** Inject into UsbAccessoryUriActivity. */
@Binds
@IntoMap
@ClassKey(UsbAccessoryUriActivity.class)
public abstract Activity bindUsbAccessoryUriActivity(UsbAccessoryUriActivity activity);
/** Inject into CreateUserActivity. */
@Binds
@IntoMap

View File

@@ -31,6 +31,9 @@ import android.view.WindowManager;
import com.android.internal.app.AlertActivity;
import com.android.internal.app.AlertController;
import com.android.systemui.R;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import javax.inject.Inject;
/**
* If the attached USB accessory has a URL associated with it, and that URL is valid,
@@ -46,13 +49,27 @@ public class UsbAccessoryUriActivity extends AlertActivity
private UsbAccessory mAccessory;
private Uri mUri;
private final DeviceProvisionedController mDeviceProvisionedController;
@Inject
UsbAccessoryUriActivity(DeviceProvisionedController deviceProvisionedController) {
mDeviceProvisionedController = deviceProvisionedController;
}
@Override
public void onCreate(Bundle icicle) {
getWindow().addSystemFlags(
getWindow().addSystemFlags(
WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
super.onCreate(icicle);
super.onCreate(icicle);
Intent intent = getIntent();
// Don't show this dialog during Setup Wizard
if (!mDeviceProvisionedController.isDeviceProvisioned()) {
Log.e(TAG, "device not provisioned");
finish();
return;
}
Intent intent = getIntent();
mAccessory = (UsbAccessory)intent.getParcelableExtra(UsbManager.EXTRA_ACCESSORY);
String uriString = intent.getStringExtra("uri");
mUri = (uriString == null ? null : Uri.parse(uriString));