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.quicksearchbox
17 
18 /**
19  * Interface for search settings.
20  *
21  * NOTE: Currently, this is not used very widely, in most instances implementers of this interface
22  * are passed around by class name. Should this be deprecated ?
23  */
24 interface SearchSettings {
upgradeSettingsIfNeedednull25   fun upgradeSettingsIfNeeded()
26 
27   /** Informs our listeners about the updated settings data. */
28   fun broadcastSettingsChanged()
29   fun getNextVoiceSearchHintIndex(size: Int): Int
30   fun resetVoiceSearchHintFirstSeenTime()
31   fun haveVoiceSearchHintsExpired(currentVoiceSearchVersion: Int): Boolean
32 
33   /**
34    * Determines whether google.com should be used as the base path for all searches (as opposed to
35    * using its country specific variants).
36    */
37   fun shouldUseGoogleCom(): Boolean
38   fun setUseGoogleCom(useGoogleCom: Boolean)
39   val searchBaseDomainApplyTime: Long
40   var searchBaseDomain: String?
41 }
42