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

Commit 1dec0735 authored by Matthew Fritze's avatar Matthew Fritze
Browse files

Update the Settings database to enable Payloads

Add Payload and Payload type columns to the settings
database. This includes extending preference controllers
to map their settings to UI components so that the
payload results can be consumed by a front end.

Change-Id: I889dcc4ff7793306718d12e1e5993386b58f21cc
Fixes: 33451851, 33390556
Test: RunSettingsRoboTests
parent e5a2be9d
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -20,6 +20,7 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import android.support.v7.preference.PreferenceScreen;


import com.android.settings.search.SearchIndexableRaw;
import com.android.settings.search.SearchIndexableRaw;
import com.android.settings.search2.ResultPayload;


import java.util.List;
import java.util.List;


@@ -104,4 +105,11 @@ public abstract class PreferenceController {
            screen.removePreference(pref);
            screen.removePreference(pref);
        }
        }
    }
    }

    /**
     * @return the {@link ResultPayload} corresponding to the search result type for the preference.
     */
    public ResultPayload getResultPayload() {
        return null;
    }
}
}
+6 −0
Original line number Original line Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.settings.search;


import android.content.Context;
import android.content.Context;
import android.provider.SearchIndexableResource;
import android.provider.SearchIndexableResource;
import com.android.settings.core.PreferenceController;


import java.util.Collections;
import java.util.Collections;
import java.util.List;
import java.util.List;
@@ -46,4 +47,9 @@ public class BaseSearchIndexProvider implements Indexable.SearchIndexProvider {
    public List<String> getNonIndexableKeys(Context context) {
    public List<String> getNonIndexableKeys(Context context) {
        return EMPTY_LIST;
        return EMPTY_LIST;
    }
    }

    @Override
    public List<PreferenceController> getPreferenceControllers(Context context) {
        return null;
    }
}
}
+33 −27
Original line number Original line Diff line number Diff line
@@ -28,46 +28,48 @@ public class IndexDatabaseHelper extends SQLiteOpenHelper {
    private static final String TAG = "IndexDatabaseHelper";
    private static final String TAG = "IndexDatabaseHelper";


    private static final String DATABASE_NAME = "search_index.db";
    private static final String DATABASE_NAME = "search_index.db";
    private static final int DATABASE_VERSION = 115;
    private static final int DATABASE_VERSION = 116;


    private static final String INDEX = "index";
    private static final String INDEX = "index";


    public interface Tables {
    public interface Tables {
        public static final String TABLE_PREFS_INDEX = "prefs_index";
        String TABLE_PREFS_INDEX = "prefs_index";
        public static final String TABLE_META_INDEX = "meta_index";
        String TABLE_META_INDEX = "meta_index";
        public static final String TABLE_SAVED_QUERIES = "saved_queries";
        String TABLE_SAVED_QUERIES = "saved_queries";
    }
    }


    public interface IndexColumns {
    public interface IndexColumns {
        public static final String DOCID = "docid";
        String DOCID = "docid";
        public static final String LOCALE = "locale";
        String LOCALE = "locale";
        public static final String DATA_RANK = "data_rank";
        String DATA_RANK = "data_rank";
        public static final String DATA_TITLE = "data_title";
        String DATA_TITLE = "data_title";
        public static final String DATA_TITLE_NORMALIZED = "data_title_normalized";
        String DATA_TITLE_NORMALIZED = "data_title_normalized";
        public static final String DATA_SUMMARY_ON = "data_summary_on";
        String DATA_SUMMARY_ON = "data_summary_on";
        public static final String DATA_SUMMARY_ON_NORMALIZED = "data_summary_on_normalized";
        String DATA_SUMMARY_ON_NORMALIZED = "data_summary_on_normalized";
        public static final String DATA_SUMMARY_OFF = "data_summary_off";
        String DATA_SUMMARY_OFF = "data_summary_off";
        public static final String DATA_SUMMARY_OFF_NORMALIZED = "data_summary_off_normalized";
        String DATA_SUMMARY_OFF_NORMALIZED = "data_summary_off_normalized";
        public static final String DATA_ENTRIES = "data_entries";
        String DATA_ENTRIES = "data_entries";
        public static final String DATA_KEYWORDS = "data_keywords";
        String DATA_KEYWORDS = "data_keywords";
        public static final String CLASS_NAME = "class_name";
        String CLASS_NAME = "class_name";
        public static final String SCREEN_TITLE = "screen_title";
        String SCREEN_TITLE = "screen_title";
        public static final String INTENT_ACTION = "intent_action";
        String INTENT_ACTION = "intent_action";
        public static final String INTENT_TARGET_PACKAGE = "intent_target_package";
        String INTENT_TARGET_PACKAGE = "intent_target_package";
        public static final String INTENT_TARGET_CLASS = "intent_target_class";
        String INTENT_TARGET_CLASS = "intent_target_class";
        public static final String ICON = "icon";
        String ICON = "icon";
        public static final String ENABLED = "enabled";
        String ENABLED = "enabled";
        public static final String DATA_KEY_REF = "data_key_reference";
        String DATA_KEY_REF = "data_key_reference";
        public static final String USER_ID = "user_id";
        String USER_ID = "user_id";
        String PAYLOAD_TYPE = "payload_type";
        String PAYLOAD = "payload";
    }
    }


    public interface MetaColumns {
    public interface MetaColumns {
        public static final String BUILD = "build";
        String BUILD = "build";
    }
    }


    public interface SavedQueriesColums {
    public interface SavedQueriesColums {
        public static final String QUERY = "query";
        String QUERY = "query";
        public static final String TIME_STAMP = "timestamp";
        String TIME_STAMP = "timestamp";
    }
    }


    private static final String CREATE_INDEX_TABLE =
    private static final String CREATE_INDEX_TABLE =
@@ -110,6 +112,10 @@ public class IndexDatabaseHelper extends SQLiteOpenHelper {
                    IndexColumns.DATA_KEY_REF +
                    IndexColumns.DATA_KEY_REF +
                    ", " +
                    ", " +
                    IndexColumns.USER_ID +
                    IndexColumns.USER_ID +
                    ", " +
                    IndexColumns.PAYLOAD_TYPE +
                    ", " +
                    IndexColumns.PAYLOAD +
                    ");";
                    ");";


    private static final String CREATE_META_TABLE =
    private static final String CREATE_META_TABLE =
+7 −0
Original line number Original line Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.settings.search;


import android.content.Context;
import android.content.Context;
import android.provider.SearchIndexableResource;
import android.provider.SearchIndexableResource;
import com.android.settings.core.PreferenceController;


import java.util.List;
import java.util.List;


@@ -65,5 +66,11 @@ public interface Indexable {
         * @return a list of {@link SearchIndexableRaw} references. Can be null.
         * @return a list of {@link SearchIndexableRaw} references. Can be null.
         */
         */
        List<String> getNonIndexableKeys(Context context);
        List<String> getNonIndexableKeys(Context context);

        /**
         * @param context
         * @return a list of {@link PreferenceController} for ResultPayload data during Indexing.
         */
        List<PreferenceController> getPreferenceControllers(Context context);
    }
    }
}
}
Loading