Merge "Improved UX when no debuggable apps are available." into rvc-dev am: 6217af3fe1
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/11675592 Change-Id: I650b4a287132e3b6b8c8dce5f7f88cdc148d08ad
This commit is contained in:
@@ -47,10 +47,14 @@ public class AppPicker extends ListActivity {
|
||||
= "com.android.settings.extra.REQUESTIING_PERMISSION";
|
||||
public static final String EXTRA_DEBUGGABLE = "com.android.settings.extra.DEBUGGABLE";
|
||||
public static final String EXTRA_NON_SYSTEM = "com.android.settings.extra.NON_SYSTEM";
|
||||
public static final String EXTRA_INCLUDE_NOTHING = "com.android.settings.extra.INCLUDE_NOTHING";
|
||||
|
||||
public static final int RESULT_NO_MATCHING_APPS = -2;
|
||||
|
||||
private String mPermissionName;
|
||||
private boolean mDebuggableOnly;
|
||||
private boolean mNonSystemOnly;
|
||||
private boolean mIncludeNothing;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle icicle) {
|
||||
@@ -60,9 +64,11 @@ public class AppPicker extends ListActivity {
|
||||
mPermissionName = getIntent().getStringExtra(EXTRA_REQUESTIING_PERMISSION);
|
||||
mDebuggableOnly = getIntent().getBooleanExtra(EXTRA_DEBUGGABLE, false);
|
||||
mNonSystemOnly = getIntent().getBooleanExtra(EXTRA_NON_SYSTEM, false);
|
||||
mIncludeNothing = getIntent().getBooleanExtra(EXTRA_INCLUDE_NOTHING, true);
|
||||
|
||||
mAdapter = new AppListAdapter(this);
|
||||
if (mAdapter.getCount() <= 0) {
|
||||
setResult(RESULT_NO_MATCHING_APPS);
|
||||
finish();
|
||||
} else {
|
||||
setListAdapter(mAdapter);
|
||||
@@ -160,9 +166,11 @@ public class AppPicker extends ListActivity {
|
||||
mPackageInfoList.add(info);
|
||||
}
|
||||
Collections.sort(mPackageInfoList, sDisplayNameComparator);
|
||||
MyApplicationInfo info = new MyApplicationInfo();
|
||||
info.label = context.getText(R.string.no_application);
|
||||
mPackageInfoList.add(0, info);
|
||||
if (mIncludeNothing) {
|
||||
MyApplicationInfo info = new MyApplicationInfo();
|
||||
info.label = context.getText(R.string.no_application);
|
||||
mPackageInfoList.add(0, info);
|
||||
}
|
||||
addAll(mPackageInfoList);
|
||||
}
|
||||
|
||||
|
@@ -20,6 +20,7 @@ import static com.android.internal.compat.OverrideAllowedState.ALLOWED;
|
||||
import static com.android.settings.development.DevelopmentOptionsActivityRequestCodes.REQUEST_COMPAT_CHANGE_APP;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.compat.Compatibility.ChangeConfig;
|
||||
import android.content.Context;
|
||||
@@ -124,6 +125,14 @@ public class PlatformCompatDashboard extends DashboardFragment {
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
startAppPicker();
|
||||
}
|
||||
} else if (resultCode == AppPicker.RESULT_NO_MATCHING_APPS) {
|
||||
new AlertDialog.Builder(getContext())
|
||||
.setTitle(R.string.platform_compat_dialog_title_no_apps)
|
||||
.setMessage(R.string.platform_compat_dialog_text_no_apps)
|
||||
.setPositiveButton(R.string.okay, (dialog, which) -> finish())
|
||||
.setOnDismissListener(dialog -> finish())
|
||||
.setCancelable(false)
|
||||
.show();
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -254,7 +263,8 @@ public class PlatformCompatDashboard extends DashboardFragment {
|
||||
}
|
||||
|
||||
private void startAppPicker() {
|
||||
final Intent intent = new Intent(getContext(), AppPicker.class);
|
||||
final Intent intent = new Intent(getContext(), AppPicker.class)
|
||||
.putExtra(AppPicker.EXTRA_INCLUDE_NOTHING, false);
|
||||
// If build is neither userdebug nor eng, only include debuggable apps
|
||||
final boolean debuggableBuild = mAndroidBuildClassifier.isDebuggableBuild();
|
||||
if (!debuggableBuild) {
|
||||
|
Reference in New Issue
Block a user