| /* |
| * Copyright (C) 2015 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.android.messaging.util; |
| |
| import com.android.messaging.Factory; |
| |
| /** |
| * A thin wrapper for getting GServices value. During constructor time a one time background thread |
| * will cache all GServices key with the prefix of "bugle_". All get calls will wait for Gservices |
| * to finish caching the first time. In practice, the background thread will finish before any get |
| * request. |
| */ |
| public abstract class BugleGservices { |
| static final String BUGLE_GSERVICES_PREFIX = "bugle_"; |
| |
| public static BugleGservices get() { |
| return Factory.get().getBugleGservices(); |
| } |
| |
| public abstract void registerForChanges(final Runnable r); |
| |
| /** |
| * @param key The key to look up in GServices |
| * @param defaultValue The default value if value in GServices is null or if |
| * NumberFormatException is caught. |
| * @return The corresponding value, or the default value. |
| */ |
| public abstract long getLong(final String key, final long defaultValue); |
| |
| /** |
| * @param key The key to look up in GServices |
| * @param defaultValue The default value if value in GServices is null or if |
| * NumberFormatException is caught. |
| * @return The corresponding value, or the default value. |
| */ |
| public abstract int getInt(final String key, final int defaultValue); |
| |
| /** |
| * @param key The key to look up in GServices |
| * @param defaultValue The default value if value in GServices is null. |
| * @return The corresponding value, or the default value. |
| */ |
| public abstract boolean getBoolean(final String key, final boolean defaultValue); |
| |
| /** |
| * @param key The key to look up in GServices |
| * @param defaultValue The default value if value in GServices is null. |
| * @return The corresponding value, or the default value. |
| */ |
| public abstract String getString(final String key, final String defaultValue); |
| |
| /** |
| * @param key The key to look up in GServices |
| * @param defaultValue The default value if value in GServices is null. |
| * @return The corresponding value, or the default value. |
| */ |
| public abstract float getFloat(final String key, final float defaultValue); |
| } |