Compare commits

...

6 Commits

Author SHA1 Message Date
emancebo
b9d25a1a24 OOBE: fix NPE in choose data sim page
Change-Id: Ib6228e7cd223d29ac48200e9a50c0900d35f8a4e
(cherry picked from commit b2ceb1f8bb)
2015-05-18 16:25:38 +00:00
cretin45
b3a0f3f7ab SetupWizard: Use the system property mobile data page visibility
Change-Id: I3a3301bcdbc2200ba62067188e59c886a0891788
(cherry picked from commit 4d08b90df3)
2015-05-08 17:10:19 +00:00
cretin45
3a92535654 SetupWizard: Use new LegaleseViewer for privacy policy web views
WebViews are no longer allowed in priv-apps.

Change-Id: Iddf9c79d50ea9f9d9d32218342f9948a6cbf30ef
(cherry picked from commit b076a55991)
2015-05-08 17:07:43 +00:00
cretin45
ce9a742015 Setupwizard: Fix msim NPE where sim only in slot 2
Change-Id: I919129185cb49c51f9f02d9718e116e7d02b0d2c
(cherry picked from commit ac84dc0fce)
2015-05-08 17:07:00 +00:00
Michael Bestas
225b927bbd Automatic translation import
Change-Id: I6b8d3fb084df5abb3449b842ce02d1d6aaf2170a
(cherry picked from commit 676081a4ad)
2015-05-08 17:06:32 +00:00
cretin45
7dc922c743 SetupWizard: Increase delay for accessibility
Change-Id: Ifff7161f95e91ec7763f388206cd1d30804ad600
(cherry picked from commit 9dd952e3f6)
2015-05-08 17:04:59 +00:00
9 changed files with 110 additions and 20 deletions

View File

@@ -45,6 +45,7 @@
<uses-permission android:name="android.permission.BACKUP" /> <uses-permission android:name="android.permission.BACKUP" />
<uses-permission android:name="org.whispersystems.whisperpush.permissions.REGISTER" /> <uses-permission android:name="org.whispersystems.whisperpush.permissions.REGISTER" />
<uses-permission android:name="cyanogenmod.permission.FINISH_SETUP" /> <uses-permission android:name="cyanogenmod.permission.FINISH_SETUP" />
<uses-permission android:name="cyanogenmod.permission.LEGALESE" />
<uses-permission android:name="com.cyngn.cmstats.SEND_ANALYTICS" /> <uses-permission android:name="com.cyngn.cmstats.SEND_ANALYTICS" />
<permission <permission

View File

@@ -38,7 +38,7 @@
<string name="choose_data_sim_summary" product="default">Mitä SIM-korttia haluat käyttää mobiilitiedonsiirtoon? Mobiilidatan käyttö voi aiheuttaa tiedonsiirtokuluja.</string> <string name="choose_data_sim_summary" product="default">Mitä SIM-korttia haluat käyttää mobiilitiedonsiirtoon? Mobiilidatan käyttö voi aiheuttaa tiedonsiirtokuluja.</string>
<string name="date_time_summary">Valitse aikavyöhyke ja määritä aika ja päivämäärä tarvittaessa</string> <string name="date_time_summary">Valitse aikavyöhyke ja määritä aika ja päivämäärä tarvittaessa</string>
<string name="backup_data_summary"><b>Varmuuskopioi</b> sovellusten tiedot, Wi-FI-salasanat ja muut asetukset Googlen palvelimille</string> <string name="backup_data_summary"><b>Varmuuskopioi</b> sovellusten tiedot, Wi-FI-salasanat ja muut asetukset Googlen palvelimille</string>
<string name="other_services_summary">Tämä ottaa Googlen palvelut käyttöön, ja voit ottaa ne käyttöön tai poistaa käytöstä milloin tahansa. Tietoja käytetään Googlen <xliff:g id="name" example="Privacy Policy">%s</xliff:g>n mukaisesti.</string> <string name="other_services_summary">Tämä ottaa Googlen palvelut käyttöön, ja voit ottaa ne käyttöön tai poistaa käytöstä milloin tahansa. Tietoja käytetään Googlen <xliff:g id="name" example="Privacy Policy">%s</xliff:g> mukaisesti.</string>
<string name="location_services_summary">Sijaintipalvelut sallii järjestelmän ja muiden sovellusten kerätä ja käyttää tietoja kuten likimääräinen sijaintisi. Esimerkiksi sovellus voi paikantaa sinut ja etsiä lähistöllä olevia kahviloita.</string> <string name="location_services_summary">Sijaintipalvelut sallii järjestelmän ja muiden sovellusten kerätä ja käyttää tietoja kuten likimääräinen sijaintisi. Esimerkiksi sovellus voi paikantaa sinut ja etsiä lähistöllä olevia kahviloita.</string>
<string name="location_access_summary"><b>Salli sovellusten, jotka ovat kysyneet sinulta lupaa</b> käyttää sijaintitietojasi. Tämä saattaa sisältää nykyisen sijaintisi ja aiemmat sijaintisi.</string> <string name="location_access_summary"><b>Salli sovellusten, jotka ovat kysyneet sinulta lupaa</b> käyttää sijaintitietojasi. Tämä saattaa sisältää nykyisen sijaintisi ja aiemmat sijaintisi.</string>
<string name="location_gps" product="tablet"><b>Paranna paikannuksen tarkkuutta</b> sallimalla sovellusten käyttää GPS:ää tabletissasi.</string> <string name="location_gps" product="tablet"><b>Paranna paikannuksen tarkkuutta</b> sallimalla sovellusten käyttää GPS:ää tabletissasi.</string>

