Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3cf650de authored by Android (Google) Code Review's avatar Android (Google) Code Review Committed by The Android Open Source Project
Browse files

am 672f1e2b: Merge change 1192 into donut

Merge commit '672f1e2b'

* commit '672f1e2b':
  Fix 1825581 - device restarts when using A2DP.
parents 8ca7d85d 672f1e2b
Loading
Loading
Loading
Loading
+18 −4
Original line number Original line Diff line number Diff line
@@ -45,7 +45,8 @@ static jmethodID method_onSinkPlaying;
static jmethodID method_onSinkStopped;
static jmethodID method_onSinkStopped;


typedef struct {
typedef struct {
    JNIEnv *env;
    JavaVM *vm;
    int envVer;
    DBusConnection *conn;
    DBusConnection *conn;
    jobject me;  // for callbacks to java
    jobject me;  // for callbacks to java
} native_data_t;
} native_data_t;
@@ -70,7 +71,8 @@ static bool initNative(JNIEnv* env, jobject object) {
        LOGE("%s: out of memory!", __FUNCTION__);
        LOGE("%s: out of memory!", __FUNCTION__);
        return false;
        return false;
    }
    }
    nat->env = env;
    env->GetJavaVM( &(nat->vm) );
    nat->envVer = env->GetVersion();
    nat->me = env->NewGlobalRef(object);
    nat->me = env->NewGlobalRef(object);


    DBusError err;
    DBusError err;
@@ -239,8 +241,14 @@ static void onConnectSinkResult(DBusMessage *msg, void *user, void *natData) {


    char *c_path = (char *)user;
    char *c_path = (char *)user;
    DBusError err;
    DBusError err;
    JNIEnv *env;

    if (nat->vm->GetEnv((void**)&env, nat->envVer) < 0) {
        LOGE("%s: error finding Env for our VM\n", __FUNCTION__);
        return;
    }

    dbus_error_init(&err);
    dbus_error_init(&err);
    JNIEnv *env = nat->env;


    LOGV("... path = %s", c_path);
    LOGV("... path = %s", c_path);
    if (dbus_set_error_from_message(&err, msg)) {
    if (dbus_set_error_from_message(&err, msg)) {
@@ -264,8 +272,14 @@ static void onDisconnectSinkResult(DBusMessage *msg, void *user, void *natData)


    char *c_path = (char *)user;
    char *c_path = (char *)user;
    DBusError err;
    DBusError err;
    JNIEnv *env;

    if (nat->vm->GetEnv((void**)&env, nat->envVer) < 0) {
        LOGE("%s: error finding Env for our VM\n", __FUNCTION__);
        return;
    }

    dbus_error_init(&err);
    dbus_error_init(&err);
    JNIEnv *env = nat->env;


    LOGV("... path = %s", c_path);
    LOGV("... path = %s", c_path);
    if (dbus_set_error_from_message(&err, msg)) {
    if (dbus_set_error_from_message(&err, msg)) {