@ -43,6 +43,7 @@ import android.widget.ImageView;
import android.widget.ProgressBar ;
import android.widget.TextView ;
import com.android.internal.telephony.PhoneConstants ;
import com.android.internal.telephony.TelephonyIntents ;
import com.cyanogenmod.setupwizard.R ;
@ -107,12 +108,12 @@ public class ChooseDataSimPage extends SetupPage {
private Context mContext ;
private SubscriptionManager mSubscriptionManager ;
private int mCurrentData Phone Id;
private int mCurrentData Sub Id;
// This is static because a user can click back mid operation.
// We want to persist what the user was changing to because of the
// async callback can sometimes take a long time.
private static int sChangingToData Phone Id = - 1 ;
private static int sChangingToData Sub Id = - 1 ;
private boolean mDisabledForSwitch = false ;
@ -133,8 +134,7 @@ public class ChooseDataSimPage extends SetupPage {
@Override
public void onClick ( View view ) {
SubscriptionInfo subInfoRecord = ( SubscriptionInfo ) view . getTag ( ) ;
if ( subInfoRecord ! = null & &
subInfoRecord . getSimSlotIndex ( ) ! = mCurrentDataPhoneId ) {
if ( subInfoRecord ! = null ) {
changeDataSub ( subInfoRecord ) ;
}
}
@ -188,9 +188,9 @@ public class ChooseDataSimPage extends SetupPage {
super . onCreate ( savedInstanceState ) ;
mContext = getActivity ( ) . getApplicationContext ( ) ;
mSubscriptionManager = SubscriptionManager . from ( mContext ) ;
mCurrentData PhoneId = mSubscriptionManager . getDefaultDataPhone Id( ) ;
if ( sChangingToData Phone Id = = - 1 ) {
sChangingToData PhoneId = mCurrentDataPhone Id;
mCurrentData SubId = mSubscriptionManager . getDefaultDataSub Id( ) ;
if ( sChangingToData Sub Id = = - 1 ) {
sChangingToData SubId = mCurrentDataSub Id;
}
}
@ -230,9 +230,8 @@ public class ChooseDataSimPage extends SetupPage {
getActivity ( ) . unregisterReceiver ( mIntentReceiver ) ;
}
private void ddsHasChanged ( ) {
mCurrentDataPhoneId = mSubscriptionManager . getDefaultDataPhoneId ( ) ;
if ( mCurrentDataPhoneId = = sChangingToDataPhoneId ) {
private void ddsHasChanged ( int subId ) {
if ( subId = = sChangingToDataSubId ) {
hideProgress ( ) ;
enableViews ( true ) ;
}
@ -257,16 +256,16 @@ public class ChooseDataSimPage extends SetupPage {
@Override
public void onDataConnectionStateChanged ( int state ) {
final int data PhoneId = mSubscriptionManager . getDefaultDataPhone Id( ) ;
final int data SubId = mSubscriptionManager . getDefaultDataSub Id( ) ;
// In case the default sub changes from elsewhere. This shouldn't happen,
// but testcases can induce this.
if ( data PhoneId ! = mCurrentDataPhone Id & &
data PhoneId ! = sChangingToDataPhone Id) {
sChangingToData PhoneId = dataPhone Id;
if ( data SubId ! = mCurrentDataSub Id & &
data SubId ! = sChangingToDataSub Id) {
sChangingToData SubId = dataSub Id;
updateCurrentDataSub ( ) ;
}
if ( mCurrentData PhoneId ! = dataPhone Id) {
mCurrentData PhoneId = dataPhone Id;
if ( mCurrentData SubId ! = dataSub Id) {
mCurrentData SubId = dataSub Id;
updateCurrentDataSub ( ) ;
}
checkSimChangingState ( ) ;
@ -331,9 +330,9 @@ public class ChooseDataSimPage extends SetupPage {
}
private void changeDataSub ( SubscriptionInfo subInfoRecord ) {
if ( sChangingToData PhoneId ! = subInfoRecord . getSimSlotIndex ( ) ) {
sChangingToData PhoneId = subInfoRecord . getSimSlotIndex ( ) ;
mSubscriptionManager . setDefaultDataSubId ( s ubInfoRecord. getSubscriptionId ( ) ) ;
if ( sChangingToData SubId ! = subInfoRecord . getSubscriptionId ( ) ) {
sChangingToData SubId = subInfoRecord . getSubscriptionId ( ) ;
mSubscriptionManager . setDefaultDataSubId ( s ChangingToDataSubId ) ;
setDataSubChecked ( subInfoRecord ) ;
}
checkSimChangingState ( ) ;
@ -341,7 +340,7 @@ public class ChooseDataSimPage extends SetupPage {
private void checkSimChangingState ( ) {
if ( mIsAttached & & mRadioReady ) {
if ( mCurrentData PhoneId ! = sChangingToDataPhone Id) {
if ( mCurrentData SubId ! = sChangingToDataSub Id) {
showProgress ( ) ;
enableViews ( false ) ;
} else {
@ -371,8 +370,8 @@ public class ChooseDataSimPage extends SetupPage {
if ( mIsAttached ) {
for ( int i = 0 ; i < mSubInfoRecords . size ( ) ; i + + ) {
SubscriptionInfo subInfoRecord = mSubInfoRecords . valueAt ( i ) ;
mCheckBoxes . get ( i ) . setChecked ( mSubscriptionManager . getDefaultData Phone Id( )
= = subInfoRecord . getS imSlotIndex ( ) ) ;
mCheckBoxes . get ( i ) . setChecked ( mSubscriptionManager . getDefaultData Sub Id( )
= = subInfoRecord . getS ubscriptionId ( ) ) ;
}
}
}
@ -487,7 +486,7 @@ public class ChooseDataSimPage extends SetupPage {
public void onReceive ( Context context , Intent intent ) {
final Activity activity = getActivity ( ) ;
if ( activity ! = null ) {
ddsHasChanged ( ) ;
ddsHasChanged ( intent . getIntExtra ( PhoneConstants . SUBSCRIPTION_KEY , - 1 ) ) ;
}
}
} ;