68
res/values-hi/strings.xml Normal file
View File

@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
Copyright (C) 2013-2015 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.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name">सेटअप विज़ार्ड</string>
<string name="next">अगला</string>
<string name="skip">छोड़ें</string>
<string name="start">शुरू करें</string>
<string name="ok">ठीक है</string>
<string name="loading">एक सेकंड\u2026</string>
<string name="setup_complete">सेटअप पूरा हो गया</string>
<string name="setup_welcome">स्वागत</string>
<string name="setup_wifi">वाई-फाई चुनें</string>
<string name="setup_sim_missing">सिम कार्ड नहीं है</string>
<string name="setup_choose_data_sim">डेटा के लिए सिम कार्ड चुनें</string>
<string name="setup_location">स्थान सेवाएँ</string>
<string name="setup_other">अन्य सेवाएँ</string>
<string name="setup_datetime">तिथि और समय</string>
<string name="setup_current_date">वर्तमान तिथि</string>
<string name="setup_current_time">वर्तमान समय</string>
<string name="sim_missing_summary" product="tablet">आपके टैब्लेट के लिए सिम कार्ड पहचाना नहीं जा सका है। सिम कार्ड डालने के लिए अपने उपकरण के साथ आए निर्देशों को देखें।</string>
<string name="sim_missing_summary" product="default">आपके फ़ोन के लिए सिम कार्ड पहचाना नहीं जा सका है। सिम कार्ड डालने के लिए अपने उपकरण के साथ आए निर्देशों को देखें।</string>
<string name="choose_data_sim_summary" product="tablet">डेटा के लिए आप किस सिम का उपयोग करना चाहते हैं? चयनित सिम कार्ड के लिए नेटवर्क शुल्क लग सकते हैं क्योंकि उसका उपयोग आपके टैब्लेट को सेटअप करने के लिए किया जाएगा।</string>
<string name="choose_data_sim_summary" product="default">डेटा के लिए आप किस सिम का उपयोग करना चाहते हैं? चयनित सिम कार्ड के लिए नेटवर्क शुल्क लग सकते हैं क्योंकि उसका उपयोग आपके फ़ोन को सेटअप करने के लिए किया जाएगा।</string>
<string name="date_time_summary">अपना समय क्षेत्र सेटअप करें और यदि आवश्यक हो तो वर्तमान तिथि और समय को समायोजित करें</string>
<string name="backup_data_summary">ऐप डेटा, वाई-फ़ाई पासवर्ड, और अन्य सेटिंगि का गूगल सर्वरों में <b>बैकअप लें</b></string>
<string name="other_services_summary">इन सेवाओं के लिए गूगल से लाभ लिया जाता है, और आप उन्हें किसी भी समय बंद या चालू कर सकते हैं। डेटा का उपयोग गूगल की <xliff:g id="name" example="गोपनीयता नीति">%s</xliff:g> के अनुसार किया जाएगा।</string>
<string name="location_services_summary">स्थान सेवाएँ आपके सिस्टम को तृतीय पक्षीय ऐपों का उपयोग करके डेटा संग्रहण करने और डेटा उपयोग करने देती हैं ताकि आपके स्थान का अंदाज़ा लगाया जा सके। उदाहरण के लिए, कोई ऐप आपके स्थान के अनुमान का उपयोग निकट के कॉफ़ी शॉपों का पता करने के लिए कर सकता है।</string>
<string name="location_access_summary"><b>जिन ऐपों ने आपसे अनुमति ले ली है</b> उन्हें आपके स्थान संबंधी जानकारी का उपयोग करने दें। इस जानकारी में आपका वर्तमान स्थान और पहले के स्थान शामिल हो सकते हैं।</string>
<string name="location_gps" product="tablet">अपने टैब्लेट में ऐपों को जीपीएस का उपयोग करने देकर <b>स्थान सटीकता बढ़ाएँ</b></string>
<string name="location_gps" product="default">अपने फ़ोन में ऐपों को जीपीएस का उपयोग करने देकर <b>स्थान सटीकता बढ़ाएँ</b></string>
<string name="location_network">अपने स्थान को निर्धारित करने में ऐपों की मदद करने के लिए <b>वाई-फ़ाई</b> का उपयोग करें।</string>
<string name="location_network_telephony">ऐपों को आपके स्थान का निर्धारण करने में मदद करने के लिए <b>वाई-फ़ाई और मोबाइल नेटवर्कों का उपयोग करें।</b></string>
<string name="location_network_gms">ऐपों को अपने स्थान का निर्धारण करने में मदद करने के लिए <b>गूगल की स्थान सेवा का उपयोग करें।</b> इसका मतलब है कि गूगल को गुमनाम स्थान डेटा तब भी भेजा जाएगा जब कोई भी ऐप नहीं चल रहा हो।</string>
<string name="setup_mobile_data">मोबाइल डेटा को चालू करें</string>
<string name="setup_mobile_data_no_service">कोई सेवा नहीं है</string>
<string name="setup_mobile_data_emergency_only">केवल आपातकालीन कॉल</string>
<string name="enable_mobile_data_summary">क्या आप सेटअप के दौरान मोबाइल डेटा का उपयोग करना चाहते हैं? मोबाइल डेटा को चालू करने पर डेटा शुल्क लग सकते हैं।</string>
<string name="no">नहीं</string>
<string name="yes">हाँ</string>
<string name="data_sim_name">सिम <xliff:g id="sub">%d</xliff:g> - <xliff:g id="name">%s</xliff:g></string>
<string name="emergency_call">आपातकालीन कॉल</string>
<string name="setup_services">सियानोजेन सुविधाएँ</string>
<string name="services_explanation" product="tablet">ये सेवाएँ आपके टैब्लेट की क्षमताओं को बढ़ाती हैं। डेटा का उपयोग सियानोजेन की <xliff:g id="name" example="Privacy Policy">%s</xliff:g> के अनुसार किया जाएगा।</string>
<string name="services_explanation" product="default">ये सेवाएँ आपके फ़ोन की क्षमताओं को बढ़ाती हैं। डेटा का उपयोग सियानोजेन की <xliff:g id="name" example="Privacy Policy">%s</xliff:g> के अनुसार किया जाएगा।</string>
<string name="services_privacy_policy">गोपनीयता नीति</string>
<string name="services_help_improve_cm"><xliff:g id="name" example="CyanogenMod">%s</xliff:g> को सुधारने में मदद करें</string>
<string name="services_metrics_label"><xliff:g id="name" example="Help improve CyanogenMod">%s</xliff:g> - सियानोजेन को अपने आप ही निदानात्मक और उपयोग से संबंधित डेटा भेजें। इस जानकारी का उपयोग आपको पहचानने के लिए नहीं हो सकता है। वह केवल बैटरी की आयु, ऐप के निष्पादन और नए <xliff:g id="name" example="CyanogenMod">%s</xliff:g> प्रकार्यों पर काम करने वाली टीमों की मदद के लिए है।</string>
<string name="services_apply_theme"><xliff:g id="name" example="Material">%s</xliff:g> थीम को लागू करें</string>
<string name="services_apply_theme_label"><xliff:g id="name" example="Apply the Material theme">%s</xliff:g> जो अद्वितीय आइकन, वॉलपेपर, और फ़ॉन्टों को सक्षम करता है।</string>
<string name="services_os_nav_keys_label">हार्डवेयर कुंजियों की जगह <b>स्क्रीन पर मौजूद नेविगेशन कुंजियों का उपयोग करें।</b></string>
<string name="services_use_secure_sms">सुरक्षित एसएमएस का उपयोग करें</string>
<string name="services_secure_sms_label"><xliff:g id="name" example="Use secure SMS">%s</xliff:g> का उपयोग करके सुरक्षित एसएमएस का उपयोग करने वाले अन्य उपयोगकर्ताओं के साथ के एसएमएस वार्तालापों को <xliff:g id="name" example="CyanogenMod">%s</xliff:g> उपकरण में कूटलेखित करें।</string>
</resources>

