19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2006 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.provider;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.google.android.collect.Maps;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport org.apache.commons.codec.binary.Base64;
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.annotation.SdkConstant;
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.annotation.SdkConstant.SdkConstantType;
255d34e9b63d5305934dcedac11e8dd658ae23c174Mike LeBeauimport android.content.ComponentName;
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ContentQueryMap;
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ContentResolver;
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ContentValues;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Context;
301877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrickimport android.content.IContentProvider;
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Intent;
32b8b11a0b1d82e24f7a79f2e1672e7f5cf1611a55Dianne Hackbornimport android.content.pm.ActivityInfo;
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.PackageManager;
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ResolveInfo;
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.res.Configuration;
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.res.Resources;
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.database.Cursor;
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.database.SQLException;
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri;
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.*;
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.telephony.TelephonyManager;
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.text.TextUtils;
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.AndroidException;
44799f721fcbff7a5ef62141786a642290f275903bDan Egnorimport android.util.Config;
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log;
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.net.URISyntaxException;
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.security.MessageDigest;
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.security.NoSuchAlgorithmException;
50272af007684be307464dc14335503316cea3dbf3Vasu Noriimport java.util.Collections;
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.HashMap;
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.HashSet;
53272af007684be307464dc14335503316cea3dbf3Vasu Noriimport java.util.Map;
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Settings provider contains global system-level device preferences.
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic final class Settings {
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // Intent actions for Settings
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show system settings.
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: nothing.
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_SETTINGS = "android.settings.SETTINGS";
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to allow configuration of APNs.
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: nothing.
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_APN_SETTINGS = "android.settings.APN_SETTINGS";
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to allow configuration of current location
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * sources.
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_LOCATION_SOURCE_SETTINGS =
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.LOCATION_SOURCE_SETTINGS";
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to allow configuration of wireless controls
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * such as Wi-Fi, Bluetooth and Mobile networks.
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_WIRELESS_SETTINGS =
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.WIRELESS_SETTINGS";
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to allow entering/exiting airplane mode.
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_AIRPLANE_MODE_SETTINGS =
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.AIRPLANE_MODE_SETTINGS";
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
128dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn     * Activity Action: Show settings for accessibility modules.
129dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn     * <p>
130dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn     * In some cases, a matching Activity may not exist, so ensure you
131dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn     * safeguard against this.
132dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn     * <p>
133dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn     * Input: Nothing.
134dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn     * <p>
135dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn     * Output: Nothing.
136dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn     */
137dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
138dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn    public static final String ACTION_ACCESSIBILITY_SETTINGS =
139dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn            "android.settings.ACCESSIBILITY_SETTINGS";
140dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn
141dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn    /**
1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to allow configuration of security and
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * location privacy.
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_SECURITY_SETTINGS =
1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.SECURITY_SETTINGS";
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
157c15255a979c9fc70bc251aefdcd9c1074b458d49Amith Yamasani     * Activity Action: Show settings to allow configuration of privacy options.
158c15255a979c9fc70bc251aefdcd9c1074b458d49Amith Yamasani     * <p>
159c15255a979c9fc70bc251aefdcd9c1074b458d49Amith Yamasani     * In some cases, a matching Activity may not exist, so ensure you
160c15255a979c9fc70bc251aefdcd9c1074b458d49Amith Yamasani     * safeguard against this.
161c15255a979c9fc70bc251aefdcd9c1074b458d49Amith Yamasani     * <p>
162c15255a979c9fc70bc251aefdcd9c1074b458d49Amith Yamasani     * Input: Nothing.
163c15255a979c9fc70bc251aefdcd9c1074b458d49Amith Yamasani     * <p>
164c15255a979c9fc70bc251aefdcd9c1074b458d49Amith Yamasani     * Output: Nothing.
165c15255a979c9fc70bc251aefdcd9c1074b458d49Amith Yamasani     */
166c15255a979c9fc70bc251aefdcd9c1074b458d49Amith Yamasani    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
167c15255a979c9fc70bc251aefdcd9c1074b458d49Amith Yamasani    public static final String ACTION_PRIVACY_SETTINGS =
168c15255a979c9fc70bc251aefdcd9c1074b458d49Amith Yamasani            "android.settings.PRIVACY_SETTINGS";
169c15255a979c9fc70bc251aefdcd9c1074b458d49Amith Yamasani
170c15255a979c9fc70bc251aefdcd9c1074b458d49Amith Yamasani    /**
1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to allow configuration of Wi-Fi.
1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_WIFI_SETTINGS =
1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.WIFI_SETTINGS";
1859bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to allow configuration of a static IP
1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * address for Wi-Fi.
1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you safeguard
1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * against this.
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_WIFI_IP_SETTINGS =
1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.WIFI_IP_SETTINGS";
2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to allow configuration of Bluetooth.
2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_BLUETOOTH_SETTINGS =
2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.BLUETOOTH_SETTINGS";
2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to allow configuration of date and time.
2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_DATE_SETTINGS =
2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.DATE_SETTINGS";
2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to allow configuration of sound and volume.
2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_SOUND_SETTINGS =
2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.SOUND_SETTINGS";
2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to allow configuration of display.
2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_DISPLAY_SETTINGS =
2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.DISPLAY_SETTINGS";
2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to allow configuration of locale.
2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_LOCALE_SETTINGS =
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.LOCALE_SETTINGS";
2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to configure input methods, in particular
2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * allowing the user to enable input methods.
2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_INPUT_METHOD_SETTINGS =
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.INPUT_METHOD_SETTINGS";
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to manage the user input dictionary.
2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_USER_DICTIONARY_SETTINGS =
2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.USER_DICTIONARY_SETTINGS";
2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to allow configuration of application-related settings.
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_APPLICATION_SETTINGS =
3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.APPLICATION_SETTINGS";
3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to allow configuration of application
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * development-related settings.
3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you safeguard
3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * against this.
3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_APPLICATION_DEVELOPMENT_SETTINGS =
3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.APPLICATION_DEVELOPMENT_SETTINGS";
3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to allow configuration of quick launch shortcuts.
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_QUICK_LAUNCH_SETTINGS =
3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.QUICK_LAUNCH_SETTINGS";
3429bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to manage installed applications.
3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_MANAGE_APPLICATIONS_SETTINGS =
3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.MANAGE_APPLICATIONS_SETTINGS";
3569bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings for system update functionality.
3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
3669bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh     *
3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @hide
3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_SYSTEM_UPDATE_SETTINGS =
3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.SYSTEM_UPDATE_SETTINGS";
3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings to allow configuration of sync settings.
3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
379eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * The account types available to add via the add account button may be restricted by adding an
380eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * {@link #EXTRA_AUTHORITIES} extra to this Intent with one or more syncable content provider's
381eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * authorities. Only account types which can sync with that content provider will be offered to
382eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * the user.
383eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * <p>
3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_SYNC_SETTINGS =
3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.SYNC_SETTINGS";
3919bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
393eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * Activity Action: Show add account screen for creating a new account.
394eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * <p>
395eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * In some cases, a matching Activity may not exist, so ensure you
396eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * safeguard against this.
397eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * <p>
398eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * The account types available to add may be restricted by adding an {@link #EXTRA_AUTHORITIES}
399eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * extra to the Intent with one or more syncable content provider's authorities.  Only account
400eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * types which can sync with that content provider will be offered to the user.
401eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * <p>
402eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * Input: Nothing.
403eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * <p>
404eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * Output: Nothing.
405eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     */
406eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
407eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik    public static final String ACTION_ADD_ACCOUNT =
408eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik            "android.settings.ADD_ACCOUNT_SETTINGS";
409eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik
410eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik    /**
4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings for selecting the network operator.
4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_NETWORK_OPERATOR_SETTINGS =
4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.NETWORK_OPERATOR_SETTINGS";
4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings for selection of 2G/3G.
4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_DATA_ROAMING_SETTINGS =
4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.DATA_ROAMING_SETTINGS";
4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings for internal storage.
4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_INTERNAL_STORAGE_SETTINGS =
4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.INTERNAL_STORAGE_SETTINGS";
4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Show settings for memory card storage.
4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * In some cases, a matching Activity may not exist, so ensure you
4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * safeguard against this.
4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Input: Nothing.
4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>
4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Output: Nothing.
4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_MEMORY_CARD_SETTINGS =
4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.settings.MEMORY_CARD_SETTINGS";
4649bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
465ef340357cefeee452403a77c2b6c1aa01c239d6bJustin Mattson    /**
466ef340357cefeee452403a77c2b6c1aa01c239d6bJustin Mattson     * Activity Action: Show settings for global search.
467ef340357cefeee452403a77c2b6c1aa01c239d6bJustin Mattson     * <p>
468ef340357cefeee452403a77c2b6c1aa01c239d6bJustin Mattson     * In some cases, a matching Activity may not exist, so ensure you
469ef340357cefeee452403a77c2b6c1aa01c239d6bJustin Mattson     * safeguard against this.
470ef340357cefeee452403a77c2b6c1aa01c239d6bJustin Mattson     * <p>
471ef340357cefeee452403a77c2b6c1aa01c239d6bJustin Mattson     * Input: Nothing.
472ef340357cefeee452403a77c2b6c1aa01c239d6bJustin Mattson     * <p>
473ef340357cefeee452403a77c2b6c1aa01c239d6bJustin Mattson     * Output: Nothing
474ef340357cefeee452403a77c2b6c1aa01c239d6bJustin Mattson     */
475ef340357cefeee452403a77c2b6c1aa01c239d6bJustin Mattson    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
476ef340357cefeee452403a77c2b6c1aa01c239d6bJustin Mattson    public static final String ACTION_SEARCH_SETTINGS =
477ef340357cefeee452403a77c2b6c1aa01c239d6bJustin Mattson        "android.search.action.SEARCH_SETTINGS";
478ef340357cefeee452403a77c2b6c1aa01c239d6bJustin Mattson
4799d8b876c61831fd52abf56a87c518b999cc17821Daniel Sandler    /**
4809d8b876c61831fd52abf56a87c518b999cc17821Daniel Sandler     * Activity Action: Show general device information settings (serial
4819d8b876c61831fd52abf56a87c518b999cc17821Daniel Sandler     * number, software version, phone number, etc.).
4829d8b876c61831fd52abf56a87c518b999cc17821Daniel Sandler     * <p>
4839d8b876c61831fd52abf56a87c518b999cc17821Daniel Sandler     * In some cases, a matching Activity may not exist, so ensure you
4849d8b876c61831fd52abf56a87c518b999cc17821Daniel Sandler     * safeguard against this.
4859d8b876c61831fd52abf56a87c518b999cc17821Daniel Sandler     * <p>
4869d8b876c61831fd52abf56a87c518b999cc17821Daniel Sandler     * Input: Nothing.
4879d8b876c61831fd52abf56a87c518b999cc17821Daniel Sandler     * <p>
4889d8b876c61831fd52abf56a87c518b999cc17821Daniel Sandler     * Output: Nothing
4899d8b876c61831fd52abf56a87c518b999cc17821Daniel Sandler     */
4909d8b876c61831fd52abf56a87c518b999cc17821Daniel Sandler    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
4919d8b876c61831fd52abf56a87c518b999cc17821Daniel Sandler    public static final String ACTION_DEVICE_INFO_SETTINGS =
4929d8b876c61831fd52abf56a87c518b999cc17821Daniel Sandler        "android.settings.DEVICE_INFO_SETTINGS";
4939d8b876c61831fd52abf56a87c518b999cc17821Daniel Sandler
4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // End of Intent actions for Settings
4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
496eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik    /**
4971877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick     * @hide - Private call() method on SettingsProvider to read from 'system' table.
4981877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick     */
4991877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick    public static final String CALL_METHOD_GET_SYSTEM = "GET_system";
5001877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick
5011877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick    /**
5021877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick     * @hide - Private call() method on SettingsProvider to read from 'secure' table.
5031877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick     */
5041877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick    public static final String CALL_METHOD_GET_SECURE = "GET_secure";
5051877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick
5061877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick    /**
507eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * Activity Extra: Limit available options in launched activity based on the given authority.
508eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * <p>
509eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * This can be passed as an extra field in an Activity Intent with one or more syncable content
510eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * provider's authorities as a String[]. This field is used by some intents to alter the
511eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * behavior of the called activity.
512eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * <p>
513eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * Example: The {@link #ACTION_ADD_ACCOUNT} intent restricts the account types available based
514eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     * on the authority given.
515eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik     */
516eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik    public static final String EXTRA_AUTHORITIES =
517eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik            "authorities";
518eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik
5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private static final String JID_RESOURCE_PREFIX = "android";
5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String AUTHORITY = "settings";
5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private static final String TAG = "Settings";
524799f721fcbff7a5ef62141786a642290f275903bDan Egnor    private static final boolean LOCAL_LOGV = Config.LOGV || false;
5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static class SettingNotFoundException extends AndroidException {
5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public SettingNotFoundException(String msg) {
5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            super(msg);
5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Common base for tables of name/value settings.
5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static class NameValueTable implements BaseColumns {
5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String NAME = "name";
5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String VALUE = "value";
5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        protected static boolean putString(ContentResolver resolver, Uri uri,
5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                String name, String value) {
5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            // The database will take care of replacing duplicates.
5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            try {
5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                ContentValues values = new ContentValues();
5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                values.put(NAME, name);
5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                values.put(VALUE, value);
5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                resolver.insert(uri, values);
5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return true;
5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } catch (SQLException e) {
549a33e3f79259b56b03c7912af35944f34ad190e3cDianne Hackborn                Log.w(TAG, "Can't set key " + name + " in " + uri, e);
5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return false;
5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static Uri getUriFor(Uri uri, String name) {
5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return Uri.withAppendedPath(uri, name);
5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5591877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick    // Thread-safe.
5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private static class NameValueCache {
5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        private final String mVersionSystemProperty;
5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        private final Uri mUri;
5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5641877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick        private static final String[] SELECT_VALUE =
5651877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            new String[] { Settings.NameValueTable.VALUE };
5661877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick        private static final String NAME_EQ_PLACEHOLDER = "name=?";
5671877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick
5681877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick        // Must synchronize on 'this' to access mValues and mValuesVersion.
569799f721fcbff7a5ef62141786a642290f275903bDan Egnor        private final HashMap<String, String> mValues = new HashMap<String, String>();
570799f721fcbff7a5ef62141786a642290f275903bDan Egnor        private long mValuesVersion = 0;
571799f721fcbff7a5ef62141786a642290f275903bDan Egnor
5721877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick        // Initially null; set lazily and held forever.  Synchronized on 'this'.
5731877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick        private IContentProvider mContentProvider = null;
5741877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick
5751877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick        // The method we'll call (or null, to not use) on the provider
5761877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick        // for the fast path of retrieving settings.
5771877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick        private final String mCallCommand;
5781877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick
5791877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick        public NameValueCache(String versionSystemProperty, Uri uri, String callCommand) {
5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mVersionSystemProperty = versionSystemProperty;
5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mUri = uri;
5821877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            mCallCommand = callCommand;
5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
585799f721fcbff7a5ef62141786a642290f275903bDan Egnor        public String getString(ContentResolver cr, String name) {
5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            long newValuesVersion = SystemProperties.getLong(mVersionSystemProperty, 0);
587799f721fcbff7a5ef62141786a642290f275903bDan Egnor
5881877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            synchronized (this) {
589799f721fcbff7a5ef62141786a642290f275903bDan Egnor                if (mValuesVersion != newValuesVersion) {
590799f721fcbff7a5ef62141786a642290f275903bDan Egnor                    if (LOCAL_LOGV) {
591799f721fcbff7a5ef62141786a642290f275903bDan Egnor                        Log.v(TAG, "invalidate [" + mUri.getLastPathSegment() + "]: current " +
592799f721fcbff7a5ef62141786a642290f275903bDan Egnor                                newValuesVersion + " != cached " + mValuesVersion);
593799f721fcbff7a5ef62141786a642290f275903bDan Egnor                    }
594799f721fcbff7a5ef62141786a642290f275903bDan Egnor
595799f721fcbff7a5ef62141786a642290f275903bDan Egnor                    mValues.clear();
596799f721fcbff7a5ef62141786a642290f275903bDan Egnor                    mValuesVersion = newValuesVersion;
597799f721fcbff7a5ef62141786a642290f275903bDan Egnor                }
598799f721fcbff7a5ef62141786a642290f275903bDan Egnor
599799f721fcbff7a5ef62141786a642290f275903bDan Egnor                if (mValues.containsKey(name)) {
600799f721fcbff7a5ef62141786a642290f275903bDan Egnor                    return mValues.get(name);  // Could be null, that's OK -- negative caching
601799f721fcbff7a5ef62141786a642290f275903bDan Egnor                }
6029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
603799f721fcbff7a5ef62141786a642290f275903bDan Egnor
6041877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            IContentProvider cp = null;
6051877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            synchronized (this) {
6061877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                cp = mContentProvider;
6071877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                if (cp == null) {
6081877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                    cp = mContentProvider = cr.acquireProvider(mUri.getAuthority());
6091877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                }
6101877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            }
6111877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick
6121877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            // Try the fast path first, not using query().  If this
6131877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            // fails (alternate Settings provider that doesn't support
6141877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            // this interface?) then we fall back to the query/table
6151877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            // interface.
6161877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            if (mCallCommand != null) {
6171877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                try {
6181877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                    Bundle b = cp.call(mCallCommand, name, null);
6191877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                    if (b != null) {
6201877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                        String value = b.getPairValue();
6211877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                        synchronized (this) {
6221877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                            mValues.put(name, value);
6231877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                        }
6241877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                        return value;
6251877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                    }
6261877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                    // If the response Bundle is null, we fall through
6271877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                    // to the query interface below.
6281877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                } catch (RemoteException e) {
6291877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                    // Not supported by the remote side?  Fall through
6301877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                    // to query().
6311877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                }
6321877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            }
6331877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick
634799f721fcbff7a5ef62141786a642290f275903bDan Egnor            Cursor c = null;
635799f721fcbff7a5ef62141786a642290f275903bDan Egnor            try {
6361877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                c = cp.query(mUri, SELECT_VALUE, NAME_EQ_PLACEHOLDER,
6371877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                             new String[]{name}, null);
638799f721fcbff7a5ef62141786a642290f275903bDan Egnor                if (c == null) {
639799f721fcbff7a5ef62141786a642290f275903bDan Egnor                    Log.w(TAG, "Can't get key " + name + " from " + mUri);
640799f721fcbff7a5ef62141786a642290f275903bDan Egnor                    return null;
641799f721fcbff7a5ef62141786a642290f275903bDan Egnor                }
642799f721fcbff7a5ef62141786a642290f275903bDan Egnor
643799f721fcbff7a5ef62141786a642290f275903bDan Egnor                String value = c.moveToNext() ? c.getString(0) : null;
6441877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                synchronized (this) {
6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    mValues.put(name, value);
6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
647799f721fcbff7a5ef62141786a642290f275903bDan Egnor                if (LOCAL_LOGV) {
648799f721fcbff7a5ef62141786a642290f275903bDan Egnor                    Log.v(TAG, "cache miss [" + mUri.getLastPathSegment() + "]: " +
649799f721fcbff7a5ef62141786a642290f275903bDan Egnor                            name + " = " + (value == null ? "(null)" : value));
650799f721fcbff7a5ef62141786a642290f275903bDan Egnor                }
651799f721fcbff7a5ef62141786a642290f275903bDan Egnor                return value;
6521877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            } catch (RemoteException e) {
653799f721fcbff7a5ef62141786a642290f275903bDan Egnor                Log.w(TAG, "Can't get key " + name + " from " + mUri, e);
654799f721fcbff7a5ef62141786a642290f275903bDan Egnor                return null;  // Return null, but don't cache it.
655799f721fcbff7a5ef62141786a642290f275903bDan Egnor            } finally {
656799f721fcbff7a5ef62141786a642290f275903bDan Egnor                if (c != null) c.close();
6579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * System settings, containing miscellaneous system preferences.  This
6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * table holds simple name/value pairs.  There are convenience
6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * functions for accessing individual settings entries.
6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final class System extends NameValueTable {
6679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String SYS_PROP_SETTING_VERSION = "sys.settings_system_version";
6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6691877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick        // Populated lazily, guarded by class object:
6701877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick        private static NameValueCache sNameValueCache = null;
6719bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        private static final HashSet<String> MOVED_TO_SECURE;
6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        static {
6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE = new HashSet<String>(30);
6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.ADB_ENABLED);
6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.ANDROID_ID);
6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.BLUETOOTH_ON);
6789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.DATA_ROAMING);
6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.DEVICE_PROVISIONED);
6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.HTTP_PROXY);
6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.INSTALL_NON_MARKET_APPS);
6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.LOCATION_PROVIDERS_ALLOWED);
683156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani            MOVED_TO_SECURE.add(Secure.LOCK_PATTERN_ENABLED);
684156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani            MOVED_TO_SECURE.add(Secure.LOCK_PATTERN_VISIBLE);
685156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani            MOVED_TO_SECURE.add(Secure.LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED);
6869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.LOGGING_ID);
6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.PARENTAL_CONTROL_ENABLED);
6889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.PARENTAL_CONTROL_LAST_UPDATE);
6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.PARENTAL_CONTROL_REDIRECT_URL);
6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.SETTINGS_CLASSNAME);
6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.USB_MASS_STORAGE_ENABLED);
6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.USE_GOOGLE_MAIL);
6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON);
6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY);
6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.WIFI_NUM_OPEN_NETWORKS_KEPT);
6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.WIFI_ON);
6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE);
6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_AP_COUNT);
6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS);
7009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED);
7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS);
7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT);
7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_MAX_AP_CHECKS);
7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_ON);
7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_PING_COUNT);
7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_PING_DELAY_MS);
7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_PING_TIMEOUT_MS);
7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Look up a name in the database.
7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param resolver to access the database with
7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name to look up in the table
7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return the corresponding value, or null if not present
7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
7169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public synchronized static String getString(ContentResolver resolver, String name) {
7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (MOVED_TO_SECURE.contains(name)) {
7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.System"
7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        + " to android.provider.Settings.Secure, returning read-only value.");
7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return Secure.getString(resolver, name);
7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7221877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            if (sNameValueCache == null) {
7231877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                sNameValueCache = new NameValueCache(SYS_PROP_SETTING_VERSION, CONTENT_URI,
7241877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                                                     CALL_METHOD_GET_SYSTEM);
7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7261877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            return sNameValueCache.getString(resolver, name);
7279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
7289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Store a name/value pair into the database.
7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param resolver to access the database with
7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name to store
7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param value to associate with the name
7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return true if the value was set, false on database errors
7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static boolean putString(ContentResolver resolver, String name, String value) {
7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (MOVED_TO_SECURE.contains(name)) {
7389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.System"
7399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        + " to android.provider.Settings.Secure, value is unchanged.");
7409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return false;
7419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return putString(resolver, CONTENT_URI, name, value);
7439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
7449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Construct the content URI for a particular name/value pair,
7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * useful for monitoring changes with a ContentObserver.
7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name to look up in the table
7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return the corresponding content URI, or null if not present
7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static Uri getUriFor(String name) {
7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (MOVED_TO_SECURE.contains(name)) {
7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.System"
7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    + " to android.provider.Settings.Secure, returning Secure URI.");
7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return Secure.getUriFor(Secure.CONTENT_URI, name);
7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return getUriFor(CONTENT_URI, name);
7589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
7599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function for retrieving a single system settings value
7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * as an integer.  Note that internally setting values are always
7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * stored as strings; this function converts the string to an integer
7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * for you.  The default value will be returned if the setting is
7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * not defined or not an integer.
7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
7689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name The name of the setting to retrieve.
7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param def Value to return if the setting is not defined.
7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return The setting's current value, or 'def' if it is not defined
7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * or not a valid integer.
7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static int getInt(ContentResolver cr, String name, int def) {
7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String v = getString(cr, name);
7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            try {
7779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return v != null ? Integer.parseInt(v) : def;
7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } catch (NumberFormatException e) {
7799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return def;
7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function for retrieving a single system settings value
7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * as an integer.  Note that internally setting values are always
7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * stored as strings; this function converts the string to an integer
7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * for you.
7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>
7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * This version does not take a default value.  If the setting has not
7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * been set, or the string value is not a number,
7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * it throws {@link SettingNotFoundException}.
7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name The name of the setting to retrieve.
7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @throws SettingNotFoundException Thrown if a setting by the given
7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * name can't be found or the setting value is not an integer.
7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return The setting's current value.
8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static int getInt(ContentResolver cr, String name)
8029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                throws SettingNotFoundException {
8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String v = getString(cr, name);
8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            try {
8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return Integer.parseInt(v);
8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } catch (NumberFormatException e) {
8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                throw new SettingNotFoundException(name);
8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function for updating a single settings value as an
8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * integer. This will either create a new entry in the table if the
8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * given name does not exist, or modify the value of the existing row
8159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * with that name.  Note that internally setting values are always
8169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * stored as strings, so this function converts the given value to a
8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * string before storing it.
8189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name The name of the setting to modify.
8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param value The new value for the setting.
8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return true if the value was set, false on database errors
8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static boolean putInt(ContentResolver cr, String name, int value) {
8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return putString(cr, name, Integer.toString(value));
8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function for retrieving a single system settings value
8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * as a {@code long}.  Note that internally setting values are always
8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * stored as strings; this function converts the string to a {@code long}
8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * for you.  The default value will be returned if the setting is
8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * not defined or not a {@code long}.
8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name The name of the setting to retrieve.
8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param def Value to return if the setting is not defined.
8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return The setting's current value, or 'def' if it is not defined
8409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * or not a valid {@code long}.
8419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
8429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static long getLong(ContentResolver cr, String name, long def) {
8439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String valString = getString(cr, name);
8449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            long value;
8459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            try {
8469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                value = valString != null ? Long.parseLong(valString) : def;
8479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } catch (NumberFormatException e) {
8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                value = def;
8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return value;
8519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function for retrieving a single system settings value
8559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * as a {@code long}.  Note that internally setting values are always
8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * stored as strings; this function converts the string to a {@code long}
8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * for you.
8589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>
8599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * This version does not take a default value.  If the setting has not
8609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * been set, or the string value is not a number,
8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * it throws {@link SettingNotFoundException}.
8629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
8639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name The name of the setting to retrieve.
8659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return The setting's current value.
8679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @throws SettingNotFoundException Thrown if a setting by the given
8689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * name can't be found or the setting value is not an integer.
8699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
8709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static long getLong(ContentResolver cr, String name)
8719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                throws SettingNotFoundException {
8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String valString = getString(cr, name);
8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            try {
8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return Long.parseLong(valString);
8759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } catch (NumberFormatException e) {
8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                throw new SettingNotFoundException(name);
8779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
8819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function for updating a single settings value as a long
8829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * integer. This will either create a new entry in the table if the
8839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * given name does not exist, or modify the value of the existing row
8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * with that name.  Note that internally setting values are always
8859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * stored as strings, so this function converts the given value to a
8869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * string before storing it.
8879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
8889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
8899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name The name of the setting to modify.
8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param value The new value for the setting.
8919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return true if the value was set, false on database errors
8929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
8939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static boolean putLong(ContentResolver cr, String name, long value) {
8949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return putString(cr, name, Long.toString(value));
8959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
8989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function for retrieving a single system settings value
8999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * as a floating point number.  Note that internally setting values are
9009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * always stored as strings; this function converts the string to an
9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * float for you. The default value will be returned if the setting
9029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * is not defined or not a valid float.
9039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
9049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
9059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name The name of the setting to retrieve.
9069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param def Value to return if the setting is not defined.
9079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
9089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return The setting's current value, or 'def' if it is not defined
9099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * or not a valid float.
9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
9119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static float getFloat(ContentResolver cr, String name, float def) {
9129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String v = getString(cr, name);
9139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            try {
9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return v != null ? Float.parseFloat(v) : def;
9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } catch (NumberFormatException e) {
9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return def;
9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function for retrieving a single system settings value
9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * as a float.  Note that internally setting values are always
9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * stored as strings; this function converts the string to a float
9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * for you.
9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>
9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * This version does not take a default value.  If the setting has not
9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * been set, or the string value is not a number,
9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * it throws {@link SettingNotFoundException}.
9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
9319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name The name of the setting to retrieve.
9329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
9339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @throws SettingNotFoundException Thrown if a setting by the given
9349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * name can't be found or the setting value is not a float.
9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
9369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return The setting's current value.
9379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
9389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static float getFloat(ContentResolver cr, String name)
9399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                throws SettingNotFoundException {
9409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String v = getString(cr, name);
9419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            try {
9429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return Float.parseFloat(v);
9439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } catch (NumberFormatException e) {
9449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                throw new SettingNotFoundException(name);
9459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
9469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
9499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function for updating a single settings value as a
9509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * floating point number. This will either create a new entry in the
9519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * table if the given name does not exist, or modify the value of the
9529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * existing row with that name.  Note that internally setting values
9539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * are always stored as strings, so this function converts the given
9549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * value to a string before storing it.
9559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
9569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
9579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name The name of the setting to modify.
9589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param value The new value for the setting.
9599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return true if the value was set, false on database errors
9609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
9619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static boolean putFloat(ContentResolver cr, String name, float value) {
9629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return putString(cr, name, Float.toString(value));
9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
9669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function to read all of the current
9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * configuration-related settings into a
9689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link Configuration} object.
9699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
9709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
9719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param outConfig Where to place the configuration settings.
9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static void getConfiguration(ContentResolver cr, Configuration outConfig) {
9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            outConfig.fontScale = Settings.System.getFloat(
9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                cr, FONT_SCALE, outConfig.fontScale);
9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (outConfig.fontScale < 0) {
9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                outConfig.fontScale = 1;
9789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
9799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
9829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function to write a batch of configuration-related
9839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * settings from a {@link Configuration} object.
9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
9869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param config The settings to write.
9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return true if the values were set, false on database errors
9889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
9899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static boolean putConfiguration(ContentResolver cr, Configuration config) {
9909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return Settings.System.putFloat(cr, FONT_SCALE, config.fontScale);
9919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
993b8b11a0b1d82e24f7a79f2e1672e7f5cf1611a55Dianne Hackborn        /** @hide */
994b8b11a0b1d82e24f7a79f2e1672e7f5cf1611a55Dianne Hackborn        public static boolean hasInterestingConfigurationChanges(int changes) {
995b8b11a0b1d82e24f7a79f2e1672e7f5cf1611a55Dianne Hackborn            return (changes&ActivityInfo.CONFIG_FONT_SCALE) != 0;
996b8b11a0b1d82e24f7a79f2e1672e7f5cf1611a55Dianne Hackborn        }
997b8b11a0b1d82e24f7a79f2e1672e7f5cf1611a55Dianne Hackborn
9989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static boolean getShowGTalkServiceStatus(ContentResolver cr) {
9999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return getInt(cr, SHOW_GTALK_SERVICE_STATUS, 0) != 0;
10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static void setShowGTalkServiceStatus(ContentResolver cr, boolean flag) {
10039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            putInt(cr, SHOW_GTALK_SERVICE_STATUS, flag ? 1 : 0);
10049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
10079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The content:// style URL for this table
10089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
10099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final Uri CONTENT_URI =
10109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Uri.parse("content://" + AUTHORITY + "/system");
10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
10139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether we keep the device on while the device is plugged in.
10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Supported values are:
10159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <ul>
10169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <li>{@code 0} to never stay on while plugged in</li>
10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <li>{@link BatteryManager#BATTERY_PLUGGED_AC} to stay on for AC charger</li>
10189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <li>{@link BatteryManager#BATTERY_PLUGGED_USB} to stay on for USB charger</li>
10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * </ul>
10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * These values can be OR-ed together.
10219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
10229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String STAY_ON_WHILE_PLUGGED_IN = "stay_on_while_plugged_in";
10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
10259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * What happens when the user presses the end call button if they're not
10269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * on a call.<br/>
10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <b>Values:</b><br/>
10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * 0 - The end button does nothing.<br/>
10299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * 1 - The end button goes to the home screen.<br/>
10309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * 2 - The end button puts the device to sleep and locks the keyguard.<br/>
10319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * 3 - The end button goes to the home screen.  If the user is already on the
10329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * home screen, it puts the device to sleep.
10339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
10349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String END_BUTTON_BEHAVIOR = "end_button_behavior";
10359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
1037458e8062c322a614d470e544b725adb04fdd8770David Brown         * END_BUTTON_BEHAVIOR value for "go home".
1038458e8062c322a614d470e544b725adb04fdd8770David Brown         * @hide
1039458e8062c322a614d470e544b725adb04fdd8770David Brown         */
1040458e8062c322a614d470e544b725adb04fdd8770David Brown        public static final int END_BUTTON_BEHAVIOR_HOME = 0x1;
1041458e8062c322a614d470e544b725adb04fdd8770David Brown
1042458e8062c322a614d470e544b725adb04fdd8770David Brown        /**
1043458e8062c322a614d470e544b725adb04fdd8770David Brown         * END_BUTTON_BEHAVIOR value for "go to sleep".
1044458e8062c322a614d470e544b725adb04fdd8770David Brown         * @hide
1045458e8062c322a614d470e544b725adb04fdd8770David Brown         */
1046458e8062c322a614d470e544b725adb04fdd8770David Brown        public static final int END_BUTTON_BEHAVIOR_SLEEP = 0x2;
1047458e8062c322a614d470e544b725adb04fdd8770David Brown
1048458e8062c322a614d470e544b725adb04fdd8770David Brown        /**
1049458e8062c322a614d470e544b725adb04fdd8770David Brown         * END_BUTTON_BEHAVIOR default value.
1050458e8062c322a614d470e544b725adb04fdd8770David Brown         * @hide
1051458e8062c322a614d470e544b725adb04fdd8770David Brown         */
1052458e8062c322a614d470e544b725adb04fdd8770David Brown        public static final int END_BUTTON_BEHAVIOR_DEFAULT = END_BUTTON_BEHAVIOR_SLEEP;
1053458e8062c322a614d470e544b725adb04fdd8770David Brown
1054458e8062c322a614d470e544b725adb04fdd8770David Brown        /**
10559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether Airplane Mode is on.
10569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
10579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String AIRPLANE_MODE_ON = "airplane_mode_on";
10589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
10609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Constant for use in AIRPLANE_MODE_RADIOS to specify Bluetooth radio.
10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String RADIO_BLUETOOTH = "bluetooth";
10639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
10659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Constant for use in AIRPLANE_MODE_RADIOS to specify Wi-Fi radio.
10669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
10679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String RADIO_WIFI = "wifi";
10689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
10709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Constant for use in AIRPLANE_MODE_RADIOS to specify Cellular radio.
10719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
10729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String RADIO_CELL = "cell";
10739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
10759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * A comma separated list of radios that need to be disabled when airplane mode
10769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * is on. This overrides WIFI_ON and BLUETOOTH_ON, if Wi-Fi and bluetooth are
10779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * included in the comma separated list.
10789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
10799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String AIRPLANE_MODE_RADIOS = "airplane_mode_radios";
10809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
1082bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood         * A comma separated list of radios that should to be disabled when airplane mode
1083bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood         * is on, but can be manually reenabled by the user.  For example, if RADIO_WIFI is
1084bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood         * added to both AIRPLANE_MODE_RADIOS and AIRPLANE_MODE_TOGGLEABLE_RADIOS, then Wifi
1085bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood         * will be turned off when entering airplane mode, but the user will be able to reenable
1086bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood         * Wifi in the Settings app.
1087bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood         *
1088bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood         * {@hide}
1089bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood         */
1090bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood        public static final String AIRPLANE_MODE_TOGGLEABLE_RADIOS = "airplane_mode_toggleable_radios";
1091bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood
1092bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood        /**
10939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The policy for deciding when Wi-Fi should go to sleep (which will in
10949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * turn switch to using the mobile data as an Internet connection).
10959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>
10969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Set to one of {@link #WIFI_SLEEP_POLICY_DEFAULT},
10979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED}, or
10989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #WIFI_SLEEP_POLICY_NEVER}.
10999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
11009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_SLEEP_POLICY = "wifi_sleep_policy";
11019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
11039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Value for {@link #WIFI_SLEEP_POLICY} to use the default Wi-Fi sleep
11049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * policy, which is to sleep shortly after the turning off
11059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * according to the {@link #STAY_ON_WHILE_PLUGGED_IN} setting.
11069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
11079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int WIFI_SLEEP_POLICY_DEFAULT = 0;
11089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
11109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Value for {@link #WIFI_SLEEP_POLICY} to use the default policy when
11119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the device is on battery, and never go to sleep when the device is
11129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * plugged in.
11139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
11149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED = 1;
11159bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
11169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
11179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Value for {@link #WIFI_SLEEP_POLICY} to never go to sleep.
11189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
11199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int WIFI_SLEEP_POLICY_NEVER = 2;
11209bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
11219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
11229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether to use static IP and other static network attributes.
11239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>
11249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Set to 1 for true and 0 for false.
11259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
11269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_USE_STATIC_IP = "wifi_use_static_ip";
11279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
11299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The static IP address.
11309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>
11319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Example: "192.168.1.51"
11329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
11339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_STATIC_IP = "wifi_static_ip";
11349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
11369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * If using static IP, the gateway's IP address.
11379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>
11389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Example: "192.168.1.1"
11399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
11409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_STATIC_GATEWAY = "wifi_static_gateway";
11419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
11439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * If using static IP, the net mask.
11449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>
11459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Example: "255.255.255.0"
11469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
11479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_STATIC_NETMASK = "wifi_static_netmask";
11489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
11509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * If using static IP, the primary DNS's IP address.
11519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>
11529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Example: "192.168.1.1"
11539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
11549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_STATIC_DNS1 = "wifi_static_dns1";
11559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
11579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * If using static IP, the secondary DNS's IP address.
11589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>
11599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Example: "192.168.1.2"
11609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
11619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_STATIC_DNS2 = "wifi_static_dns2";
11629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
11649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The number of radio channels that are allowed in the local
11659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * 802.11 regulatory domain.
11669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @hide
11679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
11689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_NUM_ALLOWED_CHANNELS = "wifi_num_allowed_channels";
11699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
11719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Determines whether remote devices may discover and/or connect to
11729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * this device.
11739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <P>Type: INT</P>
11749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * 2 -- discoverable and connectable
11759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * 1 -- connectable but not discoverable
11769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * 0 -- neither connectable nor discoverable
11779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
11789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String BLUETOOTH_DISCOVERABILITY =
11799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "bluetooth_discoverability";
11809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
11829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Bluetooth discoverability timeout.  If this value is nonzero, then
11839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Bluetooth becomes discoverable for a certain number of seconds,
11849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * after which is becomes simply connectable.  The value is in seconds.
11859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
11869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String BLUETOOTH_DISCOVERABILITY_TIMEOUT =
11879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "bluetooth_discoverability_timeout";
11889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
1190156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani         * @deprecated Use {@link android.provider.Settings.Secure#LOCK_PATTERN_ENABLED}
1191156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani         * instead
11929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
1193156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani        @Deprecated
1194156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani        public static final String LOCK_PATTERN_ENABLED = Secure.LOCK_PATTERN_ENABLED;
11959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
1197156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani         * @deprecated Use {@link android.provider.Settings.Secure#LOCK_PATTERN_VISIBLE}
1198156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani         * instead
11999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
1200156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani        @Deprecated
12019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String LOCK_PATTERN_VISIBLE = "lock_pattern_visible_pattern";
12029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
1204156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani         * @deprecated Use
1205156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani         * {@link android.provider.Settings.Secure#LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED}
1206156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani         * instead
12079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
1208156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani        @Deprecated
12099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED =
12109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "lock_pattern_tactile_feedback_enabled";
12119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
12149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * A formatted string of the next alarm that is set, or the empty string
12159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * if there is no alarm set.
12169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
12179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String NEXT_ALARM_FORMATTED = "next_alarm_formatted";
12189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
12209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Scaling factor for fonts, float.
12219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
12229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String FONT_SCALE = "font_scale";
12239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
12259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Name of an application package to be debugged.
12269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
12279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String DEBUG_APP = "debug_app";
12289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
12309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * If 1, when launching DEBUG_APP it will wait for the debugger before
12319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * starting user code.  If 0, it will run normally.
12329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
12339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WAIT_FOR_DEBUGGER = "wait_for_debugger";
12349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
12369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether or not to dim the screen. 0=no  1=yes
12379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
12389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String DIM_SCREEN = "dim_screen";
12399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
12419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The timeout before the screen turns off.
12429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
12439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String SCREEN_OFF_TIMEOUT = "screen_off_timeout";
12449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
1246e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima         * If 0, the compatibility mode is off for all applications.
1247e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima         * If 1, older applications run under compatibility mode.
1248e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima         * TODO: remove this settings before code freeze (bug/1907571)
1249e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima         * @hide
1250e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima         */
1251e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima        public static final String COMPATIBILITY_MODE = "compatibility_mode";
1252e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima
1253e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima        /**
12549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The screen backlight brightness between 0 and 255.
12559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
12569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String SCREEN_BRIGHTNESS = "screen_brightness";
12579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
1259951764b97010dfa073126f52b43ea1bdf1b35998Dan Murphy         * Control whether to enable automatic brightness mode.
1260951764b97010dfa073126f52b43ea1bdf1b35998Dan Murphy         */
1261951764b97010dfa073126f52b43ea1bdf1b35998Dan Murphy        public static final String SCREEN_BRIGHTNESS_MODE = "screen_brightness_mode";
1262951764b97010dfa073126f52b43ea1bdf1b35998Dan Murphy
1263951764b97010dfa073126f52b43ea1bdf1b35998Dan Murphy        /**
1264dc3494e3d8e17aeb0dbbe41953a5ef763d95ff78Mike Lockwood         * SCREEN_BRIGHTNESS_MODE value for manual mode.
1265dc3494e3d8e17aeb0dbbe41953a5ef763d95ff78Mike Lockwood         */
1266dc3494e3d8e17aeb0dbbe41953a5ef763d95ff78Mike Lockwood        public static final int SCREEN_BRIGHTNESS_MODE_MANUAL = 0;
1267dc3494e3d8e17aeb0dbbe41953a5ef763d95ff78Mike Lockwood
1268dc3494e3d8e17aeb0dbbe41953a5ef763d95ff78Mike Lockwood        /**
1269dc3494e3d8e17aeb0dbbe41953a5ef763d95ff78Mike Lockwood         * SCREEN_BRIGHTNESS_MODE value for manual mode.
1270dc3494e3d8e17aeb0dbbe41953a5ef763d95ff78Mike Lockwood         */
1271dc3494e3d8e17aeb0dbbe41953a5ef763d95ff78Mike Lockwood        public static final int SCREEN_BRIGHTNESS_MODE_AUTOMATIC = 1;
1272dc3494e3d8e17aeb0dbbe41953a5ef763d95ff78Mike Lockwood
1273dc3494e3d8e17aeb0dbbe41953a5ef763d95ff78Mike Lockwood        /**
12749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Control whether the process CPU usage meter should be shown.
12759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
12769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String SHOW_PROCESSES = "show_processes";
12779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
12799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * If 1, the activity manager will aggressively finish activities and
12809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * processes as soon as they are no longer needed.  If 0, the normal
12819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * extended lifetime is used.
12829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
12839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String ALWAYS_FINISH_ACTIVITIES =
12849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                "always_finish_activities";
12859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
12889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Ringer mode. This is used internally, changing this value will not
12899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * change the ringer mode. See AudioManager.
12909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
12919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String MODE_RINGER = "mode_ringer";
12929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
12949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Determines which streams are affected by ringer mode changes. The
12959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * stream type's bit should be set to 1 if it should be muted when going
12969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * into an inaudible ringer mode.
12979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
12989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String MODE_RINGER_STREAMS_AFFECTED = "mode_ringer_streams_affected";
12999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         /**
13019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project          * Determines which streams are affected by mute. The
13029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project          * stream type's bit should be set to 1 if it should be muted when a mute request
13039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project          * is received.
13049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project          */
13059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         public static final String MUTE_STREAMS_AFFECTED = "mute_streams_affected";
13069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
13089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether vibrate is on for different events. This is used internally,
13099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * changing this value will not change the vibrate. See AudioManager.
13109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
13119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String VIBRATE_ON = "vibrate_on";
13129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
13149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Ringer volume. This is used internally, changing this value will not
13159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * change the volume. See AudioManager.
13169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
13179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String VOLUME_RING = "volume_ring";
13189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
13209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * System/notifications volume. This is used internally, changing this
13219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * value will not change the volume. See AudioManager.
13229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
13239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String VOLUME_SYSTEM = "volume_system";
13249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
13269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Voice call volume. This is used internally, changing this value will
13279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * not change the volume. See AudioManager.
13289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
13299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String VOLUME_VOICE = "volume_voice";
13309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
13329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Music/media/gaming volume. This is used internally, changing this
13339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * value will not change the volume. See AudioManager.
13349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
13359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String VOLUME_MUSIC = "volume_music";
13369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
13389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Alarm volume. This is used internally, changing this
13399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * value will not change the volume. See AudioManager.
13409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
13419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String VOLUME_ALARM = "volume_alarm";
13429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
13449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Notification volume. This is used internally, changing this
13459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * value will not change the volume. See AudioManager.
13469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
13479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String VOLUME_NOTIFICATION = "volume_notification";
13489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
1350484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent         * Bluetooth Headset volume. This is used internally, changing this value will
1351484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent         * not change the volume. See AudioManager.
1352484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent         */
1353484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent        public static final String VOLUME_BLUETOOTH_SCO = "volume_bluetooth_sco";
1354484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent
1355484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent        /**
13569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether the notifications should use the ring volume (value of 1) or
13579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * a separate notification volume (value of 0). In most cases, users
13589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * will have this enabled so the notification and ringer volumes will be
13599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the same. However, power users can disable this and use the separate
13609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * notification volume control.
13619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>
13629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Note: This is a one-off setting that will be removed in the future
13639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * when there is profile support. For this reason, it is kept hidden
13649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * from the public APIs.
13659bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh         *
13669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @hide
13679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
13689bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh        public static final String NOTIFICATIONS_USE_RING_VOLUME =
13699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "notifications_use_ring_volume";
13709bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
13719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
13726329bf7b1e2217c6c9477bd57349a1edade18417Daniel Sandler         * Whether silent mode should allow vibration feedback. This is used
13736329bf7b1e2217c6c9477bd57349a1edade18417Daniel Sandler         * internally in AudioService and the Sound settings activity to
13746329bf7b1e2217c6c9477bd57349a1edade18417Daniel Sandler         * coordinate decoupling of vibrate and silent modes. This setting
13756329bf7b1e2217c6c9477bd57349a1edade18417Daniel Sandler         * will likely be removed in a future release with support for
13766329bf7b1e2217c6c9477bd57349a1edade18417Daniel Sandler         * audio/vibe feedback profiles.
13776329bf7b1e2217c6c9477bd57349a1edade18417Daniel Sandler         *
13786329bf7b1e2217c6c9477bd57349a1edade18417Daniel Sandler         * @hide
13796329bf7b1e2217c6c9477bd57349a1edade18417Daniel Sandler         */
13806329bf7b1e2217c6c9477bd57349a1edade18417Daniel Sandler        public static final String VIBRATE_IN_SILENT = "vibrate_in_silent";
13816329bf7b1e2217c6c9477bd57349a1edade18417Daniel Sandler
13826329bf7b1e2217c6c9477bd57349a1edade18417Daniel Sandler        /**
13839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The mapping of stream type (integer) to its setting.
13849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
13859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String[] VOLUME_SETTINGS = {
13869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            VOLUME_VOICE, VOLUME_SYSTEM, VOLUME_RING, VOLUME_MUSIC,
1387484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent            VOLUME_ALARM, VOLUME_NOTIFICATION, VOLUME_BLUETOOTH_SCO
13889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        };
13899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
13919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Appended to various volume related settings to record the previous
13929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * values before they the settings were affected by a silent/vibrate
13939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * ringer mode change.
13949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
13959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String APPEND_FOR_LAST_AUDIBLE = "_last_audible";
13969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
13989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Persistent store for the system-wide default ringtone URI.
13999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>
14009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * If you need to play the default ringtone at any given time, it is recommended
14019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * you give {@link #DEFAULT_RINGTONE_URI} to the media player.  It will resolve
14029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * to the set default ringtone at the time of playing.
14039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
14049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #DEFAULT_RINGTONE_URI
14059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
14069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String RINGTONE = "ringtone";
14079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
14089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
14099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * A {@link Uri} that will point to the current default ringtone at any
14109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * given time.
14119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>
14129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * If the current default ringtone is in the DRM provider and the caller
14139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * does not have permission, the exception will be a
14149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * FileNotFoundException.
14159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
14169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final Uri DEFAULT_RINGTONE_URI = getUriFor(RINGTONE);
14179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
14189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
14199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Persistent store for the system-wide default notification sound.
14209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
14219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #RINGTONE
14229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #DEFAULT_NOTIFICATION_URI
14239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
14249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String NOTIFICATION_SOUND = "notification_sound";
14259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
14269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
14279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * A {@link Uri} that will point to the current default notification
14289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * sound at any given time.
14299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
14309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #DEFAULT_RINGTONE_URI
14319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
14329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final Uri DEFAULT_NOTIFICATION_URI = getUriFor(NOTIFICATION_SOUND);
14339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
14349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
14353156bb00dd3ab3d6ec732bb6a64a2e84d08c34f0Patrick Scott         * Persistent store for the system-wide default alarm alert.
14363156bb00dd3ab3d6ec732bb6a64a2e84d08c34f0Patrick Scott         *
14373156bb00dd3ab3d6ec732bb6a64a2e84d08c34f0Patrick Scott         * @see #RINGTONE
14383156bb00dd3ab3d6ec732bb6a64a2e84d08c34f0Patrick Scott         * @see #DEFAULT_ALARM_ALERT_URI
14393156bb00dd3ab3d6ec732bb6a64a2e84d08c34f0Patrick Scott         */
14403156bb00dd3ab3d6ec732bb6a64a2e84d08c34f0Patrick Scott        public static final String ALARM_ALERT = "alarm_alert";
14413156bb00dd3ab3d6ec732bb6a64a2e84d08c34f0Patrick Scott
14423156bb00dd3ab3d6ec732bb6a64a2e84d08c34f0Patrick Scott        /**
14433156bb00dd3ab3d6ec732bb6a64a2e84d08c34f0Patrick Scott         * A {@link Uri} that will point to the current default alarm alert at
14443156bb00dd3ab3d6ec732bb6a64a2e84d08c34f0Patrick Scott         * any given time.
14453156bb00dd3ab3d6ec732bb6a64a2e84d08c34f0Patrick Scott         *
14463156bb00dd3ab3d6ec732bb6a64a2e84d08c34f0Patrick Scott         * @see #DEFAULT_ALARM_ALERT_URI
14473156bb00dd3ab3d6ec732bb6a64a2e84d08c34f0Patrick Scott         */
14483156bb00dd3ab3d6ec732bb6a64a2e84d08c34f0Patrick Scott        public static final Uri DEFAULT_ALARM_ALERT_URI = getUriFor(ALARM_ALERT);
14493156bb00dd3ab3d6ec732bb6a64a2e84d08c34f0Patrick Scott
14503156bb00dd3ab3d6ec732bb6a64a2e84d08c34f0Patrick Scott        /**
14519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Setting to enable Auto Replace (AutoText) in text editors. 1 = On, 0 = Off
14529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
14539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String TEXT_AUTO_REPLACE = "auto_replace";
14549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
14559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
14569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Setting to enable Auto Caps in text editors. 1 = On, 0 = Off
14579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
14589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String TEXT_AUTO_CAPS = "auto_caps";
14599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
14609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
14619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Setting to enable Auto Punctuate in text editors. 1 = On, 0 = Off. This
14629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * feature converts two spaces to a "." and space.
14639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
14649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String TEXT_AUTO_PUNCTUATE = "auto_punctuate";
14659bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
14669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
14679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Setting to showing password characters in text editors. 1 = On, 0 = Off
14689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
14699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String TEXT_SHOW_PASSWORD = "show_password";
14709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
14719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String SHOW_GTALK_SERVICE_STATUS =
14729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                "SHOW_GTALK_SERVICE_STATUS";
14739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
14749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
14759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Name of activity to use for wallpaper on the home screen.
14769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
14779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WALLPAPER_ACTIVITY = "wallpaper_activity";
14789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
14799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
14809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Value to specify if the user prefers the date, time and time zone
14819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * to be automatically fetched from the network (NITZ). 1=yes, 0=no
14829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
14839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String AUTO_TIME = "auto_time";
14849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
14859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
14869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Display times as 12 or 24 hours
14879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *   12
14889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *   24
14899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
14909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String TIME_12_24 = "time_12_24";
14919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
14929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
14939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Date format string
14949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *   mm/dd/yyyy
14959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *   dd/mm/yyyy
14969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *   yyyy/mm/dd
14979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
14989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String DATE_FORMAT = "date_format";
14999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
15009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
15019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether the setup wizard has been run before (on first boot), or if
15029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * it still needs to be run.
15039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
15049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * nonzero = it has been run in the past
15059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * 0 = it has not been run in the past
15069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
15079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String SETUP_WIZARD_HAS_RUN = "setup_wizard_has_run";
15089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
15099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
15109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Scaling factor for normal window animations. Setting to 0 will disable window
15119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * animations.
15129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
15139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WINDOW_ANIMATION_SCALE = "window_animation_scale";
15149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
15159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
15169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Scaling factor for activity transition animations. Setting to 0 will disable window
15179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * animations.
15189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
15199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String TRANSITION_ANIMATION_SCALE = "transition_animation_scale";
15209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
15219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
15229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Scaling factor for normal window animations. Setting to 0 will disable window
15239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * animations.
15249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @hide
15259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
15269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String FANCY_IME_ANIMATIONS = "fancy_ime_animations";
15279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
15289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
15299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Control whether the accelerometer will be used to change screen
15309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * orientation.  If 0, it will not be used unless explicitly requested
15319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * by the application; if 1, it will be used by default unless explicitly
15329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * disabled by the application.
15339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
15349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String ACCELEROMETER_ROTATION = "accelerometer_rotation";
15359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
15369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
15379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether the audible DTMF tones are played by the dialer when dialing. The value is
15389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * boolean (1 or 0).
15399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
15409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String DTMF_TONE_WHEN_DIALING = "dtmf_tone";
15419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
15429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
1543d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * CDMA only settings
1544d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * DTMF tone type played by the dialer when dialing.
1545d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         *                 0 = Normal
1546d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         *                 1 = Long
1547d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * @hide
1548d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         */
1549d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause        public static final String DTMF_TONE_TYPE_WHEN_DIALING = "dtmf_tone_type";
1550d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause
1551d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause        /**
1552d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * CDMA only settings
1553d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * Emergency Tone  0 = Off
1554d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         *                 1 = Alert
1555d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         *                 2 = Vibrate
1556d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * @hide
1557d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         */
1558d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause        public static final String EMERGENCY_TONE = "emergency_tone";
1559d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause
1560d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause        /**
1561d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * CDMA only settings
1562d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * Whether the auto retry is enabled. The value is
1563d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * boolean (1 or 0).
1564d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * @hide
1565d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         */
1566d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause        public static final String CALL_AUTO_RETRY = "call_auto_retry";
1567d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause
1568d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause        /**
1569d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * Whether the hearing aid is enabled. The value is
1570d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * boolean (1 or 0).
1571d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * @hide
1572d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         */
1573d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause        public static final String HEARING_AID = "hearing_aid";
1574d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause
1575d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause        /**
1576d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * CDMA only settings
1577d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * TTY Mode
1578d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * 0 = OFF
1579d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * 1 = FULL
1580d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * 2 = VCO
1581d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * 3 = HCO
1582d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         * @hide
1583d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause         */
1584d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause        public static final String TTY_MODE = "tty_mode";
1585d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause
1586d0f6715dcb68fbcee12e0c73326c8d872cb9c5a4David Krause        /**
15879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether the sounds effects (key clicks, lid open ...) are enabled. The value is
15889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * boolean (1 or 0).
15899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
15909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String SOUND_EFFECTS_ENABLED = "sound_effects_enabled";
15919bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
15929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
15939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether the haptic feedback (long presses, ...) are enabled. The value is
15949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * boolean (1 or 0).
15959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
15969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String HAPTIC_FEEDBACK_ENABLED = "haptic_feedback_enabled";
159721bf2416512a8bdf4f3a0fd9f788f409d6013c32Sanjay Jeyakumar
159848603e7fed957f318b12aa24089e0b13c3e78529Mike LeBeau        /**
159948603e7fed957f318b12aa24089e0b13c3e78529Mike LeBeau         * Whether live web suggestions while the user types into search dialogs are
160048603e7fed957f318b12aa24089e0b13c3e78529Mike LeBeau         * enabled. Browsers and other search UIs should respect this, as it allows
160148603e7fed957f318b12aa24089e0b13c3e78529Mike LeBeau         * a user to avoid sending partial queries to a search engine, if it poses
160248603e7fed957f318b12aa24089e0b13c3e78529Mike LeBeau         * any privacy concern. The value is boolean (1 or 0).
160348603e7fed957f318b12aa24089e0b13c3e78529Mike LeBeau         */
160448603e7fed957f318b12aa24089e0b13c3e78529Mike LeBeau        public static final String SHOW_WEB_SUGGESTIONS = "show_web_suggestions";
16059bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
1606501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master        /**
1607ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani         * Whether the notification LED should repeatedly flash when a notification is
1608ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani         * pending. The value is boolean (1 or 0).
1609ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani         * @hide
1610ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani         */
1611ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani        public static final String NOTIFICATION_LIGHT_PULSE = "notification_light_pulse";
1612ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani
1613ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani        /**
161490d2db3d21d07c2a4b4cbbc558f5ec59d20098c3Dianne Hackborn         * Show pointer location on screen?
161590d2db3d21d07c2a4b4cbbc558f5ec59d20098c3Dianne Hackborn         * 0 = no
161690d2db3d21d07c2a4b4cbbc558f5ec59d20098c3Dianne Hackborn         * 1 = yes
161790d2db3d21d07c2a4b4cbbc558f5ec59d20098c3Dianne Hackborn         * @hide
161890d2db3d21d07c2a4b4cbbc558f5ec59d20098c3Dianne Hackborn         */
161990d2db3d21d07c2a4b4cbbc558f5ec59d20098c3Dianne Hackborn        public static final String POINTER_LOCATION = "pointer_location";
162090d2db3d21d07c2a4b4cbbc558f5ec59d20098c3Dianne Hackborn
162190d2db3d21d07c2a4b4cbbc558f5ec59d20098c3Dianne Hackborn        /**
16220e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * Whether to play a sound for low-battery alerts.
16230e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * @hide
16240e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         */
16250e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        public static final String POWER_SOUNDS_ENABLED = "power_sounds_enabled";
16260e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler
16270e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        /**
16280e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * Whether to play a sound for dock events.
16290e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * @hide
16300e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         */
16310e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        public static final String DOCK_SOUNDS_ENABLED = "dock_sounds_enabled";
16320e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler
16330e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        /**
16340e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * Whether to play sounds when the keyguard is shown and dismissed.
16350e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * @hide
16360e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         */
16370e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        public static final String LOCKSCREEN_SOUNDS_ENABLED = "lockscreen_sounds_enabled";
16380e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler
16390e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        /**
16400e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * URI for the low battery sound file.
16410e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * @hide
16420e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         */
16430e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        public static final String LOW_BATTERY_SOUND = "low_battery_sound";
16440e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler
16450e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        /**
16460e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * URI for the desk dock "in" event sound.
16470e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * @hide
16480e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         */
16490e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        public static final String DESK_DOCK_SOUND = "desk_dock_sound";
16500e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler
16510e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        /**
16520e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * URI for the desk dock "out" event sound.
16530e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * @hide
16540e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         */
16550e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        public static final String DESK_UNDOCK_SOUND = "desk_undock_sound";
16560e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler
16570e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        /**
16580e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * URI for the car dock "in" event sound.
16590e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * @hide
16600e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         */
16610e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        public static final String CAR_DOCK_SOUND = "car_dock_sound";
16620e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler
16630e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        /**
16640e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * URI for the car dock "out" event sound.
16650e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * @hide
16660e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         */
16670e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        public static final String CAR_UNDOCK_SOUND = "car_undock_sound";
16680e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler
16690e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        /**
16700e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * URI for the "device locked" (keyguard shown) sound.
16710e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * @hide
16720e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         */
16730e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        public static final String LOCK_SOUND = "lock_sound";
16740e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler
16750e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        /**
16760e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * URI for the "device unlocked" (keyguard dismissed) sound.
16770e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         * @hide
16780e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler         */
16790e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        public static final String UNLOCK_SOUND = "unlock_sound";
16800e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler
16810e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler        /**
1682501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master         * Settings to backup. This is here so that it's in the same place as the settings
1683501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master         * keys and easy to update.
1684501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master         * @hide
1685501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master         */
1686501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master        public static final String[] SETTINGS_TO_BACKUP = {
1687501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            STAY_ON_WHILE_PLUGGED_IN,
1688501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            WIFI_SLEEP_POLICY,
1689501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            WIFI_USE_STATIC_IP,
1690501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            WIFI_STATIC_IP,
1691501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            WIFI_STATIC_GATEWAY,
1692501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            WIFI_STATIC_NETMASK,
1693501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            WIFI_STATIC_DNS1,
1694501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            WIFI_STATIC_DNS2,
1695501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            BLUETOOTH_DISCOVERABILITY,
1696501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            BLUETOOTH_DISCOVERABILITY_TIMEOUT,
1697501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            DIM_SCREEN,
1698501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            SCREEN_OFF_TIMEOUT,
1699501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            SCREEN_BRIGHTNESS,
1700362aca60453ec7f27abb4d83fc29dd82095dc882Christopher Tate            SCREEN_BRIGHTNESS_MODE,
1701501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            VIBRATE_ON,
1702501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            NOTIFICATIONS_USE_RING_VOLUME,
17038823c0a8c68fe669c21c539eef9fc6541f0c7494Amith Yamasani            MODE_RINGER,
17048823c0a8c68fe669c21c539eef9fc6541f0c7494Amith Yamasani            MODE_RINGER_STREAMS_AFFECTED,
17058823c0a8c68fe669c21c539eef9fc6541f0c7494Amith Yamasani            MUTE_STREAMS_AFFECTED,
17068823c0a8c68fe669c21c539eef9fc6541f0c7494Amith Yamasani            VOLUME_VOICE,
17078823c0a8c68fe669c21c539eef9fc6541f0c7494Amith Yamasani            VOLUME_SYSTEM,
17088823c0a8c68fe669c21c539eef9fc6541f0c7494Amith Yamasani            VOLUME_RING,
17098823c0a8c68fe669c21c539eef9fc6541f0c7494Amith Yamasani            VOLUME_MUSIC,
17108823c0a8c68fe669c21c539eef9fc6541f0c7494Amith Yamasani            VOLUME_ALARM,
17118823c0a8c68fe669c21c539eef9fc6541f0c7494Amith Yamasani            VOLUME_NOTIFICATION,
1712484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent            VOLUME_BLUETOOTH_SCO,
17138823c0a8c68fe669c21c539eef9fc6541f0c7494Amith Yamasani            VOLUME_VOICE + APPEND_FOR_LAST_AUDIBLE,
17148823c0a8c68fe669c21c539eef9fc6541f0c7494Amith Yamasani            VOLUME_SYSTEM + APPEND_FOR_LAST_AUDIBLE,
17158823c0a8c68fe669c21c539eef9fc6541f0c7494Amith Yamasani            VOLUME_RING + APPEND_FOR_LAST_AUDIBLE,
17168823c0a8c68fe669c21c539eef9fc6541f0c7494Amith Yamasani            VOLUME_MUSIC + APPEND_FOR_LAST_AUDIBLE,
17178823c0a8c68fe669c21c539eef9fc6541f0c7494Amith Yamasani            VOLUME_ALARM + APPEND_FOR_LAST_AUDIBLE,
17188823c0a8c68fe669c21c539eef9fc6541f0c7494Amith Yamasani            VOLUME_NOTIFICATION + APPEND_FOR_LAST_AUDIBLE,
1719484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent            VOLUME_BLUETOOTH_SCO + APPEND_FOR_LAST_AUDIBLE,
17201c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler            VIBRATE_IN_SILENT,
1721501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            TEXT_AUTO_REPLACE,
1722501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            TEXT_AUTO_CAPS,
1723501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            TEXT_AUTO_PUNCTUATE,
1724501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            TEXT_SHOW_PASSWORD,
1725501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            AUTO_TIME,
1726501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            TIME_12_24,
1727501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            DATE_FORMAT,
1728501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            ACCELEROMETER_ROTATION,
1729501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            DTMF_TONE_WHEN_DIALING,
1730501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            DTMF_TONE_TYPE_WHEN_DIALING,
1731501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            EMERGENCY_TONE,
1732501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            CALL_AUTO_RETRY,
1733501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            HEARING_AID,
1734501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            TTY_MODE,
1735501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            SOUND_EFFECTS_ENABLED,
1736501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master            HAPTIC_FEEDBACK_ENABLED,
173714c2d79028224118b96a03d2db6bab1902ccb6afChristopher Tate            POWER_SOUNDS_ENABLED,
173814c2d79028224118b96a03d2db6bab1902ccb6afChristopher Tate            DOCK_SOUNDS_ENABLED,
173914c2d79028224118b96a03d2db6bab1902ccb6afChristopher Tate            LOCKSCREEN_SOUNDS_ENABLED,
1740ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani            SHOW_WEB_SUGGESTIONS,
1741ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani            NOTIFICATION_LIGHT_PULSE
1742501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master        };
1743501eec92f9f4f206ad7972c63f2d0ef0285d8e34-b master
17449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Settings moved to Settings.Secure
17459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
1747460ae0c910e46f6aeb48316f8745be810f68b5a4Mike Lockwood         * @deprecated Use {@link android.provider.Settings.Secure#ADB_ENABLED}
17489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * instead
17499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
17509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
17519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String ADB_ENABLED = Secure.ADB_ENABLED;
17529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
17549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#ANDROID_ID} instead
17559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
17569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
17579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String ANDROID_ID = Secure.ANDROID_ID;
17589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
17609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#BLUETOOTH_ON} instead
17619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
17629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
17639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String BLUETOOTH_ON = Secure.BLUETOOTH_ON;
17649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
17669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#DATA_ROAMING} instead
17679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
17689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
17699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String DATA_ROAMING = Secure.DATA_ROAMING;
17709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
17729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#DEVICE_PROVISIONED} instead
17739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
17749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
17759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String DEVICE_PROVISIONED = Secure.DEVICE_PROVISIONED;
17769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
17789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#HTTP_PROXY} instead
17799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
17809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
17819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String HTTP_PROXY = Secure.HTTP_PROXY;
17829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
17849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#INSTALL_NON_MARKET_APPS} instead
17859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
17869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
17879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String INSTALL_NON_MARKET_APPS = Secure.INSTALL_NON_MARKET_APPS;
17889bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
17899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
17909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#LOCATION_PROVIDERS_ALLOWED}
17919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * instead
17929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
17939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
17949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String LOCATION_PROVIDERS_ALLOWED = Secure.LOCATION_PROVIDERS_ALLOWED;
17959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
17979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#LOGGING_ID} instead
17989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
17999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
18009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String LOGGING_ID = Secure.LOGGING_ID;
18019bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
18029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
18039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#NETWORK_PREFERENCE} instead
18049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
18059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
18069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String NETWORK_PREFERENCE = Secure.NETWORK_PREFERENCE;
18079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
18099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#PARENTAL_CONTROL_ENABLED}
18109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * instead
18119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
18129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
18139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String PARENTAL_CONTROL_ENABLED = Secure.PARENTAL_CONTROL_ENABLED;
18149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
18169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#PARENTAL_CONTROL_LAST_UPDATE}
18179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * instead
18189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
18199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
18209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String PARENTAL_CONTROL_LAST_UPDATE = Secure.PARENTAL_CONTROL_LAST_UPDATE;
18219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
18239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#PARENTAL_CONTROL_REDIRECT_URL}
18249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * instead
18259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
18269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
18279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String PARENTAL_CONTROL_REDIRECT_URL =
18289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Secure.PARENTAL_CONTROL_REDIRECT_URL;
18299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
18319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#SETTINGS_CLASSNAME} instead
18329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
18339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
18349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String SETTINGS_CLASSNAME = Secure.SETTINGS_CLASSNAME;
18359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
18379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#USB_MASS_STORAGE_ENABLED} instead
18389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
18399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
18409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String USB_MASS_STORAGE_ENABLED = Secure.USB_MASS_STORAGE_ENABLED;
18419bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
18429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
18439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#USE_GOOGLE_MAIL} instead
18449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
18459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
18469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String USE_GOOGLE_MAIL = Secure.USE_GOOGLE_MAIL;
18479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18484a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn       /**
18494a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn         * @deprecated Use
18504a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn         * {@link android.provider.Settings.Secure#WIFI_MAX_DHCP_RETRY_COUNT} instead
18514a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn         */
18529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
18539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_MAX_DHCP_RETRY_COUNT = Secure.WIFI_MAX_DHCP_RETRY_COUNT;
18549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18554a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn        /**
18564a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn         * @deprecated Use
18574a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn         * {@link android.provider.Settings.Secure#WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS} instead
18584a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn         */
18599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
18609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS =
18619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Secure.WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS;
18629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
18649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use
18659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link android.provider.Settings.Secure#WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON} instead
18669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
18679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
18689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON =
18699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON;
18709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
18729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use
18739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link android.provider.Settings.Secure#WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY} instead
18749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
18759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
18769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY =
18779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Secure.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY;
18789bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
18799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
18809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#WIFI_NUM_OPEN_NETWORKS_KEPT}
18819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * instead
18829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
18839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
18849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_NUM_OPEN_NETWORKS_KEPT = Secure.WIFI_NUM_OPEN_NETWORKS_KEPT;
18859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
18879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#WIFI_ON} instead
18889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
18899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
18909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_ON = Secure.WIFI_ON;
18919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
18939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use
18949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link android.provider.Settings.Secure#WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE}
18959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * instead
18969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
18979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
18989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE =
18999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Secure.WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE;
19009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
19029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#WIFI_WATCHDOG_AP_COUNT} instead
19039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
19049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
19059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_AP_COUNT = Secure.WIFI_WATCHDOG_AP_COUNT;
19069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
19089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use
19099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link android.provider.Settings.Secure#WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS} instead
19109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
19119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
19129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS =
19139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Secure.WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS;
19149bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
19159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
19169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use
19179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link android.provider.Settings.Secure#WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED} instead
19189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
19199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
19209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED =
19219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Secure.WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED;
19229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
19249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use
19259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link android.provider.Settings.Secure#WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS}
19269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * instead
19279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
19289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
19299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS =
19309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Secure.WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS;
19319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
19339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use
19349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link android.provider.Settings.Secure#WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT} instead
19359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
19369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
19379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT =
19389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Secure.WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT;
19399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
19419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#WIFI_WATCHDOG_MAX_AP_CHECKS}
19429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * instead
19439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
19449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
19459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_MAX_AP_CHECKS = Secure.WIFI_WATCHDOG_MAX_AP_CHECKS;
19469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
19489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#WIFI_WATCHDOG_ON} instead
19499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
19509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
19519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_ON = Secure.WIFI_WATCHDOG_ON;
19529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
19549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#WIFI_WATCHDOG_PING_COUNT} instead
19559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
19569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
19579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_PING_COUNT = Secure.WIFI_WATCHDOG_PING_COUNT;
19589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
19609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#WIFI_WATCHDOG_PING_DELAY_MS}
19619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * instead
19629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
19639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
19649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_PING_DELAY_MS = Secure.WIFI_WATCHDOG_PING_DELAY_MS;
19659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
19679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated Use {@link android.provider.Settings.Secure#WIFI_WATCHDOG_PING_TIMEOUT_MS}
19689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * instead
19699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
19709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
19719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_PING_TIMEOUT_MS =
19729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Secure.WIFI_WATCHDOG_PING_TIMEOUT_MS;
19739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
19769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Secure system settings, containing system preferences that applications
19779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can read but are not allowed to write.  These are for preferences that
19789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the user must explicitly modify through the system UI or specialized
19799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * APIs for those values, not modified directly by applications.
19809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
19819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final class Secure extends NameValueTable {
19829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String SYS_PROP_SETTING_VERSION = "sys.settings_secure_version";
19839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19841877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick        // Populated lazily, guarded by class object:
19851877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick        private static NameValueCache sNameValueCache = null;
19869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
19889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Look up a name in the database.
19899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param resolver to access the database with
19909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name to look up in the table
19919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return the corresponding value, or null if not present
19929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
19939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public synchronized static String getString(ContentResolver resolver, String name) {
19941877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            if (sNameValueCache == null) {
19951877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                sNameValueCache = new NameValueCache(SYS_PROP_SETTING_VERSION, CONTENT_URI,
19961877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick                                                     CALL_METHOD_GET_SECURE);
19979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
19981877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick            return sNameValueCache.getString(resolver, name);
19999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
20009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
20029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Store a name/value pair into the database.
20039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param resolver to access the database with
20049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name to store
20059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param value to associate with the name
20069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return true if the value was set, false on database errors
20079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
20089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static boolean putString(ContentResolver resolver,
20099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                String name, String value) {
20109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return putString(resolver, CONTENT_URI, name, value);
20119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
20129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
20149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Construct the content URI for a particular name/value pair,
20159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * useful for monitoring changes with a ContentObserver.
20169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name to look up in the table
20179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return the corresponding content URI, or null if not present
20189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
20199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static Uri getUriFor(String name) {
20209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return getUriFor(CONTENT_URI, name);
20219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
20229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
20249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function for retrieving a single secure settings value
20259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * as an integer.  Note that internally setting values are always
20269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * stored as strings; this function converts the string to an integer
20279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * for you.  The default value will be returned if the setting is
20289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * not defined or not an integer.
20299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
20309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
20319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name The name of the setting to retrieve.
20329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param def Value to return if the setting is not defined.
20339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
20349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return The setting's current value, or 'def' if it is not defined
20359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * or not a valid integer.
20369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
20379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static int getInt(ContentResolver cr, String name, int def) {
20389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String v = getString(cr, name);
20399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            try {
20409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return v != null ? Integer.parseInt(v) : def;
20419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } catch (NumberFormatException e) {
20429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return def;
20439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
20449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
20459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
20479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function for retrieving a single secure settings value
20489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * as an integer.  Note that internally setting values are always
20499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * stored as strings; this function converts the string to an integer
20509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * for you.
20519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>
20529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * This version does not take a default value.  If the setting has not
20539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * been set, or the string value is not a number,
20549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * it throws {@link SettingNotFoundException}.
20559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
20569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
20579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name The name of the setting to retrieve.
20589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
20599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @throws SettingNotFoundException Thrown if a setting by the given
20609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * name can't be found or the setting value is not an integer.
20619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
20629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return The setting's current value.
20639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
20649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static int getInt(ContentResolver cr, String name)
20659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                throws SettingNotFoundException {
20669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String v = getString(cr, name);
20679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            try {
20689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return Integer.parseInt(v);
20699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } catch (NumberFormatException e) {
20709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                throw new SettingNotFoundException(name);
20719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
20729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
20739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
20759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function for updating a single settings value as an
20769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * integer. This will either create a new entry in the table if the
20779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * given name does not exist, or modify the value of the existing row
20789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * with that name.  Note that internally setting values are always
20799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * stored as strings, so this function converts the given value to a
20809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * string before storing it.
20819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
20829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
20839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name The name of the setting to modify.
20849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param value The new value for the setting.
20859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return true if the value was set, false on database errors
20869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
20879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static boolean putInt(ContentResolver cr, String name, int value) {
20889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return putString(cr, name, Integer.toString(value));
20899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
20909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
20929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function for retrieving a single secure settings value
20939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * as a {@code long}.  Note that internally setting values are always
20949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * stored as strings; this function converts the string to a {@code long}
20959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * for you.  The default value will be returned if the setting is
20969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * not defined or not a {@code long}.
20979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
20989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
20999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name The name of the setting to retrieve.
21009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param def Value to return if the setting is not defined.
21019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
21029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return The setting's current value, or 'def' if it is not defined
21039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * or not a valid {@code long}.
21049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
21059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static long getLong(ContentResolver cr, String name, long def) {
21069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String valString = getString(cr, name);
21079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            long value;
21089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            try {
21099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                value = valString != null ? Long.parseLong(valString) : def;
21109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } catch (NumberFormatException e) {
21119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                value = def;
21129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
21139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return value;
21149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
21159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
21179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function for retrieving a single secure settings value
21189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * as a {@code long}.  Note that internally setting values are always
21199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * stored as strings; this function converts the string to a {@code long}
21209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * for you.
21219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>
21229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * This version does not take a default value.  If the setting has not
21239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * been set, or the string value is not a number,
21249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * it throws {@link SettingNotFoundException}.
21259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
21269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
21279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name The name of the setting to retrieve.
21289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
21299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return The setting's current value.
21309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @throws SettingNotFoundException Thrown if a setting by the given
21319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * name can't be found or the setting value is not an integer.
21329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
21339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static long getLong(ContentResolver cr, String name)
21349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                throws SettingNotFoundException {
21359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String valString = getString(cr, name);
21369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            try {
21379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return Long.parseLong(valString);
21389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } catch (NumberFormatException e) {
21399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                throw new SettingNotFoundException(name);
21409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
21419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
21429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
21449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function for updating a secure settings value as a long
21459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * integer. This will either create a new entry in the table if the
21469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * given name does not exist, or modify the value of the existing row
21479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * with that name.  Note that internally setting values are always
21489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * stored as strings, so this function converts the given value to a
21499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * string before storing it.
21509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
21519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
21529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name The name of the setting to modify.
21539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param value The new value for the setting.
21549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return true if the value was set, false on database errors
21559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
21569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static boolean putLong(ContentResolver cr, String name, long value) {
21579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return putString(cr, name, Long.toString(value));
21589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
21599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
21619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function for retrieving a single secure settings value
21629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * as a floating point number.  Note that internally setting values are
21639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * always stored as strings; this function converts the string to an
21649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * float for you. The default value will be returned if the setting
21659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * is not defined or not a valid float.
21669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
21679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
21689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name The name of the setting to retrieve.
21699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param def Value to return if the setting is not defined.
21709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
21719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return The setting's current value, or 'def' if it is not defined
21729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * or not a valid float.
21739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
21749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static float getFloat(ContentResolver cr, String name, float def) {
21759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String v = getString(cr, name);
21769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            try {
21779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return v != null ? Float.parseFloat(v) : def;
21789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } catch (NumberFormatException e) {
21799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return def;
21809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
21819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
21829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
21849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function for retrieving a single secure settings value
21859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * as a float.  Note that internally setting values are always
21869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * stored as strings; this function converts the string to a float
21879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * for you.
21889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>
21899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * This version does not take a default value.  If the setting has not
21909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * been set, or the string value is not a number,
21919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * it throws {@link SettingNotFoundException}.
21929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
21939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
21949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name The name of the setting to retrieve.
21959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
21969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @throws SettingNotFoundException Thrown if a setting by the given
21979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * name can't be found or the setting value is not a float.
21989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
21999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return The setting's current value.
22009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
22019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static float getFloat(ContentResolver cr, String name)
22029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                throws SettingNotFoundException {
22039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String v = getString(cr, name);
22049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            try {
22059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return Float.parseFloat(v);
22069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } catch (NumberFormatException e) {
22079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                throw new SettingNotFoundException(name);
22089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
22099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
22109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
22129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function for updating a single settings value as a
22139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * floating point number. This will either create a new entry in the
22149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * table if the given name does not exist, or modify the value of the
22159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * existing row with that name.  Note that internally setting values
22169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * are always stored as strings, so this function converts the given
22179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * value to a string before storing it.
22189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
22199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to access.
22209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param name The name of the setting to modify.
22219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param value The new value for the setting.
22229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return true if the value was set, false on database errors
22239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
22249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static boolean putFloat(ContentResolver cr, String name, float value) {
22259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return putString(cr, name, Float.toString(value));
22269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
22279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
22299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The content:// style URL for this table
22309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
22319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final Uri CONTENT_URI =
22329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Uri.parse("content://" + AUTHORITY + "/secure");
22339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
22359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether ADB is enabled.
22369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
22379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String ADB_ENABLED = "adb_enabled";
22389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
22409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Setting to allow mock locations and location provider status to be injected into the
22419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * LocationManager service for testing purposes during application development.  These
22429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * locations and status values  override actual location and status information generated
22439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * by network, gps, or other location providers.
22449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
22459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String ALLOW_MOCK_LOCATION = "mock_location";
22469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
2248d8893db060c9aabb6042ba6444a9df476da13a6fDoug Zongker         * A 64-bit number (as a hex string) that is randomly
2249d8893db060c9aabb6042ba6444a9df476da13a6fDoug Zongker         * generated on the device's first boot and should remain
2250d8893db060c9aabb6042ba6444a9df476da13a6fDoug Zongker         * constant for the lifetime of the device.  (The value may
2251d8893db060c9aabb6042ba6444a9df476da13a6fDoug Zongker         * change if a factory reset is performed on the device.)
22529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
22539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String ANDROID_ID = "android_id";
22549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
22569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether bluetooth is enabled/disabled
22579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * 0=disabled. 1=enabled.
22589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
22599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String BLUETOOTH_ON = "bluetooth_on";
22609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
22629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Get the key that retrieves a bluetooth headset's priority.
22639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @hide
22649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
22659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String getBluetoothHeadsetPriorityKey(String address) {
22669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return ("bluetooth_headset_priority_" + address.toUpperCase());
22679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
22689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
22709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Get the key that retrieves a bluetooth a2dp sink's priority.
22719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @hide
22729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
22739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String getBluetoothA2dpSinkPriorityKey(String address) {
22749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return ("bluetooth_a2dp_sink_priority_" + address.toUpperCase());
22759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
22769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
22789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether or not data roaming is enabled. (0 = false, 1 = true)
22799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
22809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String DATA_ROAMING = "data_roaming";
22819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
22839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Setting to record the input method used by default, holding the ID
22849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * of the desired method.
22859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
22869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String DEFAULT_INPUT_METHOD = "default_input_method";
22879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
22899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether the device has been provisioned (0 = false, 1 = true)
22909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
22919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String DEVICE_PROVISIONED = "device_provisioned";
22929bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
22939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
22949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * List of input methods that are currently enabled.  This is a string
22959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * containing the IDs of all enabled input methods, each ID separated
22969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * by ':'.
22979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
22989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String ENABLED_INPUT_METHODS = "enabled_input_methods";
22999bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
23009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
2301e861ec11c458b4f76eb80da518dfee6a400071bfAmith Yamasani         * List of system input methods that are currently disabled.  This is a string
2302e861ec11c458b4f76eb80da518dfee6a400071bfAmith Yamasani         * containing the IDs of all disabled input methods, each ID separated
2303e861ec11c458b4f76eb80da518dfee6a400071bfAmith Yamasani         * by ':'.
2304e861ec11c458b4f76eb80da518dfee6a400071bfAmith Yamasani         * @hide
2305e861ec11c458b4f76eb80da518dfee6a400071bfAmith Yamasani         */
2306e861ec11c458b4f76eb80da518dfee6a400071bfAmith Yamasani        public static final String DISABLED_SYSTEM_INPUT_METHODS = "disabled_system_input_methods";
2307e861ec11c458b4f76eb80da518dfee6a400071bfAmith Yamasani
2308e861ec11c458b4f76eb80da518dfee6a400071bfAmith Yamasani        /**
23099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Host name and port for a user-selected proxy.
23109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
23119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String HTTP_PROXY = "http_proxy";
23129bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
23139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
23149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether the package installer should allow installation of apps downloaded from
23159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * sources other than the Android Market (vending machine).
23169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
23179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * 1 = allow installing from other sources
23189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * 0 = only allow installing from the Android Market
23199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
23209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String INSTALL_NON_MARKET_APPS = "install_non_market_apps";
23219bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
23229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
23239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Comma-separated list of location providers that activities may access.
23249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
23259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String LOCATION_PROVIDERS_ALLOWED = "location_providers_allowed";
23269bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
23279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
2328156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani         * Whether autolock is enabled (0 = false, 1 = true)
2329156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani         */
2330156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani        public static final String LOCK_PATTERN_ENABLED = "lock_pattern_autolock";
2331156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani
2332156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani        /**
2333156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani         * Whether lock pattern is visible as user enters (0 = false, 1 = true)
2334156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani         */
2335156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani        public static final String LOCK_PATTERN_VISIBLE = "lock_pattern_visible_pattern";
2336156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani
2337156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani        /**
2338156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani         * Whether lock pattern will vibrate as user enters (0 = false, 1 = true)
2339156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani         */
2340156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani        public static final String LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED =
2341156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani            "lock_pattern_tactile_feedback_enabled";
2342156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani
2343156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani        /**
2344bcab8df83e6e769a7cbcc742e72b47d665998793Mike Lockwood         * Whether assisted GPS should be enabled or not.
2345bcab8df83e6e769a7cbcc742e72b47d665998793Mike Lockwood         * @hide
2346bcab8df83e6e769a7cbcc742e72b47d665998793Mike Lockwood         */
2347bcab8df83e6e769a7cbcc742e72b47d665998793Mike Lockwood        public static final String ASSISTED_GPS_ENABLED = "assisted_gps_enabled";
2348bcab8df83e6e769a7cbcc742e72b47d665998793Mike Lockwood
2349bcab8df83e6e769a7cbcc742e72b47d665998793Mike Lockwood        /**
23509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The Logging ID (a unique 64-bit value) as a hex string.
23519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Used as a pseudonymous identifier for logging.
23529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @deprecated This identifier is poorly initialized and has
23539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * many collisions.  It should not be used.
23549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
23559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Deprecated
23569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String LOGGING_ID = "logging_id";
23579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
23599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * User preference for which network(s) should be used. Only the
23609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * connectivity service should touch this.
23619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
23629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String NETWORK_PREFERENCE = "network_preference";
23639bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
23649bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh        /**
23652a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt         * Used to disable Tethering on a device - defaults to true
23662a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt         * @hide
23672a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt         */
23682a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt        public static final String TETHER_SUPPORTED = "tether_supported";
23692a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt
23702a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt        /**
237177b32ddbbeeb13a07b16f23af705567c75a8e3dfRobert Greenwalt         * Used to require DUN APN on the device or not - defaults to a build config value
237277b32ddbbeeb13a07b16f23af705567c75a8e3dfRobert Greenwalt         * which defaults to false
237377b32ddbbeeb13a07b16f23af705567c75a8e3dfRobert Greenwalt         * @hide
237477b32ddbbeeb13a07b16f23af705567c75a8e3dfRobert Greenwalt         */
237577b32ddbbeeb13a07b16f23af705567c75a8e3dfRobert Greenwalt        public static final String TETHER_DUN_REQUIRED = "tether_dun_required";
237677b32ddbbeeb13a07b16f23af705567c75a8e3dfRobert Greenwalt
237777b32ddbbeeb13a07b16f23af705567c75a8e3dfRobert Greenwalt        /**
237877b32ddbbeeb13a07b16f23af705567c75a8e3dfRobert Greenwalt         * Used to hold a gservices-provisioned apn value for DUN.  If set, or the
237977b32ddbbeeb13a07b16f23af705567c75a8e3dfRobert Greenwalt         * corresponding build config values are set it will override the APN DB
238077b32ddbbeeb13a07b16f23af705567c75a8e3dfRobert Greenwalt         * values.
238177b32ddbbeeb13a07b16f23af705567c75a8e3dfRobert Greenwalt         * Consists of a comma seperated list of strings:
238277b32ddbbeeb13a07b16f23af705567c75a8e3dfRobert Greenwalt         * "name,apn,proxy,port,username,password,server,mmsc,mmsproxy,mmsport,mcc,mnc,auth,type"
238377b32ddbbeeb13a07b16f23af705567c75a8e3dfRobert Greenwalt         * note that empty fields can be ommitted: "name,apn,,,,,,,,,310,260,,DUN"
238477b32ddbbeeb13a07b16f23af705567c75a8e3dfRobert Greenwalt         * @hide
238577b32ddbbeeb13a07b16f23af705567c75a8e3dfRobert Greenwalt         */
238677b32ddbbeeb13a07b16f23af705567c75a8e3dfRobert Greenwalt        public static final String TETHER_DUN_APN = "tether_dun_apn";
238777b32ddbbeeb13a07b16f23af705567c75a8e3dfRobert Greenwalt
238877b32ddbbeeb13a07b16f23af705567c75a8e3dfRobert Greenwalt        /**
23891c9131c91f27c8258dfad0a92cee105275f5422aDan Egnor         * No longer supported.
23909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
23919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String PARENTAL_CONTROL_ENABLED = "parental_control_enabled";
23929bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
23939bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh        /**
23941c9131c91f27c8258dfad0a92cee105275f5422aDan Egnor         * No longer supported.
23959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
23969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String PARENTAL_CONTROL_LAST_UPDATE = "parental_control_last_update";
23979bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
23989bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh        /**
23991c9131c91f27c8258dfad0a92cee105275f5422aDan Egnor         * No longer supported.
24009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
24019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String PARENTAL_CONTROL_REDIRECT_URL = "parental_control_redirect_url";
24029bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
24039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
24049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Settings classname to launch when Settings is clicked from All
24059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Applications.  Needed because of user testing between the old
24069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * and new Settings apps.
24079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
24089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // TODO: 881807
24099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String SETTINGS_CLASSNAME = "settings_classname";
24109bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
24119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
24129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * USB Mass Storage Enabled
24139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
24149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String USB_MASS_STORAGE_ENABLED = "usb_mass_storage_enabled";
24159bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
24169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
24179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * If this setting is set (to anything), then all references
24189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * to Gmail on the device must change to Google Mail.
24199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
24209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String USE_GOOGLE_MAIL = "use_google_mail";
24219bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
24229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
242375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov         * If accessibility is enabled.
242475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov         */
242575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov        public static final String ACCESSIBILITY_ENABLED = "accessibility_enabled";
242675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov
242775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov        /**
242875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov         * List of the enabled accessibility providers.
242975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov         */
243075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov        public static final String ENABLED_ACCESSIBILITY_SERVICES =
243175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov            "enabled_accessibility_services";
243275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov
243375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov        /**
2434f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi         * Setting to always use the default text-to-speech settings regardless
2435f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi         * of the application settings.
2436f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi         * 1 = override application settings,
2437f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi         * 0 = use application settings (if specified).
2438f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi         */
2439f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi        public static final String TTS_USE_DEFAULTS = "tts_use_defaults";
2440f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi
2441f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi        /**
2442f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi         * Default text-to-speech engine speech rate. 100 = 1x
2443f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi         */
2444f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi        public static final String TTS_DEFAULT_RATE = "tts_default_rate";
2445f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi
2446f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi        /**
2447f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi         * Default text-to-speech engine pitch. 100 = 1x
2448f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi         */
2449f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi        public static final String TTS_DEFAULT_PITCH = "tts_default_pitch";
2450f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi
2451f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi        /**
2452f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi         * Default text-to-speech engine.
2453f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi         */
2454f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi        public static final String TTS_DEFAULT_SYNTH = "tts_default_synth";
2455f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi
2456f62ba452bb07407f577cabecde14bfad101d7f43Jean-Michel Trivi        /**
2457f478267d6a60220fb8078c13971b5d4d3f868d67Jean-Michel Trivi         * Default text-to-speech language.
2458f478267d6a60220fb8078c13971b5d4d3f868d67Jean-Michel Trivi         */
2459f478267d6a60220fb8078c13971b5d4d3f868d67Jean-Michel Trivi        public static final String TTS_DEFAULT_LANG = "tts_default_lang";
2460f478267d6a60220fb8078c13971b5d4d3f868d67Jean-Michel Trivi
2461f478267d6a60220fb8078c13971b5d4d3f868d67Jean-Michel Trivi        /**
2462a6fcc9541161de5d1c39e62d2646076706d87b96Jean-Michel Trivi         * Default text-to-speech country.
2463a6fcc9541161de5d1c39e62d2646076706d87b96Jean-Michel Trivi         */
2464a6fcc9541161de5d1c39e62d2646076706d87b96Jean-Michel Trivi        public static final String TTS_DEFAULT_COUNTRY = "tts_default_country";
2465a6fcc9541161de5d1c39e62d2646076706d87b96Jean-Michel Trivi
2466a6fcc9541161de5d1c39e62d2646076706d87b96Jean-Michel Trivi        /**
2467a6fcc9541161de5d1c39e62d2646076706d87b96Jean-Michel Trivi         * Default text-to-speech locale variant.
2468a6fcc9541161de5d1c39e62d2646076706d87b96Jean-Michel Trivi         */
2469a6fcc9541161de5d1c39e62d2646076706d87b96Jean-Michel Trivi        public static final String TTS_DEFAULT_VARIANT = "tts_default_variant";
2470a6fcc9541161de5d1c39e62d2646076706d87b96Jean-Michel Trivi
2471a6fcc9541161de5d1c39e62d2646076706d87b96Jean-Michel Trivi        /**
2472ceffa1597d574599cbaca71f5855a986b0857463Charles Chen         * Space delimited list of plugin packages that are enabled.
2473ceffa1597d574599cbaca71f5855a986b0857463Charles Chen         */
2474ceffa1597d574599cbaca71f5855a986b0857463Charles Chen        public static final String TTS_ENABLED_PLUGINS = "tts_enabled_plugins";
2475ceffa1597d574599cbaca71f5855a986b0857463Charles Chen
2476ceffa1597d574599cbaca71f5855a986b0857463Charles Chen        /**
24779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether to notify the user of open networks.
24789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>
24799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * If not connected and the scan results have an open network, we will
24809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * put this notification up. If we attempt to connect to a network or
24819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the open network(s) disappear, we remove the notification. When we
24829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * show the notification, we will not show it again for
24839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link android.provider.Settings.Secure#WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY} time.
24849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
24859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON =
24869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                "wifi_networks_available_notification_on";
24879bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
24889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
24899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Delay (in seconds) before repeating the Wi-Fi networks available notification.
24909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Connecting to a network will reset the timer.
24919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
24929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY =
24939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                "wifi_networks_available_repeat_delay";
24949bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
24959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
24969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The number of radio channels that are allowed in the local
24979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * 802.11 regulatory domain.
24989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @hide
24999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
25009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_NUM_ALLOWED_CHANNELS = "wifi_num_allowed_channels";
25019bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
25029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
25039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * When the number of open networks exceeds this number, the
25049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * least-recently-used excess networks will be removed.
25059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
25069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_NUM_OPEN_NETWORKS_KEPT = "wifi_num_open_networks_kept";
25079bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
25089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
25099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether the Wi-Fi should be on.  Only the Wi-Fi service should touch this.
25109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
25119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_ON = "wifi_on";
25129bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
25139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
2514a3bd409a0a5dea446bd1b6edca1b367f3f70b503Irfan Sheriff         * Used to save the Wifi_ON state prior to tethering.
2515a3bd409a0a5dea446bd1b6edca1b367f3f70b503Irfan Sheriff         * This state will be checked to restore Wifi after
2516a3bd409a0a5dea446bd1b6edca1b367f3f70b503Irfan Sheriff         * the user turns off tethering.
25175321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff         *
25185321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff         * @hide
25195321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff         */
2520a3bd409a0a5dea446bd1b6edca1b367f3f70b503Irfan Sheriff        public static final String WIFI_SAVED_STATE = "wifi_saved_state";
25215321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff
25225321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff        /**
25239ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff         * AP SSID
25249ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff         *
25259ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff         * @hide
25269ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff         */
25279ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff        public static final String WIFI_AP_SSID = "wifi_ap_ssid";
25289ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff
25299ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff        /**
25309ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff         * AP security
25319ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff         *
25329ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff         * @hide
25339ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff         */
25349ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff        public static final String WIFI_AP_SECURITY = "wifi_ap_security";
25359ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff
25369ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff        /**
25379ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff         * AP passphrase
25389ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff         *
25399ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff         * @hide
25409ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff         */
25419ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff        public static final String WIFI_AP_PASSWD = "wifi_ap_passwd";
25429ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff
25439ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff        /**
25449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The acceptable packet loss percentage (range 0 - 100) before trying
25459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * another AP on the same network.
25469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
25479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE =
25489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                "wifi_watchdog_acceptable_packet_loss_percentage";
25499bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
25509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
25519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The number of access points required for a network in order for the
25529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * watchdog to monitor it.
25539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
25549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_AP_COUNT = "wifi_watchdog_ap_count";
25559bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
25569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
25579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The delay between background checks.
25589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
25599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS =
25609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                "wifi_watchdog_background_check_delay_ms";
25619bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
25629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
25639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether the Wi-Fi watchdog is enabled for background checking even
25649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * after it thinks the user has connected to a good access point.
25659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
25669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED =
25679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                "wifi_watchdog_background_check_enabled";
25689bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
25699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
25709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The timeout for a background ping
25719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
25729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS =
25739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                "wifi_watchdog_background_check_timeout_ms";
25749bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
25759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
25769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The number of initial pings to perform that *may* be ignored if they
25779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * fail. Again, if these fail, they will *not* be used in packet loss
25789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * calculation. For example, one network always seemed to time out for
25799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the first couple pings, so this is set to 3 by default.
25809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
25819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT =
25829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "wifi_watchdog_initial_ignored_ping_count";
25839bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
25849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
25859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The maximum number of access points (per network) to attempt to test.
25869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * If this number is reached, the watchdog will no longer monitor the
25879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * initial connection state for the network. This is a safeguard for
25889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * networks containing multiple APs whose DNS does not respond to pings.
25899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
25909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_MAX_AP_CHECKS = "wifi_watchdog_max_ap_checks";
25919bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
25929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
25939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether the Wi-Fi watchdog is enabled.
25949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
25959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_ON = "wifi_watchdog_on";
25969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
25979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
25989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * A comma-separated list of SSIDs for which the Wi-Fi watchdog should be enabled.
25999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
26009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_WATCH_LIST = "wifi_watchdog_watch_list";
26019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
26039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The number of pings to test if an access point is a good connection.
26049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
26059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_PING_COUNT = "wifi_watchdog_ping_count";
26069bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
26079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
26089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The delay between pings.
26099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
26109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_PING_DELAY_MS = "wifi_watchdog_ping_delay_ms";
26119bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
26129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
26139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The timeout per ping.
26149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
26159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_WATCHDOG_PING_TIMEOUT_MS = "wifi_watchdog_ping_timeout_ms";
26169bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
26179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
26189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The maximum number of times we will retry a connection to an access
26199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * point for which we have failed in acquiring an IP address from DHCP.
26209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * A value of N means that we will make N+1 connection attempts in all.
26219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
26229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_MAX_DHCP_RETRY_COUNT = "wifi_max_dhcp_retry_count";
26239bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
26249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
26259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Maximum amount of time in milliseconds to hold a wakelock while waiting for mobile
26269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * data connectivity to be established after a disconnect from Wi-Fi.
26279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
26289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS =
26299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "wifi_mobile_data_transition_wakelock_timeout_ms";
26309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
26329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Whether background data usage is allowed by the user. See
26339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * ConnectivityManager for more info.
26349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
26359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String BACKGROUND_DATA = "background_data";
263604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville
263704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville        /**
263898bfa39596448504f58f6dfe1b8bd2d31f25367bBjorn Bringert         * Origins for which browsers should allow geolocation by default.
263998bfa39596448504f58f6dfe1b8bd2d31f25367bBjorn Bringert         * The value is a space-separated list of origins.
264098bfa39596448504f58f6dfe1b8bd2d31f25367bBjorn Bringert         */
264198bfa39596448504f58f6dfe1b8bd2d31f25367bBjorn Bringert        public static final String ALLOWED_GEOLOCATION_ORIGINS
264298bfa39596448504f58f6dfe1b8bd2d31f25367bBjorn Bringert                = "allowed_geolocation_origins";
264398bfa39596448504f58f6dfe1b8bd2d31f25367bBjorn Bringert
264498bfa39596448504f58f6dfe1b8bd2d31f25367bBjorn Bringert        /**
2645c03fa5014912684367174ff3cce664deb29f5e0eRobert Greenwalt         * Whether mobile data connections are allowed by the user.  See
2646c03fa5014912684367174ff3cce664deb29f5e0eRobert Greenwalt         * ConnectivityManager for more info.
2647c03fa5014912684367174ff3cce664deb29f5e0eRobert Greenwalt         * @hide
2648c03fa5014912684367174ff3cce664deb29f5e0eRobert Greenwalt         */
2649c03fa5014912684367174ff3cce664deb29f5e0eRobert Greenwalt        public static final String MOBILE_DATA = "mobile_data";
2650c03fa5014912684367174ff3cce664deb29f5e0eRobert Greenwalt
2651c03fa5014912684367174ff3cce664deb29f5e0eRobert Greenwalt        /**
265204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         * The CDMA roaming mode 0 = Home Networks, CDMA default
265304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         *                       1 = Roaming on Affiliated networks
265404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         *                       2 = Roaming on any networks
265504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         * @hide
265604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         */
265704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville        public static final String CDMA_ROAMING_MODE = "roaming_settings";
265804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville
265904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville        /**
266004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         * The CDMA subscription mode 0 = RUIM/SIM (default)
266104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         *                                1 = NV
266204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         * @hide
266304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         */
266404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville        public static final String CDMA_SUBSCRIPTION_MODE = "subscription_mode";
266504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville
266604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville        /**
26679bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh         * The preferred network mode   7 = Global
26689bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh         *                              6 = EvDo only
26699bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh         *                              5 = CDMA w/o EvDo
26709bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh         *                              4 = CDMA / EvDo auto
26719bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh         *                              3 = GSM / WCDMA auto
26729bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh         *                              2 = WCDMA only
26739bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh         *                              1 = GSM only
26749bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh         *                              0 = GSM / WCDMA preferred
267504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         * @hide
267604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         */
267704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville        public static final String PREFERRED_NETWORK_MODE =
267804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville                "preferred_network_mode";
267904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville
268004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville        /**
2681e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville         * The preferred TTY mode     0 = TTy Off, CDMA default
2682e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville         *                            1 = TTY Full
2683e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville         *                            2 = TTY HCO
2684e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville         *                            3 = TTY VCO
2685e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville         * @hide
2686e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville         */
2687e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville        public static final String PREFERRED_TTY_MODE =
2688e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville                "preferred_tty_mode";
2689e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
2690e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
2691e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville        /**
269204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         * CDMA Cell Broadcast SMS
269304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         *                            0 = CDMA Cell Broadcast SMS disabled
269404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         *                            1 = CDMA Cell Broadcast SMS enabled
269504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         * @hide
269604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         */
269704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville        public static final String CDMA_CELL_BROADCAST_SMS =
269804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville                "cdma_cell_broadcast_sms";
269904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville
270004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville        /**
270104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         * The cdma subscription 0 = Subscription from RUIM, when available
270204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         *                       1 = Subscription from NV
270304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         * @hide
270404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         */
270504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville        public static final String PREFERRED_CDMA_SUBSCRIPTION =
270604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville                "preferred_cdma_subscription";
270704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville
270804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville        /**
270904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         * Whether the enhanced voice privacy mode is enabled.
271004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         * 0 = normal voice privacy
271104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         * 1 = enhanced voice privacy
271204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         * @hide
271304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         */
271404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville        public static final String ENHANCED_VOICE_PRIVACY_ENABLED = "enhanced_voice_privacy_enabled";
271504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville
271604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville        /**
271704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         * Whether the TTY mode mode is enabled.
271804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         * 0 = disabled
271904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         * 1 = enabled
272004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         * @hide
272104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville         */
272204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville        public static final String TTY_MODE_ENABLED = "tty_mode_enabled";
2723bd2a7126e5b42e022228c6aac25e95b671e5263bMike Lockwood
2724bd2a7126e5b42e022228c6aac25e95b671e5263bMike Lockwood        /**
27258031a3df2fd0c38d85eeae39c1ea2c83e813f4ffChristopher Tate         * Controls whether settings backup is enabled.
2726cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn         * Type: int ( 0 = disabled, 1 = enabled )
2727cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn         * @hide
2728cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn         */
2729cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn        public static final String BACKUP_ENABLED = "backup_enabled";
2730cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn
2731cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn        /**
2732cce9da5dc3d515f98c260af41a03e61e57b4e7a6Christopher Tate         * Controls whether application data is automatically restored from backup
2733cce9da5dc3d515f98c260af41a03e61e57b4e7a6Christopher Tate         * at install time.
2734cce9da5dc3d515f98c260af41a03e61e57b4e7a6Christopher Tate         * Type: int ( 0 = disabled, 1 = enabled )
2735cce9da5dc3d515f98c260af41a03e61e57b4e7a6Christopher Tate         * @hide
2736cce9da5dc3d515f98c260af41a03e61e57b4e7a6Christopher Tate         */
2737cce9da5dc3d515f98c260af41a03e61e57b4e7a6Christopher Tate        public static final String BACKUP_AUTO_RESTORE = "backup_auto_restore";
2738cce9da5dc3d515f98c260af41a03e61e57b4e7a6Christopher Tate
2739cce9da5dc3d515f98c260af41a03e61e57b4e7a6Christopher Tate        /**
27408031a3df2fd0c38d85eeae39c1ea2c83e813f4ffChristopher Tate         * Indicates whether settings backup has been fully provisioned.
27418031a3df2fd0c38d85eeae39c1ea2c83e813f4ffChristopher Tate         * Type: int ( 0 = unprovisioned, 1 = fully provisioned )
27428031a3df2fd0c38d85eeae39c1ea2c83e813f4ffChristopher Tate         * @hide
27438031a3df2fd0c38d85eeae39c1ea2c83e813f4ffChristopher Tate         */
27448031a3df2fd0c38d85eeae39c1ea2c83e813f4ffChristopher Tate        public static final String BACKUP_PROVISIONED = "backup_provisioned";
27458031a3df2fd0c38d85eeae39c1ea2c83e813f4ffChristopher Tate
27468031a3df2fd0c38d85eeae39c1ea2c83e813f4ffChristopher Tate        /**
2747cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn         * Component of the transport to use for backup/restore.
2748cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn         * @hide
2749cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn         */
2750cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn        public static final String BACKUP_TRANSPORT = "backup_transport";
275121bf2416512a8bdf4f3a0fd9f788f409d6013c32Sanjay Jeyakumar
2752d7cd29da91ccc0aba1f1097e19366f9ca36c7ce1Dianne Hackborn        /**
2753d7cd29da91ccc0aba1f1097e19366f9ca36c7ce1Dianne Hackborn         * Version for which the setup wizard was last shown.  Bumped for
2754d7cd29da91ccc0aba1f1097e19366f9ca36c7ce1Dianne Hackborn         * each release when there is new setup information to show.
2755d7cd29da91ccc0aba1f1097e19366f9ca36c7ce1Dianne Hackborn         * @hide
2756d7cd29da91ccc0aba1f1097e19366f9ca36c7ce1Dianne Hackborn         */
2757d7cd29da91ccc0aba1f1097e19366f9ca36c7ce1Dianne Hackborn        public static final String LAST_SETUP_SHOWN = "last_setup_shown";
2758cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn
2759cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn        /**
2760f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * How frequently (in seconds) to check the memory status of the
2761f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * device.
2762f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * @hide
2763f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         */
2764f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        public static final String MEMCHECK_INTERVAL = "memcheck_interval";
2765f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker
2766f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        /**
2767f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * Max frequency (in seconds) to log memory check stats, in realtime
2768f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * seconds.  This allows for throttling of logs when the device is
2769f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * running for large amounts of time.
2770f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * @hide
2771f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         */
2772f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        public static final String MEMCHECK_LOG_REALTIME_INTERVAL =
2773f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker                "memcheck_log_realtime_interval";
2774f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker
2775f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        /**
2776f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * Boolean indicating whether rebooting due to system memory checks
2777f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * is enabled.
2778f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * @hide
2779f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         */
2780f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        public static final String MEMCHECK_SYSTEM_ENABLED = "memcheck_system_enabled";
2781f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker
2782f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        /**
2783f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * How many bytes the system process must be below to avoid scheduling
2784f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * a soft reboot.  This reboot will happen when it is next determined
2785f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * to be a good time.
2786f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * @hide
2787f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         */
2788f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        public static final String MEMCHECK_SYSTEM_SOFT_THRESHOLD = "memcheck_system_soft";
2789f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker
2790f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        /**
2791f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * How many bytes the system process must be below to avoid scheduling
2792f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * a hard reboot.  This reboot will happen immediately.
2793f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * @hide
2794f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         */
2795f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        public static final String MEMCHECK_SYSTEM_HARD_THRESHOLD = "memcheck_system_hard";
2796f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker
2797f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        /**
2798f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * How many bytes the phone process must be below to avoid scheduling
2799f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * a soft restart.  This restart will happen when it is next determined
2800f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * to be a good time.
2801f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * @hide
2802f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         */
2803f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        public static final String MEMCHECK_PHONE_SOFT_THRESHOLD = "memcheck_phone_soft";
2804f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker
2805f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        /**
2806f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * How many bytes the phone process must be below to avoid scheduling
2807f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * a hard restart.  This restart will happen immediately.
2808f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * @hide
2809f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         */
2810f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        public static final String MEMCHECK_PHONE_HARD_THRESHOLD = "memcheck_phone_hard";
2811f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker
2812f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        /**
2813f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * Boolean indicating whether restarting the phone process due to
2814f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * memory checks is enabled.
2815f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * @hide
2816f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         */
2817f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        public static final String MEMCHECK_PHONE_ENABLED = "memcheck_phone_enabled";
2818f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker
2819f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        /**
2820f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * First time during the day it is okay to kill processes
2821f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * or reboot the device due to low memory situations.  This number is
2822f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * in seconds since midnight.
2823f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * @hide
2824f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         */
2825f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        public static final String MEMCHECK_EXEC_START_TIME = "memcheck_exec_start_time";
2826f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker
2827f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        /**
2828f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * Last time during the day it is okay to kill processes
2829f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * or reboot the device due to low memory situations.  This number is
2830f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * in seconds since midnight.
2831f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * @hide
2832f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         */
2833f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        public static final String MEMCHECK_EXEC_END_TIME = "memcheck_exec_end_time";
2834f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker
2835f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        /**
2836f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * How long the screen must have been off in order to kill processes
2837f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * or reboot.  This number is in seconds.  A value of -1 means to
2838f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * entirely disregard whether the screen is on.
2839f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * @hide
2840f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         */
2841f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        public static final String MEMCHECK_MIN_SCREEN_OFF = "memcheck_min_screen_off";
2842f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker
2843f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        /**
2844f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * How much time there must be until the next alarm in order to kill processes
2845f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * or reboot.  This number is in seconds.  Note: this value must be
2846f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * smaller than {@link #MEMCHECK_RECHECK_INTERVAL} or else it will
2847f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * always see an alarm scheduled within its time.
2848f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * @hide
2849f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         */
2850f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        public static final String MEMCHECK_MIN_ALARM = "memcheck_min_alarm";
2851f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker
2852f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        /**
2853f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * How frequently to check whether it is a good time to restart things,
2854f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * if the device is in a bad state.  This number is in seconds.  Note:
2855f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * this value must be larger than {@link #MEMCHECK_MIN_ALARM} or else
2856f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * the alarm to schedule the recheck will always appear within the
2857f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * minimum "do not execute now" time.
2858f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * @hide
2859f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         */
2860f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        public static final String MEMCHECK_RECHECK_INTERVAL = "memcheck_recheck_interval";
2861f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker
2862f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        /**
2863f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * How frequently (in DAYS) to reboot the device.  If 0, no reboots
2864f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * will occur.
2865f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * @hide
2866f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         */
2867f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        public static final String REBOOT_INTERVAL = "reboot_interval";
2868f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker
2869f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        /**
2870f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * First time during the day it is okay to force a reboot of the
2871f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * device (if REBOOT_INTERVAL is set).  This number is
2872f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * in seconds since midnight.
2873f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * @hide
2874f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         */
2875f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        public static final String REBOOT_START_TIME = "reboot_start_time";
2876f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker
2877f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        /**
2878f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * The window of time (in seconds) after each REBOOT_INTERVAL in which
2879f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * a reboot can be executed.  If 0, a reboot will always be executed at
2880f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * exactly the given time.  Otherwise, it will only be executed if
2881f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * the device is idle within the window.
2882f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         * @hide
2883f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker         */
2884f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        public static final String REBOOT_WINDOW = "reboot_window";
2885f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker
2886f68888951ae6056f5a15a7e2a84045c067bc6ba2Doug Zongker        /**
288743866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * Threshold values for the duration and level of a discharge cycle, under
288843866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * which we log discharge cycle info.
288943866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * @hide
289043866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         */
289143866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        public static final String BATTERY_DISCHARGE_DURATION_THRESHOLD =
289243866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker                "battery_discharge_duration_threshold";
289343866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        /** @hide */
289443866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        public static final String BATTERY_DISCHARGE_THRESHOLD = "battery_discharge_threshold";
289543866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker
289643866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        /**
289743866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * Flag for allowing ActivityManagerService to send ACTION_APP_ERROR intents
289843866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * on application crashes and ANRs. If this is disabled, the crash/ANR dialog
289943866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * will never display the "Report" button.
290043866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * Type: int ( 0 = disallow, 1 = allow )
290143866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * @hide
290243866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         */
290343866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        public static final String SEND_ACTION_APP_ERROR = "send_action_app_error";
290443866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker
290543866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        /**
290643866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * Nonzero causes Log.wtf() to crash.
290743866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * @hide
290843866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         */
290943866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        public static final String WTF_IS_FATAL = "wtf_is_fatal";
291043866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker
291143866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        /**
291243866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * Maximum age of entries kept by {@link android.os.IDropBox}.
291343866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * @hide
291443866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         */
291543866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        public static final String DROPBOX_AGE_SECONDS =
291643866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker                "dropbox_age_seconds";
291743866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        /**
29183a8b0c18a49c017ecfde8ebf4eb4bb5181ac6fefDan Egnor         * Maximum number of entry files which {@link android.os.IDropBox} will keep around.
29193a8b0c18a49c017ecfde8ebf4eb4bb5181ac6fefDan Egnor         * @hide
29203a8b0c18a49c017ecfde8ebf4eb4bb5181ac6fefDan Egnor         */
29213a8b0c18a49c017ecfde8ebf4eb4bb5181ac6fefDan Egnor        public static final String DROPBOX_MAX_FILES =
29223a8b0c18a49c017ecfde8ebf4eb4bb5181ac6fefDan Egnor                "dropbox_max_files";
29233a8b0c18a49c017ecfde8ebf4eb4bb5181ac6fefDan Egnor        /**
292443866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * Maximum amount of disk space used by {@link android.os.IDropBox} no matter what.
292543866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * @hide
292643866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         */
292743866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        public static final String DROPBOX_QUOTA_KB =
292843866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker                "dropbox_quota_kb";
292943866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        /**
293043866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * Percent of free disk (excluding reserve) which {@link android.os.IDropBox} will use.
293143866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * @hide
293243866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         */
293343866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        public static final String DROPBOX_QUOTA_PERCENT =
293443866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker                "dropbox_quota_percent";
293543866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        /**
293643866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * Percent of total disk which {@link android.os.IDropBox} will never dip into.
293743866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * @hide
293843866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         */
293943866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        public static final String DROPBOX_RESERVE_PERCENT =
294043866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker                "dropbox_reserve_percent";
294143866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        /**
294243866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * Prefix for per-tag dropbox disable/enable settings.
294343866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * @hide
294443866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         */
294543866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        public static final String DROPBOX_TAG_PREFIX =
294643866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker                "dropbox:";
2947a455d194863d6c09f0388b03271880d7f21e77d6Dan Egnor        /**
2948a455d194863d6c09f0388b03271880d7f21e77d6Dan Egnor         * Lines of logcat to include with system crash/ANR/etc. reports,
2949a455d194863d6c09f0388b03271880d7f21e77d6Dan Egnor         * as a prefix of the dropbox tag of the report type.
2950a455d194863d6c09f0388b03271880d7f21e77d6Dan Egnor         * For example, "logcat_for_system_server_anr" controls the lines
2951a455d194863d6c09f0388b03271880d7f21e77d6Dan Egnor         * of logcat captured with system server ANR reports.  0 to disable.
2952a455d194863d6c09f0388b03271880d7f21e77d6Dan Egnor         * @hide
2953a455d194863d6c09f0388b03271880d7f21e77d6Dan Egnor         */
2954a455d194863d6c09f0388b03271880d7f21e77d6Dan Egnor        public static final String ERROR_LOGCAT_PREFIX =
2955a455d194863d6c09f0388b03271880d7f21e77d6Dan Egnor                "logcat_for_";
295643866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker
295743866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker
295843866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        /**
295943866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * Screen timeout in milliseconds corresponding to the
296043866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * PowerManager's POKE_LOCK_SHORT_TIMEOUT flag (i.e. the fastest
296143866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * possible screen timeout behavior.)
296243866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * @hide
296343866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         */
296443866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        public static final String SHORT_KEYLIGHT_DELAY_MS =
296543866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker                "short_keylight_delay_ms";
296643866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker
296743866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        /**
296843866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * The interval in minutes after which the amount of free storage left on the
296943866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * device is logged to the event log
297043866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * @hide
297143866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         */
297243866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        public static final String SYS_FREE_STORAGE_LOG_INTERVAL =
297343866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker                "sys_free_storage_log_interval";
297443866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker
297543866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        /**
297643866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * Threshold for the amount of change in disk free space required to report the amount of
297743866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * free space. Used to prevent spamming the logs when the disk free space isn't changing
297843866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * frequently.
297943866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * @hide
298043866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         */
298143866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        public static final String DISK_FREE_CHANGE_REPORTING_THRESHOLD =
298243866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker                "disk_free_change_reporting_threshold";
298343866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker
298443866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker
298543866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        /**
298643866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * Minimum percentage of free storage on the device that is used to determine if
298743866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * the device is running low on storage.
298843866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * Say this value is set to 10, the device is considered running low on storage
298943866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * if 90% or more of the device storage is filled up.
299043866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * @hide
299143866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         */
299243866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        public static final String SYS_STORAGE_THRESHOLD_PERCENTAGE =
299343866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker                "sys_storage_threshold_percentage";
299443866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker
299543866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        /**
299643866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * The interval in milliseconds after which Wi-Fi is considered idle.
299743866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * When idle, it is possible for the device to be switched from Wi-Fi to
299843866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * the mobile data network.
299943866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         * @hide
300043866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker         */
300143866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        public static final String WIFI_IDLE_MS = "wifi_idle_ms";
300243866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker
300343866e0c48bb0effe8805afd62b253e50ca7d591Doug Zongker        /**
3004edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * The interval in milliseconds at which to check packet counts on the
3005edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * mobile data interface when screen is on, to detect possible data
3006edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * connection problems.
3007edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * @hide
3008edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         */
3009edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        public static final String PDP_WATCHDOG_POLL_INTERVAL_MS =
3010edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker                "pdp_watchdog_poll_interval_ms";
3011edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker
3012edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        /**
3013edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * The interval in milliseconds at which to check packet counts on the
3014edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * mobile data interface when screen is off, to detect possible data
3015edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * connection problems.
3016edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * @hide
3017edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         */
3018edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        public static final String PDP_WATCHDOG_LONG_POLL_INTERVAL_MS =
3019edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker                "pdp_watchdog_long_poll_interval_ms";
3020edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker
3021edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        /**
3022edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * The interval in milliseconds at which to check packet counts on the
3023edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * mobile data interface after {@link #PDP_WATCHDOG_TRIGGER_PACKET_COUNT}
3024edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * outgoing packets has been reached without incoming packets.
3025edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * @hide
3026edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         */
3027edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        public static final String PDP_WATCHDOG_ERROR_POLL_INTERVAL_MS =
3028edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker                "pdp_watchdog_error_poll_interval_ms";
3029edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker
3030edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        /**
3031edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * The number of outgoing packets sent without seeing an incoming packet
3032edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * that triggers a countdown (of {@link #PDP_WATCHDOG_ERROR_POLL_COUNT}
3033edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * device is logged to the event log
3034edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * @hide
3035edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         */
3036edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        public static final String PDP_WATCHDOG_TRIGGER_PACKET_COUNT =
3037edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker                "pdp_watchdog_trigger_packet_count";
3038edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker
3039edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        /**
3040edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * The number of polls to perform (at {@link #PDP_WATCHDOG_ERROR_POLL_INTERVAL_MS})
3041edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * after hitting {@link #PDP_WATCHDOG_TRIGGER_PACKET_COUNT} before
3042edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * attempting data connection recovery.
3043edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * @hide
3044edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         */
3045edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        public static final String PDP_WATCHDOG_ERROR_POLL_COUNT =
3046edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker                "pdp_watchdog_error_poll_count";
3047edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker
3048edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        /**
3049edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * The number of failed PDP reset attempts before moving to something more
3050edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * drastic: re-registering to the network.
3051edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * @hide
3052edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         */
3053edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        public static final String PDP_WATCHDOG_MAX_PDP_RESET_FAIL_COUNT =
3054edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker                "pdp_watchdog_max_pdp_reset_fail_count";
3055edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker
3056edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        /**
3057edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * Address to ping as a last sanity check before attempting any recovery.
3058edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * Unset or set to "0.0.0.0" to skip this check.
3059edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * @hide
3060edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         */
3061edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        public static final String PDP_WATCHDOG_PING_ADDRESS = "pdp_watchdog_ping_address";
3062edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker
3063edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        /**
3064edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * The "-w deadline" parameter for the ping, ie, the max time in
3065edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * seconds to spend pinging.
3066edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * @hide
3067edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         */
3068edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        public static final String PDP_WATCHDOG_PING_DEADLINE = "pdp_watchdog_ping_deadline";
3069edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker
3070edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        /**
3071edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * The interval in milliseconds at which to check gprs registration
3072edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * after the first registration mismatch of gprs and voice service,
3073edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * to detect possible data network registration problems.
3074edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         *
3075edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * @hide
3076edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         */
3077edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        public static final String GPRS_REGISTER_CHECK_PERIOD_MS =
3078edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker                "gprs_register_check_period_ms";
3079edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker
3080edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        /**
3081edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * The length of time in milli-seconds that automatic small adjustments to
3082edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * SystemClock are ignored if NITZ_UPDATE_DIFF is not exceeded.
3083edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * @hide
3084edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         */
3085edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        public static final String NITZ_UPDATE_SPACING = "nitz_update_spacing";
3086edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker
3087edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        /**
3088edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * If the NITZ_UPDATE_DIFF time is exceeded then an automatic adjustment
3089edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * to SystemClock will be allowed even if NITZ_UPDATE_SPACING has not been
3090edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * exceeded.
3091edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * @hide
3092edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         */
3093edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        public static final String NITZ_UPDATE_DIFF = "nitz_update_diff";
3094edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker
3095edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        /**
3096edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * The maximum reconnect delay for short network outages or when the network is suspended
3097edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * due to phone use.
3098edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * @hide
3099edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         */
3100edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        public static final String SYNC_MAX_RETRY_DELAY_IN_SECONDS =
3101edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker                "sync_max_retry_delay_in_seconds";
3102edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker
3103edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        /**
3104edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * The interval in milliseconds at which to check the number of SMS sent
3105edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * out without asking for use permit, to limit the un-authorized SMS
3106edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * usage.
3107edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * @hide
3108edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         */
3109edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        public static final String SMS_OUTGOING_CHECK_INTERVAL_MS =
3110edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker                "sms_outgoing_check_interval_ms";
3111edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker
3112edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        /**
3113edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * The number of outgoing SMS sent without asking for user permit
3114edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * (of {@link #SMS_OUTGOING_CHECK_INTERVAL_MS}
3115edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         * @hide
3116edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker         */
3117edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        public static final String SMS_OUTGOING_CHECK_MAX_COUNT =
3118edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker                "sms_outgoing_check_max_count";
3119edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker
3120edc5189c33de03f3e2f5f73edc0e007992b933c9Doug Zongker        /**
312196f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * The number of promoted sources in GlobalSearch.
3122aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
312396f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         */
312496f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        public static final String SEARCH_NUM_PROMOTED_SOURCES = "search_num_promoted_sources";
312596f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        /**
312696f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * The maximum number of suggestions returned by GlobalSearch.
3127aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
312896f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         */
312996f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        public static final String SEARCH_MAX_RESULTS_TO_DISPLAY = "search_max_results_to_display";
313096f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        /**
313196f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * The number of suggestions GlobalSearch will ask each non-web search source for.
3132aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
313396f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         */
313496f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        public static final String SEARCH_MAX_RESULTS_PER_SOURCE = "search_max_results_per_source";
313596f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        /**
313696f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * The number of suggestions the GlobalSearch will ask the web search source for.
3137aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
313896f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         */
313996f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        public static final String SEARCH_WEB_RESULTS_OVERRIDE_LIMIT =
314096f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert                "search_web_results_override_limit";
314196f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        /**
314296f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * The number of milliseconds that GlobalSearch will wait for suggestions from
314396f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * promoted sources before continuing with all other sources.
3144aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
314596f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         */
314696f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        public static final String SEARCH_PROMOTED_SOURCE_DEADLINE_MILLIS =
314796f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert                "search_promoted_source_deadline_millis";
314896f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        /**
314996f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * The number of milliseconds before GlobalSearch aborts search suggesiton queries.
3150aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
315196f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         */
315296f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        public static final String SEARCH_SOURCE_TIMEOUT_MILLIS = "search_source_timeout_millis";
315396f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        /**
315496f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * The maximum number of milliseconds that GlobalSearch shows the previous results
315596f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * after receiving a new query.
3156aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
315796f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         */
315896f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        public static final String SEARCH_PREFILL_MILLIS = "search_prefill_millis";
315996f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        /**
316096f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * The maximum age of log data used for shortcuts in GlobalSearch.
3161aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
316296f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         */
316396f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        public static final String SEARCH_MAX_STAT_AGE_MILLIS = "search_max_stat_age_millis";
316496f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        /**
316596f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * The maximum age of log data used for source ranking in GlobalSearch.
3166aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
316796f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         */
316896f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        public static final String SEARCH_MAX_SOURCE_EVENT_AGE_MILLIS =
316996f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert                "search_max_source_event_age_millis";
317096f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        /**
317196f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * The minimum number of impressions needed to rank a source in GlobalSearch.
3172aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
317396f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         */
317496f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        public static final String SEARCH_MIN_IMPRESSIONS_FOR_SOURCE_RANKING =
317596f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert                "search_min_impressions_for_source_ranking";
317696f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        /**
317796f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * The minimum number of clicks needed to rank a source in GlobalSearch.
3178aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
317996f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         */
318096f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        public static final String SEARCH_MIN_CLICKS_FOR_SOURCE_RANKING =
318196f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert                "search_min_clicks_for_source_ranking";
318296f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        /**
318396f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * The maximum number of shortcuts shown by GlobalSearch.
3184aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
318596f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         */
318696f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        public static final String SEARCH_MAX_SHORTCUTS_RETURNED = "search_max_shortcuts_returned";
318796f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        /**
318896f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * The size of the core thread pool for suggestion queries in GlobalSearch.
3189aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
319096f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         */
319196f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        public static final String SEARCH_QUERY_THREAD_CORE_POOL_SIZE =
319296f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert                "search_query_thread_core_pool_size";
319396f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        /**
319496f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * The maximum size of the thread pool for suggestion queries in GlobalSearch.
3195aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
319696f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         */
319796f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        public static final String SEARCH_QUERY_THREAD_MAX_POOL_SIZE =
319896f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert                "search_query_thread_max_pool_size";
319996f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        /**
320096f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * The size of the core thread pool for shortcut refreshing in GlobalSearch.
3201aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
320296f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         */
320396f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        public static final String SEARCH_SHORTCUT_REFRESH_CORE_POOL_SIZE =
320496f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert                "search_shortcut_refresh_core_pool_size";
320596f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        /**
320696f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * The maximum size of the thread pool for shortcut refreshing in GlobalSearch.
3207aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
320896f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         */
320996f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        public static final String SEARCH_SHORTCUT_REFRESH_MAX_POOL_SIZE =
321096f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert                "search_shortcut_refresh_max_pool_size";
321196f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        /**
321296f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * The maximun time that excess threads in the GlobalSeach thread pools will
321396f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * wait before terminating.
3214aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
321596f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         */
321696f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        public static final String SEARCH_THREAD_KEEPALIVE_SECONDS =
321796f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert                "search_thread_keepalive_seconds";
321896f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        /**
321996f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         * The maximum number of concurrent suggestion queries to each source.
3220aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
322196f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert         */
322296f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert        public static final String SEARCH_PER_SOURCE_CONCURRENT_QUERY_LIMIT =
322396f8613d95122a491a44f755f06845cc2c13e81eBjorn Bringert                "search_per_source_concurrent_query_limit";
3224a233943cb1b064155d001556c573140ed333149eJacek Surazski
322587734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat        /**
322687734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat         * Whether or not alert sounds are played on MountService events. (0 = false, 1 = true)
322787734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat         * @hide
322887734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat         */
322987734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat        public static final String MOUNT_PLAY_NOTIFICATION_SND = "mount_play_not_snd";
323087734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat
323187734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat        /**
323287734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat         * Whether or not UMS auto-starts on UMS host detection. (0 = false, 1 = true)
323387734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat         * @hide
323487734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat         */
323587734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat        public static final String MOUNT_UMS_AUTOSTART = "mount_ums_autostart";
323687734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat
323787734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat        /**
323887734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat         * Whether or not a notification is displayed on UMS host detection. (0 = false, 1 = true)
323987734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat         * @hide
324087734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat         */
324187734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat        public static final String MOUNT_UMS_PROMPT = "mount_ums_prompt";
324287734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat
324387734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat        /**
324487734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat         * Whether or not a notification is displayed while UMS is enabled. (0 = false, 1 = true)
324587734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat         * @hide
324687734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat         */
324787734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat        public static final String MOUNT_UMS_NOTIFY_ENABLED = "mount_ums_notify_enabled";
3248aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker
324942471dd5552a346dd82a58a663159875ccc4fb79Dan Egnor        /**
325042471dd5552a346dd82a58a663159875ccc4fb79Dan Egnor         * If nonzero, ANRs in invisible background processes bring up a dialog.
325142471dd5552a346dd82a58a663159875ccc4fb79Dan Egnor         * Otherwise, the process will be silently killed.
325242471dd5552a346dd82a58a663159875ccc4fb79Dan Egnor         * @hide
325342471dd5552a346dd82a58a663159875ccc4fb79Dan Egnor         */
325442471dd5552a346dd82a58a663159875ccc4fb79Dan Egnor        public static final String ANR_SHOW_BACKGROUND = "anr_show_background";
3255eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik
32565d34e9b63d5305934dcedac11e8dd658ae23c174Mike LeBeau        /**
32575d34e9b63d5305934dcedac11e8dd658ae23c174Mike LeBeau         * The {@link ComponentName} string of the service to be used as the voice recognition
32585d34e9b63d5305934dcedac11e8dd658ae23c174Mike LeBeau         * service.
3259eebc8e2e8fa23b2957fec5838acc874af9a64a3dErik         *
32605d34e9b63d5305934dcedac11e8dd658ae23c174Mike LeBeau         * @hide
32615d34e9b63d5305934dcedac11e8dd658ae23c174Mike LeBeau         */
32625d34e9b63d5305934dcedac11e8dd658ae23c174Mike LeBeau        public static final String VOICE_RECOGNITION_SERVICE = "voice_recognition_service";
326342471dd5552a346dd82a58a663159875ccc4fb79Dan Egnor
3264a233943cb1b064155d001556c573140ed333149eJacek Surazski        /**
3265458e8062c322a614d470e544b725adb04fdd8770David Brown         * What happens when the user presses the Power button while in-call
3266458e8062c322a614d470e544b725adb04fdd8770David Brown         * and the screen is on.<br/>
3267458e8062c322a614d470e544b725adb04fdd8770David Brown         * <b>Values:</b><br/>
3268458e8062c322a614d470e544b725adb04fdd8770David Brown         * 1 - The Power button turns off the screen and locks the device. (Default behavior)<br/>
3269458e8062c322a614d470e544b725adb04fdd8770David Brown         * 2 - The Power button hangs up the current call.<br/>
3270458e8062c322a614d470e544b725adb04fdd8770David Brown         *
3271458e8062c322a614d470e544b725adb04fdd8770David Brown         * @hide
3272458e8062c322a614d470e544b725adb04fdd8770David Brown         */
3273458e8062c322a614d470e544b725adb04fdd8770David Brown        public static final String INCALL_POWER_BUTTON_BEHAVIOR = "incall_power_button_behavior";
3274458e8062c322a614d470e544b725adb04fdd8770David Brown
3275458e8062c322a614d470e544b725adb04fdd8770David Brown        /**
3276458e8062c322a614d470e544b725adb04fdd8770David Brown         * INCALL_POWER_BUTTON_BEHAVIOR value for "turn off screen".
3277458e8062c322a614d470e544b725adb04fdd8770David Brown         * @hide
3278458e8062c322a614d470e544b725adb04fdd8770David Brown         */
3279458e8062c322a614d470e544b725adb04fdd8770David Brown        public static final int INCALL_POWER_BUTTON_BEHAVIOR_SCREEN_OFF = 0x1;
3280458e8062c322a614d470e544b725adb04fdd8770David Brown
3281458e8062c322a614d470e544b725adb04fdd8770David Brown        /**
3282458e8062c322a614d470e544b725adb04fdd8770David Brown         * INCALL_POWER_BUTTON_BEHAVIOR value for "hang up".
3283458e8062c322a614d470e544b725adb04fdd8770David Brown         * @hide
3284458e8062c322a614d470e544b725adb04fdd8770David Brown         */
3285458e8062c322a614d470e544b725adb04fdd8770David Brown        public static final int INCALL_POWER_BUTTON_BEHAVIOR_HANGUP = 0x2;
3286458e8062c322a614d470e544b725adb04fdd8770David Brown
3287458e8062c322a614d470e544b725adb04fdd8770David Brown        /**
3288458e8062c322a614d470e544b725adb04fdd8770David Brown         * INCALL_POWER_BUTTON_BEHAVIOR default value.
3289458e8062c322a614d470e544b725adb04fdd8770David Brown         * @hide
3290458e8062c322a614d470e544b725adb04fdd8770David Brown         */
3291458e8062c322a614d470e544b725adb04fdd8770David Brown        public static final int INCALL_POWER_BUTTON_BEHAVIOR_DEFAULT =
3292458e8062c322a614d470e544b725adb04fdd8770David Brown                INCALL_POWER_BUTTON_BEHAVIOR_SCREEN_OFF;
3293458e8062c322a614d470e544b725adb04fdd8770David Brown
3294458e8062c322a614d470e544b725adb04fdd8770David Brown        /**
32952ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn         * The current night mode that has been selected by the user.  Owned
32962ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn         * and controlled by UiModeManagerService.  Constants are as per
32972ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn         * UiModeManager.
32982ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn         * @hide
32992ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn         */
33002ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        public static final String UI_NIGHT_MODE = "ui_night_mode";
330140e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu
330240e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu        /**
330340e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu         * Let user pick default install location.
330440e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu         * @hide
330540e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu         */
330640e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu        public static final String SET_INSTALL_LOCATION = "set_install_location";
330740e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu
330840e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu        /**
330940e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu         * Default install location value.
331040e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu         * 0 = auto, let system decide
331140e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu         * 1 = internal
331240e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu         * 2 = sdcard
331340e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu         * @hide
331440e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu         */
331540e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu        public static final String DEFAULT_INSTALL_LOCATION = "default_install_location";
33169e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt
33179e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt        /**
33189e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt         * The bandwidth throttle polling freqency in seconds
33199e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt         * @hide
33209e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt         */
33219e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt        public static final String THROTTLE_POLLING_SEC = "throttle_polling_sec";
33229e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt
33239e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt        /**
33249e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt         * The bandwidth throttle threshold (long)
33259e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt         * @hide
33269e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt         */
3327d3bb93f6870581eebbf08b5b7fb0a9c5eaad8b16Robert Greenwalt        public static final String THROTTLE_THRESHOLD_BYTES = "throttle_threshold_bytes";
33289e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt
33299e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt        /**
33309e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt         * The bandwidth throttle value (kbps)
33319e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt         * @hide
33329e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt         */
3333d3bb93f6870581eebbf08b5b7fb0a9c5eaad8b16Robert Greenwalt        public static final String THROTTLE_VALUE_KBITSPS = "throttle_value_kbitsps";
33349e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt
33359e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt        /**
33369e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt         * The bandwidth throttle reset calendar day (1-28)
33379e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt         * @hide
33389e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt         */
33399e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt        public static final String THROTTLE_RESET_DAY = "throttle_reset_day";
33409e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt
33419e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt        /**
33429e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt         * The throttling notifications we should send
33439e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt         * @hide
33449e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt         */
33459e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt        public static final String THROTTLE_NOTIFICATION_TYPE = "throttle_notification_type";
33469e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt
33479e696c29f06d45d2891e1d38fd8d9033a9e21bb9Robert Greenwalt        /**
3348c9b6851af68bdc20c4903b16c344e9f116647219Irfan Sheriff         * Help URI for data throttling policy
3349c9b6851af68bdc20c4903b16c344e9f116647219Irfan Sheriff         * @hide
3350c9b6851af68bdc20c4903b16c344e9f116647219Irfan Sheriff         */
3351c9b6851af68bdc20c4903b16c344e9f116647219Irfan Sheriff        public static final String THROTTLE_HELP_URI = "throttle_help_uri";
3352c9b6851af68bdc20c4903b16c344e9f116647219Irfan Sheriff
3353d1055a250c00b0c2516ec406a8cf9a5ab1c0b7aeRobert Greenwalt        /**
3354d1055a250c00b0c2516ec406a8cf9a5ab1c0b7aeRobert Greenwalt         * The length of time in Sec that we allow our notion of NTP time
3355d1055a250c00b0c2516ec406a8cf9a5ab1c0b7aeRobert Greenwalt         * to be cached before we refresh it
3356d1055a250c00b0c2516ec406a8cf9a5ab1c0b7aeRobert Greenwalt         * @hide
3357d1055a250c00b0c2516ec406a8cf9a5ab1c0b7aeRobert Greenwalt         */
3358d1055a250c00b0c2516ec406a8cf9a5ab1c0b7aeRobert Greenwalt        public static final String THROTTLE_MAX_NTP_CACHE_AGE_SEC =
3359d1055a250c00b0c2516ec406a8cf9a5ab1c0b7aeRobert Greenwalt                "throttle_max_ntp_cache_age_sec";
3360d1055a250c00b0c2516ec406a8cf9a5ab1c0b7aeRobert Greenwalt
3361c9b6851af68bdc20c4903b16c344e9f116647219Irfan Sheriff
3362c9b6851af68bdc20c4903b16c344e9f116647219Irfan Sheriff        /**
3363aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @hide
3364ee649a811bc7e2193b63cadb312877a03640a9c4Dan Egnor         */
3365aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker        public static final String[] SETTINGS_TO_BACKUP = {
3366aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            ADB_ENABLED,
3367aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            ALLOW_MOCK_LOCATION,
3368aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            PARENTAL_CONTROL_ENABLED,
3369aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            PARENTAL_CONTROL_REDIRECT_URL,
3370aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            USB_MASS_STORAGE_ENABLED,
3371aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            ACCESSIBILITY_ENABLED,
337214c2d79028224118b96a03d2db6bab1902ccb6afChristopher Tate            BACKUP_AUTO_RESTORE,
3373aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            ENABLED_ACCESSIBILITY_SERVICES,
3374aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            TTS_USE_DEFAULTS,
3375aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            TTS_DEFAULT_RATE,
3376aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            TTS_DEFAULT_PITCH,
3377aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            TTS_DEFAULT_SYNTH,
3378aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            TTS_DEFAULT_LANG,
3379aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            TTS_DEFAULT_COUNTRY,
3380ceffa1597d574599cbaca71f5855a986b0857463Charles Chen            TTS_ENABLED_PLUGINS,
3381aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON,
3382aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY,
3383aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            WIFI_NUM_ALLOWED_CHANNELS,
3384aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            WIFI_NUM_OPEN_NETWORKS_KEPT,
338587734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat            MOUNT_PLAY_NOTIFICATION_SND,
338687734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat            MOUNT_UMS_AUTOSTART,
338787734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat            MOUNT_UMS_PROMPT,
33882ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            MOUNT_UMS_NOTIFY_ENABLED,
33892ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            UI_NIGHT_MODE
3390aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker        };
3391ee649a811bc7e2193b63cadb312877a03640a9c4Dan Egnor
3392ee649a811bc7e2193b63cadb312877a03640a9c4Dan Egnor        /**
3393aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * Helper method for determining if a location provider is enabled.
3394aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @param cr the content resolver to use
3395aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @param provider the location provider to query
3396aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @return true if the provider is enabled
33979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
3398aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker        public static final boolean isLocationProviderEnabled(ContentResolver cr, String provider) {
3399aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            String allowedProviders = Settings.Secure.getString(cr, LOCATION_PROVIDERS_ALLOWED);
3400aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            if (allowedProviders != null) {
3401aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker                return (allowedProviders.equals(provider) ||
3402aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker                        allowedProviders.contains("," + provider + ",") ||
3403aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker                        allowedProviders.startsWith(provider + ",") ||
3404aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker                        allowedProviders.endsWith("," + provider));
34059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
3406aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            return false;
3407aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker        }
34089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3409aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker        /**
3410aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * Thread-safe method for enabling or disabling a single location provider.
3411aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @param cr the content resolver to use
3412aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @param provider the location provider to enable or disable
3413aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         * @param enabled true if the provider should be enabled
3414aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker         */
3415aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker        public static final void setLocationProviderEnabled(ContentResolver cr,
3416aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker                String provider, boolean enabled) {
3417aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            // to ensure thread safety, we write the provider name with a '+' or '-'
3418aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            // and let the SettingsProvider handle it rather than reading and modifying
3419aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            // the list of enabled providers.
3420aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            if (enabled) {
3421aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker                provider = "+" + provider;
3422aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            } else {
3423aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker                provider = "-" + provider;
34249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
3425aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker            putString(cr, Settings.Secure.LOCATION_PROVIDERS_ALLOWED, provider);
34269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
34279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
34309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * User-defined bookmarks and shortcuts.  The target of each bookmark is an
34319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Intent URL, allowing it to be either a web page or a particular
34329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * application activity.
34339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
34349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @hide
34359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
34369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final class Bookmarks implements BaseColumns
34379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
34389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        private static final String TAG = "Bookmarks";
34399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
34419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The content:// style URL for this table
34429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
34439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final Uri CONTENT_URI =
34449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Uri.parse("content://" + AUTHORITY + "/bookmarks");
34459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
34479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The row ID.
34489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>Type: INTEGER</p>
34499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
34509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String ID = "_id";
34519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
34539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Descriptive name of the bookmark that can be displayed to the user.
34549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * If this is empty, the title should be resolved at display time (use
34559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #getTitle(Context, Cursor)} any time you want to display the
34569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * title of a bookmark.)
34579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <P>
34589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Type: TEXT
34599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * </P>
34609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
34619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String TITLE = "title";
34629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
34649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Arbitrary string (displayed to the user) that allows bookmarks to be
34659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * organized into categories.  There are some special names for
34669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * standard folders, which all start with '@'.  The label displayed for
34679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the folder changes with the locale (via {@link #getLabelForFolder}) but
34689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the folder name does not change so you can consistently query for
34699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the folder regardless of the current locale.
34709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
34719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <P>Type: TEXT</P>
34729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
34739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
34749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String FOLDER = "folder";
34759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
34779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The Intent URL of the bookmark, describing what it points to.  This
34789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * value is given to {@link android.content.Intent#getIntent} to create
34799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * an Intent that can be launched.
34809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <P>Type: TEXT</P>
34819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
34829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String INTENT = "intent";
34839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
34859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Optional shortcut character associated with this bookmark.
34869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <P>Type: INTEGER</P>
34879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
34889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String SHORTCUT = "shortcut";
34899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
34919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The order in which the bookmark should be displayed
34929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <P>Type: INTEGER</P>
34939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
34949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final String ORDERING = "ordering";
34959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        private static final String[] sIntentProjection = { INTENT };
34979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        private static final String[] sShortcutProjection = { ID, SHORTCUT };
34989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        private static final String sShortcutSelection = SHORTCUT + "=?";
34999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
35019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Convenience function to retrieve the bookmarked Intent for a
35029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * particular shortcut key.
35039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
35049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to query.
35059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param shortcut The shortcut key.
35069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
35079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return Intent The bookmarked URL, or null if there is no bookmark
35089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *         matching the given shortcut.
35099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
35109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static Intent getIntentForShortcut(ContentResolver cr, char shortcut)
35119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
35129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent = null;
35139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Cursor c = cr.query(CONTENT_URI,
35159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    sIntentProjection, sShortcutSelection,
35169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    new String[] { String.valueOf((int) shortcut) }, ORDERING);
35179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            // Keep trying until we find a valid shortcut
35189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            try {
35199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                while (intent == null && c.moveToNext()) {
35209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    try {
35219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        String intentURI = c.getString(c.getColumnIndexOrThrow(INTENT));
35229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        intent = Intent.getIntent(intentURI);
35239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    } catch (java.net.URISyntaxException e) {
35249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        // The stored URL is bad...  ignore it.
35259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    } catch (IllegalArgumentException e) {
35269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        // Column not found
3527a33e3f79259b56b03c7912af35944f34ad190e3cDianne Hackborn                        Log.w(TAG, "Intent column not found", e);
35289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }
35299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
35309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } finally {
35319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                if (c != null) c.close();
35329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
35339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return intent;
35359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
35369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
35389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Add a new bookmark to the system.
35399bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh         *
35409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cr The ContentResolver to query.
35419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param intent The desired target of the bookmark.
35429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param title Bookmark title that is shown to the user; null if none
35439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *            or it should be resolved to the intent's title.
35449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param folder Folder in which to place the bookmark; null if none.
35459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param shortcut Shortcut that will invoke the bookmark; 0 if none. If
35469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *            this is non-zero and there is an existing bookmark entry
35479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *            with this same shortcut, then that existing shortcut is
35489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *            cleared (the bookmark is not removed).
35499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return The unique content URL for the new bookmark entry.
35509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
35519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static Uri add(ContentResolver cr,
35529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                           Intent intent,
35539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                           String title,
35549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                           String folder,
35559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                           char shortcut,
35569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                           int ordering)
35579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
35589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            // If a shortcut is supplied, and it is already defined for
35599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            // another bookmark, then remove the old definition.
35609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (shortcut != 0) {
35619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Cursor c = cr.query(CONTENT_URI,
35629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        sShortcutProjection, sShortcutSelection,
35639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        new String[] { String.valueOf((int) shortcut) }, null);
35649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                try {
35659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    if (c.moveToFirst()) {
35669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        while (c.getCount() > 0) {
35679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            if (!c.deleteRow()) {
35689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                Log.w(TAG, "Could not delete existing shortcut row");
35699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            }
35709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
35719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }
35729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                } finally {
35739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    if (c != null) c.close();
35749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
35759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
35769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ContentValues values = new ContentValues();
35789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (title != null) values.put(TITLE, title);
35799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (folder != null) values.put(FOLDER, folder);
35809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            values.put(INTENT, intent.toURI());
35819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (shortcut != 0) values.put(SHORTCUT, (int) shortcut);
35829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            values.put(ORDERING, ordering);
35839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return cr.insert(CONTENT_URI, values);
35849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
35859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
35879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Return the folder name as it should be displayed to the user.  This
35889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * takes care of localizing special folders.
35899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
35909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param r Resources object for current locale; only need access to
35919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *          system resources.
35929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param folder The value found in the {@link #FOLDER} column.
35939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
35949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return CharSequence The label for this folder that should be shown
35959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *         to the user.
35969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
35979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static CharSequence getLabelForFolder(Resources r, String folder) {
35989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return folder;
35999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
36009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
36029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Return the title as it should be displayed to the user. This takes
36039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * care of localizing bookmarks that point to activities.
36049bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh         *
36059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param context A context.
36069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param cursor A cursor pointing to the row whose title should be
36079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *        returned. The cursor must contain at least the {@link #TITLE}
36089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *        and {@link #INTENT} columns.
36099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return A title that is localized and can be displayed to the user,
36109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *         or the empty string if one could not be found.
36119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
36129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static CharSequence getTitle(Context context, Cursor cursor) {
36139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int titleColumn = cursor.getColumnIndex(TITLE);
36149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int intentColumn = cursor.getColumnIndex(INTENT);
36159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (titleColumn == -1 || intentColumn == -1) {
36169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                throw new IllegalArgumentException(
36179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        "The cursor must contain the TITLE and INTENT columns.");
36189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
36199bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
36209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String title = cursor.getString(titleColumn);
36219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (!TextUtils.isEmpty(title)) {
36229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return title;
36239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
36249bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
36259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String intentUri = cursor.getString(intentColumn);
36269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (TextUtils.isEmpty(intentUri)) {
36279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return "";
36289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
36299bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
36309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent;
36319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            try {
36329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                intent = Intent.getIntent(intentUri);
36339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } catch (URISyntaxException e) {
36349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return "";
36359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
36369bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh
36379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            PackageManager packageManager = context.getPackageManager();
36389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ResolveInfo info = packageManager.resolveActivity(intent, 0);
36399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return info != null ? info.loadLabel(packageManager) : "";
36409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
36419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
36449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Returns the device ID that we should use when connecting to the mobile gtalk server.
36459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * This is a string like "android-0x1242", where the hex string is the Android ID obtained
36469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * from the GoogleLoginService.
36479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
36489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param androidId The Android ID for this device.
36499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return The device ID that should be used when connecting to the mobile gtalk server.
36509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @hide
36519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
36529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static String getGTalkDeviceId(long androidId) {
36539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return "android-" + Long.toHexString(androidId);
36549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3656