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);
     }