am b86bc105: Merge "UsbService: Fix problem detecting audio accessory mode when connected at boot" into jb-dev

* commit 'b86bc1058b8b9bce045ae94f7cd703d4bfecccb3':
  UsbService: Fix problem detecting audio accessory mode when connected at boot
This commit is contained in:
Mike Lockwood
2012-05-10 11:04:28 -07:00
committed by Android Git Automerger

View File

@@ -322,8 +322,6 @@ public class UsbDeviceManager {
String state = FileUtils.readTextFile(new File(STATE_PATH), 0, null).trim();
updateState(state);
mAdbEnabled = containsFunction(mCurrentFunctions, UsbManager.USB_FUNCTION_ADB);
mAudioSourceEnabled = containsFunction(mCurrentFunctions,
UsbManager.USB_FUNCTION_AUDIO_SOURCE);
// Upgrade step for previous versions that used persist.service.adb.enable
String value = SystemProperties.get("persist.service.adb.enable", "");
@@ -537,26 +535,29 @@ public class UsbDeviceManager {
mContext.sendStickyBroadcast(intent);
}
private void updateAudioSourceFunction(boolean enabled) {
// send a sticky broadcast containing current USB state
Intent intent = new Intent(Intent.ACTION_USB_AUDIO_ACCESSORY_PLUG);
intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
intent.putExtra("state", (enabled ? 1 : 0));
if (enabled) {
try {
Scanner scanner = new Scanner(new File(AUDIO_SOURCE_PCM_PATH));
int card = scanner.nextInt();
int device = scanner.nextInt();
intent.putExtra("card", card);
intent.putExtra("device", device);
} catch (FileNotFoundException e) {
Slog.e(TAG, "could not open audio source PCM file", e);
private void updateAudioSourceFunction() {
boolean enabled = containsFunction(mCurrentFunctions,
UsbManager.USB_FUNCTION_AUDIO_SOURCE);
if (enabled != mAudioSourceEnabled) {
// send a sticky broadcast containing current USB state
Intent intent = new Intent(Intent.ACTION_USB_AUDIO_ACCESSORY_PLUG);
intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
intent.putExtra("state", (enabled ? 1 : 0));
if (enabled) {
try {
Scanner scanner = new Scanner(new File(AUDIO_SOURCE_PCM_PATH));
int card = scanner.nextInt();
int device = scanner.nextInt();
intent.putExtra("card", card);
intent.putExtra("device", device);
} catch (FileNotFoundException e) {
Slog.e(TAG, "could not open audio source PCM file", e);
}
}
mContext.sendStickyBroadcast(intent);
mAudioSourceEnabled = enabled;
}
mContext.sendStickyBroadcast(intent);
mAudioSourceEnabled = enabled;
}
@Override
@@ -578,11 +579,7 @@ public class UsbDeviceManager {
}
if (mBootCompleted) {
updateUsbState();
boolean audioSourceEnabled = containsFunction(mCurrentFunctions,
UsbManager.USB_FUNCTION_AUDIO_SOURCE);
if (audioSourceEnabled != mAudioSourceEnabled) {
updateAudioSourceFunction(audioSourceEnabled);
}
updateAudioSourceFunction();
}
break;
case MSG_ENABLE_ADB:
@@ -597,13 +594,13 @@ public class UsbDeviceManager {
updateUsbNotification();
updateAdbNotification();
updateUsbState();
updateAudioSourceFunction();
break;
case MSG_BOOT_COMPLETED:
mBootCompleted = true;
if (mCurrentAccessory != null) {
mSettingsManager.accessoryAttached(mCurrentAccessory);
}
updateAudioSourceFunction(mAudioSourceEnabled);
break;
}
}