OSDN Git Service

Fix crashes in Settings
authorJason Monk <jmonk@google.com>
Fri, 16 Oct 2015 14:13:53 +0000 (10:13 -0400)
committerJason Monk <jmonk@google.com>
Fri, 16 Oct 2015 14:13:53 +0000 (10:13 -0400)
Fix problems from unsupported intents being launched through adb.
Remove the ones we can, fix the other.

Bug: 19634064
Change-Id: Iba0adeb135e76ee70365e5891380ba8b55110c26

AndroidManifest.xml
src/com/android/settings/inputmethod/UserDictionaryAddWordActivity.java

index b003e39..3d538a1 100644 (file)
                   android:excludeFromRecents="true">
             <intent-filter android:priority="1">
                 <action android:name="com.android.settings.USER_DICTIONARY_INSERT" />
-                <action android:name="com.android.settings.USER_DICTIONARY_EDIT" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
         <activity android:name=".AppPicker" android:label="@string/select_application"
                 android:theme="@android:style/Theme.Material.Light.Dialog" />
 
-        <activity android:name="Settings$UsbSettingsActivity"
-                android:label="@string/storage_title_usb"
-                android:taskAffinity="com.android.settings"
-                android:parentActivityName="Settings$StorageSettingsActivity">
-            <intent-filter android:priority="1">
-                <action android:name="android.settings.STORAGE_USB_SETTINGS" />
-                <action android:name="com.android.settings.STORAGE_USB_SETTINGS" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
-                android:value="com.android.settings.deviceinfo.UsbSettings" />
-            <meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
-                android:resource="@id/storage_settings" />
-            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
-                android:value="true" />
-        </activity>
-
         <!-- Keep compatibility with old shortcuts. -->
         <activity-alias android:name="UsbSettings"
                   android:exported="true"
index 2901673..587f41c 100644 (file)
@@ -56,7 +56,10 @@ public class UserDictionaryAddWordActivity extends Activity {
         // The following will get the EXTRA_WORD and EXTRA_LOCALE fields that are in the intent.
         // We do need to add the action by hand, because UserDictionaryAddWordContents expects
         // it to be in the bundle, in the EXTRA_MODE key.
-        final Bundle args = intent.getExtras();
+        Bundle args = intent.getExtras();
+        if (args == null) {
+            args = new Bundle();
+        }
         args.putInt(UserDictionaryAddWordContents.EXTRA_MODE, mode);
 
         if (null != savedInstanceState) {
@@ -74,6 +77,7 @@ public class UserDictionaryAddWordActivity extends Activity {
 
     private void reportBackToCaller(final int resultCode, final Bundle result) {
         final Intent senderIntent = getIntent();
+        if (senderIntent.getExtras() == null) return;
         final Object listener = senderIntent.getExtras().get("listener");
         if (!(listener instanceof Messenger)) return; // This will work if listener is null too.
         final Messenger messenger = (Messenger)listener;