summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAjay Panicker <apanicke@google.com>2016-03-17 17:12:08 -0700
committerJessica Wagantall <jwagantall@cyngn.com>2016-07-08 13:38:56 -0700
commit9b77e785aaa02479623d14d4dc9d1f6931fdbd1f (patch)
tree78ed3ed3835e995038f1a33dd222814434272dd4
parentf93eda784aacc40a1d2df8c4390c69378cdeab74 (diff)
downloadandroid_packages_apps_Bluetooth-9b77e785aaa02479623d14d4dc9d1f6931fdbd1f.tar.gz
android_packages_apps_Bluetooth-9b77e785aaa02479623d14d4dc9d1f6931fdbd1f.tar.bz2
android_packages_apps_Bluetooth-9b77e785aaa02479623d14d4dc9d1f6931fdbd1f.zip
Add guest mode functionality (3/3)
Add a flag to enable() to start Bluetooth in restricted mode. In restricted mode, all devices that are paired during restricted mode are deleted upon leaving restricted mode. Right now restricted mode is only entered while a guest user is active. CYNGNOS-3020 Bug: 27410683 Change-Id: If4a8855faf362d7f6de509d7ddc7197d1ac75cee (cherry picked from commit e1ca5cccd6c2b37f783aa0ee2d9371108ad5c855)
-rw-r--r--jni/com_android_bluetooth_btservice_AdapterService.cpp6
-rw-r--r--src/com/android/bluetooth/btservice/AdapterService.java2
-rw-r--r--src/com/android/bluetooth/btservice/AdapterState.java7
3 files changed, 8 insertions, 7 deletions
diff --git a/jni/com_android_bluetooth_btservice_AdapterService.cpp b/jni/com_android_bluetooth_btservice_AdapterService.cpp
index cb917976e..f2c767fa5 100644
--- a/jni/com_android_bluetooth_btservice_AdapterService.cpp
+++ b/jni/com_android_bluetooth_btservice_AdapterService.cpp
@@ -864,13 +864,13 @@ static bool ssrcleanupNative(JNIEnv *env, jobject obj, jboolean cleanup) {
return JNI_TRUE;
}
-static jboolean enableNative(JNIEnv* env, jobject obj) {
+static jboolean enableNative(JNIEnv* env, jobject obj, jboolean isGuest) {
ALOGV("%s:",__FUNCTION__);
jboolean result = JNI_FALSE;
if (!sBluetoothInterface) return result;
- int ret = sBluetoothInterface->enable();
+ int ret = sBluetoothInterface->enable(isGuest == JNI_TRUE ? 1 : 0);
result = (ret == BT_STATUS_SUCCESS) ? JNI_TRUE : JNI_FALSE;
return result;
}
@@ -1354,7 +1354,7 @@ static JNINativeMethod sMethods[] = {
{"initNative", "()Z", (void *) initNative},
{"cleanupNative", "()V", (void*) cleanupNative},
{"ssrcleanupNative", "(Z)V", (void*) ssrcleanupNative},
- {"enableNative", "()Z", (void*) enableNative},
+ {"enableNative", "(Z)Z", (void*) enableNative},
{"disableNative", "()Z", (void*) disableNative},
{"setAdapterPropertyNative", "(I[B)Z", (void*) setAdapterPropertyNative},
{"getAdapterPropertiesNative", "()Z", (void*) getAdapterPropertiesNative},
diff --git a/src/com/android/bluetooth/btservice/AdapterService.java b/src/com/android/bluetooth/btservice/AdapterService.java
index 54d883c82..f84409c93 100644
--- a/src/com/android/bluetooth/btservice/AdapterService.java
+++ b/src/com/android/bluetooth/btservice/AdapterService.java
@@ -2167,7 +2167,7 @@ public class AdapterService extends Service {
private native boolean initNative();
private native void cleanupNative();
/*package*/ native void ssrcleanupNative(boolean cleanup);
- /*package*/ native boolean enableNative();
+ /*package*/ native boolean enableNative(boolean startRestricted);
/*package*/ native boolean disableNative();
/*package*/ native boolean setAdapterPropertyNative(int type, byte[] val);
/*package*/ native boolean getAdapterPropertiesNative();
diff --git a/src/com/android/bluetooth/btservice/AdapterState.java b/src/com/android/bluetooth/btservice/AdapterState.java
index 3469068c4..8127dd807 100644
--- a/src/com/android/bluetooth/btservice/AdapterState.java
+++ b/src/com/android/bluetooth/btservice/AdapterState.java
@@ -20,6 +20,7 @@ import android.bluetooth.BluetoothAdapter;
import android.content.Context;
import android.content.Intent;
import android.os.Message;
+import android.os.UserManager;
import android.util.Log;
import com.android.internal.util.State;
@@ -258,9 +259,9 @@ final class AdapterState extends StateMachine {
removeMessages(START_TIMEOUT);
//Enable
- boolean ret = adapterService.enableNative();
- if (!ret) {
- Log.e(TAG, "Error while turning Bluetooth On");
+ boolean isGuest = UserManager.get(mAdapterService).isGuestUser();
+ if (!adapterService.enableNative(isGuest)) {
+ Log.e(TAG, "Error while turning Bluetooth on");
notifyAdapterStateChange(BluetoothAdapter.STATE_OFF);
transitionTo(mOffState);
} else {