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

Commit d2fe08d6 authored by Bruno Martins's avatar Bruno Martins
Browse files

TouchscreenGestureSettings: Hide from search results if unsupported

Not all devices support touchscreen gestures, so hide the preferences
from the settings search results if that's the case.

Change-Id: If25ed3f92c330d8d4abf4696af0ee65c94ffa818
parent 18e18bc5
Loading
Loading
Loading
Loading
+28 −2
Original line number Diff line number Diff line
/**
 * Copyright (C) 2016 The CyanogenMod project
 *               2017 The LineageOS Project
 *               2017,2019-2020 The LineageOS Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
@@ -22,6 +22,8 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.UserHandle;
import android.util.ArraySet;
import android.util.Log;

import androidx.preference.ListPreference;
import androidx.preference.PreferenceManager;
@@ -31,12 +33,21 @@ import lineageos.hardware.TouchscreenGesture;

import org.lineageos.lineageparts.R;
import org.lineageos.lineageparts.SettingsPreferenceFragment;
import org.lineageos.lineageparts.search.BaseSearchIndexProvider;
import org.lineageos.lineageparts.search.Searchable;
import org.lineageos.lineageparts.utils.ResourceUtils;

import java.lang.System;
import java.util.Set;

public class TouchscreenGestureSettings extends SettingsPreferenceFragment
        implements Searchable {

public class TouchscreenGestureSettings extends SettingsPreferenceFragment {
    private static final String KEY_TOUCHSCREEN_GESTURE = "touchscreen_gesture";
    private static final String KEY_TOUCHSCREEN_GESTURE_SETTINGS =
            "touchscreen_gesture_settings";
    private static final String KEY_TOUCHSCREEN_GESTURE_HAPTIC_FEEDBACK =
            "touchscreen_gesture_haptic_feedback";
    private static final String TOUCHSCREEN_GESTURE_TITLE = KEY_TOUCHSCREEN_GESTURE + "_%s_title";

    private TouchscreenGesture[] mTouchscreenGestures;
@@ -202,4 +213,19 @@ public class TouchscreenGestureSettings extends SettingsPreferenceFragment {
        intent.setFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
        context.sendBroadcastAsUser(intent, UserHandle.CURRENT);
    }

    public static final Searchable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
            new BaseSearchIndexProvider() {

        @Override
        public Set<String> getNonIndexableKeys(Context context) {
            final Set<String> result = new ArraySet<String>();

            if (!isTouchscreenGesturesSupported(context)) {
                result.add(KEY_TOUCHSCREEN_GESTURE_SETTINGS);
                result.add(KEY_TOUCHSCREEN_GESTURE_HAPTIC_FEEDBACK);
            }
            return result;
        }
    };
}