// Copyright (C) 2016 Lauri Laanmets (Proekspert AS) // Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #include #include #include "android/androidbroadcastreceiver_p.h" #include #include #include QT_BEGIN_NAMESPACE Q_DECLARE_LOGGING_CATEGORY(QT_BT_ANDROID) AndroidBroadcastReceiver::AndroidBroadcastReceiver(QObject* parent) : QObject(parent), valid(false) { // get Qt Context contextObject = QJniObject(QNativeInterface::QAndroidApplication::context()); broadcastReceiverObject = QJniObject::construct(); if (!broadcastReceiverObject.isValid()) return; broadcastReceiverObject.setField("qtObject", reinterpret_cast(this)); intentFilterObject = QJniObject::construct(); if (!intentFilterObject.isValid()) return; valid = true; } AndroidBroadcastReceiver::~AndroidBroadcastReceiver() { } bool AndroidBroadcastReceiver::isValid() const { return valid; } void AndroidBroadcastReceiver::unregisterReceiver() { if (!valid) return; broadcastReceiverObject.callMethod("unregisterReceiver"); } void AndroidBroadcastReceiver::addAction(const QJniObject &action) { if (!valid || !action.isValid()) return; intentFilterObject.callMethod("addAction", action.object()); contextObject.callMethod( "registerReceiver", broadcastReceiverObject.object(), intentFilterObject.object()); } QT_END_NAMESPACE