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

Commit 51a8a098 authored by Andy Wickham's avatar Andy Wickham Committed by Android (Google) Code Review
Browse files

Merge "Move Contextual Search setting to AOSP." into main

parents 8d301012 9f9571a0
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -13708,7 +13708,6 @@
    <!-- Learn more link for audio sharing qrcode [CHAR LIMIT=none]-->
    <string name="audio_streams_qr_code_help_with_link"><annotation id="link">Need help?</annotation></string>
    <!-- url for learning more about bluetooth audio sharing -->
    <string name="help_url_audio_sharing" translatable="false"></string>
@@ -13729,4 +13728,11 @@
    <string name="contacts_storage_no_account_set">No default set</string>
    <!-- Text for add account selection message when no account has been added [CHAR LIMIT=100] -->
    <string name="contacts_storage_first_time_add_account_message">Add an account to get started</string>
    <!-- Circle to Search (shared between all entrypoints) -->
    <!-- Name of Google's new feature to circle to search anything on your phone screen,
         without switching apps. Also used as the setting title. [CHAR LIMIT=60] -->
    <string name="search_gesture_feature_title">Circle to Search</string>
    <!-- Summary text for press and hold nav handle OR home button to invoke Circle to Search. [CHAR LIMIT=NONE] -->
    <string name="search_gesture_feature_summary">Touch and hold the Home button or the navigation handle to search using the content on your screen.</string>
</resources>
+2 −1
Original line number Diff line number Diff line
@@ -28,7 +28,8 @@
        settings:searchable="false"
        settings:dynamicColor="true"
        settings:lottie_imageAssetsFolder="button_nav_menu"
        settings:lottie_rawRes="@raw/lottie_button_nav_menu"/>
        settings:lottie_rawRes="@raw/lottie_button_nav_menu"
        settings:controller="com.android.settings.gestures.ButtonNavigationSettingsAssistController"/>

    <SwitchPreferenceCompat
        android:key="assistant_long_press_home_gesture"
+13 −2
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  Copyright (C) 2018 The Android Open Source Project
  Copyright (C) 2024 The Android Open Source Project

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
@@ -19,4 +19,15 @@
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:settings="http://schemas.android.com/apk/res-auto"
    android:title="@string/system_navigation_title"
    settings:keywords="@string/keywords_system_navigation"/>
    settings:keywords="@string/keywords_system_navigation">

    <SwitchPreferenceCompat
        android:key="search_gesture_press_hold"
        android:title="@string/search_gesture_feature_title"
        android:summary="@string/search_gesture_feature_summary"
        android:order="100"
        settings:allowDividerAbove="true"
        settings:controller="com.android.settings.gestures.NavigationSettingsContextualSearchController"
        settings:highlightableMenuKey="@string/menu_key_system" />

</PreferenceScreen>
+6 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.settings.gestures;

import static android.app.contextualsearch.ContextualSearchManager.FEATURE_CONTEXTUAL_SEARCH;
import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON_OVERLAY;
import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY;

@@ -50,6 +51,11 @@ public class ButtonNavigationSettingsAssistController extends TogglePreferenceCo

    @Override
    public int getAvailabilityStatus() {
        // Hide the existing assistant UI elements when contextual search is available.
        if (mContext.getPackageManager().hasSystemFeature(FEATURE_CONTEXTUAL_SEARCH)) {
            return UNSUPPORTED_ON_DEVICE;
        }

        if (SystemNavigationPreferenceController.isOverlayPackageAvailable(mContext,
                NAV_BAR_MODE_2BUTTON_OVERLAY)
                || SystemNavigationPreferenceController.isOverlayPackageAvailable(mContext,
+70 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.settings.gestures;

import static android.app.contextualsearch.ContextualSearchManager.FEATURE_CONTEXTUAL_SEARCH;

import android.content.Context;
import android.provider.Settings;

import androidx.annotation.NonNull;

import com.android.settings.core.TogglePreferenceController;

/**
 * Configures behaviour of Contextual Search setting.
 */
public class NavigationSettingsContextualSearchController extends TogglePreferenceController {

    public NavigationSettingsContextualSearchController(@NonNull Context context,
            @NonNull String preferenceKey) {
        super(context, preferenceKey);
    }

    @Override
    public boolean isChecked() {
        boolean onByDefault = mContext.getResources().getBoolean(
                com.android.internal.R.bool.config_searchAllEntrypointsEnabledDefault);
        return Settings.Secure.getInt(mContext.getContentResolver(),
                Settings.Secure.SEARCH_ALL_ENTRYPOINTS_ENABLED, onByDefault ? 1 : 0)
                == 1;
    }

    @Override
    public boolean setChecked(boolean isChecked) {
        return Settings.Secure.putInt(mContext.getContentResolver(),
                Settings.Secure.SEARCH_ALL_ENTRYPOINTS_ENABLED, isChecked ? 1 : 0);
    }

    @Override
    public int getAvailabilityStatus() {
        if (mContext.getPackageManager().hasSystemFeature(FEATURE_CONTEXTUAL_SEARCH)) {
            return AVAILABLE;
        }
        return UNSUPPORTED_ON_DEVICE;
    }

    @Override
    public boolean isSliceable() {
        return false;
    }

    @Override
    public int getSliceHighlightMenuRes() {
        return NO_RES;
    }
}
Loading