Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f34c3501 authored by Amith Yamasani's avatar Amith Yamasani Committed by Android (Google) Code Review
Browse files

Merge "Fix removal of optional settings tiles" into lmp-dev

parents a0b87a24 57fd5fd8
Loading
Loading
Loading
Loading
+19 −15
Original line number Diff line number Diff line
@@ -1084,19 +1084,21 @@ public class SettingsActivity extends Activity
            while (n >= 0) {

                DashboardTile tile = category.getTile(n);

                boolean removeTile = false;
                id = (int) tile.id;
                if (id == R.id.operator_settings || id == R.id.manufacturer_settings) {
                    Utils.updateTileToSpecificActivityFromMetaDataOrRemove(this, category, tile);
                    if (!Utils.updateTileToSpecificActivityFromMetaDataOrRemove(this, tile)) {
                        removeTile = true;
                    }
                } else if (id == R.id.wifi_settings) {
                    // Remove WiFi Settings if WiFi service is not available.
                    if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_WIFI)) {
                        category.removeTile(n);
                        removeTile = true;
                    }
                } else if (id == R.id.bluetooth_settings) {
                    // Remove Bluetooth Settings if Bluetooth service is not available.
                    if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)) {
                        category.removeTile(n);
                        removeTile = true;
                    }
                } else if (id == R.id.data_usage_settings) {
                    // Remove data usage when kernel module not enabled
@@ -1104,7 +1106,7 @@ public class SettingsActivity extends Activity
                            .asInterface(ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE));
                    try {
                        if (!netManager.isBandwidthControlEnabled()) {
                            category.removeTile(n);
                            removeTile = true;
                        }
                    } catch (RemoteException e) {
                        // ignored
@@ -1113,11 +1115,11 @@ public class SettingsActivity extends Activity
                    // Remove battery settings when battery is not available. (e.g. TV)

                    if (!mBatteryPresent) {
                        category.removeTile(n);
                        removeTile = true;
                    }
                } else if (id == R.id.home_settings) {
                    if (!updateHomeSettingTiles(tile)) {
                        category.removeTile(n);
                        removeTile = true;
                    }
                } else if (id == R.id.user_settings) {
                    boolean hasMultipleUsers =
@@ -1127,38 +1129,40 @@ public class SettingsActivity extends Activity
                            || (!UserManager.supportsMultipleUsers()
                                    && !hasMultipleUsers)
                            || Utils.isMonkeyRunning()) {
                        category.removeTile(n);
                        removeTile = true;
                    }
                } else if (id == R.id.nfc_payment_settings) {
                    if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC)) {
                        category.removeTile(n);
                        removeTile = true;
                    } else {
                        // Only show if NFC is on and we have the HCE feature
                        NfcAdapter adapter = NfcAdapter.getDefaultAdapter(this);
                        if (!adapter.isEnabled() || !getPackageManager().hasSystemFeature(
                                PackageManager.FEATURE_NFC_HOST_CARD_EMULATION)) {
                            category.removeTile(n);
                            removeTile = true;
                        }
                    }
                } else if (id == R.id.print_settings) {
                    boolean hasPrintingSupport = getPackageManager().hasSystemFeature(
                            PackageManager.FEATURE_PRINTING);
                    if (!hasPrintingSupport) {
                        category.removeTile(n);
                        removeTile = true;
                    }
                } else if (id == R.id.development_settings) {
                    if (!showDev || um.hasUserRestriction(
                            UserManager.DISALLOW_DEBUGGING_FEATURES)) {
                        category.removeTile(n);
                        removeTile = true;
                    }
                }

                if (UserHandle.MU_ENABLED && UserHandle.myUserId() != 0
                        && !ArrayUtils.contains(SETTINGS_FOR_RESTRICTED, id)
                        && n < category.getTilesCount()) {
                    category.removeTile(n);
                        && !ArrayUtils.contains(SETTINGS_FOR_RESTRICTED, id)) {
                    removeTile = true;
                }

                if (removeTile && n < category.getTilesCount()) {
                    category.removeTile(n);
                }
                n--;
            }
        }
+1 −4
Original line number Diff line number Diff line
@@ -177,7 +177,7 @@ public final class Utils {
    }

    public static boolean updateTileToSpecificActivityFromMetaDataOrRemove(Context context,
            DashboardCategory target, DashboardTile tile) {
            DashboardTile tile) {

        Intent intent = tile.intent;
        if (intent != null) {
@@ -230,9 +230,6 @@ public final class Utils {
            }
        }

        // Did not find a matching activity, so remove the preference
        target.removeTile(tile);

        return false;
    }