diff options
Diffstat (limited to 'src/com/android/settings/deviceinfo/UsbSettings.java')
-rw-r--r-- | src/com/android/settings/deviceinfo/UsbSettings.java | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/src/com/android/settings/deviceinfo/UsbSettings.java b/src/com/android/settings/deviceinfo/UsbSettings.java deleted file mode 100644 index d8a675c..0000000 --- a/src/com/android/settings/deviceinfo/UsbSettings.java +++ /dev/null @@ -1,182 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.deviceinfo; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.hardware.usb.UsbManager; -import android.os.Bundle; -import android.os.UserManager; -import android.preference.CheckBoxPreference; -import android.preference.Preference; -import android.preference.PreferenceScreen; -import android.util.Log; - -import com.android.internal.logging.MetricsLogger; -import com.android.settings.R; -import com.android.settings.SettingsPreferenceFragment; -import com.android.settings.Utils; - -/** - * USB storage settings. - */ -public class UsbSettings extends SettingsPreferenceFragment { - - private static final String TAG = "UsbSettings"; - - private static final String KEY_MTP = "usb_mtp"; - private static final String KEY_PTP = "usb_ptp"; - private static final String KEY_MIDI = "usb_midi"; - - private UsbManager mUsbManager; - private CheckBoxPreference mMtp; - private CheckBoxPreference mPtp; - private CheckBoxPreference mMidi; - private boolean mUsbAccessoryMode; - - private final BroadcastReceiver mStateReceiver = new BroadcastReceiver() { - public void onReceive(Context content, Intent intent) { - String action = intent.getAction(); - if (action.equals(UsbManager.ACTION_USB_STATE)) { - mUsbAccessoryMode = intent.getBooleanExtra(UsbManager.USB_FUNCTION_ACCESSORY, false); - Log.e(TAG, "UsbAccessoryMode " + mUsbAccessoryMode); - } - updateToggles(mUsbManager.getDefaultFunction()); - } - }; - - private PreferenceScreen createPreferenceHierarchy() { - PreferenceScreen root = getPreferenceScreen(); - if (root != null) { - root.removeAll(); - } - addPreferencesFromResource(R.xml.usb_settings); - root = getPreferenceScreen(); - - mMtp = (CheckBoxPreference)root.findPreference(KEY_MTP); - mPtp = (CheckBoxPreference)root.findPreference(KEY_PTP); - mMidi = (CheckBoxPreference)root.findPreference(KEY_MIDI); - - UserManager um = (UserManager) getActivity().getSystemService(Context.USER_SERVICE); - if (um.hasUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER)) { - mMtp.setEnabled(false); - mPtp.setEnabled(false); - } - - return root; - } - - @Override - protected int getMetricsCategory() { - return MetricsLogger.DEVICEINFO_USB; - } - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - mUsbManager = (UsbManager)getSystemService(Context.USB_SERVICE); - } - - @Override - public void onPause() { - super.onPause(); - getActivity().unregisterReceiver(mStateReceiver); - } - - @Override - public void onResume() { - super.onResume(); - - // Make sure we reload the preference hierarchy since some of these settings - // depend on others... - createPreferenceHierarchy(); - - // ACTION_USB_STATE is sticky so this will call updateToggles - getActivity().registerReceiver(mStateReceiver, - new IntentFilter(UsbManager.ACTION_USB_STATE)); - } - - private void updateToggles(String function) { - if (UsbManager.USB_FUNCTION_MTP.equals(function)) { - mMtp.setChecked(true); - mPtp.setChecked(false); - mMidi.setChecked(false); - } else if (UsbManager.USB_FUNCTION_PTP.equals(function)) { - mMtp.setChecked(false); - mPtp.setChecked(true); - mMidi.setChecked(false); - } else if (UsbManager.USB_FUNCTION_MIDI.equals(function)) { - mMtp.setChecked(false); - mPtp.setChecked(false); - mMidi.setChecked(true); - } else { - mMtp.setChecked(false); - mPtp.setChecked(false); - mMidi.setChecked(false); - } - UserManager um = (UserManager) getActivity().getSystemService(Context.USER_SERVICE); - if (um.hasUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER)) { - Log.e(TAG, "USB is locked down"); - mMtp.setEnabled(false); - mPtp.setEnabled(false); - mMidi.setEnabled(true); - } else if (!mUsbAccessoryMode) { - //Enable MTP and PTP switch while USB is not in Accessory Mode, otherwise disable it - Log.e(TAG, "USB Normal Mode"); - mMtp.setEnabled(true); - mPtp.setEnabled(true); - mMidi.setEnabled(true); - } else { - Log.e(TAG, "USB Accessory Mode"); - mMtp.setEnabled(false); - mPtp.setEnabled(false); - mMidi.setEnabled(false); - } - } - - @Override - public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { - - // Don't allow any changes to take effect as the USB host will be disconnected, killing - // the monkeys - if (Utils.isMonkeyRunning()) { - return true; - } - // If this user is disallowed from using USB, don't handle their attempts to change the - // setting. - UserManager um = (UserManager) getActivity().getSystemService(Context.USER_SERVICE); - if (um.hasUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER)) { - return true; - } - - String function = "none"; - if (preference == mMtp && mMtp.isChecked()) { - function = UsbManager.USB_FUNCTION_MTP; - } else if (preference == mPtp && mPtp.isChecked()) { - function = UsbManager.USB_FUNCTION_PTP; - } else if (preference == mMidi && mMidi.isChecked()) { - function = UsbManager.USB_FUNCTION_MIDI; - } - - mUsbManager.setCurrentFunction(function, true); - updateToggles(function); - - return true; - } -} |