From 83e048a2efe896515bcd5c85565a0f061e28ae48 Mon Sep 17 00:00:00 2001 From: Gaurav Asati Date: Fri, 14 Feb 2014 15:44:10 +0530 Subject: Bluetooth: Set HFP HF stream Volume. Update HFP HF stream volume when volume is changed on AG or on HFP. Change-Id: I4415cc6444d57c221a2bb4f5794328e6dace8f7b --- src/com/android/bluetooth/hfpclient/HandsfreeClientStateMachine.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/com/android/bluetooth/hfpclient/HandsfreeClientStateMachine.java b/src/com/android/bluetooth/hfpclient/HandsfreeClientStateMachine.java index 32132e4ec..fe072eeeb 100644 --- a/src/com/android/bluetooth/hfpclient/HandsfreeClientStateMachine.java +++ b/src/com/android/bluetooth/hfpclient/HandsfreeClientStateMachine.java @@ -1597,6 +1597,8 @@ final class HandsfreeClientStateMachine extends StateMachine { } break; case SET_SPEAKER_VOLUME: + Log.d(TAG,"Volume is set to " + message.arg1); + mAudioManager.setParameters("hfp_volume=" + message.arg1); if (mVgsFromStack) { mVgsFromStack = false; break; -- cgit v1.2.3 From 15bb907b0a1ccdcec7617778371748bee5f7eeb3 Mon Sep 17 00:00:00 2001 From: Hamster Tian Date: Wed, 30 Apr 2014 16:13:57 +0200 Subject: [2/3]Bluetooth: add "Accept all files" option for incoming files via Bluetooth This patch will let the OBEX server read "Accept all files" option before it starts to check mime-type whitelist. If not enabled,the check process will go on as usual. If enabled,mime-type checking will be skipped. Change-Id: I056f88246911da0f47da9043187ff3f959315dce --- .../opp/BluetoothOppObexServerSession.java | 93 +++++++++++++--------- 1 file changed, 57 insertions(+), 36 deletions(-) diff --git a/src/com/android/bluetooth/opp/BluetoothOppObexServerSession.java b/src/com/android/bluetooth/opp/BluetoothOppObexServerSession.java index e5db30bcb..0303eb676 100644 --- a/src/com/android/bluetooth/opp/BluetoothOppObexServerSession.java +++ b/src/com/android/bluetooth/opp/BluetoothOppObexServerSession.java @@ -47,6 +47,7 @@ import android.os.Handler; import android.os.Message; import android.os.PowerManager; import android.os.PowerManager.WakeLock; +import android.provider.Settings; import android.os.Process; import android.util.Log; import android.webkit.MimeTypeMap; @@ -255,6 +256,8 @@ public class BluetoothOppObexServerSession extends ServerRequestHandler implemen } boolean isWhitelisted = BluetoothOppManager.getInstance(mContext). isWhitelisted(destination); + boolean acceptAllFilesIsEnabled = Settings.System.getInt(mContext.getContentResolver(), + Settings.System.BLUETOOTH_ACCEPT_ALL_FILES, 0) == 1; try { boolean pre_reject = false; @@ -277,47 +280,65 @@ public class BluetoothOppObexServerSession extends ServerRequestHandler implemen obexResponse = ResponseCodes.OBEX_HTTP_BAD_REQUEST; } - if (!pre_reject) { - /* first we look for Mimetype in Android map */ - String extension, type; - int dotIndex = name.lastIndexOf("."); - if (dotIndex < 0 && mimeType == null) { - if (D) Log.w(TAG, "There is no file extension or mime type," + - "reject the transfer"); - pre_reject = true; - obexResponse = ResponseCodes.OBEX_HTTP_BAD_REQUEST; - } else { - extension = name.substring(dotIndex + 1).toLowerCase(); - MimeTypeMap map = MimeTypeMap.getSingleton(); - type = map.getMimeTypeFromExtension(extension); - if (V) Log.v(TAG, "Mimetype guessed from extension " + extension + " is " + type); - if (type != null) { - mimeType = type; - + if (!acceptAllFilesIsEnabled) { + if (!pre_reject) { + /* first we look for Mimetype in Android map */ + String extension, type; + int dotIndex = name.lastIndexOf("."); + if (dotIndex < 0 && mimeType == null) { + if (D) + Log.w(TAG, "There is no file extension or mime type," + + "reject the transfer. File name:" + name); + pre_reject = true; + obexResponse = ResponseCodes.OBEX_HTTP_BAD_REQUEST; } else { - if (mimeType == null) { - if (D) Log.w(TAG, "Can't get mimetype, reject the transfer"); - pre_reject = true; - obexResponse = ResponseCodes.OBEX_HTTP_UNSUPPORTED_TYPE; + extension = name.substring(dotIndex + 1).toLowerCase(); + MimeTypeMap map = MimeTypeMap.getSingleton(); + type = map.getMimeTypeFromExtension(extension); + if (V) + Log.v(TAG, "Mimetype guessed from extension " + extension + " is " + + type); + if (type != null) { + mimeType = type; + + } else { + if (mimeType == null) { + if (D) + Log.w(TAG, "Can't get mimetype, reject the transfer"); + pre_reject = true; + obexResponse = ResponseCodes.OBEX_HTTP_UNSUPPORTED_TYPE; + } + } + if (mimeType != null) { + mimeType = mimeType.toLowerCase(); } - } - if (mimeType != null) { - mimeType = mimeType.toLowerCase(); } } - } - // Reject policy: anything outside the "white list" plus unspecified - // MIME Types. Also reject everything in the "black list". - if (!pre_reject - && (mimeType == null - || (!isWhitelisted && !Constants.mimeTypeMatches(mimeType, - Constants.ACCEPTABLE_SHARE_INBOUND_TYPES)) - || Constants.mimeTypeMatches(mimeType, - Constants.UNACCEPTABLE_SHARE_INBOUND_TYPES))) { - if (D) Log.w(TAG, "mimeType is null or in unacceptable list, reject the transfer"); - pre_reject = true; - obexResponse = ResponseCodes.OBEX_HTTP_UNSUPPORTED_TYPE; + // Reject policy: anything outside the "white list" plus + // unspecified + // MIME Types. Also reject everything in the "black list". + if (!pre_reject + && (mimeType == null + || (!isWhitelisted && !Constants.mimeTypeMatches(mimeType, + Constants.ACCEPTABLE_SHARE_INBOUND_TYPES)) + || Constants.mimeTypeMatches(mimeType, + Constants.UNACCEPTABLE_SHARE_INBOUND_TYPES))) { + if (D) + Log.w(TAG, + "mimeType is null or in unacceptable list, reject the transfer. mimeType is " + + ((mimeType == null) ? "null" : mimeType)); + pre_reject = true; + obexResponse = ResponseCodes.OBEX_HTTP_UNSUPPORTED_TYPE; + } + } else { + if (D) + Log.i(TAG, "acceptAllFilesIsEnabled is true, skipped check of mime type"); + if (mimeType == null) { + mimeType = "*/*"; + if (D) + Log.i(TAG, "mimeType is null. Fixed to */*"); + } } if (pre_reject && obexResponse != ResponseCodes.OBEX_HTTP_OK) { -- cgit v1.2.3