4package org.qtproject.qt.android;
8import android.app.Service;
9import android.content.Context;
10import android.content.res.Resources;
11import android.hardware.display.DisplayManager;
12import android.view.Display;
13import android.view.View;
14import android.util.DisplayMetrics;
20class QtServiceEmbeddedDelegate
implements QtEmbeddedViewInterface, QtNative.AppStateDetailsListener
22 private final Service m_service;
23 private QtView m_view;
24 private boolean m_windowLoaded =
false;
26 QtServiceEmbeddedDelegate(Service service)
29 QtNative.registerAppStateListener(
this);
30 QtNative.setService(service);
36 public void onNativePluginIntegrationReadyChanged(
boolean ready)
40 QtNative.runAction(() -> {
44 final DisplayMetrics
metrics = Resources.getSystem().getDisplayMetrics();
46 final int maxWidth = m_view.getWidth();
47 final int maxHeight = m_view.getHeight();
48 final int width = maxWidth;
49 final int height = maxHeight;
50 final int insetLeft = m_view.getLeft();
51 final int insetTop = m_view.getTop();
53 final DisplayManager dm = m_service.getSystemService(DisplayManager.class);
54 QtDisplayManager.setDisplayMetrics(
55 maxWidth, maxHeight, insetLeft, insetTop,
width,
height,
56 QtDisplayManager.getXDpi(
metrics), QtDisplayManager.getYDpi(
metrics),
58 QtDisplayManager.getRefreshRate(
59 dm.getDisplay(
Display.DEFAULT_DISPLAY)));
68 public void startQtApplication(String appParams, String mainLib)
70 QtNative.startApplication(appParams, mainLib);
74 public void setView(QtView
view)
83 public void queueLoadWindow()
86 if (QtNative.getStateDetails().nativePluginIntegrationReady)
92 private void createRootWindow()
94 if (m_view !=
null && !m_windowLoaded) {
95 QtView.createRootWindow(m_view, m_view.getLeft(), m_view.getTop(), m_view.getWidth(),
97 m_windowLoaded =
true;
101 private void cleanup()
103 QtNative.setApplicationState(ApplicationSuspended);
104 QtNative.unregisterAppStateListener(QtServiceEmbeddedDelegate.this);
105 QtEmbeddedViewInterfaceFactory.remove(m_service);
107 QtNative.terminateQt();
108 QtNative.setService(
null);
109 QtNative.getQtThread().exit();
Q_CORE_EXPORT QtJniTypes::Service service()
GLint GLsizei GLsizei height
GLsizei GLenum const void GLuint GLsizei GLfloat * metrics