robosats/mobile/android/app/src/main/jni/MainComponentsRegistry.cpp
Reckless_Satoshi 7b8fcb3285 Add android webview app (#259)
* Add android build workflow

* Initial webview on tsx template

* Insert ReactJS app from local

* Add Android app icon by @red_purdy (#174)

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

Co-authored-by: RedPurdy <104675727+RedPurdy@users.noreply.github.com>

* Fix local reactjs

* Add setup guide. Bundled dev main.js

* Add react native tor

* Move Android CHANGELOG.md to /mobile

* Add torified webview in react-native (#247)

* Add android build workflow

* Android Tor Requests

* Fetching internal files (i18n)

* react-native-tor does not implement PUT

* Get Files from Tor

* Revert "Add android build workflow"

This reverts commit 340bcf8d1c8703af31dddf12a8762d39a967b160.

* Fix Rebase Removals

* External sources

* react-native-tor crashes

* Last Refactor

* Fix/revert setup guide

* Add /mobile as volume to npm-dev container

On the fully dockerized dev environment the npm process cannot save files outside of /frontend directory. Now it can also save the builds to /mobile

* Fix UsafeAlert

* Run prettier

* Run lint:fix

* Main Profile Image fix

* Remove Tor Requests limitation

Co-authored-by: Reckless_Satoshi <reckless.satoshi@protonmail.com>

Co-authored-by: RedPurdy <104675727+RedPurdy@users.noreply.github.com>
Co-authored-by: KoalaSat <yv1vtrul@duck.com>
2022-09-28 12:08:16 +00:00

62 lines
2.0 KiB
C++

#include "MainComponentsRegistry.h"
#include <CoreComponentsRegistry.h>
#include <fbjni/fbjni.h>
#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
#include <react/renderer/components/rncore/ComponentDescriptors.h>
namespace facebook {
namespace react {
MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}
std::shared_ptr<ComponentDescriptorProviderRegistry const>
MainComponentsRegistry::sharedProviderRegistry() {
auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();
// Custom Fabric Components go here. You can register custom
// components coming from your App or from 3rd party libraries here.
//
// providerRegistry->add(concreteComponentDescriptorProvider<
// AocViewerComponentDescriptor>());
return providerRegistry;
}
jni::local_ref<MainComponentsRegistry::jhybriddata>
MainComponentsRegistry::initHybrid(
jni::alias_ref<jclass>,
ComponentFactory *delegate) {
auto instance = makeCxxInstance(delegate);
auto buildRegistryFunction =
[](EventDispatcher::Weak const &eventDispatcher,
ContextContainer::Shared const &contextContainer)
-> ComponentDescriptorRegistry::Shared {
auto registry = MainComponentsRegistry::sharedProviderRegistry()
->createComponentDescriptorRegistry(
{eventDispatcher, contextContainer});
auto mutableRegistry =
std::const_pointer_cast<ComponentDescriptorRegistry>(registry);
mutableRegistry->setFallbackComponentDescriptor(
std::make_shared<UnimplementedNativeViewComponentDescriptor>(
ComponentDescriptorParameters{
eventDispatcher, contextContainer, nullptr}));
return registry;
};
delegate->buildRegistryFunction = buildRegistryFunction;
return instance;
}
void MainComponentsRegistry::registerNatives() {
registerHybrid({
makeNativeMethod("initHybrid", MainComponentsRegistry::initHybrid),
});
}
} // namespace react
} // namespace facebook