View File

@@ -37,6 +37,7 @@ public class SetupWizardApp extends Application {
public static final String ACCOUNT_TYPE_GMS = "com.google"; public static final String ACCOUNT_TYPE_GMS = "com.google";
public static final String ACTION_SETUP_WIFI = "com.android.net.wifi.SETUP_WIFI_NETWORK"; public static final String ACTION_SETUP_WIFI = "com.android.net.wifi.SETUP_WIFI_NETWORK";
public static final String ACTION_VIEW_LEGAL = "cyanogenmod.intent.action.LEGALESE";
public static final String EXTRA_FIRST_RUN = "firstRun"; public static final String EXTRA_FIRST_RUN = "firstRun";
public static final String EXTRA_ALLOW_SKIP = "allowSkip"; public static final String EXTRA_ALLOW_SKIP = "allowSkip";

View File

@@ -20,6 +20,8 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.os.SystemProperties;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import com.android.internal.telephony.TelephonyIntents; import com.android.internal.telephony.TelephonyIntents;
@@ -33,6 +35,8 @@ public class CMSetupWizardData extends AbstractSetupData {
private boolean mTimeSet = false; private boolean mTimeSet = false;
private boolean mTimeZoneSet = false; private boolean mTimeZoneSet = false;
private boolean mMobileDataEnabled = SystemProperties
.getBoolean("ro.com.android.mobiledata", true);
public CMSetupWizardData(Context context) { public CMSetupWizardData(Context context) {
super(context); super(context);
@@ -56,7 +60,7 @@ public class CMSetupWizardData extends AbstractSetupData {
} }
if (SetupWizardUtils.hasTelephony(mContext)) { if (SetupWizardUtils.hasTelephony(mContext)) {
pages.add(new MobileDataPage(mContext, this) pages.add(new MobileDataPage(mContext, this)
.setHidden(!isSimInserted() || SetupWizardUtils.isMobileDataEnabled(mContext))); .setHidden(!isSimInserted() || mMobileDataEnabled));
} }
if (SetupWizardUtils.hasGMS(mContext)) { if (SetupWizardUtils.hasGMS(mContext)) {
pages.add(new GmsAccountPage(mContext, this).setHidden(true)); pages.add(new GmsAccountPage(mContext, this).setHidden(true));
@@ -82,6 +86,7 @@ public class CMSetupWizardData extends AbstractSetupData {
.equals(ConnectivityManager.CONNECTIVITY_ACTION) || .equals(ConnectivityManager.CONNECTIVITY_ACTION) ||
intent.getAction() intent.getAction()
.equals(ConnectivityManager.CONNECTIVITY_ACTION_IMMEDIATE)) { .equals(ConnectivityManager.CONNECTIVITY_ACTION_IMMEDIATE)) {
showHideMobileDataPage();
showHideAccountPages(); showHideAccountPages();
} else if (intent.getAction() } else if (intent.getAction()
.equals(TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED)) { .equals(TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED)) {
@@ -127,7 +132,7 @@ public class CMSetupWizardData extends AbstractSetupData {
ChooseDataSimPage chooseDataSimPage = ChooseDataSimPage chooseDataSimPage =
(ChooseDataSimPage) getPage(ChooseDataSimPage.TAG); (ChooseDataSimPage) getPage(ChooseDataSimPage.TAG);
if (chooseDataSimPage != null) { if (chooseDataSimPage != null) {
chooseDataSimPage.setHidden(!isSimInserted()); chooseDataSimPage.setHidden(!allSimsInserted());
} }
} }
@@ -135,7 +140,7 @@ public class CMSetupWizardData extends AbstractSetupData {
MobileDataPage mobileDataPage = MobileDataPage mobileDataPage =
(MobileDataPage) getPage(MobileDataPage.TAG); (MobileDataPage) getPage(MobileDataPage.TAG);
if (mobileDataPage != null) { if (mobileDataPage != null) {
mobileDataPage.setHidden(!isSimInserted()); mobileDataPage.setHidden(!isSimInserted() || mMobileDataEnabled);
} }
} }
@@ -185,7 +190,7 @@ public class CMSetupWizardData extends AbstractSetupData {
return false; return false;
} }
} }
return true; return simSlotCount == SubscriptionManager.from(mContext).getActiveSubscriptionInfoCount();
} }
} }

