Scaffold player

This commit is contained in:
2026-04-09 18:38:04 +02:00
parent e1e2fa3f3b
commit 014c75d575
9 changed files with 120 additions and 57 deletions
+2 -16
View File
@@ -31,23 +31,15 @@ int initialize(JavaVM* vm) {
}
struct JHybridOmniViewSpecImpl: public jni::JavaClass<JHybridOmniViewSpecImpl, JHybridOmniViewSpec::JavaPart> {
static constexpr auto kJavaDescriptor = "Ldev/zoriya/omni/OmniView;";
static constexpr auto kJavaDescriptor = "Ldev/zoriya/omni/HybridOmniView;";
static std::shared_ptr<JHybridOmniViewSpec> create() {
static const auto constructorFn = javaClassStatic()->getConstructor<JHybridOmniViewSpecImpl::javaobject()>();
jni::local_ref<JHybridOmniViewSpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
return javaPart->getJHybridOmniViewSpec();
}
};
struct JHybridOmniPlayerSpecImpl: public jni::JavaClass<JHybridOmniPlayerSpecImpl, JHybridOmniPlayerSpec::JavaPart> {
static constexpr auto kJavaDescriptor = "Ldev/zoriya/omni/OmniPlayer;";
static std::shared_ptr<JHybridOmniPlayerSpec> create() {
static const auto constructorFn = javaClassStatic()->getConstructor<JHybridOmniPlayerSpecImpl::javaobject()>();
jni::local_ref<JHybridOmniPlayerSpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
return javaPart->getJHybridOmniPlayerSpec();
}
};
struct JHybridOmniPlayerFactorySpecImpl: public jni::JavaClass<JHybridOmniPlayerFactorySpecImpl, JHybridOmniPlayerFactorySpec::JavaPart> {
static constexpr auto kJavaDescriptor = "Ldev/zoriya/omni/OmniPlayerFactory;";
static constexpr auto kJavaDescriptor = "Ldev/zoriya/omni/HybridOmniPlayerFactory;";
static std::shared_ptr<JHybridOmniPlayerFactorySpec> create() {
static const auto constructorFn = javaClassStatic()->getConstructor<JHybridOmniPlayerFactorySpecImpl::javaobject()>();
jni::local_ref<JHybridOmniPlayerFactorySpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
@@ -73,12 +65,6 @@ void registerAllNatives() {
return JHybridOmniViewSpecImpl::create();
}
);
HybridObjectRegistry::registerHybridObjectConstructor(
"OmniPlayer",
[]() -> std::shared_ptr<HybridObject> {
return JHybridOmniPlayerSpecImpl::create();
}
);
HybridObjectRegistry::registerHybridObjectConstructor(
"OmniPlayerFactory",
[]() -> std::shared_ptr<HybridObject> {
@@ -21,7 +21,7 @@ import dev.zoriya.omni.*
*/
public class HybridOmniViewManager: SimpleViewManager<View>() {
init {
if (RecyclableView::class.java.isAssignableFrom(OmniView::class.java)) {
if (RecyclableView::class.java.isAssignableFrom(HybridOmniView::class.java)) {
// Enable view recycling
super.setupViewRecycling()
}
@@ -32,7 +32,7 @@ public class HybridOmniViewManager: SimpleViewManager<View>() {
}
override fun createViewInstance(reactContext: ThemedReactContext): View {
val hybridView = OmniView(reactContext)
val hybridView = HybridOmniView(reactContext)
val view = hybridView.view
view.setTag(associated_hybrid_view_tag, hybridView)
return view
@@ -74,7 +74,7 @@ public class HybridOmniViewManager: SimpleViewManager<View>() {
}
}
private fun getHybridView(view: View): OmniView? {
return view.getTag(associated_hybrid_view_tag) as? OmniView
private fun getHybridView(view: View): HybridOmniView? {
return view.getTag(associated_hybrid_view_tag) as? HybridOmniView
}
}