• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2022 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.settingslib.spa.search
17 
18 /**
19  * Intent action used to identify SpaSearchProvider instances. This is used in the {@code
20  * <intent-filter>} of a {@code <provider>}.
21  */
22 const val PROVIDER_INTERFACE = "android.content.action.SPA_SEARCH_PROVIDER"
23 
24 /** ContentProvider path for search static data */
25 const val SEARCH_STATIC_DATA = "search_static_data"
26 
27 /** ContentProvider path for search dynamic data */
28 const val SEARCH_DYNAMIC_DATA = "search_dynamic_data"
29 
30 /** ContentProvider path for search immutable status */
31 const val SEARCH_IMMUTABLE_STATUS = "search_immutable_status"
32 
33 /** ContentProvider path for search mutable status */
34 const val SEARCH_MUTABLE_STATUS = "search_mutable_status"
35 
36 /** ContentProvider path for search static row */
37 const val SEARCH_STATIC_ROW = "search_static_row"
38 
39 /** ContentProvider path for search dynamic row */
40 const val SEARCH_DYNAMIC_ROW = "search_dynamic_row"
41 
42 
43 /** Enum to define all column names in provider. */
44 enum class ColumnEnum(val id: String) {
45     ENTRY_ID("entryId"),
46     ENTRY_LABEL("entryLabel"),
47     SEARCH_TITLE("searchTitle"),
48     SEARCH_KEYWORD("searchKw"),
49     SEARCH_PATH("searchPath"),
50     INTENT_TARGET_PACKAGE("intentTargetPackage"),
51     INTENT_TARGET_CLASS("intentTargetClass"),
52     INTENT_EXTRAS("intentExtras"),
53     ENTRY_DISABLED("entryDisabled"),
54 }
55 
56 /** Enum to define all queries supported in the provider. */
57 @SuppressWarnings("Immutable")
58 enum class QueryEnum(
59     val queryPath: String,
60     val columnNames: List<ColumnEnum>
61 ) {
62     SEARCH_STATIC_DATA_QUERY(
63         SEARCH_STATIC_DATA,
64         listOf(
65             ColumnEnum.ENTRY_ID,
66             ColumnEnum.ENTRY_LABEL,
67             ColumnEnum.SEARCH_TITLE,
68             ColumnEnum.SEARCH_KEYWORD,
69             ColumnEnum.SEARCH_PATH,
70             ColumnEnum.INTENT_TARGET_PACKAGE,
71             ColumnEnum.INTENT_TARGET_CLASS,
72             ColumnEnum.INTENT_EXTRAS,
73         )
74     ),
75     SEARCH_DYNAMIC_DATA_QUERY(
76         SEARCH_DYNAMIC_DATA,
77         listOf(
78             ColumnEnum.ENTRY_ID,
79             ColumnEnum.ENTRY_LABEL,
80             ColumnEnum.SEARCH_TITLE,
81             ColumnEnum.SEARCH_KEYWORD,
82             ColumnEnum.SEARCH_PATH,
83             ColumnEnum.INTENT_TARGET_PACKAGE,
84             ColumnEnum.INTENT_TARGET_CLASS,
85             ColumnEnum.INTENT_EXTRAS,
86         )
87     ),
88     SEARCH_IMMUTABLE_STATUS_DATA_QUERY(
89         SEARCH_IMMUTABLE_STATUS,
90         listOf(
91             ColumnEnum.ENTRY_ID,
92             ColumnEnum.ENTRY_LABEL,
93             ColumnEnum.ENTRY_DISABLED,
94         )
95     ),
96     SEARCH_MUTABLE_STATUS_DATA_QUERY(
97         SEARCH_MUTABLE_STATUS,
98         listOf(
99             ColumnEnum.ENTRY_ID,
100             ColumnEnum.ENTRY_LABEL,
101             ColumnEnum.ENTRY_DISABLED,
102         )
103     ),
104     SEARCH_STATIC_ROW_QUERY(
105         SEARCH_STATIC_ROW,
106         listOf(
107             ColumnEnum.ENTRY_ID,
108             ColumnEnum.ENTRY_LABEL,
109             ColumnEnum.SEARCH_TITLE,
110             ColumnEnum.SEARCH_KEYWORD,
111             ColumnEnum.SEARCH_PATH,
112             ColumnEnum.INTENT_TARGET_PACKAGE,
113             ColumnEnum.INTENT_TARGET_CLASS,
114             ColumnEnum.INTENT_EXTRAS,
115             ColumnEnum.ENTRY_DISABLED,
116         )
117     ),
118     SEARCH_DYNAMIC_ROW_QUERY(
119         SEARCH_DYNAMIC_ROW,
120         listOf(
121             ColumnEnum.ENTRY_ID,
122             ColumnEnum.ENTRY_LABEL,
123             ColumnEnum.SEARCH_TITLE,
124             ColumnEnum.SEARCH_KEYWORD,
125             ColumnEnum.SEARCH_PATH,
126             ColumnEnum.INTENT_TARGET_PACKAGE,
127             ColumnEnum.INTENT_TARGET_CLASS,
128             ColumnEnum.INTENT_EXTRAS,
129             ColumnEnum.ENTRY_DISABLED,
130         )
131     ),
132 }
133