4package org.qtproject.qt.android;
6import android.util.Log;
7import java.lang.ref.WeakReference;
8import java.util.HashMap;
9import java.util.HashSet;
10import java.util.concurrent.atomic.AtomicInteger;
22 private final static String TAG =
"QtQuickViewContent";
23 private static AtomicInteger m_nextSignalId =
new AtomicInteger();
25 private WeakReference<QtQuickView> m_viewReference;
27 private HashSet<Integer> m_signalListenerIds =
new HashSet<>();
28 private QtSignalQueue m_signalQueue =
new QtSignalQueue();
50 m_statusChangeListener = listener;
53 view.setStatusChangeListener(listener);
64 if (m_viewReference !=
null)
65 return m_viewReference.get();
81 m_viewReference =
new WeakReference<>(
view);
83 view.setStatusChangeListener(m_statusChangeListener);
84 m_signalQueue.connectQueuedSignalListeners(
view);
96 for (
int signalListenerId : m_signalListenerIds)
97 view.disconnectSignalListener(signalListenerId);
99 view.setStatusChangeListener(
null);
100 m_viewReference.clear();
101 if (m_statusChangeListener !=
null)
110 protected HashMap<String, Object>
attributes() {
return new HashMap<>(); }
132 Log.w(TAG,
"Cannot set property as the QQmlComponent is not loaded in a QtQuickView.");
154 protected <T> T getProperty(
String propertyName)
158 Log.w(
TAG,
"Cannot get property as the QQmlComponent is not loaded in a QtQuickView.");
161 return view.<T>getProperty(propertyName);
178 QtSignalListener<T> listener)
202 m_signalListenerIds.add(
id);
204 m_signalQueue.add(
signalName, argTypes, listener,
id);
223 m_signalListenerIds.remove(signalListenerId);
224 return view.disconnectSignalListener(signalListenerId);
226 return m_signalQueue.remove(signalListenerId);
230 static int generateSignalId()
232 return m_nextSignalId.getAndIncrement();
260 "Cannot call method " +
name +
261 " as the QQmlComponent is not loaded in a QtQuickView.");
279 "Cannot call method " +
name +
280 " as the QQmlComponent is not loaded in a QtQuickView.");
abstract String getLibraryName()
int connectSignalListener(String signalName, Class<?>[] argTypes, Object listener)
HashMap< String, Object > attributes()
void setStatusChangeListener(QtQmlStatusChangeListener listener)
abstract String getModuleName()
boolean disconnectSignalListener(int signalListenerId)
void invokeMethod(String name, Object[] params)
QtQuickView getQuickView()
void setProperty(String propertyName, Object value)
abstract String getFilePath()
void attachView(QtQuickView view)
void invokeMethod(String name)
[vector_of_multirole_objects_0]
EGLOutputLayerEXT EGLint EGLAttrib value
[3]
static const char * signalName(int signum) noexcept
EGLImageKHR EGLint * name