summaryrefslogtreecommitdiff
path: root/extensions/10/public/api/framework-appsearch.txt
blob: 6665c9404f733cc170eb43f71cb30683e246ed20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
// Signature format: 2.0
package android.app.appsearch {

  public final class AppSearchBatchResult<KeyType, ValueType> {
    method @NonNull public java.util.Map<KeyType,android.app.appsearch.AppSearchResult<ValueType>> getAll();
    method @NonNull public java.util.Map<KeyType,android.app.appsearch.AppSearchResult<ValueType>> getFailures();
    method @NonNull public java.util.Map<KeyType,ValueType> getSuccesses();
    method public boolean isSuccess();
  }

  public static final class AppSearchBatchResult.Builder<KeyType, ValueType> {
    ctor public AppSearchBatchResult.Builder();
    method @NonNull public android.app.appsearch.AppSearchBatchResult<KeyType,ValueType> build();
    method @NonNull public android.app.appsearch.AppSearchBatchResult.Builder<KeyType,ValueType> setFailure(@NonNull KeyType, int, @Nullable String);
    method @NonNull public android.app.appsearch.AppSearchBatchResult.Builder<KeyType,ValueType> setResult(@NonNull KeyType, @NonNull android.app.appsearch.AppSearchResult<ValueType>);
    method @NonNull public android.app.appsearch.AppSearchBatchResult.Builder<KeyType,ValueType> setSuccess(@NonNull KeyType, @Nullable ValueType);
  }

  public class AppSearchManager {
    method public void createGlobalSearchSession(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<android.app.appsearch.GlobalSearchSession>>);
    method public void createSearchSession(@NonNull android.app.appsearch.AppSearchManager.SearchContext, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<android.app.appsearch.AppSearchSession>>);
  }

  public static final class AppSearchManager.SearchContext {
    method @NonNull public String getDatabaseName();
  }

  public static final class AppSearchManager.SearchContext.Builder {
    ctor public AppSearchManager.SearchContext.Builder(@NonNull String);
    method @NonNull public android.app.appsearch.AppSearchManager.SearchContext build();
  }

  public final class AppSearchResult<ValueType> {
    method @Nullable public String getErrorMessage();
    method public int getResultCode();
    method @Nullable public ValueType getResultValue();
    method public boolean isSuccess();
    method @NonNull public static <ValueType> android.app.appsearch.AppSearchResult<ValueType> newFailedResult(int, @Nullable String);
    method @NonNull public static <ValueType> android.app.appsearch.AppSearchResult<ValueType> newSuccessfulResult(@Nullable ValueType);
    field public static final int RESULT_INTERNAL_ERROR = 2; // 0x2
    field public static final int RESULT_INVALID_ARGUMENT = 3; // 0x3
    field public static final int RESULT_INVALID_SCHEMA = 7; // 0x7
    field public static final int RESULT_IO_ERROR = 4; // 0x4
    field public static final int RESULT_NOT_FOUND = 6; // 0x6
    field public static final int RESULT_OK = 0; // 0x0
    field public static final int RESULT_OUT_OF_SPACE = 5; // 0x5
    field public static final int RESULT_SECURITY_ERROR = 8; // 0x8
    field public static final int RESULT_UNKNOWN_ERROR = 1; // 0x1
  }

  public final class AppSearchSchema {
    method @NonNull public java.util.List<android.app.appsearch.AppSearchSchema.PropertyConfig> getProperties();
    method @NonNull public String getSchemaType();
  }

  public static final class AppSearchSchema.BooleanPropertyConfig extends android.app.appsearch.AppSearchSchema.PropertyConfig {
  }

  public static final class AppSearchSchema.BooleanPropertyConfig.Builder {
    ctor public AppSearchSchema.BooleanPropertyConfig.Builder(@NonNull String);
    method @NonNull public android.app.appsearch.AppSearchSchema.BooleanPropertyConfig build();
    method @NonNull public android.app.appsearch.AppSearchSchema.BooleanPropertyConfig.Builder setCardinality(int);
  }

  public static final class AppSearchSchema.Builder {
    ctor public AppSearchSchema.Builder(@NonNull String);
    method @NonNull public android.app.appsearch.AppSearchSchema.Builder addParentType(@NonNull String);
    method @NonNull public android.app.appsearch.AppSearchSchema.Builder addProperty(@NonNull android.app.appsearch.AppSearchSchema.PropertyConfig);
    method @NonNull public android.app.appsearch.AppSearchSchema build();
  }

  public static final class AppSearchSchema.BytesPropertyConfig extends android.app.appsearch.AppSearchSchema.PropertyConfig {
  }

  public static final class AppSearchSchema.BytesPropertyConfig.Builder {
    ctor public AppSearchSchema.BytesPropertyConfig.Builder(@NonNull String);
    method @NonNull public android.app.appsearch.AppSearchSchema.BytesPropertyConfig build();
    method @NonNull public android.app.appsearch.AppSearchSchema.BytesPropertyConfig.Builder setCardinality(int);
  }

  public static final class AppSearchSchema.DocumentPropertyConfig extends android.app.appsearch.AppSearchSchema.PropertyConfig {
    method @NonNull public String getSchemaType();
    method public boolean shouldIndexNestedProperties();
  }

  public static final class AppSearchSchema.DocumentPropertyConfig.Builder {
    ctor public AppSearchSchema.DocumentPropertyConfig.Builder(@NonNull String, @NonNull String);
    method @NonNull public android.app.appsearch.AppSearchSchema.DocumentPropertyConfig.Builder addIndexableNestedProperties(@NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.AppSearchSchema.DocumentPropertyConfig build();
    method @NonNull public android.app.appsearch.AppSearchSchema.DocumentPropertyConfig.Builder setCardinality(int);
    method @NonNull public android.app.appsearch.AppSearchSchema.DocumentPropertyConfig.Builder setShouldIndexNestedProperties(boolean);
  }

  public static final class AppSearchSchema.DoublePropertyConfig extends android.app.appsearch.AppSearchSchema.PropertyConfig {
  }

  public static final class AppSearchSchema.DoublePropertyConfig.Builder {
    ctor public AppSearchSchema.DoublePropertyConfig.Builder(@NonNull String);
    method @NonNull public android.app.appsearch.AppSearchSchema.DoublePropertyConfig build();
    method @NonNull public android.app.appsearch.AppSearchSchema.DoublePropertyConfig.Builder setCardinality(int);
  }

  public static final class AppSearchSchema.LongPropertyConfig extends android.app.appsearch.AppSearchSchema.PropertyConfig {
    method public int getIndexingType();
    field public static final int INDEXING_TYPE_NONE = 0; // 0x0
    field public static final int INDEXING_TYPE_RANGE = 1; // 0x1
  }

  public static final class AppSearchSchema.LongPropertyConfig.Builder {
    ctor public AppSearchSchema.LongPropertyConfig.Builder(@NonNull String);
    method @NonNull public android.app.appsearch.AppSearchSchema.LongPropertyConfig build();
    method @NonNull public android.app.appsearch.AppSearchSchema.LongPropertyConfig.Builder setCardinality(int);
    method @NonNull public android.app.appsearch.AppSearchSchema.LongPropertyConfig.Builder setIndexingType(int);
  }

  public abstract static class AppSearchSchema.PropertyConfig {
    method public int getCardinality();
    method @NonNull public String getName();
    field public static final int CARDINALITY_OPTIONAL = 2; // 0x2
    field public static final int CARDINALITY_REPEATED = 1; // 0x1
    field public static final int CARDINALITY_REQUIRED = 3; // 0x3
  }

  public static final class AppSearchSchema.StringPropertyConfig extends android.app.appsearch.AppSearchSchema.PropertyConfig {
    method public int getIndexingType();
    method public int getJoinableValueType();
    method public int getTokenizerType();
    field public static final int INDEXING_TYPE_EXACT_TERMS = 1; // 0x1
    field public static final int INDEXING_TYPE_NONE = 0; // 0x0
    field public static final int INDEXING_TYPE_PREFIXES = 2; // 0x2
    field public static final int JOINABLE_VALUE_TYPE_NONE = 0; // 0x0
    field public static final int JOINABLE_VALUE_TYPE_QUALIFIED_ID = 1; // 0x1
    field public static final int TOKENIZER_TYPE_NONE = 0; // 0x0
    field public static final int TOKENIZER_TYPE_PLAIN = 1; // 0x1
    field public static final int TOKENIZER_TYPE_RFC822 = 3; // 0x3
    field public static final int TOKENIZER_TYPE_VERBATIM = 2; // 0x2
  }

  public static final class AppSearchSchema.StringPropertyConfig.Builder {
    ctor public AppSearchSchema.StringPropertyConfig.Builder(@NonNull String);
    method @NonNull public android.app.appsearch.AppSearchSchema.StringPropertyConfig build();
    method @NonNull public android.app.appsearch.AppSearchSchema.StringPropertyConfig.Builder setCardinality(int);
    method @NonNull public android.app.appsearch.AppSearchSchema.StringPropertyConfig.Builder setIndexingType(int);
    method @NonNull public android.app.appsearch.AppSearchSchema.StringPropertyConfig.Builder setJoinableValueType(int);
    method @NonNull public android.app.appsearch.AppSearchSchema.StringPropertyConfig.Builder setTokenizerType(int);
  }

  public final class AppSearchSession implements java.io.Closeable {
    method public void close();
    method public void getByDocumentId(@NonNull android.app.appsearch.GetByDocumentIdRequest, @NonNull java.util.concurrent.Executor, @NonNull android.app.appsearch.BatchResultCallback<java.lang.String,android.app.appsearch.GenericDocument>);
    method public void getNamespaces(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<java.util.Set<java.lang.String>>>);
    method public void getSchema(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<android.app.appsearch.GetSchemaResponse>>);
    method public void getStorageInfo(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<android.app.appsearch.StorageInfo>>);
    method public void put(@NonNull android.app.appsearch.PutDocumentsRequest, @NonNull java.util.concurrent.Executor, @NonNull android.app.appsearch.BatchResultCallback<java.lang.String,java.lang.Void>);
    method public void remove(@NonNull android.app.appsearch.RemoveByDocumentIdRequest, @NonNull java.util.concurrent.Executor, @NonNull android.app.appsearch.BatchResultCallback<java.lang.String,java.lang.Void>);
    method public void remove(@NonNull String, @NonNull android.app.appsearch.SearchSpec, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<java.lang.Void>>);
    method public void reportUsage(@NonNull android.app.appsearch.ReportUsageRequest, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<java.lang.Void>>);
    method @NonNull public android.app.appsearch.SearchResults search(@NonNull String, @NonNull android.app.appsearch.SearchSpec);
    method public void searchSuggestion(@NonNull String, @NonNull android.app.appsearch.SearchSuggestionSpec, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<java.util.List<android.app.appsearch.SearchSuggestionResult>>>);
    method public void setSchema(@NonNull android.app.appsearch.SetSchemaRequest, @NonNull java.util.concurrent.Executor, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<android.app.appsearch.SetSchemaResponse>>);
  }

  public interface BatchResultCallback<KeyType, ValueType> {
    method public void onResult(@NonNull android.app.appsearch.AppSearchBatchResult<KeyType,ValueType>);
    method public default void onSystemError(@Nullable Throwable);
  }

  public class GenericDocument {
    ctor protected GenericDocument(@NonNull android.app.appsearch.GenericDocument);
    method public long getCreationTimestampMillis();
    method @NonNull public String getId();
    method public static int getMaxIndexedProperties();
    method @NonNull public String getNamespace();
    method @Nullable public Object getProperty(@NonNull String);
    method public boolean getPropertyBoolean(@NonNull String);
    method @Nullable public boolean[] getPropertyBooleanArray(@NonNull String);
    method @Nullable public byte[] getPropertyBytes(@NonNull String);
    method @Nullable public byte[][] getPropertyBytesArray(@NonNull String);
    method @Nullable public android.app.appsearch.GenericDocument getPropertyDocument(@NonNull String);
    method @Nullable public android.app.appsearch.GenericDocument[] getPropertyDocumentArray(@NonNull String);
    method public double getPropertyDouble(@NonNull String);
    method @Nullable public double[] getPropertyDoubleArray(@NonNull String);
    method public long getPropertyLong(@NonNull String);
    method @Nullable public long[] getPropertyLongArray(@NonNull String);
    method @NonNull public java.util.Set<java.lang.String> getPropertyNames();
    method @Nullable public String getPropertyString(@NonNull String);
    method @Nullable public String[] getPropertyStringArray(@NonNull String);
    method @NonNull public String getSchemaType();
    method public int getScore();
    method public long getTtlMillis();
  }

  public static class GenericDocument.Builder<BuilderType extends android.app.appsearch.GenericDocument.Builder> {
    ctor public GenericDocument.Builder(@NonNull String, @NonNull String, @NonNull String);
    method @NonNull public android.app.appsearch.GenericDocument build();
    method @NonNull public BuilderType setCreationTimestampMillis(long);
    method @NonNull public BuilderType setPropertyBoolean(@NonNull String, @NonNull boolean...);
    method @NonNull public BuilderType setPropertyBytes(@NonNull String, @NonNull byte[]...);
    method @NonNull public BuilderType setPropertyDocument(@NonNull String, @NonNull android.app.appsearch.GenericDocument...);
    method @NonNull public BuilderType setPropertyDouble(@NonNull String, @NonNull double...);
    method @NonNull public BuilderType setPropertyLong(@NonNull String, @NonNull long...);
    method @NonNull public BuilderType setPropertyString(@NonNull String, @NonNull java.lang.String...);
    method @NonNull public BuilderType setScore(@IntRange(from=0, to=java.lang.Integer.MAX_VALUE) int);
    method @NonNull public BuilderType setTtlMillis(long);
  }

  public final class GetByDocumentIdRequest {
    method @NonNull public java.util.Set<java.lang.String> getIds();
    method @NonNull public String getNamespace();
    method @NonNull public java.util.Map<java.lang.String,java.util.List<android.app.appsearch.PropertyPath>> getProjectionPaths();
    method @NonNull public java.util.Map<java.lang.String,java.util.List<java.lang.String>> getProjections();
    field public static final String PROJECTION_SCHEMA_TYPE_WILDCARD = "*";
  }

  public static final class GetByDocumentIdRequest.Builder {
    ctor public GetByDocumentIdRequest.Builder(@NonNull String);
    method @NonNull public android.app.appsearch.GetByDocumentIdRequest.Builder addIds(@NonNull java.lang.String...);
    method @NonNull public android.app.appsearch.GetByDocumentIdRequest.Builder addIds(@NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.GetByDocumentIdRequest.Builder addProjection(@NonNull String, @NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.GetByDocumentIdRequest.Builder addProjectionPaths(@NonNull String, @NonNull java.util.Collection<android.app.appsearch.PropertyPath>);
    method @NonNull public android.app.appsearch.GetByDocumentIdRequest build();
  }

  public final class GetSchemaResponse {
    method @NonNull public java.util.Map<java.lang.String,java.util.Set<java.util.Set<java.lang.Integer>>> getRequiredPermissionsForSchemaTypeVisibility();
    method @NonNull public java.util.Set<java.lang.String> getSchemaTypesNotDisplayedBySystem();
    method @NonNull public java.util.Map<java.lang.String,java.util.Set<android.app.appsearch.PackageIdentifier>> getSchemaTypesVisibleToPackages();
    method @NonNull public java.util.Set<android.app.appsearch.AppSearchSchema> getSchemas();
    method @IntRange(from=0) public int getVersion();
  }

  public static final class GetSchemaResponse.Builder {
    ctor public GetSchemaResponse.Builder();
    method @NonNull public android.app.appsearch.GetSchemaResponse.Builder addSchema(@NonNull android.app.appsearch.AppSearchSchema);
    method @NonNull public android.app.appsearch.GetSchemaResponse.Builder addSchemaTypeNotDisplayedBySystem(@NonNull String);
    method @NonNull public android.app.appsearch.GetSchemaResponse build();
    method @NonNull public android.app.appsearch.GetSchemaResponse.Builder setRequiredPermissionsForSchemaTypeVisibility(@NonNull String, @NonNull java.util.Set<java.util.Set<java.lang.Integer>>);
    method @NonNull public android.app.appsearch.GetSchemaResponse.Builder setSchemaTypeVisibleToPackages(@NonNull String, @NonNull java.util.Set<android.app.appsearch.PackageIdentifier>);
    method @NonNull public android.app.appsearch.GetSchemaResponse.Builder setVersion(@IntRange(from=0) int);
  }

  public class GlobalSearchSession implements java.io.Closeable {
    method public void close();
    method public void getByDocumentId(@NonNull String, @NonNull String, @NonNull android.app.appsearch.GetByDocumentIdRequest, @NonNull java.util.concurrent.Executor, @NonNull android.app.appsearch.BatchResultCallback<java.lang.String,android.app.appsearch.GenericDocument>);
    method public void getSchema(@NonNull String, @NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<android.app.appsearch.GetSchemaResponse>>);
    method public void registerObserverCallback(@NonNull String, @NonNull android.app.appsearch.observer.ObserverSpec, @NonNull java.util.concurrent.Executor, @NonNull android.app.appsearch.observer.ObserverCallback) throws android.app.appsearch.exceptions.AppSearchException;
    method public void reportSystemUsage(@NonNull android.app.appsearch.ReportSystemUsageRequest, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<java.lang.Void>>);
    method @NonNull public android.app.appsearch.SearchResults search(@NonNull String, @NonNull android.app.appsearch.SearchSpec);
    method public void unregisterObserverCallback(@NonNull String, @NonNull android.app.appsearch.observer.ObserverCallback) throws android.app.appsearch.exceptions.AppSearchException;
  }

  public final class JoinSpec {
    method public int getAggregationScoringStrategy();
    method @NonNull public String getChildPropertyExpression();
    method public int getMaxJoinedResultCount();
    method @NonNull public String getNestedQuery();
    method @NonNull public android.app.appsearch.SearchSpec getNestedSearchSpec();
    field public static final int AGGREGATION_SCORING_AVG_RANKING_SIGNAL = 3; // 0x3
    field public static final int AGGREGATION_SCORING_MAX_RANKING_SIGNAL = 4; // 0x4
    field public static final int AGGREGATION_SCORING_MIN_RANKING_SIGNAL = 2; // 0x2
    field public static final int AGGREGATION_SCORING_OUTER_RESULT_RANKING_SIGNAL = 0; // 0x0
    field public static final int AGGREGATION_SCORING_RESULT_COUNT = 1; // 0x1
    field public static final int AGGREGATION_SCORING_SUM_RANKING_SIGNAL = 5; // 0x5
  }

  public static final class JoinSpec.Builder {
    ctor public JoinSpec.Builder(@NonNull String);
    method @NonNull public android.app.appsearch.JoinSpec build();
    method @NonNull public android.app.appsearch.JoinSpec.Builder setAggregationScoringStrategy(int);
    method @NonNull public android.app.appsearch.JoinSpec.Builder setMaxJoinedResultCount(int);
    method @NonNull public android.app.appsearch.JoinSpec.Builder setNestedSearch(@NonNull String, @NonNull android.app.appsearch.SearchSpec);
  }

  public abstract class Migrator {
    ctor public Migrator();
    method @NonNull @WorkerThread public abstract android.app.appsearch.GenericDocument onDowngrade(int, int, @NonNull android.app.appsearch.GenericDocument);
    method @NonNull @WorkerThread public abstract android.app.appsearch.GenericDocument onUpgrade(int, int, @NonNull android.app.appsearch.GenericDocument);
    method public abstract boolean shouldMigrate(int, int);
  }

  public class PackageIdentifier {
    ctor public PackageIdentifier(@NonNull String, @NonNull byte[]);
    method @NonNull public String getPackageName();
    method @NonNull public byte[] getSha256Certificate();
  }

  public class PropertyPath implements java.lang.Iterable<android.app.appsearch.PropertyPath.PathSegment> {
    ctor public PropertyPath(@NonNull java.util.List<android.app.appsearch.PropertyPath.PathSegment>);
    ctor public PropertyPath(@NonNull String);
    method @NonNull public android.app.appsearch.PropertyPath.PathSegment get(int);
    method @NonNull public java.util.Iterator<android.app.appsearch.PropertyPath.PathSegment> iterator();
    method public int size();
  }

  public static class PropertyPath.PathSegment {
    method @NonNull public static android.app.appsearch.PropertyPath.PathSegment create(@NonNull String, int);
    method @NonNull public static android.app.appsearch.PropertyPath.PathSegment create(@NonNull String);
    method public int getPropertyIndex();
    method @NonNull public String getPropertyName();
    field public static final int NON_REPEATED_CARDINALITY = -1; // 0xffffffff
  }

  public final class PutDocumentsRequest {
    method @NonNull public java.util.List<android.app.appsearch.GenericDocument> getGenericDocuments();
  }

  public static final class PutDocumentsRequest.Builder {
    ctor public PutDocumentsRequest.Builder();
    method @NonNull public android.app.appsearch.PutDocumentsRequest.Builder addGenericDocuments(@NonNull android.app.appsearch.GenericDocument...);
    method @NonNull public android.app.appsearch.PutDocumentsRequest.Builder addGenericDocuments(@NonNull java.util.Collection<? extends android.app.appsearch.GenericDocument>);
    method @NonNull public android.app.appsearch.PutDocumentsRequest build();
  }

  public final class RemoveByDocumentIdRequest {
    method @NonNull public java.util.Set<java.lang.String> getIds();
    method @NonNull public String getNamespace();
  }

  public static final class RemoveByDocumentIdRequest.Builder {
    ctor public RemoveByDocumentIdRequest.Builder(@NonNull String);
    method @NonNull public android.app.appsearch.RemoveByDocumentIdRequest.Builder addIds(@NonNull java.lang.String...);
    method @NonNull public android.app.appsearch.RemoveByDocumentIdRequest.Builder addIds(@NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.RemoveByDocumentIdRequest build();
  }

  public final class ReportSystemUsageRequest {
    method @NonNull public String getDatabaseName();
    method @NonNull public String getDocumentId();
    method @NonNull public String getNamespace();
    method @NonNull public String getPackageName();
    method public long getUsageTimestampMillis();
  }

  public static final class ReportSystemUsageRequest.Builder {
    ctor public ReportSystemUsageRequest.Builder(@NonNull String, @NonNull String, @NonNull String, @NonNull String);
    method @NonNull public android.app.appsearch.ReportSystemUsageRequest build();
    method @NonNull public android.app.appsearch.ReportSystemUsageRequest.Builder setUsageTimestampMillis(long);
  }

  public final class ReportUsageRequest {
    method @NonNull public String getDocumentId();
    method @NonNull public String getNamespace();
    method public long getUsageTimestampMillis();
  }

  public static final class ReportUsageRequest.Builder {
    ctor public ReportUsageRequest.Builder(@NonNull String, @NonNull String);
    method @NonNull public android.app.appsearch.ReportUsageRequest build();
    method @NonNull public android.app.appsearch.ReportUsageRequest.Builder setUsageTimestampMillis(long);
  }

  public final class SearchResult {
    method @NonNull public String getDatabaseName();
    method @NonNull public android.app.appsearch.GenericDocument getGenericDocument();
    method @NonNull public java.util.List<android.app.appsearch.SearchResult> getJoinedResults();
    method @NonNull public java.util.List<android.app.appsearch.SearchResult.MatchInfo> getMatchInfos();
    method @NonNull public String getPackageName();
    method public double getRankingSignal();
  }

  public static final class SearchResult.Builder {
    ctor public SearchResult.Builder(@NonNull String, @NonNull String);
    method @NonNull public android.app.appsearch.SearchResult.Builder addJoinedResult(@NonNull android.app.appsearch.SearchResult);
    method @NonNull public android.app.appsearch.SearchResult.Builder addMatchInfo(@NonNull android.app.appsearch.SearchResult.MatchInfo);
    method @NonNull public android.app.appsearch.SearchResult build();
    method @NonNull public android.app.appsearch.SearchResult.Builder setGenericDocument(@NonNull android.app.appsearch.GenericDocument);
    method @NonNull public android.app.appsearch.SearchResult.Builder setRankingSignal(double);
  }

  public static final class SearchResult.MatchInfo {
    method @NonNull public CharSequence getExactMatch();
    method @NonNull public android.app.appsearch.SearchResult.MatchRange getExactMatchRange();
    method @NonNull public String getFullText();
    method @NonNull public String getPropertyPath();
    method @NonNull public android.app.appsearch.PropertyPath getPropertyPathObject();
    method @NonNull public CharSequence getSnippet();
    method @NonNull public android.app.appsearch.SearchResult.MatchRange getSnippetRange();
    method @NonNull public CharSequence getSubmatch();
    method @NonNull public android.app.appsearch.SearchResult.MatchRange getSubmatchRange();
  }

  public static final class SearchResult.MatchInfo.Builder {
    ctor public SearchResult.MatchInfo.Builder(@NonNull String);
    method @NonNull public android.app.appsearch.SearchResult.MatchInfo build();
    method @NonNull public android.app.appsearch.SearchResult.MatchInfo.Builder setExactMatchRange(@NonNull android.app.appsearch.SearchResult.MatchRange);
    method @NonNull public android.app.appsearch.SearchResult.MatchInfo.Builder setSnippetRange(@NonNull android.app.appsearch.SearchResult.MatchRange);
    method @NonNull public android.app.appsearch.SearchResult.MatchInfo.Builder setSubmatchRange(@NonNull android.app.appsearch.SearchResult.MatchRange);
  }

  public static final class SearchResult.MatchRange {
    ctor public SearchResult.MatchRange(int, int);
    method public int getEnd();
    method public int getStart();
  }

  public class SearchResults implements java.io.Closeable {
    method public void close();
    method public void getNextPage(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<java.util.List<android.app.appsearch.SearchResult>>>);
  }

  public final class SearchSpec {
    method @NonNull public String getAdvancedRankingExpression();
    method @NonNull public java.util.List<java.lang.String> getFilterNamespaces();
    method @NonNull public java.util.List<java.lang.String> getFilterPackageNames();
    method @NonNull public java.util.List<java.lang.String> getFilterSchemas();
    method @Nullable public android.app.appsearch.JoinSpec getJoinSpec();
    method public int getMaxSnippetSize();
    method public int getOrder();
    method @NonNull public java.util.Map<java.lang.String,java.util.List<android.app.appsearch.PropertyPath>> getProjectionPaths();
    method @NonNull public java.util.Map<java.lang.String,java.util.List<java.lang.String>> getProjections();
    method @NonNull public java.util.Map<java.lang.String,java.util.Map<android.app.appsearch.PropertyPath,java.lang.Double>> getPropertyWeightPaths();
    method @NonNull public java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Double>> getPropertyWeights();
    method public int getRankingStrategy();
    method public int getResultCountPerPage();
    method public int getResultGroupingLimit();
    method public int getResultGroupingTypeFlags();
    method public int getSnippetCount();
    method public int getSnippetCountPerProperty();
    method public int getTermMatch();
    method public boolean isListFilterQueryLanguageEnabled();
    method public boolean isNumericSearchEnabled();
    method public boolean isVerbatimSearchEnabled();
    field public static final int GROUPING_TYPE_PER_NAMESPACE = 2; // 0x2
    field public static final int GROUPING_TYPE_PER_PACKAGE = 1; // 0x1
    field public static final int ORDER_ASCENDING = 1; // 0x1
    field public static final int ORDER_DESCENDING = 0; // 0x0
    field public static final String PROJECTION_SCHEMA_TYPE_WILDCARD = "*";
    field public static final int RANKING_STRATEGY_ADVANCED_RANKING_EXPRESSION = 9; // 0x9
    field public static final int RANKING_STRATEGY_CREATION_TIMESTAMP = 2; // 0x2
    field public static final int RANKING_STRATEGY_DOCUMENT_SCORE = 1; // 0x1
    field public static final int RANKING_STRATEGY_JOIN_AGGREGATE_SCORE = 8; // 0x8
    field public static final int RANKING_STRATEGY_NONE = 0; // 0x0
    field public static final int RANKING_STRATEGY_RELEVANCE_SCORE = 3; // 0x3
    field public static final int RANKING_STRATEGY_SYSTEM_USAGE_COUNT = 6; // 0x6
    field public static final int RANKING_STRATEGY_SYSTEM_USAGE_LAST_USED_TIMESTAMP = 7; // 0x7
    field public static final int RANKING_STRATEGY_USAGE_COUNT = 4; // 0x4
    field public static final int RANKING_STRATEGY_USAGE_LAST_USED_TIMESTAMP = 5; // 0x5
    field public static final int TERM_MATCH_EXACT_ONLY = 1; // 0x1
    field public static final int TERM_MATCH_PREFIX = 2; // 0x2
  }

  public static final class SearchSpec.Builder {
    ctor public SearchSpec.Builder();
    method @NonNull public android.app.appsearch.SearchSpec.Builder addFilterNamespaces(@NonNull java.lang.String...);
    method @NonNull public android.app.appsearch.SearchSpec.Builder addFilterNamespaces(@NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.SearchSpec.Builder addFilterPackageNames(@NonNull java.lang.String...);
    method @NonNull public android.app.appsearch.SearchSpec.Builder addFilterPackageNames(@NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.SearchSpec.Builder addFilterSchemas(@NonNull java.lang.String...);
    method @NonNull public android.app.appsearch.SearchSpec.Builder addFilterSchemas(@NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.SearchSpec.Builder addProjection(@NonNull String, @NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.SearchSpec.Builder addProjectionPaths(@NonNull String, @NonNull java.util.Collection<android.app.appsearch.PropertyPath>);
    method @NonNull public android.app.appsearch.SearchSpec build();
    method @NonNull public android.app.appsearch.SearchSpec.Builder setJoinSpec(@NonNull android.app.appsearch.JoinSpec);
    method @NonNull public android.app.appsearch.SearchSpec.Builder setListFilterQueryLanguageEnabled(boolean);
    method @NonNull public android.app.appsearch.SearchSpec.Builder setMaxSnippetSize(@IntRange(from=0, to=0x2710) int);
    method @NonNull public android.app.appsearch.SearchSpec.Builder setNumericSearchEnabled(boolean);
    method @NonNull public android.app.appsearch.SearchSpec.Builder setOrder(int);
    method @NonNull public android.app.appsearch.SearchSpec.Builder setPropertyWeightPaths(@NonNull String, @NonNull java.util.Map<android.app.appsearch.PropertyPath,java.lang.Double>);
    method @NonNull public android.app.appsearch.SearchSpec.Builder setPropertyWeights(@NonNull String, @NonNull java.util.Map<java.lang.String,java.lang.Double>);
    method @NonNull public android.app.appsearch.SearchSpec.Builder setRankingStrategy(int);
    method @NonNull public android.app.appsearch.SearchSpec.Builder setRankingStrategy(@NonNull String);
    method @NonNull public android.app.appsearch.SearchSpec.Builder setResultCountPerPage(@IntRange(from=0, to=0x2710) int);
    method @NonNull public android.app.appsearch.SearchSpec.Builder setResultGrouping(int, int);
    method @NonNull public android.app.appsearch.SearchSpec.Builder setSnippetCount(@IntRange(from=0, to=0x2710) int);
    method @NonNull public android.app.appsearch.SearchSpec.Builder setSnippetCountPerProperty(@IntRange(from=0, to=0x2710) int);
    method @NonNull public android.app.appsearch.SearchSpec.Builder setTermMatch(int);
    method @NonNull public android.app.appsearch.SearchSpec.Builder setVerbatimSearchEnabled(boolean);
  }

  public final class SearchSuggestionResult {
    method @NonNull public String getSuggestedResult();
  }

  public static final class SearchSuggestionResult.Builder {
    ctor public SearchSuggestionResult.Builder();
    method @NonNull public android.app.appsearch.SearchSuggestionResult build();
    method @NonNull public android.app.appsearch.SearchSuggestionResult.Builder setSuggestedResult(@NonNull String);
  }

  public final class SearchSuggestionSpec {
    method @NonNull public java.util.Map<java.lang.String,java.util.List<java.lang.String>> getFilterDocumentIds();
    method @NonNull public java.util.List<java.lang.String> getFilterNamespaces();
    method @NonNull public java.util.List<java.lang.String> getFilterSchemas();
    method public int getMaximumResultCount();
    method public int getRankingStrategy();
    field public static final int SUGGESTION_RANKING_STRATEGY_DOCUMENT_COUNT = 0; // 0x0
    field public static final int SUGGESTION_RANKING_STRATEGY_NONE = 2; // 0x2
    field public static final int SUGGESTION_RANKING_STRATEGY_TERM_FREQUENCY = 1; // 0x1
  }

  public static final class SearchSuggestionSpec.Builder {
    ctor public SearchSuggestionSpec.Builder(@IntRange(from=1) int);
    method @NonNull public android.app.appsearch.SearchSuggestionSpec.Builder addFilterDocumentIds(@NonNull String, @NonNull java.lang.String...);
    method @NonNull public android.app.appsearch.SearchSuggestionSpec.Builder addFilterDocumentIds(@NonNull String, @NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.SearchSuggestionSpec.Builder addFilterNamespaces(@NonNull java.lang.String...);
    method @NonNull public android.app.appsearch.SearchSuggestionSpec.Builder addFilterNamespaces(@NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.SearchSuggestionSpec.Builder addFilterSchemas(@NonNull java.lang.String...);
    method @NonNull public android.app.appsearch.SearchSuggestionSpec.Builder addFilterSchemas(@NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.SearchSuggestionSpec build();
    method @NonNull public android.app.appsearch.SearchSuggestionSpec.Builder setRankingStrategy(int);
  }

  public final class SetSchemaRequest {
    method @NonNull public java.util.Map<java.lang.String,android.app.appsearch.Migrator> getMigrators();
    method @NonNull public java.util.Map<java.lang.String,java.util.Set<java.util.Set<java.lang.Integer>>> getRequiredPermissionsForSchemaTypeVisibility();
    method @NonNull public java.util.Set<android.app.appsearch.AppSearchSchema> getSchemas();
    method @NonNull public java.util.Set<java.lang.String> getSchemasNotDisplayedBySystem();
    method @NonNull public java.util.Map<java.lang.String,java.util.Set<android.app.appsearch.PackageIdentifier>> getSchemasVisibleToPackages();
    method @IntRange(from=1) public int getVersion();
    method public boolean isForceOverride();
    field public static final int READ_ASSISTANT_APP_SEARCH_DATA = 6; // 0x6
    field public static final int READ_CALENDAR = 2; // 0x2
    field public static final int READ_CONTACTS = 3; // 0x3
    field public static final int READ_EXTERNAL_STORAGE = 4; // 0x4
    field public static final int READ_HOME_APP_SEARCH_DATA = 5; // 0x5
    field public static final int READ_SMS = 1; // 0x1
  }

  public static final class SetSchemaRequest.Builder {
    ctor public SetSchemaRequest.Builder();
    method @NonNull public android.app.appsearch.SetSchemaRequest.Builder addRequiredPermissionsForSchemaTypeVisibility(@NonNull String, @NonNull java.util.Set<java.lang.Integer>);
    method @NonNull public android.app.appsearch.SetSchemaRequest.Builder addSchemas(@NonNull android.app.appsearch.AppSearchSchema...);
    method @NonNull public android.app.appsearch.SetSchemaRequest.Builder addSchemas(@NonNull java.util.Collection<android.app.appsearch.AppSearchSchema>);
    method @NonNull public android.app.appsearch.SetSchemaRequest build();
    method @NonNull public android.app.appsearch.SetSchemaRequest.Builder clearRequiredPermissionsForSchemaTypeVisibility(@NonNull String);
    method @NonNull public android.app.appsearch.SetSchemaRequest.Builder setForceOverride(boolean);
    method @NonNull public android.app.appsearch.SetSchemaRequest.Builder setMigrator(@NonNull String, @NonNull android.app.appsearch.Migrator);
    method @NonNull public android.app.appsearch.SetSchemaRequest.Builder setMigrators(@NonNull java.util.Map<java.lang.String,android.app.appsearch.Migrator>);
    method @NonNull public android.app.appsearch.SetSchemaRequest.Builder setSchemaTypeDisplayedBySystem(@NonNull String, boolean);
    method @NonNull public android.app.appsearch.SetSchemaRequest.Builder setSchemaTypeVisibilityForPackage(@NonNull String, boolean, @NonNull android.app.appsearch.PackageIdentifier);
    method @NonNull public android.app.appsearch.SetSchemaRequest.Builder setVersion(@IntRange(from=1) int);
  }

  public class SetSchemaResponse {
    method @NonNull public java.util.Set<java.lang.String> getDeletedTypes();
    method @NonNull public java.util.Set<java.lang.String> getIncompatibleTypes();
    method @NonNull public java.util.Set<java.lang.String> getMigratedTypes();
    method @NonNull public java.util.List<android.app.appsearch.SetSchemaResponse.MigrationFailure> getMigrationFailures();
  }

  public static final class SetSchemaResponse.Builder {
    ctor public SetSchemaResponse.Builder();
    method @NonNull public android.app.appsearch.SetSchemaResponse.Builder addDeletedType(@NonNull String);
    method @NonNull public android.app.appsearch.SetSchemaResponse.Builder addDeletedTypes(@NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.SetSchemaResponse.Builder addIncompatibleType(@NonNull String);
    method @NonNull public android.app.appsearch.SetSchemaResponse.Builder addIncompatibleTypes(@NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.SetSchemaResponse.Builder addMigratedType(@NonNull String);
    method @NonNull public android.app.appsearch.SetSchemaResponse.Builder addMigratedTypes(@NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.SetSchemaResponse.Builder addMigrationFailure(@NonNull android.app.appsearch.SetSchemaResponse.MigrationFailure);
    method @NonNull public android.app.appsearch.SetSchemaResponse.Builder addMigrationFailures(@NonNull java.util.Collection<android.app.appsearch.SetSchemaResponse.MigrationFailure>);
    method @NonNull public android.app.appsearch.SetSchemaResponse build();
  }

  public static class SetSchemaResponse.MigrationFailure {
    ctor public SetSchemaResponse.MigrationFailure(@NonNull String, @NonNull String, @NonNull String, @NonNull android.app.appsearch.AppSearchResult<?>);
    method @NonNull public android.app.appsearch.AppSearchResult<java.lang.Void> getAppSearchResult();
    method @NonNull public String getDocumentId();
    method @NonNull public String getNamespace();
    method @NonNull public String getSchemaType();
  }

  public class StorageInfo {
    method public int getAliveDocumentsCount();
    method public int getAliveNamespacesCount();
    method public long getSizeBytes();
  }

  public static final class StorageInfo.Builder {
    ctor public StorageInfo.Builder();
    method @NonNull public android.app.appsearch.StorageInfo build();
    method @NonNull public android.app.appsearch.StorageInfo.Builder setAliveDocumentsCount(int);
    method @NonNull public android.app.appsearch.StorageInfo.Builder setAliveNamespacesCount(int);
    method @NonNull public android.app.appsearch.StorageInfo.Builder setSizeBytes(long);
  }

}

package android.app.appsearch.exceptions {

  public class AppSearchException extends java.lang.Exception {
    ctor public AppSearchException(int);
    ctor public AppSearchException(int, @Nullable String);
    ctor public AppSearchException(int, @Nullable String, @Nullable Throwable);
    method public int getResultCode();
    method @NonNull public <T> android.app.appsearch.AppSearchResult<T> toAppSearchResult();
  }

}

package android.app.appsearch.observer {

  public final class DocumentChangeInfo {
    ctor public DocumentChangeInfo(@NonNull String, @NonNull String, @NonNull String, @NonNull String, @NonNull java.util.Set<java.lang.String>);
    method @NonNull public java.util.Set<java.lang.String> getChangedDocumentIds();
    method @NonNull public String getDatabaseName();
    method @NonNull public String getNamespace();
    method @NonNull public String getPackageName();
    method @NonNull public String getSchemaName();
  }

  public interface ObserverCallback {
    method public void onDocumentChanged(@NonNull android.app.appsearch.observer.DocumentChangeInfo);
    method public void onSchemaChanged(@NonNull android.app.appsearch.observer.SchemaChangeInfo);
  }

  public final class ObserverSpec {
    method @NonNull public java.util.Set<java.lang.String> getFilterSchemas();
  }

  public static final class ObserverSpec.Builder {
    ctor public ObserverSpec.Builder();
    method @NonNull public android.app.appsearch.observer.ObserverSpec.Builder addFilterSchemas(@NonNull java.lang.String...);
    method @NonNull public android.app.appsearch.observer.ObserverSpec.Builder addFilterSchemas(@NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.observer.ObserverSpec build();
  }

  public final class SchemaChangeInfo {
    ctor public SchemaChangeInfo(@NonNull String, @NonNull String, @NonNull java.util.Set<java.lang.String>);
    method @NonNull public java.util.Set<java.lang.String> getChangedSchemaNames();
    method @NonNull public String getDatabaseName();
    method @NonNull public String getPackageName();
  }

}

package android.app.appsearch.util {

  public class DocumentIdUtil {
    method @NonNull public static String createQualifiedId(@NonNull String, @NonNull String, @NonNull android.app.appsearch.GenericDocument);
    method @NonNull public static String createQualifiedId(@NonNull String, @NonNull String, @NonNull String, @NonNull String);
  }

}