SetupWizard : Switch to mcc/mnc locale
Also ensure we only send stats event once and only if the user actually changed the locale. CYNGNOS-1521 CYNGNOS-1326 Change-Id: I7b0451137e6bf80bf71350da28fe391fc8c52ce8
This commit is contained in:
parent
f8e4ab690f
commit
d59304c730
|
@ -89,6 +89,7 @@ public class CMSetupWizardData extends AbstractSetupData {
|
||||||
showHideDataSimPage();
|
showHideDataSimPage();
|
||||||
showHideSimMissingPage();
|
showHideSimMissingPage();
|
||||||
showHideMobileDataPage();
|
showHideMobileDataPage();
|
||||||
|
updateWelcomePage();
|
||||||
} else if (intent.getAction()
|
} else if (intent.getAction()
|
||||||
.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
|
.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
|
||||||
showHideMobileDataPage();
|
showHideMobileDataPage();
|
||||||
|
@ -160,6 +161,13 @@ public class CMSetupWizardData extends AbstractSetupData {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateWelcomePage() {
|
||||||
|
WelcomePage welcomePage = (WelcomePage) getPage(WelcomePage.TAG);
|
||||||
|
if (welcomePage != null) {
|
||||||
|
welcomePage.simChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public IntentFilter getIntentFilter() {
|
public IntentFilter getIntentFilter() {
|
||||||
IntentFilter filter = new IntentFilter();
|
IntentFilter filter = new IntentFilter();
|
||||||
if (SetupWizardUtils.hasTelephony(mContext)) {
|
if (SetupWizardUtils.hasTelephony(mContext)) {
|
||||||
|
|
|
@ -29,6 +29,7 @@ import android.content.res.Configuration;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
import android.telephony.TelephonyManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
|
@ -79,6 +80,9 @@ public class WelcomePage extends SetupPage {
|
||||||
confirmCyanogenCredentials(mWelcomeFragment);
|
confirmCyanogenCredentials(mWelcomeFragment);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
|
if (mWelcomeFragment != null) {
|
||||||
|
mWelcomeFragment.sendLocaleStats();
|
||||||
|
}
|
||||||
return super.doNextAction();
|
return super.doNextAction();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -160,13 +164,19 @@ public class WelcomePage extends SetupPage {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void simChanged() {
|
||||||
|
if (mWelcomeFragment != null) {
|
||||||
|
mWelcomeFragment.simChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static class WelcomeFragment extends SetupPageFragment {
|
public static class WelcomeFragment extends SetupPageFragment {
|
||||||
|
|
||||||
private ArrayAdapter<com.android.internal.app.LocalePicker.LocaleInfo> mLocaleAdapter;
|
private ArrayAdapter<com.android.internal.app.LocalePicker.LocaleInfo> mLocaleAdapter;
|
||||||
private Locale mInitialLocale;
|
private Locale mInitialLocale;
|
||||||
private Locale mCurrentLocale;
|
private Locale mCurrentLocale;
|
||||||
private int[] mAdapterIndices;
|
private int[] mAdapterIndices;
|
||||||
|
private boolean mUserPickedLocale;
|
||||||
private LocalePicker mLanguagePicker;
|
private LocalePicker mLanguagePicker;
|
||||||
|
|
||||||
private final Handler mHandler = new Handler();
|
private final Handler mHandler = new Handler();
|
||||||
|
@ -191,10 +201,26 @@ public class WelcomePage extends SetupPage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Locale getSimLocale() {
|
||||||
|
Activity activity = getActivity();
|
||||||
|
if (activity != null) {
|
||||||
|
TelephonyManager telephonyManager = (TelephonyManager) activity.
|
||||||
|
getSystemService(Context.TELEPHONY_SERVICE);
|
||||||
|
String locale = telephonyManager.getLocaleFromDefaultSim();
|
||||||
|
if (locale != null) {
|
||||||
|
return Locale.forLanguageTag(locale);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private void loadLanguages() {
|
private void loadLanguages() {
|
||||||
mLocaleAdapter = com.android.internal.app.LocalePicker.constructAdapter(getActivity(), R.layout.locale_picker_item, R.id.locale);
|
mLocaleAdapter = com.android.internal.app.LocalePicker.constructAdapter(getActivity(), R.layout.locale_picker_item, R.id.locale);
|
||||||
mInitialLocale = Locale.getDefault();
|
mCurrentLocale = mInitialLocale = Locale.getDefault();
|
||||||
mCurrentLocale = mInitialLocale;
|
Locale simLocale = getSimLocale();
|
||||||
|
if (simLocale != null) {
|
||||||
|
mCurrentLocale = simLocale;
|
||||||
|
}
|
||||||
mAdapterIndices = new int[mLocaleAdapter.getCount()];
|
mAdapterIndices = new int[mLocaleAdapter.getCount()];
|
||||||
int currentLocaleIndex = 0;
|
int currentLocaleIndex = 0;
|
||||||
String [] labels = new String[mLocaleAdapter.getCount()];
|
String [] labels = new String[mLocaleAdapter.getCount()];
|
||||||
|
@ -219,6 +245,7 @@ public class WelcomePage extends SetupPage {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setLocaleFromPicker() {
|
private void setLocaleFromPicker() {
|
||||||
|
mUserPickedLocale = true;
|
||||||
int i = mAdapterIndices[mLanguagePicker.getValue()];
|
int i = mAdapterIndices[mLanguagePicker.getValue()];
|
||||||
final com.android.internal.app.LocalePicker.LocaleInfo localLocaleInfo = mLocaleAdapter.getItem(i);
|
final com.android.internal.app.LocalePicker.LocaleInfo localLocaleInfo = mLocaleAdapter.getItem(i);
|
||||||
onLocaleChanged(localLocaleInfo.getLocale());
|
onLocaleChanged(localLocaleInfo.getLocale());
|
||||||
|
@ -234,9 +261,6 @@ public class WelcomePage extends SetupPage {
|
||||||
localResources.updateConfiguration(localConfiguration1, null);
|
localResources.updateConfiguration(localConfiguration1, null);
|
||||||
mHandler.removeCallbacks(mUpdateLocale);
|
mHandler.removeCallbacks(mUpdateLocale);
|
||||||
mCurrentLocale = paramLocale;
|
mCurrentLocale = paramLocale;
|
||||||
SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
|
||||||
SetupStats.Action.CHANGE_LOCALE, SetupStats.Label.LOCALE,
|
|
||||||
mCurrentLocale.getDisplayName());
|
|
||||||
mHandler.postDelayed(mUpdateLocale, 1000);
|
mHandler.postDelayed(mUpdateLocale, 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -245,6 +269,23 @@ public class WelcomePage extends SetupPage {
|
||||||
return R.layout.setup_welcome_page;
|
return R.layout.setup_welcome_page;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void sendLocaleStats() {
|
||||||
|
if (!mCurrentLocale.equals(mInitialLocale)) {
|
||||||
|
SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||||
|
SetupStats.Action.CHANGE_LOCALE, SetupStats.Label.LOCALE,
|
||||||
|
mCurrentLocale.getDisplayName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void simChanged() {
|
||||||
|
if (mUserPickedLocale || isDetached()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Locale simLocale = getSimLocale();
|
||||||
|
if (simLocale != null && !simLocale.equals(mCurrentLocale)) {
|
||||||
|
onLocaleChanged(simLocale);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue