Loading src/com/android/bluetooth/avrcp/Avrcp.java +85 −47 Original line number Diff line number Diff line Loading @@ -1318,13 +1318,15 @@ public final class Avrcp { cursor, attr); attIds[(7 * index) + attIndex] = attr; } cursor.close(); } } catch(Exception e) { Log.i(TAG, "Exception e"+ e); cursor.close(); getFolderItemsRspNative((byte)INTERNAL_ERROR, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } finally { if (cursor != null) { cursor.close(); } } } numItems = index; Loading Loading @@ -1617,11 +1619,13 @@ public final class Avrcp { status = NOT_A_DIRECTORY; else status = DOES_NOT_EXIST; cursor.close(); } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); changePathRspNative(INTERNAL_ERROR, numberOfItems); } finally { if (cursor != null) { cursor.close(); } } break; default: Loading Loading @@ -1656,12 +1660,14 @@ public final class Avrcp { } else{ numberOfItems = cursor.getCount(); mCurrentPathUid = String.valueOf(folderUid); cursor.close(); } } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); changePathRspNative(INTERNAL_ERROR, numberOfItems); } finally { if (cursor != null) { cursor.close(); } } } else { // Path @ Individual Album id Cursor cursor = null; Loading @@ -1677,11 +1683,13 @@ public final class Avrcp { status = NOT_A_DIRECTORY; else status = DOES_NOT_EXIST; cursor.close(); } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); changePathRspNative(INTERNAL_ERROR, numberOfItems); } finally { if (cursor != null) { cursor.close(); } } } break; Loading Loading @@ -1718,12 +1726,14 @@ public final class Avrcp { numberOfItems = cursor.getCount(); mCurrentPathUid = String.valueOf(folderUid); mCurrentPath = PATH_ARTISTS; cursor.close(); } } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); changePathRspNative(INTERNAL_ERROR, numberOfItems); } finally { if (cursor != null) { cursor.close(); } } } else { Cursor cursor = null; Loading @@ -1737,11 +1747,13 @@ public final class Avrcp { status = NOT_A_DIRECTORY; else status = DOES_NOT_EXIST; cursor.close(); } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); changePathRspNative(INTERNAL_ERROR, numberOfItems); } finally { if (cursor != null) { cursor.close(); } } } break; Loading Loading @@ -1784,12 +1796,14 @@ public final class Avrcp { numberOfItems = cursor.getCount(); mCurrentPathUid = String.valueOf(folderUid); mCurrentPath = PATH_PLAYLISTS; cursor.close(); } } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); changePathRspNative(INTERNAL_ERROR, numberOfItems); } finally { if (cursor != null) { cursor.close(); } } } else { numberOfItems = 0; Loading Loading @@ -1824,13 +1838,15 @@ public final class Avrcp { return 0; } else { long count = cursor.getCount(); cursor.close(); return count; } } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); return 0; } finally { if (cursor != null) { cursor.close(); } } } Loading @@ -1848,7 +1864,6 @@ public final class Avrcp { return 0; } else if (path.equals(PATH_TITLES)) { long count = cursor.getCount(); cursor.close(); return count; } else if (path.equals(PATH_ALBUMS) || path.equals(PATH_ARTISTS)){ long elemCount = 0; Loading @@ -1867,13 +1882,15 @@ public final class Avrcp { count--; } Log.i(TAG, "element Count is "+ elemCount); cursor.close(); return elemCount; } } catch (Exception e) { Log.e(TAG, "Exception " + e); } finally { if (cursor != null) { cursor.close(); } } return 0; } Loading Loading @@ -1919,13 +1936,15 @@ public final class Avrcp { playItemRspNative(DOES_NOT_EXIST); } else { Log.i(TAG, "Play uid:" + uid); cursor.close(); mRemoteController.setRemoteControlClientPlayItem(uid, scope); } } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); playItemRspNative(INTERNAL_ERROR); } finally { if (cursor != null) { cursor.close(); } } } else if (mCurrentPath.equals(PATH_ALBUMS)) { if (mCurrentPathUid == null) { Loading @@ -1944,13 +1963,15 @@ public final class Avrcp { playItemRspNative(DOES_NOT_EXIST); } else { Log.i(TAG, "Play uid:" + uid); cursor.close(); mRemoteController.setRemoteControlClientPlayItem(uid, scope); } } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); playItemRspNative(INTERNAL_ERROR); } finally { if (cursor != null) { cursor.close(); } } } } else if (mCurrentPath.equals(PATH_ARTISTS)) { Loading @@ -1970,13 +1991,15 @@ public final class Avrcp { playItemRspNative(DOES_NOT_EXIST); } else { Log.i(TAG, "Play uid:" + uid); cursor.close(); mRemoteController.setRemoteControlClientPlayItem(uid, scope); } } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); playItemRspNative(INTERNAL_ERROR); } finally { if (cursor != null) { cursor.close(); } } } } else if (mCurrentPath.equals(PATH_PLAYLISTS)) { Loading Loading @@ -2009,13 +2032,15 @@ public final class Avrcp { playItemRspNative(DOES_NOT_EXIST); } else { Log.i(TAG, "Play uid:" + uid); cursor.close(); mRemoteController.setRemoteControlClientPlayItem(uid, scope); } } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); playItemRspNative(INTERNAL_ERROR); } finally { if (cursor != null) { cursor.close(); } } } } else { Loading Loading @@ -2083,11 +2108,14 @@ public final class Avrcp { textArray[i] = getAttributeStringFromCursor(cursor, attrs[i]); } getItemAttrRspNative(numAttr, attrs, textArray); cursor.close(); } } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); Log.e(TAG, "Exception " + e); getItemAttrRspNative((byte)0, attrs, textArray); } finally { if (cursor != null) { cursor.close(); } } } else { Log.i(TAG, "Invalid scope"); Loading Loading @@ -2345,7 +2373,6 @@ public final class Avrcp { getFolderItemsRspNative((byte)RANGE_OUT_OF_BOUNDS, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); cursor.close(); return; } cursor.moveToFirst(); Loading Loading @@ -2388,12 +2415,14 @@ public final class Avrcp { numItems = index; getFolderItemsRspNative((byte)OPERATION_SUCCESSFUL, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); cursor.close(); } catch(Exception e) { Log.i(TAG, "Exception e" + e); cursor.close(); getFolderItemsRspNative((byte)INTERNAL_ERROR, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } finally { if (cursor != null) { cursor.close(); } } } else if (mCurrentPath.equals(PATH_ALBUMS)) { if (mCurrentPathUid == null) { Loading Loading @@ -2472,12 +2501,14 @@ public final class Avrcp { itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } cursor.close(); } catch(Exception e) { Log.i(TAG, "Exception e" + e); cursor.close(); getFolderItemsRspNative((byte)INTERNAL_ERROR, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } finally { if (cursor != null) { cursor.close(); } } } else { long folderUid = Long.valueOf(mCurrentPathUid); Loading @@ -2497,7 +2528,6 @@ public final class Avrcp { getFolderItemsRspNative((byte)RANGE_OUT_OF_BOUNDS, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); cursor.close(); return; } cursor.moveToFirst(); Loading Loading @@ -2542,12 +2572,14 @@ public final class Avrcp { numItems = index; getFolderItemsRspNative((byte)OPERATION_SUCCESSFUL, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); cursor.close(); } catch(Exception e) { Log.i(TAG, "Exception e" + e); cursor.close(); getFolderItemsRspNative((byte)INTERNAL_ERROR, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } finally { if (cursor != null) { cursor.close(); } } } } else if (mCurrentPath.equals(PATH_ARTISTS)) { Loading Loading @@ -2625,12 +2657,14 @@ public final class Avrcp { getFolderItemsRspNative((byte)RANGE_OUT_OF_BOUNDS, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } cursor.close(); } catch(Exception e) { Log.i(TAG, "Exception e" + e); cursor.close(); getFolderItemsRspNative((byte)INTERNAL_ERROR, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } finally { if (cursor != null) { cursor.close(); } } } else { long folderUid = Long.valueOf(mCurrentPathUid); Loading @@ -2650,7 +2684,6 @@ public final class Avrcp { getFolderItemsRspNative((byte)RANGE_OUT_OF_BOUNDS, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); cursor.close(); return; } cursor.moveToFirst(); Loading Loading @@ -2694,12 +2727,14 @@ public final class Avrcp { numItems = index; getFolderItemsRspNative((byte)OPERATION_SUCCESSFUL, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); cursor.close(); } catch(Exception e) { Log.i(TAG, "Exception e" + e); cursor.close(); getFolderItemsRspNative((byte)INTERNAL_ERROR, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } finally { if (cursor != null) { cursor.close(); } } } } else if (mCurrentPath.equals(PATH_PLAYLISTS)) { Loading Loading @@ -2771,12 +2806,14 @@ public final class Avrcp { itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } cursor.close(); } catch(Exception e) { Log.i(TAG, "Exception e" + e); cursor.close(); getFolderItemsRspNative((byte)INTERNAL_ERROR, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } finally { if (cursor != null) { cursor.close(); } } } else { long folderUid = Long.valueOf(mCurrentPathUid); Loading Loading @@ -2811,7 +2848,6 @@ public final class Avrcp { getFolderItemsRspNative((byte)RANGE_OUT_OF_BOUNDS, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); cursor.close(); return; } cursor.moveToFirst(); Loading Loading @@ -2856,12 +2892,14 @@ public final class Avrcp { numItems = index; getFolderItemsRspNative((byte)OPERATION_SUCCESSFUL, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); cursor.close(); } catch(Exception e) { Log.e(TAG, "Exception e" + e); cursor.close(); getFolderItemsRspNative((byte)INTERNAL_ERROR, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } finally { if (cursor != null) { cursor.close(); } } } } else { Loading src/com/android/bluetooth/hfp/HeadsetStateMachine.java +38 −13 Original line number Diff line number Diff line Loading @@ -2407,10 +2407,16 @@ final class HeadsetStateMachine extends StateMachine { } public boolean isBluetoothVoiceDialingEnabled( BluetoothDevice device) { int RemoteBrsf = mHeadsetBrsf.get(device); Log.d(TAG, "isBluetoothVoiceDialingEnabled mRemoteBrsf: " + RemoteBrsf + "supported: " + (RemoteBrsf & BRSF_HF_VOICE_REG_ACT)); return ((RemoteBrsf & BRSF_HF_VOICE_REG_ACT) != 0x0) ? true : false; int remoteBrsf = 0; if (mHeadsetBrsf != null && !mHeadsetBrsf.isEmpty()) { remoteBrsf = mHeadsetBrsf.get(device); } else { Log.e(TAG,"remote device supported features not found"); return false; } Log.d(TAG, "isBluetoothVoiceDialingEnabled mRemoteBrsf: " + remoteBrsf + "supported: " + (remoteBrsf & BRSF_HF_VOICE_REG_ACT)); return ((remoteBrsf & BRSF_HF_VOICE_REG_ACT) != 0x0) ? true : false; } int getAudioState(BluetoothDevice device) { Loading Loading @@ -2512,7 +2518,11 @@ final class HeadsetStateMachine extends StateMachine { // Whereas for VoiceDial we want to activate the SCO connection but we are still // in MODE_NORMAL and hence the need to explicitly suspend the A2DP stream mAudioManager.setParameters("A2dpSuspended=true"); if (device != null) { connectAudioNative(getByteAddress(device)); } else { Log.e(TAG, "device not found for VR"); } } if (mStartVoiceRecognitionWakeLock.isHeld()) { Loading Loading @@ -2680,9 +2690,15 @@ final class HeadsetStateMachine extends StateMachine { { // 1. update nrec value // 2. update headset name int mCodec = 0; int mNrec = 0; HashMap<String, Integer> AudioParam = mHeadsetAudioParam.get(device); int mCodec = AudioParam.get("codec"); int mNrec = AudioParam.get("NREC"); if (AudioParam != null && !AudioParam.isEmpty()) { mCodec = AudioParam.get("codec"); mNrec = AudioParam.get("NREC"); } else { Log.e(TAG,"setAudioParameters: AudioParam not found"); } if (mCodec != WBS_CODEC) { Log.d(TAG, "Use NBS PCM samples:" + device); mAudioManager.setParameters(HEADSET_WBS + "=off"); Loading Loading @@ -3104,18 +3120,27 @@ final class HeadsetStateMachine extends StateMachine { // 0 disable noice reduction private void processNoiceReductionEvent(int enable, BluetoothDevice device) { HashMap<String, Integer> AudioParamNrec = mHeadsetAudioParam.get(device); if (AudioParamNrec != null && !AudioParamNrec.isEmpty()) { if (enable == 1) AudioParamNrec.put("NREC", 1); else AudioParamNrec.put("NREC", 0); log("NREC value for device :" + device + " is: " + AudioParamNrec.get("NREC")); log("NREC value for device :" + device + " is: " + AudioParamNrec.get("NREC")); } else { Log.e(TAG,"processNoiceReductionEvent: AudioParamNrec is null "); } } // 2 - WBS on // 1 - NBS on private void processWBSEvent(int enable, BluetoothDevice device) { HashMap<String, Integer> AudioParamCodec = mHeadsetAudioParam.get(device); if (AudioParamCodec != null && !AudioParamCodec.isEmpty()) { AudioParamCodec.put("codec", enable); } else { Log.e(TAG,"processWBSEvent: AudioParamNrec is null "); } if (enable == 2) { Log.d(TAG, "AudioManager.setParameters bt_wbs=on for " + device.getName() + " - " + device.getAddress()); Loading Loading
src/com/android/bluetooth/avrcp/Avrcp.java +85 −47 Original line number Diff line number Diff line Loading @@ -1318,13 +1318,15 @@ public final class Avrcp { cursor, attr); attIds[(7 * index) + attIndex] = attr; } cursor.close(); } } catch(Exception e) { Log.i(TAG, "Exception e"+ e); cursor.close(); getFolderItemsRspNative((byte)INTERNAL_ERROR, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } finally { if (cursor != null) { cursor.close(); } } } numItems = index; Loading Loading @@ -1617,11 +1619,13 @@ public final class Avrcp { status = NOT_A_DIRECTORY; else status = DOES_NOT_EXIST; cursor.close(); } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); changePathRspNative(INTERNAL_ERROR, numberOfItems); } finally { if (cursor != null) { cursor.close(); } } break; default: Loading Loading @@ -1656,12 +1660,14 @@ public final class Avrcp { } else{ numberOfItems = cursor.getCount(); mCurrentPathUid = String.valueOf(folderUid); cursor.close(); } } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); changePathRspNative(INTERNAL_ERROR, numberOfItems); } finally { if (cursor != null) { cursor.close(); } } } else { // Path @ Individual Album id Cursor cursor = null; Loading @@ -1677,11 +1683,13 @@ public final class Avrcp { status = NOT_A_DIRECTORY; else status = DOES_NOT_EXIST; cursor.close(); } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); changePathRspNative(INTERNAL_ERROR, numberOfItems); } finally { if (cursor != null) { cursor.close(); } } } break; Loading Loading @@ -1718,12 +1726,14 @@ public final class Avrcp { numberOfItems = cursor.getCount(); mCurrentPathUid = String.valueOf(folderUid); mCurrentPath = PATH_ARTISTS; cursor.close(); } } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); changePathRspNative(INTERNAL_ERROR, numberOfItems); } finally { if (cursor != null) { cursor.close(); } } } else { Cursor cursor = null; Loading @@ -1737,11 +1747,13 @@ public final class Avrcp { status = NOT_A_DIRECTORY; else status = DOES_NOT_EXIST; cursor.close(); } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); changePathRspNative(INTERNAL_ERROR, numberOfItems); } finally { if (cursor != null) { cursor.close(); } } } break; Loading Loading @@ -1784,12 +1796,14 @@ public final class Avrcp { numberOfItems = cursor.getCount(); mCurrentPathUid = String.valueOf(folderUid); mCurrentPath = PATH_PLAYLISTS; cursor.close(); } } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); changePathRspNative(INTERNAL_ERROR, numberOfItems); } finally { if (cursor != null) { cursor.close(); } } } else { numberOfItems = 0; Loading Loading @@ -1824,13 +1838,15 @@ public final class Avrcp { return 0; } else { long count = cursor.getCount(); cursor.close(); return count; } } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); return 0; } finally { if (cursor != null) { cursor.close(); } } } Loading @@ -1848,7 +1864,6 @@ public final class Avrcp { return 0; } else if (path.equals(PATH_TITLES)) { long count = cursor.getCount(); cursor.close(); return count; } else if (path.equals(PATH_ALBUMS) || path.equals(PATH_ARTISTS)){ long elemCount = 0; Loading @@ -1867,13 +1882,15 @@ public final class Avrcp { count--; } Log.i(TAG, "element Count is "+ elemCount); cursor.close(); return elemCount; } } catch (Exception e) { Log.e(TAG, "Exception " + e); } finally { if (cursor != null) { cursor.close(); } } return 0; } Loading Loading @@ -1919,13 +1936,15 @@ public final class Avrcp { playItemRspNative(DOES_NOT_EXIST); } else { Log.i(TAG, "Play uid:" + uid); cursor.close(); mRemoteController.setRemoteControlClientPlayItem(uid, scope); } } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); playItemRspNative(INTERNAL_ERROR); } finally { if (cursor != null) { cursor.close(); } } } else if (mCurrentPath.equals(PATH_ALBUMS)) { if (mCurrentPathUid == null) { Loading @@ -1944,13 +1963,15 @@ public final class Avrcp { playItemRspNative(DOES_NOT_EXIST); } else { Log.i(TAG, "Play uid:" + uid); cursor.close(); mRemoteController.setRemoteControlClientPlayItem(uid, scope); } } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); playItemRspNative(INTERNAL_ERROR); } finally { if (cursor != null) { cursor.close(); } } } } else if (mCurrentPath.equals(PATH_ARTISTS)) { Loading @@ -1970,13 +1991,15 @@ public final class Avrcp { playItemRspNative(DOES_NOT_EXIST); } else { Log.i(TAG, "Play uid:" + uid); cursor.close(); mRemoteController.setRemoteControlClientPlayItem(uid, scope); } } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); playItemRspNative(INTERNAL_ERROR); } finally { if (cursor != null) { cursor.close(); } } } } else if (mCurrentPath.equals(PATH_PLAYLISTS)) { Loading Loading @@ -2009,13 +2032,15 @@ public final class Avrcp { playItemRspNative(DOES_NOT_EXIST); } else { Log.i(TAG, "Play uid:" + uid); cursor.close(); mRemoteController.setRemoteControlClientPlayItem(uid, scope); } } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); playItemRspNative(INTERNAL_ERROR); } finally { if (cursor != null) { cursor.close(); } } } } else { Loading Loading @@ -2083,11 +2108,14 @@ public final class Avrcp { textArray[i] = getAttributeStringFromCursor(cursor, attrs[i]); } getItemAttrRspNative(numAttr, attrs, textArray); cursor.close(); } } catch (Exception e) { Log.e(TAG, "Exception " + e); cursor.close(); Log.e(TAG, "Exception " + e); getItemAttrRspNative((byte)0, attrs, textArray); } finally { if (cursor != null) { cursor.close(); } } } else { Log.i(TAG, "Invalid scope"); Loading Loading @@ -2345,7 +2373,6 @@ public final class Avrcp { getFolderItemsRspNative((byte)RANGE_OUT_OF_BOUNDS, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); cursor.close(); return; } cursor.moveToFirst(); Loading Loading @@ -2388,12 +2415,14 @@ public final class Avrcp { numItems = index; getFolderItemsRspNative((byte)OPERATION_SUCCESSFUL, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); cursor.close(); } catch(Exception e) { Log.i(TAG, "Exception e" + e); cursor.close(); getFolderItemsRspNative((byte)INTERNAL_ERROR, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } finally { if (cursor != null) { cursor.close(); } } } else if (mCurrentPath.equals(PATH_ALBUMS)) { if (mCurrentPathUid == null) { Loading Loading @@ -2472,12 +2501,14 @@ public final class Avrcp { itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } cursor.close(); } catch(Exception e) { Log.i(TAG, "Exception e" + e); cursor.close(); getFolderItemsRspNative((byte)INTERNAL_ERROR, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } finally { if (cursor != null) { cursor.close(); } } } else { long folderUid = Long.valueOf(mCurrentPathUid); Loading @@ -2497,7 +2528,6 @@ public final class Avrcp { getFolderItemsRspNative((byte)RANGE_OUT_OF_BOUNDS, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); cursor.close(); return; } cursor.moveToFirst(); Loading Loading @@ -2542,12 +2572,14 @@ public final class Avrcp { numItems = index; getFolderItemsRspNative((byte)OPERATION_SUCCESSFUL, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); cursor.close(); } catch(Exception e) { Log.i(TAG, "Exception e" + e); cursor.close(); getFolderItemsRspNative((byte)INTERNAL_ERROR, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } finally { if (cursor != null) { cursor.close(); } } } } else if (mCurrentPath.equals(PATH_ARTISTS)) { Loading Loading @@ -2625,12 +2657,14 @@ public final class Avrcp { getFolderItemsRspNative((byte)RANGE_OUT_OF_BOUNDS, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } cursor.close(); } catch(Exception e) { Log.i(TAG, "Exception e" + e); cursor.close(); getFolderItemsRspNative((byte)INTERNAL_ERROR, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } finally { if (cursor != null) { cursor.close(); } } } else { long folderUid = Long.valueOf(mCurrentPathUid); Loading @@ -2650,7 +2684,6 @@ public final class Avrcp { getFolderItemsRspNative((byte)RANGE_OUT_OF_BOUNDS, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); cursor.close(); return; } cursor.moveToFirst(); Loading Loading @@ -2694,12 +2727,14 @@ public final class Avrcp { numItems = index; getFolderItemsRspNative((byte)OPERATION_SUCCESSFUL, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); cursor.close(); } catch(Exception e) { Log.i(TAG, "Exception e" + e); cursor.close(); getFolderItemsRspNative((byte)INTERNAL_ERROR, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } finally { if (cursor != null) { cursor.close(); } } } } else if (mCurrentPath.equals(PATH_PLAYLISTS)) { Loading Loading @@ -2771,12 +2806,14 @@ public final class Avrcp { itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } cursor.close(); } catch(Exception e) { Log.i(TAG, "Exception e" + e); cursor.close(); getFolderItemsRspNative((byte)INTERNAL_ERROR, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } finally { if (cursor != null) { cursor.close(); } } } else { long folderUid = Long.valueOf(mCurrentPathUid); Loading Loading @@ -2811,7 +2848,6 @@ public final class Avrcp { getFolderItemsRspNative((byte)RANGE_OUT_OF_BOUNDS, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); cursor.close(); return; } cursor.moveToFirst(); Loading Loading @@ -2856,12 +2892,14 @@ public final class Avrcp { numItems = index; getFolderItemsRspNative((byte)OPERATION_SUCCESSFUL, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); cursor.close(); } catch(Exception e) { Log.e(TAG, "Exception e" + e); cursor.close(); getFolderItemsRspNative((byte)INTERNAL_ERROR, numItems, itemType, uid, type, playable, displayName, numAtt, attValues, attIds); } finally { if (cursor != null) { cursor.close(); } } } } else { Loading
src/com/android/bluetooth/hfp/HeadsetStateMachine.java +38 −13 Original line number Diff line number Diff line Loading @@ -2407,10 +2407,16 @@ final class HeadsetStateMachine extends StateMachine { } public boolean isBluetoothVoiceDialingEnabled( BluetoothDevice device) { int RemoteBrsf = mHeadsetBrsf.get(device); Log.d(TAG, "isBluetoothVoiceDialingEnabled mRemoteBrsf: " + RemoteBrsf + "supported: " + (RemoteBrsf & BRSF_HF_VOICE_REG_ACT)); return ((RemoteBrsf & BRSF_HF_VOICE_REG_ACT) != 0x0) ? true : false; int remoteBrsf = 0; if (mHeadsetBrsf != null && !mHeadsetBrsf.isEmpty()) { remoteBrsf = mHeadsetBrsf.get(device); } else { Log.e(TAG,"remote device supported features not found"); return false; } Log.d(TAG, "isBluetoothVoiceDialingEnabled mRemoteBrsf: " + remoteBrsf + "supported: " + (remoteBrsf & BRSF_HF_VOICE_REG_ACT)); return ((remoteBrsf & BRSF_HF_VOICE_REG_ACT) != 0x0) ? true : false; } int getAudioState(BluetoothDevice device) { Loading Loading @@ -2512,7 +2518,11 @@ final class HeadsetStateMachine extends StateMachine { // Whereas for VoiceDial we want to activate the SCO connection but we are still // in MODE_NORMAL and hence the need to explicitly suspend the A2DP stream mAudioManager.setParameters("A2dpSuspended=true"); if (device != null) { connectAudioNative(getByteAddress(device)); } else { Log.e(TAG, "device not found for VR"); } } if (mStartVoiceRecognitionWakeLock.isHeld()) { Loading Loading @@ -2680,9 +2690,15 @@ final class HeadsetStateMachine extends StateMachine { { // 1. update nrec value // 2. update headset name int mCodec = 0; int mNrec = 0; HashMap<String, Integer> AudioParam = mHeadsetAudioParam.get(device); int mCodec = AudioParam.get("codec"); int mNrec = AudioParam.get("NREC"); if (AudioParam != null && !AudioParam.isEmpty()) { mCodec = AudioParam.get("codec"); mNrec = AudioParam.get("NREC"); } else { Log.e(TAG,"setAudioParameters: AudioParam not found"); } if (mCodec != WBS_CODEC) { Log.d(TAG, "Use NBS PCM samples:" + device); mAudioManager.setParameters(HEADSET_WBS + "=off"); Loading Loading @@ -3104,18 +3120,27 @@ final class HeadsetStateMachine extends StateMachine { // 0 disable noice reduction private void processNoiceReductionEvent(int enable, BluetoothDevice device) { HashMap<String, Integer> AudioParamNrec = mHeadsetAudioParam.get(device); if (AudioParamNrec != null && !AudioParamNrec.isEmpty()) { if (enable == 1) AudioParamNrec.put("NREC", 1); else AudioParamNrec.put("NREC", 0); log("NREC value for device :" + device + " is: " + AudioParamNrec.get("NREC")); log("NREC value for device :" + device + " is: " + AudioParamNrec.get("NREC")); } else { Log.e(TAG,"processNoiceReductionEvent: AudioParamNrec is null "); } } // 2 - WBS on // 1 - NBS on private void processWBSEvent(int enable, BluetoothDevice device) { HashMap<String, Integer> AudioParamCodec = mHeadsetAudioParam.get(device); if (AudioParamCodec != null && !AudioParamCodec.isEmpty()) { AudioParamCodec.put("codec", enable); } else { Log.e(TAG,"processWBSEvent: AudioParamNrec is null "); } if (enable == 2) { Log.d(TAG, "AudioManager.setParameters bt_wbs=on for " + device.getName() + " - " + device.getAddress()); Loading