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

Commit c3c87471 authored by Philip P. Moltmann's avatar Philip P. Moltmann
Browse files

Add settings search button to permission UI

Test: Went through all permission settings UI and pressed the new button
Change-Id: Icfd702d82d53a62746ed1bcf3341f051de9c2d80
parent c0d61658
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -25,7 +25,8 @@ LOCAL_STATIC_ANDROID_LIBRARIES += \
    androidx.leanback_leanback-preference \
    SettingsLibHelpUtils \
    SettingsLibRestrictedLockUtils \
    SettingsLibAppPreference
    SettingsLibAppPreference \
    SettingsLibSearchWidget

LOCAL_STATIC_JAVA_LIBRARIES := \
    androidx.annotation_annotation
+0 −2
Original line number Diff line number Diff line
@@ -61,8 +61,6 @@ public final class AppPermissionsFragment extends SettingsWithHeader

    static final String EXTRA_HIDE_INFO_BUTTON = "hideInfoButton";

    private static final int MENU_ALL_PERMS = 0;

    private ArraySet<AppPermissionGroup> mToggledGroups;
    private AppPermissions mAppPermissions;
    private PreferenceScreen mExtraScreen;
+2 −2
Original line number Diff line number Diff line
@@ -50,8 +50,6 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple
        PermissionPreference.PermissionPreferenceOwnerFragment,
        PermissionPreference.PermissionPreferenceChangeListener {

    private static final int MENU_SHOW_SYSTEM = Menu.FIRST;
    private static final int MENU_HIDE_SYSTEM = Menu.FIRST + 1;
    private static final String KEY_SHOW_SYSTEM_PREFS = "_showSystem";

    private static final String SHOW_SYSTEM_KEY = PermissionAppsFragment.class.getName()
@@ -119,6 +117,8 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        super.onCreateOptionsMenu(menu, inflater);

        if (mHasSystemApps) {
            mShowSystemMenu = menu.add(Menu.NONE, MENU_SHOW_SYSTEM, Menu.NONE,
                    R.string.menu_show_system);
+45 −0
Original line number Diff line number Diff line
@@ -16,8 +16,16 @@

package com.android.packageinstaller.permission.ui.handheld;

import static android.view.MenuItem.SHOW_AS_ACTION_ALWAYS;

import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Animation;
@@ -31,6 +39,15 @@ import androidx.recyclerview.widget.RecyclerView;
import com.android.permissioncontroller.R;

public abstract class PermissionsFrameFragment extends PreferenceFragmentCompat {
    private static final String LOG_TAG = PermissionsFrameFragment.class.getSimpleName();

    private static final String ACTION_SEARCH_SETTINGS = "android.settings.SETTINGS_SEARCH";

    private static final int MENU_SEARCH_SETTINGS = Menu.FIRST;
    static final int MENU_ALL_PERMS = Menu.FIRST + 1;
    static final int MENU_SHOW_SYSTEM = Menu.FIRST + 2;
    static final int MENU_HIDE_SYSTEM = Menu.FIRST + 3;

    private ViewGroup mPreferencesContainer;

    private TextView mEmptyView;
@@ -46,6 +63,34 @@ public abstract class PermissionsFrameFragment extends PreferenceFragmentCompat
        return mPreferencesContainer;
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        super.onCreateOptionsMenu(menu, inflater);

        if (getContext().getPackageManager().resolveActivity(new Intent(ACTION_SEARCH_SETTINGS), 0)
                != null) {
            MenuItem searchItem = menu.add(Menu.NONE, MENU_SEARCH_SETTINGS, Menu.NONE,
                    R.string.search_menu);
            searchItem.setIcon(R.drawable.ic_search_24dp);
            searchItem.setShowAsAction(SHOW_AS_ACTION_ALWAYS);
        }
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case MENU_SEARCH_SETTINGS:
                try {
                    getActivity().startActivity(new Intent(ACTION_SEARCH_SETTINGS));
                } catch (ActivityNotFoundException e) {
                    Log.e(LOG_TAG, "Cannot search settings", e);
                }
                break;
        }

        return super.onOptionsItemSelected(item);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {