mirror of
https://github.com/zoriya/react-native-omni.git
synced 2026-08-05 05:36:17 +00:00
Implement view
This commit is contained in:
+14
-1
@@ -7,8 +7,12 @@
|
||||
|
||||
#include "JHybridOmniViewSpec.hpp"
|
||||
|
||||
// Forward declaration of `HybridOmniPlayerSpec` to properly resolve imports.
|
||||
namespace margelo::nitro::omni { class HybridOmniPlayerSpec; }
|
||||
|
||||
|
||||
#include <memory>
|
||||
#include "HybridOmniPlayerSpec.hpp"
|
||||
#include "JHybridOmniPlayerSpec.hpp"
|
||||
#include <optional>
|
||||
|
||||
namespace margelo::nitro::omni {
|
||||
@@ -41,6 +45,15 @@ namespace margelo::nitro::omni {
|
||||
}
|
||||
|
||||
// Properties
|
||||
std::shared_ptr<HybridOmniPlayerSpec> JHybridOmniViewSpec::getPlayer() {
|
||||
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JHybridOmniPlayerSpec::JavaPart>()>("getPlayer");
|
||||
auto __result = method(_javaPart);
|
||||
return __result->getJHybridOmniPlayerSpec();
|
||||
}
|
||||
void JHybridOmniViewSpec::setPlayer(const std::shared_ptr<HybridOmniPlayerSpec>& player) {
|
||||
static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JHybridOmniPlayerSpec::JavaPart> /* player */)>("setPlayer");
|
||||
method(_javaPart, std::dynamic_pointer_cast<JHybridOmniPlayerSpec>(player)->getJavaPart());
|
||||
}
|
||||
std::optional<bool> JHybridOmniViewSpec::getAutoplay() {
|
||||
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JBoolean>()>("getAutoplay");
|
||||
auto __result = method(_javaPart);
|
||||
|
||||
@@ -50,6 +50,8 @@ namespace margelo::nitro::omni {
|
||||
|
||||
public:
|
||||
// Properties
|
||||
std::shared_ptr<HybridOmniPlayerSpec> getPlayer() override;
|
||||
void setPlayer(const std::shared_ptr<HybridOmniPlayerSpec>& player) override;
|
||||
std::optional<bool> getAutoplay() override;
|
||||
void setAutoplay(std::optional<bool> autoplay) override;
|
||||
std::optional<bool> getShowNotification() override;
|
||||
|
||||
@@ -37,6 +37,10 @@ void JHybridOmniViewStateUpdater::updateViewProps(jni::alias_ref<jni::JClass> /*
|
||||
}
|
||||
|
||||
// Update all props if they are dirty
|
||||
if (props->player.isDirty) {
|
||||
hybridView->setPlayer(props->player.value);
|
||||
props->player.isDirty = false;
|
||||
}
|
||||
if (props->autoplay.isDirty) {
|
||||
hybridView->setAutoplay(props->autoplay.value);
|
||||
props->autoplay.isDirty = false;
|
||||
|
||||
+6
@@ -26,6 +26,12 @@ import com.margelo.nitro.views.HybridView
|
||||
)
|
||||
abstract class HybridOmniViewSpec: HybridView() {
|
||||
// Properties
|
||||
@get:DoNotStrip
|
||||
@get:Keep
|
||||
@set:DoNotStrip
|
||||
@set:Keep
|
||||
abstract var player: HybridOmniPlayerSpec
|
||||
|
||||
@get:DoNotStrip
|
||||
@get:Keep
|
||||
@set:DoNotStrip
|
||||
|
||||
Reference in New Issue
Block a user