Hide "Open by default" entirely for browser apps

Browsers are explicitly treated outside the web link infrastructure, so
we shouldn't offer "Open by default" section.

Fixes: 129162570
Test: robotests
Change-Id: Ie63d5fbfb32eaed4bba8a80158b6bb19bb45b380
This commit is contained in:
Yi-Ling Chuang
2019-09-13 09:55:38 -07:00
parent 68cc44bb77
commit 4ff357addc
4 changed files with 64 additions and 39 deletions

View File

@@ -22,6 +22,7 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.hardware.usb.IUsbManager;
import android.os.ServiceManager;
import android.os.UserHandle;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
@@ -35,6 +36,7 @@ public class AppOpenByDefaultPreferenceController extends AppInfoPreferenceContr
private IUsbManager mUsbManager;
private PackageManager mPackageManager;
private String mPackageName;
public AppOpenByDefaultPreferenceController(Context context, String key) {
super(context, key);
@@ -42,6 +44,12 @@ public class AppOpenByDefaultPreferenceController extends AppInfoPreferenceContr
mPackageManager = context.getPackageManager();
}
/** Set a package name for this controller. */
public AppOpenByDefaultPreferenceController setPackageName(String packageName) {
mPackageName = packageName;
return this;
}
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
@@ -57,7 +65,9 @@ public class AppOpenByDefaultPreferenceController extends AppInfoPreferenceContr
@Override
public void updateState(Preference preference) {
final PackageInfo packageInfo = mParent.getPackageInfo();
if (packageInfo != null && !AppUtils.isInstant(packageInfo.applicationInfo)) {
if (packageInfo != null && !AppUtils.isInstant(packageInfo.applicationInfo)
&& !AppUtils.isBrowserApp(mContext, packageInfo.packageName,
UserHandle.myUserId())) {
preference.setVisible(true);
preference.setSummary(AppUtils.getLaunchByDefaultSummary(mParent.getAppEntry(),
mUsbManager, mPackageManager, mContext));
@@ -70,5 +80,4 @@ public class AppOpenByDefaultPreferenceController extends AppInfoPreferenceContr
protected Class<? extends SettingsPreferenceFragment> getDetailFragmentClass() {
return AppLaunchSettings.class;
}
}