1cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang/* 2cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang * Copyright (C) 2016 The Android Open Source Project 3cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang * 4cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang * Licensed under the Apache License, Version 2.0 (the "License"); 5cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang * you may not use this file except in compliance with the License. 6cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang * You may obtain a copy of the License at 7cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang * 8cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang * http://www.apache.org/licenses/LICENSE-2.0 9cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang * 10cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang * Unless required by applicable law or agreed to in writing, software 11cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang * distributed under the License is distributed on an "AS IS" BASIS, 12cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang * See the License for the specific language governing permissions and 14cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang * limitations under the License. 15cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang */ 16cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang 1769c182afb0e6d82a341a28b4317aa703af768906Gary Maipackage com.android.contacts.preference; 18cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang 1987dabf129c79300090785eb08739af88692b1e07Tingting Wangimport android.content.ActivityNotFoundException; 20cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wangimport android.content.Context; 21cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wangimport android.content.Intent; 22cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wangimport android.content.pm.PackageInfo; 23cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wangimport android.content.pm.PackageManager; 2487dabf129c79300090785eb08739af88692b1e07Tingting Wangimport android.net.Uri; 25cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wangimport android.os.Bundle; 26cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wangimport android.preference.Preference; 27cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wangimport android.preference.PreferenceFragment; 2887dabf129c79300090785eb08739af88692b1e07Tingting Wangimport android.widget.Toast; 29cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang 303f6a2444e0134b7380cdb2e13abf4bf1163336d0Arthur Wangimport com.android.contacts.R; 310a49afa2ad697307cc04ef4cb86570574fa720f2Gary Maiimport com.android.contacts.activities.LicenseActivity; 32cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang 33cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang/** 34cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang * This fragment shows the preferences for "about". 35cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang */ 36cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wangpublic class AboutPreferenceFragment extends PreferenceFragment { 37cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang 38ff9a19d4a322287daefd55e716b65806ab6cb8e0James Laskey public static final String PRIVACY_POLICY_URL = "http://www.google.com/policies/privacy"; 39ff9a19d4a322287daefd55e716b65806ab6cb8e0James Laskey public static final String TERMS_OF_SERVICE_URL = "http://www.google.com/policies/terms"; 4087dabf129c79300090785eb08739af88692b1e07Tingting Wang 41a031344ffad8872885d50c3769e6a5a9602e5910Wenyi Wang public static AboutPreferenceFragment newInstance() { 42a031344ffad8872885d50c3769e6a5a9602e5910Wenyi Wang return new AboutPreferenceFragment(); 43a031344ffad8872885d50c3769e6a5a9602e5910Wenyi Wang } 44a031344ffad8872885d50c3769e6a5a9602e5910Wenyi Wang 45cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang @Override 46cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang public void onCreate(Bundle savedInstanceState) { 47cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang super.onCreate(savedInstanceState); 48cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang 49cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang // Load the preferences from an XML resource 50cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang addPreferencesFromResource(R.xml.preference_about); 51cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang 52cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang // Set build version of Contacts App. 53cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang final PackageManager manager = getActivity().getPackageManager(); 54cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang try { 55cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang final PackageInfo info = manager.getPackageInfo(getActivity().getPackageName(), 0); 56cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang final Preference versionPreference = findPreference( 57cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang getString(R.string.pref_build_version_key)); 58cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang versionPreference.setSummary(info.versionName); 59cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang } catch (PackageManager.NameNotFoundException e) { 60cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang // Nothing 61cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang } 62cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang 63cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang final Preference licensePreference = findPreference( 64cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang getString(R.string.pref_open_source_licenses_key)); 65cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang licensePreference.setIntent(new Intent(getActivity(), LicenseActivity.class)); 6687dabf129c79300090785eb08739af88692b1e07Tingting Wang 6787dabf129c79300090785eb08739af88692b1e07Tingting Wang final Preference privacyPolicyPreference = findPreference("pref_privacy_policy"); 6887dabf129c79300090785eb08739af88692b1e07Tingting Wang final Preference termsOfServicePreference = findPreference("pref_terms_of_service"); 6987dabf129c79300090785eb08739af88692b1e07Tingting Wang 7087dabf129c79300090785eb08739af88692b1e07Tingting Wang final Preference.OnPreferenceClickListener listener = 7187dabf129c79300090785eb08739af88692b1e07Tingting Wang new Preference.OnPreferenceClickListener() { 7287dabf129c79300090785eb08739af88692b1e07Tingting Wang @Override 7387dabf129c79300090785eb08739af88692b1e07Tingting Wang public boolean onPreferenceClick(Preference preference) { 7487dabf129c79300090785eb08739af88692b1e07Tingting Wang try { 7587dabf129c79300090785eb08739af88692b1e07Tingting Wang if (preference == privacyPolicyPreference) { 7687dabf129c79300090785eb08739af88692b1e07Tingting Wang startActivityForUrl(PRIVACY_POLICY_URL); 7787dabf129c79300090785eb08739af88692b1e07Tingting Wang } else if (preference == termsOfServicePreference) { 7887dabf129c79300090785eb08739af88692b1e07Tingting Wang startActivityForUrl(TERMS_OF_SERVICE_URL); 7987dabf129c79300090785eb08739af88692b1e07Tingting Wang } 8087dabf129c79300090785eb08739af88692b1e07Tingting Wang } catch (ActivityNotFoundException ex) { 8187dabf129c79300090785eb08739af88692b1e07Tingting Wang Toast.makeText(getContext(), getString(R.string.url_open_error_toast), 8287dabf129c79300090785eb08739af88692b1e07Tingting Wang Toast.LENGTH_SHORT).show(); 8387dabf129c79300090785eb08739af88692b1e07Tingting Wang } 8487dabf129c79300090785eb08739af88692b1e07Tingting Wang return true; 8587dabf129c79300090785eb08739af88692b1e07Tingting Wang } 8687dabf129c79300090785eb08739af88692b1e07Tingting Wang }; 8787dabf129c79300090785eb08739af88692b1e07Tingting Wang 8887dabf129c79300090785eb08739af88692b1e07Tingting Wang privacyPolicyPreference.setOnPreferenceClickListener(listener); 8987dabf129c79300090785eb08739af88692b1e07Tingting Wang termsOfServicePreference.setOnPreferenceClickListener(listener); 90cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang } 91cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang 92cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang @Override 93cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang public Context getContext() { 94cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang return getActivity(); 95cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang } 9687dabf129c79300090785eb08739af88692b1e07Tingting Wang 9787dabf129c79300090785eb08739af88692b1e07Tingting Wang private void startActivityForUrl(String urlString) { 9887dabf129c79300090785eb08739af88692b1e07Tingting Wang final Intent intent = new Intent(); 9987dabf129c79300090785eb08739af88692b1e07Tingting Wang intent.setAction(Intent.ACTION_VIEW); 10087dabf129c79300090785eb08739af88692b1e07Tingting Wang intent.setData(Uri.parse(urlString)); 10187dabf129c79300090785eb08739af88692b1e07Tingting Wang startActivity(intent); 10287dabf129c79300090785eb08739af88692b1e07Tingting Wang } 103cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang} 104cc3016e029b354f412dbdc0d4b139455203c816cWenyi Wang 105