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.Random;
22 private final static String TAG =
"QtQuickViewContent";
24 private WeakReference<QtQuickView> m_viewReference;
26 private HashSet<Integer> m_signalListenerIds =
new HashSet<>();
27 private QtSignalQueue m_signalQueue =
new QtSignalQueue();
49 m_statusChangeListener = listener;
52 view.setStatusChangeListener(listener);
63 if (m_viewReference !=
null)
64 return m_viewReference.get();
80 m_viewReference =
new WeakReference<>(
view);
82 view.setStatusChangeListener(m_statusChangeListener);
83 m_signalQueue.connectQueuedSignalListeners(
view);
95 for (
int signalListenerId : m_signalListenerIds)
96 view.disconnectSignalListener(signalListenerId);
98 view.setStatusChangeListener(
null);
99 m_viewReference.clear();
100 if (m_statusChangeListener !=
null)
109 protected HashMap<String, Object>
attributes() {
return new HashMap<>(); }
131 Log.w(TAG,
"Cannot set property as the QQmlComponent is not loaded in a QtQuickView.");
153 protected <T> T getProperty(
String propertyName)
157 Log.w(
TAG,
"Cannot get property as the QQmlComponent is not loaded in a QtQuickView.");
160 return view.<T>getProperty(propertyName);
177 QtSignalListener<T> listener)
201 m_signalListenerIds.add(
id);
203 m_signalQueue.add(
signalName, argTypes, listener,
id);
222 m_signalListenerIds.remove(signalListenerId);
223 return view.disconnectSignalListener(signalListenerId);
225 return m_signalQueue.remove(signalListenerId);
229 static int generateSignalId()
231 Random rand =
new Random();
232 return rand.nextInt();
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