Filter USB options on chooser when DISALLOW_USB_FILE_TRANSFER is on

Bug: 22291579
Change-Id: I32611404ef5f58c7484fe5c4b7a4f7782cc8daa3
diff --git a/src/com/android/settings/deviceinfo/UsbModeChooserActivity.java b/src/com/android/settings/deviceinfo/UsbModeChooserActivity.java
index 268f87d..1cec281 100644
--- a/src/com/android/settings/deviceinfo/UsbModeChooserActivity.java
+++ b/src/com/android/settings/deviceinfo/UsbModeChooserActivity.java
@@ -24,14 +24,13 @@
 import android.content.DialogInterface;
 import android.hardware.usb.UsbManager;
 import android.os.Bundle;
-import android.util.Log;
+import android.os.UserManager;
 
 import com.android.settings.R;
 
 /**
  * UI for the USB chooser dialog.
  *
- * TODO: Don't show some UI elements if UserManager.DISALLOW_USB_FILE_TRANSFER is disabled.
  */
 public class UsbModeChooserActivity extends Activity {
 
@@ -41,10 +40,19 @@
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         mUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
+        CharSequence[] items;
+        UserManager userManager =
+                (UserManager) getSystemService(Context.USER_SERVICE);
+        if (userManager.hasUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER)) {
+            items = new CharSequence[] { getText(R.string.usb_use_charging_only) };
+        } else {
+            items = getResources().getTextArray(R.array.usb_available_functions);
+        }
+
         final AlertDialog levelDialog;
         AlertDialog.Builder builder = new AlertDialog.Builder(this);
         builder.setTitle(R.string.usb_use);
-        builder.setSingleChoiceItems(R.array.usb_available_functions, getCurrentFunction(),
+        builder.setSingleChoiceItems(items, getCurrentFunction(),
                 new DialogInterface.OnClickListener() {
                     @Override
                     public void onClick(DialogInterface dialog, int which) {