summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2014-11-17 12:47:45 +0100
committerGerrit Code Review <gerrit@cyanogenmod.org>2014-11-21 08:02:09 +0000
commit3dc450dd21c064db02a32e3aa66e657c067e3e68 (patch)
treecc95915589dc7f83f27de9ddf904d1f3f464b017
parent3df70c7a2f143c86c46c8f42b11b68c15d95e537 (diff)
downloadandroid_packages_apps_Dialer-3dc450dd21c064db02a32e3aa66e657c067e3e68.tar.gz
android_packages_apps_Dialer-3dc450dd21c064db02a32e3aa66e657c067e3e68.tar.bz2
android_packages_apps_Dialer-3dc450dd21c064db02a32e3aa66e657c067e3e68.zip
Move lookup settings to dialer app (2/2)
Change-Id: I3d4da7cc1db60963b3e47370a36a6e839ec112d6
-rw-r--r--res/color/setting_primary_color.xml22
-rw-r--r--res/color/setting_secondary_color.xml22
-rw-r--r--res/values/cm_arrays.xml37
-rw-r--r--res/values/cm_strings.xml18
-rw-r--r--res/values/colors.xml4
-rw-r--r--res/xml/lookup_settings.xml67
-rw-r--r--src/com/android/dialer/settings/DialerSettingsActivity.java6
-rw-r--r--src/com/android/dialer/settings/LookupSettingsFragment.java165
8 files changed, 337 insertions, 4 deletions
diff --git a/res/color/setting_primary_color.xml b/res/color/setting_primary_color.xml
new file mode 100644
index 000000000..6d083e2f9
--- /dev/null
+++ b/res/color/setting_primary_color.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_enabled="false"
+ android:alpha="0.26"
+ android:color="@color/dialtacts_primary_text_color"/>
+ <item android:color="@color/dialtacts_primary_text_color"/>
+</selector>
diff --git a/res/color/setting_secondary_color.xml b/res/color/setting_secondary_color.xml
new file mode 100644
index 000000000..9ebbc4e42
--- /dev/null
+++ b/res/color/setting_secondary_color.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_enabled="false"
+ android:alpha="0.26"
+ android:color="@color/dialtacts_secondary_text_color"/>
+ <item android:color="@color/dialtacts_secondary_text_color"/>
+</selector>
diff --git a/res/values/cm_arrays.xml b/res/values/cm_arrays.xml
index 4a58561dd..715d7de50 100644
--- a/res/values/cm_arrays.xml
+++ b/res/values/cm_arrays.xml
@@ -39,4 +39,41 @@
<item><xliff:g id="hours" example="2 hrs">%1$s</xliff:g> <xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
<item><xliff:g id="hours" example="2 hrs">%1$s</xliff:g> <xliff:g id="minutes" example="2 mins">%2$s</xliff:g> <xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
</string-array>
+
+ <string-array name="forward_lookup_providers" translatable="false">
+ <item>Google</item>
+ <item>OpenStreetMap</item>
+ </string-array>
+
+ <string-array name="forward_lookup_provider_names" translatable="false">
+ <item>Google</item>
+ <item>OpenStreetMap</item>
+ </string-array>
+
+ <string-array name="people_lookup_providers" translatable="false">
+ <item>WhitePages</item>
+ </string-array>
+
+ <string-array name="people_lookup_provider_names" translatable="false">
+ <item>WhitePages (US)</item>
+ </string-array>
+
+ <string-array name="reverse_lookup_providers" translatable="false">
+ <item>OpenCnam</item>
+ <item>WhitePages</item>
+ <item>WhitePages_CA</item>
+ <item>YellowPages</item>
+ <item>YellowPages_CA</item>
+ <item>ZabaSearch</item>
+ </string-array>
+
+ <string-array name="reverse_lookup_provider_names" translatable="false">
+ <item>OpenCnam (US)</item>
+ <item>WhitePages (US)</item>
+ <item>WhitePages (CA)</item>
+ <item>YellowPages (US)</item>
+ <item>YellowPages (CA)</item>
+ <item>ZabaSearch (US)</item>
+ </string-array>
+
</resources>
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
index a5d074a0b..f6bcdbbaf 100644
--- a/res/values/cm_strings.xml
+++ b/res/values/cm_strings.xml
@@ -19,6 +19,24 @@
<string name="nearby_places">Nearby places</string>
<string name="people">People</string>
+ <!-- Number lookup -->
+ <string name="lookup_settings_label">Phone number lookup</string>
+ <string name="lookup_settings_description">Lookup of unknown phone numbers</string>
+ <string name="enable_forward_lookup_title">Forward lookup</string>
+ <string name="enable_forward_lookup_summary">Show nearby places when searching in the dialer</string>
+ <string name="enable_people_lookup_title">People lookup</string>
+ <string name="enable_people_lookup_summary">Show online results for people when searching in the dialer</string>
+ <string name="enable_reverse_lookup_title">Reverse lookup</string>
+ <string name="enable_reverse_lookup_summary">Look up information about the person or place for unknown numbers on incoming calls</string>
+ <string name="forward_lookup_provider_title">Forward lookup provider</string>
+ <string name="people_lookup_provider_title">People lookup provider</string>
+ <string name="reverse_lookup_provider_title">Reverse lookup provider</string>
+
+ <!-- Chinese Reverse Lookup Provider -->
+ <string name="cyngn_reverse_lookup_provider_package" translatable="false">com.cyngn.chineselocationlookup</string>
+ <string name="cyngn_reverse_lookup_provider_name">Cyngn Chinese (CN)</string>
+ <string name="cyngn_reverse_lookup_provider_value" translatable="false">CyngnChinese</string>
+
<!-- Description for incoming calls that were blacklisted -->
<string name="type_blacklist">Blacklisted call</string>
<string name="call_log_stats_title">Statistics</string>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 83b2b8f85..1a25432cc 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -22,10 +22,6 @@
<color name="dialer_red_highlight_color">#ff1744</color>
<color name="dialer_green_highlight_color">#00c853</color>
- <!-- Color for the setting text. -->
- <color name="setting_primary_color">@color/dialtacts_primary_text_color</color>
- <!-- Color for the setting description text. -->
- <color name="setting_secondary_color">@color/dialtacts_secondary_text_color</color>
<color name="setting_background_color">#ffffff</color>
<!-- Color of the text describing an unconsumed missed call. -->
diff --git a/res/xml/lookup_settings.xml b/res/xml/lookup_settings.xml
new file mode 100644
index 000000000..14d2de2d2
--- /dev/null
+++ b/res/xml/lookup_settings.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ ~ Copyright (C) 2014 The CyanogenMod 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
+ -->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+ <SwitchPreference
+ android:key="enable_forward_lookup"
+ android:title="@string/enable_forward_lookup_title"
+ android:summary="@string/enable_forward_lookup_summary"
+ android:defaultValue="false"
+ android:persistent="false" />
+
+ <ListPreference
+ android:key="forward_lookup_provider"
+ android:title="@string/forward_lookup_provider_title"
+ android:entries="@array/forward_lookup_provider_names"
+ android:entryValues="@array/forward_lookup_providers"
+ android:dependency="enable_forward_lookup"
+ android:summary="%s"
+ android:persistent="false" />
+
+ <SwitchPreference
+ android:key="enable_people_lookup"
+ android:title="@string/enable_people_lookup_title"
+ android:summary="@string/enable_people_lookup_summary"
+ android:defaultValue="false"
+ android:persistent="false" />
+
+ <ListPreference
+ android:key="people_lookup_provider"
+ android:title="@string/people_lookup_provider_title"
+ android:entries="@array/people_lookup_provider_names"
+ android:entryValues="@array/people_lookup_providers"
+ android:summary="%s"
+ android:dependency="enable_people_lookup"
+ android:persistent="false" />
+
+ <SwitchPreference
+ android:key="enable_reverse_lookup"
+ android:title="@string/enable_reverse_lookup_title"
+ android:summary="@string/enable_reverse_lookup_summary"
+ android:defaultValue="false"
+ android:persistent="false" />
+
+ <ListPreference
+ android:key="reverse_lookup_provider"
+ android:title="@string/reverse_lookup_provider_title"
+ android:dependency="enable_reverse_lookup"
+ android:summary="%s"
+ android:persistent="false" />
+
+</PreferenceScreen>
+
diff --git a/src/com/android/dialer/settings/DialerSettingsActivity.java b/src/com/android/dialer/settings/DialerSettingsActivity.java
index f7a92d748..8a0f60d09 100644
--- a/src/com/android/dialer/settings/DialerSettingsActivity.java
+++ b/src/com/android/dialer/settings/DialerSettingsActivity.java
@@ -46,6 +46,12 @@ public class DialerSettingsActivity extends AnalyticsPreferenceActivity {
generalSettingsHeader.fragment = GeneralSettingsFragment.class.getName();
target.add(generalSettingsHeader);
+ final Header lookupSettingsHeader = new Header();
+ lookupSettingsHeader.titleRes = R.string.lookup_settings_label;
+ lookupSettingsHeader.summaryRes = R.string.lookup_settings_description;
+ lookupSettingsHeader.fragment = LookupSettingsFragment.class.getName();
+ target.add(lookupSettingsHeader);
+
// Only add the call settings header if the current user is the primary/owner user.
if (isPrimaryUser()) {
final Header callSettingHeader = new Header();
diff --git a/src/com/android/dialer/settings/LookupSettingsFragment.java b/src/com/android/dialer/settings/LookupSettingsFragment.java
new file mode 100644
index 000000000..51d13fab5
--- /dev/null
+++ b/src/com/android/dialer/settings/LookupSettingsFragment.java
@@ -0,0 +1,165 @@
+/*
+ * Copyright (C) 2014 The CyanogenMod 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.dialer.settings;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.preference.Preference;
+import android.preference.ListPreference;
+import android.preference.PreferenceFragment;
+import android.preference.SwitchPreference;
+import android.provider.Settings;
+
+import com.android.dialer.R;
+
+import java.util.Arrays;
+
+public class LookupSettingsFragment extends PreferenceFragment
+ implements Preference.OnPreferenceChangeListener {
+
+ private static final String KEY_ENABLE_FORWARD_LOOKUP = "enable_forward_lookup";
+ private static final String KEY_ENABLE_PEOPLE_LOOKUP = "enable_people_lookup";
+ private static final String KEY_ENABLE_REVERSE_LOOKUP = "enable_reverse_lookup";
+ private static final String KEY_FORWARD_LOOKUP_PROVIDER = "forward_lookup_provider";
+ private static final String KEY_PEOPLE_LOOKUP_PROVIDER = "people_lookup_provider";
+ private static final String KEY_REVERSE_LOOKUP_PROVIDER = "reverse_lookup_provider";
+
+ private SwitchPreference mEnableForwardLookup;
+ private SwitchPreference mEnablePeopleLookup;
+ private SwitchPreference mEnableReverseLookup;
+ private ListPreference mForwardLookupProvider;
+ private ListPreference mPeopleLookupProvider;
+ private ListPreference mReverseLookupProvider;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ addPreferencesFromResource(R.xml.lookup_settings);
+
+ mEnableForwardLookup = (SwitchPreference) findPreference(KEY_ENABLE_FORWARD_LOOKUP);
+ mEnablePeopleLookup = (SwitchPreference) findPreference(KEY_ENABLE_PEOPLE_LOOKUP);
+ mEnableReverseLookup = (SwitchPreference) findPreference(KEY_ENABLE_REVERSE_LOOKUP);
+
+ mEnableForwardLookup.setOnPreferenceChangeListener(this);
+ mEnablePeopleLookup.setOnPreferenceChangeListener(this);
+ mEnableReverseLookup.setOnPreferenceChangeListener(this);
+
+ mForwardLookupProvider = (ListPreference) findPreference(KEY_FORWARD_LOOKUP_PROVIDER);
+ mPeopleLookupProvider = (ListPreference) findPreference(KEY_PEOPLE_LOOKUP_PROVIDER);
+ mReverseLookupProvider = (ListPreference) findPreference(KEY_REVERSE_LOOKUP_PROVIDER);
+
+ mForwardLookupProvider.setOnPreferenceChangeListener(this);
+ mPeopleLookupProvider.setOnPreferenceChangeListener(this);
+ mReverseLookupProvider.setOnPreferenceChangeListener(this);
+
+ updateReverseLookupProviderList();
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+
+ restoreLookupProviderSwitches();
+ restoreLookupProviders();
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ final ContentResolver cr = getActivity().getContentResolver();
+
+ if (preference == mEnableForwardLookup) {
+ Settings.System.putInt(cr, Settings.System.ENABLE_FORWARD_LOOKUP,
+ ((Boolean) newValue) ? 1 : 0);
+ } else if (preference == mEnablePeopleLookup) {
+ Settings.System.putInt(cr, Settings.System.ENABLE_PEOPLE_LOOKUP,
+ ((Boolean) newValue) ? 1 : 0);
+ } else if (preference == mEnableReverseLookup) {
+ Settings.System.putInt(cr, Settings.System.ENABLE_REVERSE_LOOKUP,
+ ((Boolean) newValue) ? 1 : 0);
+ } else if (preference == mForwardLookupProvider) {
+ Settings.System.putString(cr, Settings.System.FORWARD_LOOKUP_PROVIDER,
+ (String) newValue);
+ } else if (preference == mPeopleLookupProvider) {
+ Settings.System.putString(cr, Settings.System.PEOPLE_LOOKUP_PROVIDER,
+ (String) newValue);
+ } else if (preference == mReverseLookupProvider) {
+ Settings.System.putString(cr, Settings.System.REVERSE_LOOKUP_PROVIDER,
+ (String) newValue);
+ }
+
+ return true;
+ }
+
+ private void updateReverseLookupProviderList() {
+ Resources res = getResources();
+
+ String[] entries = res.getStringArray(R.array.reverse_lookup_provider_names);
+ String[] values = res.getStringArray(R.array.reverse_lookup_providers);
+
+ if (isPackageInstalled(getString(R.string.cyngn_reverse_lookup_provider_package))) {
+ entries = Arrays.copyOf(entries, entries.length + 1);
+ values = Arrays.copyOf(values, values.length + 1);
+
+ entries[entries.length - 1] = getString(R.string.cyngn_reverse_lookup_provider_name);
+ values[values.length - 1] = getString(R.string.cyngn_reverse_lookup_provider_value);
+ }
+
+ mReverseLookupProvider.setEntries(entries);
+ mReverseLookupProvider.setEntryValues(values);
+ }
+
+ private boolean isPackageInstalled(String pkg) {
+ try {
+ PackageInfo pi = getActivity().getPackageManager().getPackageInfo(pkg, 0);
+ return pi.applicationInfo.enabled;
+ } catch (PackageManager.NameNotFoundException e) {
+ return false;
+ }
+ }
+
+ private void restoreLookupProviderSwitches() {
+ final ContentResolver cr = getActivity().getContentResolver();
+ mEnableForwardLookup.setChecked(Settings.System.getInt(cr,
+ Settings.System.ENABLE_FORWARD_LOOKUP, 1) != 0);
+ mEnablePeopleLookup.setChecked(Settings.System.getInt(cr,
+ Settings.System.ENABLE_PEOPLE_LOOKUP, 1) != 0);
+ mEnableReverseLookup.setChecked(Settings.System.getInt(cr,
+ Settings.System.ENABLE_REVERSE_LOOKUP, 1) != 0);
+ }
+
+ private void restoreLookupProviders() {
+ restoreLookupProvider(mForwardLookupProvider, Settings.System.FORWARD_LOOKUP_PROVIDER);
+ restoreLookupProvider(mPeopleLookupProvider, Settings.System.PEOPLE_LOOKUP_PROVIDER);
+ restoreLookupProvider(mReverseLookupProvider, Settings.System.REVERSE_LOOKUP_PROVIDER);
+ }
+
+ private void restoreLookupProvider(ListPreference pref, String key) {
+ final ContentResolver cr = getActivity().getContentResolver();
+ String provider = Settings.System.getString(cr, key);
+ if (provider == null) {
+ pref.setValueIndex(0);
+ Settings.System.putString(cr, key, pref.getValue());
+ } else {
+ pref.setValue(provider);
+ }
+ }
+}