View File

@@ -122,11 +122,11 @@ public class ChooseDataSimPage extends SetupPage {
mPageView = (ViewGroup)mRootView.findViewById(R.id.page_view); mPageView = (ViewGroup)mRootView.findViewById(R.id.page_view);
mProgressBar = (ProgressBar) mRootView.findViewById(R.id.progress); mProgressBar = (ProgressBar) mRootView.findViewById(R.id.progress);
List<SubscriptionInfo> subInfoRecords = mSubscriptionManager.getActiveSubscriptionInfoList(); List<SubscriptionInfo> subInfoRecords = mSubscriptionManager.getActiveSubscriptionInfoList();
int simCount = subInfoRecords.size(); int simCount =
subInfoRecords != null ? subInfoRecords.size() : 0;
mSubInfoRecords = new SparseArray<SubscriptionInfo>(simCount); mSubInfoRecords = new SparseArray<SubscriptionInfo>(simCount);
for (int i = 0; i < simCount; i++) { for (SubscriptionInfo subInfoRecord : subInfoRecords) {
SubscriptionInfo subInfoRecord = subInfoRecords.get(i); mSubInfoRecords.put(subInfoRecord.getSimSlotIndex(), subInfoRecord);
mSubInfoRecords.put(subInfoRecord.getSubscriptionId(), subInfoRecord);
} }
mNameViews = new SparseArray<TextView>(simCount); mNameViews = new SparseArray<TextView>(simCount);
mSignalViews = new SparseArray<ImageView>(simCount); mSignalViews = new SparseArray<ImageView>(simCount);
@@ -170,7 +170,7 @@ public class ChooseDataSimPage extends SetupPage {
mIsAttached = true; mIsAttached = true;
mPhone = (TelephonyManager)getActivity().getSystemService(Context.TELEPHONY_SERVICE); mPhone = (TelephonyManager)getActivity().getSystemService(Context.TELEPHONY_SERVICE);
for (int i = 0; i < mPhoneStateListeners.size(); i++) { for (int i = 0; i < mPhoneStateListeners.size(); i++) {
mPhone.listen(mPhoneStateListeners.get(i), mPhone.listen(mPhoneStateListeners.valueAt(i),
PhoneStateListener.LISTEN_SERVICE_STATE PhoneStateListener.LISTEN_SERVICE_STATE
| PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
} }
@@ -189,7 +189,7 @@ public class ChooseDataSimPage extends SetupPage {
super.onPause(); super.onPause();
mIsAttached = false; mIsAttached = false;
for (int i = 0; i < mPhoneStateListeners.size(); i++) { for (int i = 0; i < mPhoneStateListeners.size(); i++) {
mPhone.listen(mPhoneStateListeners.get(i), PhoneStateListener.LISTEN_NONE); mPhone.listen(mPhoneStateListeners.valueAt(i), PhoneStateListener.LISTEN_NONE);
} }
} }

View File

@@ -18,12 +18,15 @@ package com.cyanogenmod.setupwizard.setup;
import android.app.Fragment; import android.app.Fragment;
import android.app.FragmentManager; import android.app.FragmentManager;
import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.pm.ThemeUtils; import android.content.pm.ThemeUtils;
import android.content.res.ThemeConfig; import android.content.res.ThemeConfig;
import android.content.res.ThemeManager; import android.content.res.ThemeManager;
import android.hardware.CmHardwareManager; import android.hardware.CmHardwareManager;
import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.RemoteException; import android.os.RemoteException;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
@@ -42,6 +45,7 @@ import android.widget.CheckBox;
import android.widget.TextView; import android.widget.TextView;
import com.cyanogenmod.setupwizard.R; import com.cyanogenmod.setupwizard.R;
import com.cyanogenmod.setupwizard.SetupWizardApp;
import com.cyanogenmod.setupwizard.cmstats.SetupStats; import com.cyanogenmod.setupwizard.cmstats.SetupStats;
import com.cyanogenmod.setupwizard.ui.SetupPageFragment; import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
import com.cyanogenmod.setupwizard.ui.WebViewDialogFragment; import com.cyanogenmod.setupwizard.ui.WebViewDialogFragment;
@@ -267,9 +271,13 @@ public class CyanogenSettingsPage extends SetupPage {
ClickableSpan clickableSpan = new ClickableSpan() { ClickableSpan clickableSpan = new ClickableSpan() {
@Override @Override
public void onClick(View textView) { public void onClick(View textView) {
WebViewDialogFragment.newInstance() final Intent intent = new Intent(SetupWizardApp.ACTION_VIEW_LEGAL);
.setUri(PRIVACY_POLICY_URI) intent.setData(Uri.parse(PRIVACY_POLICY_URI));
.show(getActivity().getFragmentManager(), WebViewDialogFragment.TAG); try {
getActivity().startActivity(intent);
} catch (Exception e) {
Log.e(TAG, "Unable to start activity " + intent.toString(), e);
}
} }
}; };
ss.setSpan(clickableSpan, ss.setSpan(clickableSpan,

View File

@@ -19,11 +19,14 @@ package com.cyanogenmod.setupwizard.setup;
import android.app.Fragment; import android.app.Fragment;
import android.app.FragmentManager; import android.app.FragmentManager;
import android.app.backup.IBackupManager; import android.app.backup.IBackupManager;
import android.content.ComponentName;
import android.content.ContentQueryMap; import android.content.ContentQueryMap;
import android.content.ContentResolver; import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.database.Cursor; import android.database.Cursor;
import android.location.LocationManager; import android.location.LocationManager;
import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.ServiceManager; import android.os.ServiceManager;
@@ -32,6 +35,7 @@ import android.text.SpannableString;
import android.text.Spanned; import android.text.Spanned;
import android.text.method.LinkMovementMethod; import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan; import android.text.style.ClickableSpan;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.TextView; import android.widget.TextView;
@@ -151,10 +155,13 @@ public class OtherSettingsPage extends SetupPage {
ClickableSpan clickableSpan = new ClickableSpan() { ClickableSpan clickableSpan = new ClickableSpan() {
@Override @Override
public void onClick(View textView) { public void onClick(View textView) {
WebViewDialogFragment.newInstance() final Intent intent = new Intent(SetupWizardApp.ACTION_VIEW_LEGAL);
.setUri(PRIVACY_POLICY_URI) intent.setData(Uri.parse(PRIVACY_POLICY_URI));
.show(getActivity().getFragmentManager(), try {
WebViewDialogFragment.TAG); getActivity().startActivity(intent);
} catch (Exception e) {
Log.e(TAG, "Unable to start activity " + intent.toString());
}
} }
}; };
ss.setSpan(clickableSpan, ss.setSpan(clickableSpan,

View File

@@ -47,8 +47,8 @@ import java.util.List;
public class EnableAccessibilityController { public class EnableAccessibilityController {
private static final int SPEAK_WARNING_DELAY_MILLIS = 2000; private static final int SPEAK_WARNING_DELAY_MILLIS = 5000;
private static final int ENABLE_ACCESSIBILITY_DELAY_MILLIS = 6000; private static final int ENABLE_ACCESSIBILITY_DELAY_MILLIS = 12000;
public static final int MESSAGE_SPEAK_WARNING = 1; public static final int MESSAGE_SPEAK_WARNING = 1;
public static final int MESSAGE_SPEAK_ENABLE_CANCELED = 2; public static final int MESSAGE_SPEAK_ENABLE_CANCELED = 2;