summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAjay Panicker <apanicke@google.com>2016-06-07 17:20:24 -0700
committerJessica Wagantall <jwagantall@cyngn.com>2016-07-07 11:15:51 -0700
commit2e6a992984faba746f09b3ad07a225a129731789 (patch)
tree0c996a1dc66385e8cbb7e0ec12984e784cad824f
parent0ace6d8334f90262b51e2f099509489791cb74b0 (diff)
downloadandroid_packages_apps_Bluetooth-2e6a992984faba746f09b3ad07a225a129731789.tar.gz
android_packages_apps_Bluetooth-2e6a992984faba746f09b3ad07a225a129731789.tar.bz2
android_packages_apps_Bluetooth-2e6a992984faba746f09b3ad07a225a129731789.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. Ticket: CYNGNOS-3020 Bug: 27410683 Change-Id: If4a8855faf362d7f6de509d7ddc7197d1ac75cee (cherry picked from commit af5b1764daa3b212d471f000d7091ac07c040453)
-rw-r--r--jni/com_android_bluetooth_btservice_AdapterService.cpp7
-rw-r--r--src/com/android/bluetooth/btservice/AdapterService.java2
-rw-r--r--src/com/android/bluetooth/btservice/AdapterState.java4
3 files changed, 7 insertions, 6 deletions
diff --git a/jni/com_android_bluetooth_btservice_AdapterService.cpp b/jni/com_android_bluetooth_btservice_AdapterService.cpp
index 2544eb8d4..292ff9cfc 100644
--- a/jni/com_android_bluetooth_btservice_AdapterService.cpp
+++ b/jni/com_android_bluetooth_btservice_AdapterService.cpp
@@ -767,13 +767,12 @@ 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 || ret == BT_STATUS_DONE) ? JNI_TRUE : JNI_FALSE;
return result;
}
@@ -1262,7 +1261,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 8eb6d8e23..a8e5d56d0 100644
--- a/src/com/android/bluetooth/btservice/AdapterService.java
+++ b/src/com/android/bluetooth/btservice/AdapterService.java
@@ -2473,7 +2473,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 54ecbe2c7..26c2821f9 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;
@@ -360,7 +361,8 @@ final class AdapterState extends StateMachine {
removeMessages(BLE_START_TIMEOUT);
//Enable
- if (!adapterService.enableNative()) {
+ boolean isGuest = UserManager.get(mAdapterService).isGuestUser();
+ if (!adapterService.enableNative(isGuest)) {
errorLog("Error while turning Bluetooth on");
notifyAdapterStateChange(BluetoothAdapter.STATE_OFF);
transitionTo(mOffState);