Fixed intents to start Settings activities
All tested, on tablet and on phone.
Change-Id: I8ab206b9db61c7c3800fe9bff175e87baf97ed7c
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 16531e3..b982606 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -567,4 +567,7 @@
public static class CryptKeeperSettingsActivity extends Settings { /* empty */ }
public static class DeviceAdminSettingsActivity extends Settings { /* empty */ }
public static class DataUsageSummaryActivity extends Settings { /* empty */ }
+ public static class AdvancedWifiSettingsActivity extends Settings { /* empty */ }
+ public static class AdvancedBluetoothSettingsActivity extends Settings { /* empty */ }
+ public static class TextToSpeechSettingsActivity extends Settings { /* empty */ }
}
diff --git a/src/com/android/settings/accounts/AccountSyncSettings.java b/src/com/android/settings/accounts/AccountSyncSettings.java
index 9ef0481..547b0e1 100644
--- a/src/com/android/settings/accounts/AccountSyncSettings.java
+++ b/src/com/android/settings/accounts/AccountSyncSettings.java
@@ -16,10 +16,6 @@
package com.android.settings.accounts;
-import com.android.settings.R;
-import com.google.android.collect.Lists;
-import com.google.android.collect.Maps;
-
import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.AccountManagerCallback;
@@ -53,6 +49,10 @@
import android.widget.ImageView;
import android.widget.TextView;
+import com.android.settings.R;
+import com.google.android.collect.Lists;
+import com.google.android.collect.Maps;
+
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
@@ -175,7 +175,13 @@
mDateFormat = DateFormat.getDateFormat(activity);
mTimeFormat = DateFormat.getTimeFormat(activity);
- mAccount = (Account) getArguments().getParcelable(ACCOUNT_KEY);
+ Bundle arguments = getArguments();
+ if (arguments == null) {
+ Log.e(TAG, "No arguments provided when starting intent. ACCOUNT_KEY needed.");
+ return;
+ }
+
+ mAccount = (Account) arguments.getParcelable(ACCOUNT_KEY);
if (mAccount != null) {
if (Log.isLoggable(TAG, Log.VERBOSE)) Log.v(TAG, "Got account: " + mAccount);
mUserId.setText(mAccount.name);
@@ -486,11 +492,13 @@
protected void onAuthDescriptionsUpdated() {
super.onAuthDescriptionsUpdated();
getPreferenceScreen().removeAll();
- mProviderIcon.setImageDrawable(getDrawableForType(mAccount.type));
- mProviderId.setText(getLabelForType(mAccount.type));
- PreferenceScreen prefs = addPreferencesForType(mAccount.type);
- if (prefs != null) {
- updatePreferenceIntents(prefs);
+ if (mAccount != null) {
+ mProviderIcon.setImageDrawable(getDrawableForType(mAccount.type));
+ mProviderId.setText(getLabelForType(mAccount.type));
+ PreferenceScreen prefs = addPreferencesForType(mAccount.type);
+ if (prefs != null) {
+ updatePreferenceIntents(prefs);
+ }
}
addPreferencesFromResource(R.xml.account_sync_settings);
}