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

Commit e7eae879 authored by Michael W's avatar Michael W
Browse files

Settings: Remove empty category from Security Settings

* The first category only holds google play protect and find my device,
  which require a gapps installation. For non-gapps installs, this category
  simply shows the title
* Remove it when it's actually empty

Change-Id: I36eea8d289502b0f74fe719d717228cb371f13ca
parent da99b1e2
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -376,6 +376,7 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
        }

        updatePreferenceVisibility(mPreferenceControllers);
        updateCategoryVisibility();
    }

    @VisibleForTesting
@@ -399,6 +400,10 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
        }
    }

    // declaring abstract would be better but requires too many classes to be modified, so just
    // make it public and don't do anything in the default case
    public void updateCategoryVisibility() { }

    /**
     * Refresh preference items backed by DashboardCategory.
     */
+22 −0
Original line number Diff line number Diff line
@@ -22,6 +22,9 @@ import android.content.Context;
import android.content.Intent;
import android.provider.SearchIndexableResource;

import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;

import com.android.settings.R;
import com.android.settings.biometrics.face.FaceProfileStatusPreferenceController;
import com.android.settings.biometrics.face.FaceStatusPreferenceController;
@@ -46,6 +49,7 @@ public class SecuritySettings extends DashboardFragment {
    private static final String TAG = "SecuritySettings";
    private static final String SECURITY_CATEGORY = "security_category";
    private static final String WORK_PROFILE_SECURITY_CATEGORY = "security_category_profile";
    private static final String SECURITY_STATUS_CATEGORY = "security_status";

    public static final int CHANGE_TRUST_AGENT_SETTINGS = 126;
    public static final int UNIFY_LOCK_CONFIRM_DEVICE_REQUEST = 128;
@@ -135,6 +139,24 @@ public class SecuritySettings extends DashboardFragment {
        return controllers;
    }

    /* Remove empty categories */
    @Override
    public void updateCategoryVisibility() {
        final PreferenceScreen screen = getPreferenceScreen();
        if (screen == null) {
            return;
        }

        PreferenceCategory category = findPreference(SECURITY_STATUS_CATEGORY);
        if (category == null) {
            return;
        }
        // This category only holds some google play tiles which don't exist without gapps
        if (category.getPreferenceCount() == 0) {
            screen.removePreference(category);
        }
    }

    /**
     * For Search. Please keep it in sync when updating "createPreferenceHierarchy()"
     */