@amazon-devices/expo-image 2.0.9000000000 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CMakeLists.txt +80 -58
- package/README.kepler.md +1 -0
- package/build/ExpoImageModules.kepler.d.ts.map +1 -1
- package/build/ExpoImageModules.kepler.js +1 -1
- package/build/ExpoImageModules.kepler.js.map +1 -1
- package/build/ImageViewNativeComponent.js +1 -1
- package/build/ImageViewNativeComponent.js.map +1 -1
- package/kepler/AutoLinkInit.cpp +17 -0
- package/kepler/Constants.h +21 -0
- package/kepler/ExpoImage/ExpoImageTurboModule.cpp +148 -0
- package/kepler/ExpoImage/ExpoImageTurboModule.h +41 -0
- package/kepler/ExpoImage/PrefetchListener.cpp +45 -0
- package/kepler/ExpoImage/PrefetchListener.h +40 -0
- package/kepler/ExpoImageComponent/AccessibilityDelegate.cpp +33 -0
- package/kepler/ExpoImageComponent/AccessibilityDelegate.h +30 -0
- package/kepler/ExpoImageComponent/ExpoImageComponentViewManager.cpp +132 -0
- package/kepler/ExpoImageComponent/ExpoImageComponentViewManager.h +66 -0
- package/kepler/ExpoImageComponent/ExpoImageStore.h +102 -0
- package/kepler/ExpoImageComponent/ExpoImageView.cpp +556 -0
- package/kepler/ExpoImageComponent/ExpoImageView.h +186 -0
- package/kepler/ExpoImageComponent/HashImageDecoder.cpp +91 -0
- package/kepler/ExpoImageComponent/HashImageDecoder.h +18 -0
- package/kepler/ExpoImageComponent/ImageLoadListeners.cpp +73 -0
- package/kepler/ExpoImageComponent/ImageLoadListeners.h +52 -0
- package/kepler/ExpoImageComponent/TransitionAnimator.cpp +113 -0
- package/kepler/ExpoImageComponent/TransitionAnimator.h +32 -0
- package/kepler/ImageSourceInfo.h +21 -0
- package/kepler/ViewManagerFactory.cpp +36 -0
- package/kepler/ViewManagerFactory.h +29 -0
- package/kepler/blurhash/common.h +11 -10
- package/kepler/blurhash/decode.cpp +26 -16
- package/kepler/contentposition/ImageContentPosition.cpp +50 -69
- package/kepler/contentposition/ImageContentPosition.h +36 -26
- package/kepler/enums/ImageContentFit.h +47 -15
- package/kepler/enums/ImagePriority.h +12 -13
- package/kepler/test/blurhash/decode.cpp +36 -27
- package/kepler/test/contentposition/ImageContentPosition.cpp +70 -76
- package/kepler/test/thumbhash/decode.cpp +18 -10
- package/kepler/test/utils/Base64.cpp +73 -0
- package/kepler/test/utils/ColorUtils.cpp +53 -0
- package/kepler/test/utils/SourceSelection.cpp +87 -0
- package/kepler/thumbhash/decode.cpp +7 -16
- package/kepler/utils/Base64.cpp +85 -0
- package/kepler/utils/Base64.h +36 -0
- package/kepler/utils/ColorUtils.h +26 -0
- package/kepler/utils/SourceSelection.cpp +80 -0
- package/kepler/utils/SourceSelection.h +65 -0
- package/lib/aarch64-release/com.amazon.kepler.uitoolkit.react.expoimageapp.so +0 -0
- package/lib/aarch64-release/libexpo-image-3.so +0 -0
- package/lib/armv7-release/com.amazon.kepler.uitoolkit.react.expoimageapp.so +0 -0
- package/lib/armv7-release/libexpo-image-3.so +0 -0
- package/lib/x86_64-release/com.amazon.kepler.uitoolkit.react.expoimageapp.so +0 -0
- package/lib/x86_64-release/libexpo-image-3.so +0 -0
- package/package.json +1 -1
- package/react-native.config.js +12 -4
- package/src/ExpoImageModules.kepler.ts +1 -1
- package/src/ImageViewNativeComponent.ts +1 -1
- package/kepler/ExpoImage.cpp +0 -63
- package/kepler/ExpoImage.h +0 -29
- package/kepler/ExpoImageCacheHandler.cpp +0 -15
- package/kepler/ExpoImageCacheHandler.h +0 -28
- package/kepler/ExpoImageComponent.cpp +0 -579
- package/kepler/ExpoImageComponent.h +0 -199
- package/kepler/ImageWrapper/BlurhashImageWrapper.cpp +0 -37
- package/kepler/ImageWrapper/BlurhashImageWrapper.h +0 -23
- package/kepler/ImageWrapper/CacheImageWrapper.cpp +0 -80
- package/kepler/ImageWrapper/CacheImageWrapper.h +0 -41
- package/kepler/ImageWrapper/HashImageWrapper.cpp +0 -21
- package/kepler/ImageWrapper/HashImageWrapper.h +0 -22
- package/kepler/ImageWrapper/ImageWrapper.cpp +0 -24
- package/kepler/ImageWrapper/ImageWrapper.h +0 -33
- package/kepler/ImageWrapper/LocalImageWrapper.cpp +0 -61
- package/kepler/ImageWrapper/LocalImageWrapper.h +0 -30
- package/kepler/ImageWrapper/ThumbhashImageWrapper.cpp +0 -33
- package/kepler/ImageWrapper/ThumbhashImageWrapper.h +0 -20
- package/kepler/KeplerImageViewComponent.h +0 -64
- package/kepler/KeplerInit.cpp +0 -35
- package/kepler/managers/ExpoImageManager.cpp +0 -38
- package/kepler/managers/ExpoImageManager.h +0 -23
- package/kepler/test/ExpoImage.cpp +0 -73
- package/kepler/test/ExpoImageComponent.cpp +0 -304
- package/kepler/test/managers/ExpoImageManager.cpp +0 -39
- package/kepler/test/utils/LoaderDelegate.cpp +0 -130
- package/kepler/utils/PlaceholderImageLoaderDelegate.cpp +0 -26
- package/kepler/utils/PlaceholderImageLoaderDelegate.h +0 -26
- package/kepler/utils/PrefetchImageLoaderDelegate.cpp +0 -55
- package/kepler/utils/PrefetchImageLoaderDelegate.h +0 -35
- package/kepler/utils/SourceImageLoaderDelegate.cpp +0 -47
- package/kepler/utils/SourceImageLoaderDelegate.h +0 -42
- package/kepler/utils/SourceImageLoaderDelegateEmitter.cpp +0 -15
- package/kepler/utils/SourceImageLoaderDelegateEmitter.h +0 -28
- package/kepler-compatibility.json +0 -6
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
#include <KeplerScript/components/EventPayloadBuilder.h>
|
|
2
|
-
#include <Volta/utils/Image.h>
|
|
3
|
-
#include <gmock/gmock-actions.h>
|
|
4
|
-
#include <gmock/gmock.h>
|
|
5
|
-
#include <gtest/gtest.h>
|
|
6
|
-
|
|
7
|
-
#include <memory>
|
|
8
|
-
|
|
9
|
-
#include "../../utils/PlaceholderImageLoaderDelegate.h"
|
|
10
|
-
#include "../../utils/PrefetchImageLoaderDelegate.h"
|
|
11
|
-
#include "../../utils/SourceImageLoaderDelegate.h"
|
|
12
|
-
#include "../../utils/SourceImageLoaderDelegateEmitter.h"
|
|
13
|
-
#include "catch.hpp"
|
|
14
|
-
|
|
15
|
-
namespace {
|
|
16
|
-
|
|
17
|
-
std::unique_ptr<volta::graphics::Image> mockImage() {
|
|
18
|
-
auto data = std::make_unique<uint8_t[]>(4);
|
|
19
|
-
return volta::graphics::Image::makeRasterImage(volta::graphics::Size{1, 1}, std::move(data), 4);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
class MockSourceImageLoaderDelegateEmitter : public ISourceImageLoaderDelegateEmitter {
|
|
23
|
-
public:
|
|
24
|
-
MockSourceImageLoaderDelegateEmitter() = default;
|
|
25
|
-
|
|
26
|
-
MOCK_METHOD(void, emit, (const std::string& eventName), (const override));
|
|
27
|
-
MOCK_METHOD(void, emit, (const std::string& eventName, const std::function<void(volta::react::EventPayloadBuilder&)>& builderFunc), (const overide));
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
} // namespace
|
|
31
|
-
|
|
32
|
-
TEST_CASE("PlaceholderImageLoaderDelegate") {
|
|
33
|
-
SECTION("notify on success") {
|
|
34
|
-
bool callbackCalled = false;
|
|
35
|
-
PlaceholderImageLoaderDelegate delegate([enabled = &callbackCalled]() { *enabled = true; });
|
|
36
|
-
|
|
37
|
-
auto mockImg = mockImage();
|
|
38
|
-
delegate.notifyImageLoadSuccess(*mockImg);
|
|
39
|
-
CHECK(callbackCalled);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
SECTION("notify on error") {
|
|
43
|
-
bool callbackCalled = false;
|
|
44
|
-
PlaceholderImageLoaderDelegate delegate([enabled = &callbackCalled]() { *enabled = true; });
|
|
45
|
-
|
|
46
|
-
delegate.notifyImageLoadFailure(volta::ImageLoadError::DecodeError);
|
|
47
|
-
CHECK(callbackCalled);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
TEST_CASE("PrefetchImageLoaderDelegate") {
|
|
52
|
-
SECTION("notify on success") {
|
|
53
|
-
bool callbackCalled = false;
|
|
54
|
-
bool success = false;
|
|
55
|
-
const int expectedImages = 2;
|
|
56
|
-
PrefetchImageLoaderDelegate delegate(
|
|
57
|
-
expectedImages,
|
|
58
|
-
[called = &callbackCalled, isSuccess = &success](bool success) {
|
|
59
|
-
*called = true;
|
|
60
|
-
*isSuccess = success;
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
auto mockImg = mockImage();
|
|
64
|
-
|
|
65
|
-
delegate.notifyImageLoadSuccess(*mockImg);
|
|
66
|
-
CHECK(!callbackCalled);
|
|
67
|
-
CHECK(!success);
|
|
68
|
-
|
|
69
|
-
delegate.notifyImageLoadSuccess(*mockImg);
|
|
70
|
-
CHECK(callbackCalled);
|
|
71
|
-
CHECK(success);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
SECTION("notify on error") {
|
|
75
|
-
bool callbackCalled = false;
|
|
76
|
-
bool success = false;
|
|
77
|
-
const int expectedImages = 2;
|
|
78
|
-
|
|
79
|
-
PrefetchImageLoaderDelegate delegate(
|
|
80
|
-
expectedImages,
|
|
81
|
-
[called = &callbackCalled, isSuccess = &success](bool success) {
|
|
82
|
-
*called = true;
|
|
83
|
-
*isSuccess = success;
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
delegate.notifyImageLoadFailure(volta::ImageLoadError::DecodeError);
|
|
87
|
-
CHECK(callbackCalled);
|
|
88
|
-
CHECK(!success);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
TEST_CASE("SourceImageLoaderDelegate") {
|
|
93
|
-
SECTION("notify on progress") {
|
|
94
|
-
auto emitter = std::make_unique<MockSourceImageLoaderDelegateEmitter>();
|
|
95
|
-
|
|
96
|
-
EXPECT_CALL(*emitter, emit("progress", testing::_)).Times(1);
|
|
97
|
-
|
|
98
|
-
bool loaded = false;
|
|
99
|
-
|
|
100
|
-
SourceImageLoaderDelegate delegate(std::move(emitter), [loaded = &loaded]() { *loaded = true; });
|
|
101
|
-
|
|
102
|
-
delegate.notifyImageLoadProgress(50.f);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
SECTION("notify on success") {
|
|
106
|
-
auto emitter = std::make_unique<MockSourceImageLoaderDelegateEmitter>();
|
|
107
|
-
EXPECT_CALL(*emitter, emit("load")).Times(1);
|
|
108
|
-
EXPECT_CALL(*emitter, emit("loadEnd")).Times(1);
|
|
109
|
-
|
|
110
|
-
bool loaded = false;
|
|
111
|
-
|
|
112
|
-
SourceImageLoaderDelegate delegate(std::move(emitter), [loaded = &loaded]() { *loaded = true; });
|
|
113
|
-
|
|
114
|
-
auto mockImg = mockImage();
|
|
115
|
-
|
|
116
|
-
delegate.notifyImageLoadSuccess(*mockImg);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
SECTION("notify on error") {
|
|
120
|
-
auto emitter = std::make_unique<MockSourceImageLoaderDelegateEmitter>();
|
|
121
|
-
EXPECT_CALL(*emitter, emit("error")).Times(1);
|
|
122
|
-
EXPECT_CALL(*emitter, emit("loadEnd")).Times(1);
|
|
123
|
-
|
|
124
|
-
bool loaded = false;
|
|
125
|
-
|
|
126
|
-
SourceImageLoaderDelegate delegate(std::move(emitter), [loaded = &loaded]() { *loaded = true; });
|
|
127
|
-
|
|
128
|
-
delegate.notifyImageLoadFailure(volta::ImageLoadError::DecodeError);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
-
*
|
|
4
|
-
* PROPRIETARY/CONFIDENTIAL
|
|
5
|
-
*
|
|
6
|
-
* Use is subject to license terms.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
#include "PlaceholderImageLoaderDelegate.h"
|
|
10
|
-
|
|
11
|
-
PlaceholderImageLoaderDelegate::PlaceholderImageLoaderDelegate(std::function<void()> onLoad) : onLoad_(onLoad){};
|
|
12
|
-
|
|
13
|
-
void PlaceholderImageLoaderDelegate::notifyImageLoadStart(){};
|
|
14
|
-
|
|
15
|
-
void PlaceholderImageLoaderDelegate::notifyImageLoadProgress(float progress) {}
|
|
16
|
-
|
|
17
|
-
void PlaceholderImageLoaderDelegate::notifyImageLoadSuccess(volta::graphics::Image) {
|
|
18
|
-
onLoad_();
|
|
19
|
-
}
|
|
20
|
-
void PlaceholderImageLoaderDelegate::notifyImageLoadSuccess(volta::image::ImageRef) {
|
|
21
|
-
onLoad_();
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
void PlaceholderImageLoaderDelegate::notifyImageLoadFailure(volta::ImageLoadError) {
|
|
25
|
-
onLoad_();
|
|
26
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
-
*
|
|
4
|
-
* PROPRIETARY/CONFIDENTIAL
|
|
5
|
-
*
|
|
6
|
-
* Use is subject to license terms.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
#pragma once
|
|
10
|
-
|
|
11
|
-
#include <KeplerScript/utils/image/KeplerScriptImageLoaderDelegate.h>
|
|
12
|
-
#include <Volta/utils/Image.h>
|
|
13
|
-
|
|
14
|
-
class PlaceholderImageLoaderDelegate : public volta::IImageLoaderDelegate {
|
|
15
|
-
public:
|
|
16
|
-
PlaceholderImageLoaderDelegate(std::function<void()> onLoad);
|
|
17
|
-
|
|
18
|
-
void notifyImageLoadStart() override;
|
|
19
|
-
void notifyImageLoadProgress(float progress) override;
|
|
20
|
-
void notifyImageLoadSuccess(volta::graphics::Image) override;
|
|
21
|
-
void notifyImageLoadSuccess(volta::image::ImageRef) override;
|
|
22
|
-
void notifyImageLoadFailure(volta::ImageLoadError) override;
|
|
23
|
-
|
|
24
|
-
private:
|
|
25
|
-
std::function<void()> onLoad_;
|
|
26
|
-
};
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
-
*
|
|
4
|
-
* PROPRIETARY/CONFIDENTIAL
|
|
5
|
-
*
|
|
6
|
-
* Use is subject to license terms.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
#include "PrefetchImageLoaderDelegate.h"
|
|
10
|
-
|
|
11
|
-
#include <KeplerScript/appinit/KeplerScriptApplication.h>
|
|
12
|
-
#include <KeplerScript/logger/KPLog.h>
|
|
13
|
-
|
|
14
|
-
PrefetchImageLoaderDelegate::PrefetchImageLoaderDelegate(int imagesToLoad, const std::function<void(bool)>& onFinish) :
|
|
15
|
-
imagesToLoad_(imagesToLoad),
|
|
16
|
-
onFinish_(onFinish){};
|
|
17
|
-
|
|
18
|
-
void PrefetchImageLoaderDelegate::notifyImageLoadStart() {
|
|
19
|
-
volta::react::KPLog.debug("ExpoImage :: prefetch LoadStart");
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
void PrefetchImageLoaderDelegate::notifyImageLoadProgress(float progress) {
|
|
23
|
-
volta::react::KPLog.debug("ExpoImage :: prefetch LoadProgress {}", progress);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
void PrefetchImageLoaderDelegate::notifyImageLoadSuccess(volta::graphics::Image) {
|
|
27
|
-
volta::react::KPLog.debug("ExpoImage :: prefetch LoadSuccess");
|
|
28
|
-
imageLoaded();
|
|
29
|
-
}
|
|
30
|
-
void PrefetchImageLoaderDelegate::notifyImageLoadSuccess(volta::image::ImageRef) {
|
|
31
|
-
volta::react::KPLog.debug("ExpoImage :: prefetch LoadSuccess");
|
|
32
|
-
imageLoaded();
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
void PrefetchImageLoaderDelegate::notifyImageLoadFailure(volta::ImageLoadError) {
|
|
36
|
-
volta::react::KPLog.debug("ExpoImage :: prefetch LoadFailure");
|
|
37
|
-
imageErrored();
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
void PrefetchImageLoaderDelegate::onFinish(bool success) {
|
|
41
|
-
volta::react::KPLog.debug("ExpoImage :: onFinish {} {}", success, isResolved_);
|
|
42
|
-
if (!isResolved_) {
|
|
43
|
-
isResolved_ = true;
|
|
44
|
-
onFinish_(success);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
void PrefetchImageLoaderDelegate::imageLoaded() {
|
|
49
|
-
imagesLoaded_++;
|
|
50
|
-
if (imagesLoaded_ == imagesToLoad_) onFinish(true);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
void PrefetchImageLoaderDelegate::imageErrored() {
|
|
54
|
-
onFinish(false);
|
|
55
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
-
*
|
|
4
|
-
* PROPRIETARY/CONFIDENTIAL
|
|
5
|
-
*
|
|
6
|
-
* Use is subject to license terms.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
#pragma once
|
|
10
|
-
|
|
11
|
-
#include <KeplerScript/components/KeplerViewComponentEventEmitter.h>
|
|
12
|
-
#include <KeplerScript/utils/image/KeplerScriptImageLoaderDelegate.h>
|
|
13
|
-
#include <Volta/utils/Image.h>
|
|
14
|
-
|
|
15
|
-
#include <memory>
|
|
16
|
-
|
|
17
|
-
class PrefetchImageLoaderDelegate : public volta::IImageLoaderDelegate {
|
|
18
|
-
public:
|
|
19
|
-
PrefetchImageLoaderDelegate(int imagesToLoad, const std::function<void(bool)>& onFinish);
|
|
20
|
-
void notifyImageLoadStart() override;
|
|
21
|
-
void notifyImageLoadProgress(float progress) override;
|
|
22
|
-
void notifyImageLoadSuccess(volta::graphics::Image) override;
|
|
23
|
-
void notifyImageLoadSuccess(volta::image::ImageRef) override;
|
|
24
|
-
void notifyImageLoadFailure(volta::ImageLoadError) override;
|
|
25
|
-
|
|
26
|
-
private:
|
|
27
|
-
void imageLoaded();
|
|
28
|
-
void imageErrored();
|
|
29
|
-
void onFinish(bool success);
|
|
30
|
-
|
|
31
|
-
std::function<void(bool)> onFinish_;
|
|
32
|
-
int imagesToLoad_ = 0;
|
|
33
|
-
int imagesLoaded_ = 0;
|
|
34
|
-
bool isResolved_ = false;
|
|
35
|
-
};
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
-
*
|
|
4
|
-
* PROPRIETARY/CONFIDENTIAL
|
|
5
|
-
*
|
|
6
|
-
* Use is subject to license terms.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
#include "SourceImageLoaderDelegate.h"
|
|
10
|
-
|
|
11
|
-
#include <KeplerScript/components/EventPayloadBuilder.h>
|
|
12
|
-
|
|
13
|
-
SourceImageLoaderDelegate::SourceImageLoaderDelegate(
|
|
14
|
-
const std::shared_ptr<volta::react::KeplerViewComponentEventEmitter>& eventEmitter,
|
|
15
|
-
const std::function<void()>& onLoad) :
|
|
16
|
-
eventEmitter_(std::make_unique<SourceImageLoaderDelegateEmitter>(eventEmitter)),
|
|
17
|
-
onLoad_(onLoad){};
|
|
18
|
-
|
|
19
|
-
void SourceImageLoaderDelegate::notifyImageLoadStart() {
|
|
20
|
-
eventEmitter_->emit("loadStart");
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
void SourceImageLoaderDelegate::notifyImageLoadProgress(float progress) {
|
|
24
|
-
constexpr int32_t total = 10000;
|
|
25
|
-
|
|
26
|
-
eventEmitter_->emit("progress", [progress](volta::react::EventPayloadBuilder& eventPayloadBuilder) {
|
|
27
|
-
eventPayloadBuilder.insert("loaded", static_cast<int>(progress * total));
|
|
28
|
-
eventPayloadBuilder.insert("total", total);
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
void SourceImageLoaderDelegate::notifyImageLoadSuccess(volta::graphics::Image) {
|
|
33
|
-
eventEmitter_->emit("load");
|
|
34
|
-
eventEmitter_->emit("loadEnd");
|
|
35
|
-
onLoad_();
|
|
36
|
-
}
|
|
37
|
-
void SourceImageLoaderDelegate::notifyImageLoadSuccess(volta::image::ImageRef) {
|
|
38
|
-
eventEmitter_->emit("load");
|
|
39
|
-
eventEmitter_->emit("loadEnd");
|
|
40
|
-
onLoad_();
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
void SourceImageLoaderDelegate::notifyImageLoadFailure(volta::ImageLoadError) {
|
|
44
|
-
eventEmitter_->emit("error");
|
|
45
|
-
eventEmitter_->emit("loadEnd");
|
|
46
|
-
onLoad_();
|
|
47
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
-
*
|
|
4
|
-
* PROPRIETARY/CONFIDENTIAL
|
|
5
|
-
*
|
|
6
|
-
* Use is subject to license terms.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
#pragma once
|
|
10
|
-
|
|
11
|
-
#include <KeplerScript/components/EventPayloadBuilder.h>
|
|
12
|
-
#include <KeplerScript/components/KeplerViewComponentEventEmitter.h>
|
|
13
|
-
#include <KeplerScript/utils/image/KeplerScriptImageLoaderDelegate.h>
|
|
14
|
-
#include <Volta/utils/Image.h>
|
|
15
|
-
|
|
16
|
-
#include "SourceImageLoaderDelegateEmitter.h"
|
|
17
|
-
|
|
18
|
-
#include <memory>
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
class SourceImageLoaderDelegate : public volta::IImageLoaderDelegate {
|
|
22
|
-
public:
|
|
23
|
-
SourceImageLoaderDelegate(
|
|
24
|
-
const std::shared_ptr<volta::react::KeplerViewComponentEventEmitter>& eventEmitter,
|
|
25
|
-
const std::function<void()>& onLoad);
|
|
26
|
-
|
|
27
|
-
#ifdef UNIT_TEST
|
|
28
|
-
SourceImageLoaderDelegate(
|
|
29
|
-
std::unique_ptr<ISourceImageLoaderDelegateEmitter>&& emitter,
|
|
30
|
-
const std::function<void()>& onLoad) : eventEmitter_{std::move(emitter)}, onLoad_{onLoad} {}
|
|
31
|
-
#endif
|
|
32
|
-
|
|
33
|
-
void notifyImageLoadStart() override;
|
|
34
|
-
void notifyImageLoadProgress(float progress) override;
|
|
35
|
-
void notifyImageLoadSuccess(volta::graphics::Image) override;
|
|
36
|
-
void notifyImageLoadSuccess(volta::image::ImageRef) override;
|
|
37
|
-
void notifyImageLoadFailure(volta::ImageLoadError) override;
|
|
38
|
-
|
|
39
|
-
private:
|
|
40
|
-
std::unique_ptr<ISourceImageLoaderDelegateEmitter> eventEmitter_;
|
|
41
|
-
std::function<void()> onLoad_;
|
|
42
|
-
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
#include "SourceImageLoaderDelegateEmitter.h"
|
|
2
|
-
|
|
3
|
-
SourceImageLoaderDelegateEmitter::SourceImageLoaderDelegateEmitter(
|
|
4
|
-
const std::shared_ptr<volta::react::KeplerViewComponentEventEmitter>& eventEmitter) :
|
|
5
|
-
eventEmitter_{eventEmitter} {}
|
|
6
|
-
|
|
7
|
-
void SourceImageLoaderDelegateEmitter::emit(const std::string& eventName) const {
|
|
8
|
-
eventEmitter_->emit(eventName);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
void SourceImageLoaderDelegateEmitter::emit(
|
|
12
|
-
const std::string& eventName,
|
|
13
|
-
const std::function<void(volta::react::EventPayloadBuilder&)>& builderFunc) const {
|
|
14
|
-
eventEmitter_->emit(eventName, builderFunc);
|
|
15
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <KeplerScript/components/EventPayloadBuilder.h>
|
|
4
|
-
#include <KeplerScript/components/KeplerViewComponentEventEmitter.h>
|
|
5
|
-
|
|
6
|
-
class ISourceImageLoaderDelegateEmitter {
|
|
7
|
-
public:
|
|
8
|
-
virtual ~ISourceImageLoaderDelegateEmitter() = default;
|
|
9
|
-
|
|
10
|
-
virtual void emit(const std::string& eventName) const = 0;
|
|
11
|
-
|
|
12
|
-
virtual void emit(
|
|
13
|
-
const std::string& eventName,
|
|
14
|
-
const std::function<void(volta::react::EventPayloadBuilder&)>& builderFunc) const = 0;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
class SourceImageLoaderDelegateEmitter : public ISourceImageLoaderDelegateEmitter {
|
|
18
|
-
public:
|
|
19
|
-
explicit SourceImageLoaderDelegateEmitter(
|
|
20
|
-
const std::shared_ptr<volta::react::KeplerViewComponentEventEmitter>& eventEmitter);
|
|
21
|
-
|
|
22
|
-
void emit(const std::string& eventName) const override;
|
|
23
|
-
|
|
24
|
-
void emit(const std::string& eventName, const std::function<void(volta::react::EventPayloadBuilder&)>& builderFunc) const override;
|
|
25
|
-
|
|
26
|
-
private:
|
|
27
|
-
std::shared_ptr<volta::react::KeplerViewComponentEventEmitter> eventEmitter_;
|
|
28
|
-
};
|