diff options
author | Danny Baumann <dannybaumann@web.de> | 2014-11-17 12:47:45 +0100 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2014-11-21 08:02:09 +0000 |
commit | 3dc450dd21c064db02a32e3aa66e657c067e3e68 (patch) | |
tree | cc95915589dc7f83f27de9ddf904d1f3f464b017 | |
parent | 3df70c7a2f143c86c46c8f42b11b68c15d95e537 (diff) | |
download | android_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.xml | 22 | ||||
-rw-r--r-- | res/color/setting_secondary_color.xml | 22 | ||||
-rw-r--r-- | res/values/cm_arrays.xml | 37 | ||||
-rw-r--r-- | res/values/cm_strings.xml | 18 | ||||
-rw-r--r-- | res/values/colors.xml | 4 | ||||
-rw-r--r-- | res/xml/lookup_settings.xml | 67 | ||||
-rw-r--r-- | src/com/android/dialer/settings/DialerSettingsActivity.java | 6 | ||||
-rw-r--r-- | src/com/android/dialer/settings/LookupSettingsFragment.java | 165 |
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); + } + } +} |