• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2010 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.phone.sip;
18 
19 import com.android.phone.R;
20 
21 import android.content.ContentResolver;
22 import android.content.Context;
23 import android.content.SharedPreferences;
24 import android.provider.Settings;
25 import android.provider.Settings.SettingNotFoundException;
26 import android.text.TextUtils;
27 import android.util.Log;
28 
29 /**
30  * Wrapper for SIP's shared preferences.
31  */
32 public class SipSharedPreferences {
33     private static final String SIP_SHARED_PREFERENCES = "SIP_PREFERENCES";
34     private static final String KEY_PRIMARY_ACCOUNT = "primary";
35     private static final String KEY_NUMBER_OF_PROFILES = "profiles";
36 
37     private SharedPreferences mPreferences;
38     private Context mContext;
39 
SipSharedPreferences(Context context)40     public SipSharedPreferences(Context context) {
41         mPreferences = context.getSharedPreferences(
42                 SIP_SHARED_PREFERENCES, Context.MODE_WORLD_READABLE);
43         mContext = context;
44     }
45 
setPrimaryAccount(String accountUri)46     public void setPrimaryAccount(String accountUri) {
47         SharedPreferences.Editor editor = mPreferences.edit();
48         editor.putString(KEY_PRIMARY_ACCOUNT, accountUri);
49         editor.apply();
50     }
51 
unsetPrimaryAccount()52     public void unsetPrimaryAccount() {
53         setPrimaryAccount(null);
54     }
55 
56     /** Returns the primary account URI or null if it does not exist. */
getPrimaryAccount()57     public String getPrimaryAccount() {
58         return mPreferences.getString(KEY_PRIMARY_ACCOUNT, null);
59     }
60 
isPrimaryAccount(String accountUri)61     public boolean isPrimaryAccount(String accountUri) {
62         return accountUri.equals(
63                 mPreferences.getString(KEY_PRIMARY_ACCOUNT, null));
64     }
65 
hasPrimaryAccount()66     public boolean hasPrimaryAccount() {
67         return !TextUtils.isEmpty(
68                 mPreferences.getString(KEY_PRIMARY_ACCOUNT, null));
69     }
70 
setProfilesCount(int number)71     public void setProfilesCount(int number) {
72         SharedPreferences.Editor editor = mPreferences.edit();
73         editor.putInt(KEY_NUMBER_OF_PROFILES, number);
74         editor.apply();
75     }
76 
getProfilesCount()77     public int getProfilesCount() {
78         return mPreferences.getInt(KEY_NUMBER_OF_PROFILES, 0);
79     }
80 
setSipCallOption(String option)81     public void setSipCallOption(String option) {
82         Settings.System.putString(mContext.getContentResolver(),
83                 Settings.System.SIP_CALL_OPTIONS, option);
84     }
85 
getSipCallOption()86     public String getSipCallOption() {
87         String option = Settings.System.getString(mContext.getContentResolver(),
88                 Settings.System.SIP_CALL_OPTIONS);
89         return (option != null) ? option
90                                 : mContext.getString(R.string.sip_address_only);
91     }
92 
setReceivingCallsEnabled(boolean enabled)93     public void setReceivingCallsEnabled(boolean enabled) {
94         Settings.System.putInt(mContext.getContentResolver(),
95                 Settings.System.SIP_RECEIVE_CALLS, (enabled ? 1 : 0));
96     }
97 
isReceivingCallsEnabled()98     public boolean isReceivingCallsEnabled() {
99         try {
100             return (Settings.System.getInt(mContext.getContentResolver(),
101                     Settings.System.SIP_RECEIVE_CALLS) != 0);
102         } catch (SettingNotFoundException e) {
103             Log.d("SIP", "ReceiveCall option is not set; use default value");
104             return false;
105         }
106     }
107 
108     // TODO: back up to Android Backup
109 }
110