Merge "Add additional intents that we need to handle." into pi-car-dev
am: b2ebfcc512

Change-Id: Ib106e5bf5483513db452c0f1398de15c80cdc0a4
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 60cef10..f5a5cf3 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -174,6 +174,38 @@
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
 
+            <intent-filter android:priority="100">
+                <action android:name="android.settings.MANAGE_DEFAULT_APPS_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+
+            <intent-filter android:priority="100">
+                <action android:name="android.settings.INTERNAL_STORAGE_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+
+            <intent-filter android:priority="100">
+                <action android:name="android.settings.VOICE_INPUT_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+
+            <intent-filter android:priority="100">
+                <action android:name="android.settings.DATA_USAGE_SETTINGS" />
+                <action android:name="android.settings.MOBILE_DATA_USAGE" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+
+            <intent-filter android:priority="100">
+                <action android:name="android.settings.REQUEST_SET_AUTOFILL_SERVICE" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+
+            <intent-filter android:priority="100">
+                <action android:name="android.settings.DATA_ROAMING_SETTINGS" />
+                <action android:name="android.settings.NETWORK_OPERATOR_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+
             <meta-data android:name="distractionOptimized" android:value="true"/>
         </activity>
 
diff --git a/src/com/android/car/settings/common/FragmentResolver.java b/src/com/android/car/settings/common/FragmentResolver.java
index e441767..4cedfe3 100644
--- a/src/com/android/car/settings/common/FragmentResolver.java
+++ b/src/com/android/car/settings/common/FragmentResolver.java
@@ -28,16 +28,22 @@
 import com.android.car.settings.accounts.ChooseAccountFragment;
 import com.android.car.settings.applications.ApplicationDetailsFragment;
 import com.android.car.settings.applications.ApplicationsSettingsFragment;
+import com.android.car.settings.applications.DefaultApplicationsSettingsFragment;
+import com.android.car.settings.applications.assist.ManageAssistFragment;
 import com.android.car.settings.bluetooth.BluetoothSettingsFragment;
+import com.android.car.settings.datausage.DataUsageFragment;
 import com.android.car.settings.datetime.DatetimeSettingsFragment;
 import com.android.car.settings.display.DisplaySettingsFragment;
 import com.android.car.settings.home.HomepageFragment;
 import com.android.car.settings.inputmethod.KeyboardFragment;
 import com.android.car.settings.language.LanguagePickerFragment;
+import com.android.car.settings.language.LanguagesAndInputFragment;
 import com.android.car.settings.location.LocationScanningFragment;
 import com.android.car.settings.location.LocationSettingsFragment;
+import com.android.car.settings.network.MobileNetworkFragment;
 import com.android.car.settings.quicksettings.QuickSettingFragment;
 import com.android.car.settings.sound.SoundSettingsFragment;
+import com.android.car.settings.storage.StorageSettingsFragment;
 import com.android.car.settings.system.AboutSettingsFragment;
 import com.android.car.settings.users.UsersListFragment;
 import com.android.car.settings.wifi.WifiSettingsFragment;
@@ -70,6 +76,26 @@
             case Settings.ACTION_SETTINGS:
                 return new HomepageFragment();
 
+            case Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS:
+                return new DefaultApplicationsSettingsFragment();
+
+            case Settings.ACTION_INTERNAL_STORAGE_SETTINGS:
+                return new StorageSettingsFragment();
+
+            case Settings.ACTION_VOICE_INPUT_SETTINGS:
+                return new ManageAssistFragment();
+
+            case Settings.ACTION_DATA_USAGE_SETTINGS:
+            case Settings.ACTION_MOBILE_DATA_USAGE:
+                return new DataUsageFragment();
+
+            case Settings.ACTION_REQUEST_SET_AUTOFILL_SERVICE:
+                return new LanguagesAndInputFragment();
+
+            case Settings.ACTION_DATA_ROAMING_SETTINGS:
+            case Settings.ACTION_NETWORK_OPERATOR_SETTINGS:
+                return new MobileNetworkFragment();
+
             case Settings.ACTION_LOCATION_SOURCE_SETTINGS:
                 return new LocationSettingsFragment();
 
diff --git a/src/com/android/car/settings/storage/StorageSettingsFragment.java b/src/com/android/car/settings/storage/StorageSettingsFragment.java
index c3c7017..9f3f74f 100644
--- a/src/com/android/car/settings/storage/StorageSettingsFragment.java
+++ b/src/com/android/car/settings/storage/StorageSettingsFragment.java
@@ -76,9 +76,13 @@
      * {@link VolumeInfo}, it is returned. If it is not valid, null is returned.
      */
     @Nullable
-    private static VolumeInfo maybeInitializeVolume(StorageManager sm, Bundle bundle) {
-        String volumeId = bundle.getString(VolumeInfo.EXTRA_VOLUME_ID,
-                VolumeInfo.ID_PRIVATE_INTERNAL);
+    private static VolumeInfo maybeInitializeVolume(StorageManager sm, @Nullable Bundle bundle) {
+        String volumeId = VolumeInfo.ID_PRIVATE_INTERNAL;
+        if (bundle != null) {
+            volumeId = bundle.getString(VolumeInfo.EXTRA_VOLUME_ID,
+                    VolumeInfo.ID_PRIVATE_INTERNAL);
+        }
+
         VolumeInfo volume = sm.findVolumeById(volumeId);
         return isVolumeValid(volume) ? volume : null;
     }