Fix bug #12910775 Settings crash after tap on Access Point Names under Mobile networks

- ApnSettings is now a fragment so introduce a new ApnSettingsActivity
- ApsSettingsActivity will use the ApnSettings fragment
- move the getListView() call to onActivityCreated(...) as the ListView
needs to be created before this call can be done.
- add also an alias for the old activity name ".ApsSettings"

Change-Id: Id228722d7f34415d4b036282f0845e28546111df
This commit is contained in:
Fabrice Di Meglio
2014-02-06 15:46:19 -08:00
parent d3aee23cb6
commit ca915668af
4 changed files with 24 additions and 3 deletions

View File

@@ -259,7 +259,7 @@
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
<activity android:name="ApnSettings" <activity android:name="Settings$ApnSettingsActivity"
android:label="@string/apn_settings" android:label="@string/apn_settings"
android:configChanges="orientation|keyboardHidden|screenSize" android:configChanges="orientation|keyboardHidden|screenSize"
android:launchMode="singleTask" android:launchMode="singleTask"
@@ -270,8 +270,21 @@
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.VOICE_LAUNCH" /> <category android:name="android.intent.category.VOICE_LAUNCH" />
</intent-filter> </intent-filter>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.ApnSettings" />
</activity> </activity>
<!-- Keep compatibility with old shortcuts. -->
<activity-alias android:name=".ApnSettings"
android:label="@string/apn_settings"
android:configChanges="orientation|keyboardHidden|screenSize"
android:launchMode="singleTask"
android:exported="true"
android:targetActivity="Settings$ApnSettingsActivity">
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.ApnSettings" />
</activity-alias>
<activity android:name="Settings$BluetoothSettingsActivity" <activity android:name="Settings$BluetoothSettingsActivity"
android:uiOptions="splitActionBarWhenNarrow" android:uiOptions="splitActionBarWhenNarrow"
android:label="@string/bluetooth_settings_title" android:label="@string/bluetooth_settings_title"

View File

@@ -120,12 +120,18 @@ public class ApnSettings extends SettingsPreferenceFragment implements
super.onCreate(icicle); super.onCreate(icicle);
addPreferencesFromResource(R.xml.apn_settings); addPreferencesFromResource(R.xml.apn_settings);
getListView().setItemsCanFocus(true);
mMobileStateFilter = new IntentFilter( mMobileStateFilter = new IntentFilter(
TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED); TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED);
} }
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
getListView().setItemsCanFocus(true);
}
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();

View File

@@ -88,5 +88,6 @@ public class Settings extends SettingsActivity {
public static class PrintJobSettingsActivity extends SettingsActivity { /* empty */ } public static class PrintJobSettingsActivity extends SettingsActivity { /* empty */ }
public static class TopLevelSettings extends SettingsActivity { /* empty */ } public static class TopLevelSettings extends SettingsActivity { /* empty */ }
public static class ApnSettingsActivity extends SettingsActivity { /* empty */ }
} }

View File

@@ -278,7 +278,8 @@ public class SettingsActivity extends Activity
PaymentSettings.class.getName(), PaymentSettings.class.getName(),
KeyboardLayoutPickerFragment.class.getName(), KeyboardLayoutPickerFragment.class.getName(),
ChooseAccountFragment.class.getName(), ChooseAccountFragment.class.getName(),
DashboardSummary.class.getName() DashboardSummary.class.getName(),
ApnSettings.class.getName()
}; };
private SharedPreferences mDevelopmentPreferences; private SharedPreferences mDevelopmentPreferences;