summaryrefslogtreecommitdiff
path: root/src/react-native-app/android/app
diff options
context:
space:
mode:
Diffstat (limited to 'src/react-native-app/android/app')
-rw-r--r--src/react-native-app/android/app/build.gradle132
-rw-r--r--src/react-native-app/android/app/debug.keystorebin0 -> 2257 bytes
-rw-r--r--src/react-native-app/android/app/proguard-rules.pro14
-rw-r--r--src/react-native-app/android/app/src/debug/AndroidManifest.xml7
-rw-r--r--src/react-native-app/android/app/src/main/AndroidManifest.xml33
-rw-r--r--src/react-native-app/android/app/src/main/ic_launcher-playstore.pngbin0 -> 50017 bytes
-rw-r--r--src/react-native-app/android/app/src/main/java/io/opentelemetry/reactnativeapp/MainActivity.kt61
-rw-r--r--src/react-native-app/android/app/src/main/java/io/opentelemetry/reactnativeapp/MainApplication.kt55
-rw-r--r--src/react-native-app/android/app/src/main/res/drawable-hdpi/splashscreen_image.pngbin0 -> 50017 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/drawable-mdpi/splashscreen_image.pngbin0 -> 44751 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/drawable-xhdpi/splashscreen_image.pngbin0 -> 50017 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.pngbin0 -> 50017 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.pngbin0 -> 50017 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/drawable/ic_launcher_background.xml74
-rw-r--r--src/react-native-app/android/app/src/main/res/drawable/rn_edit_text_material.xml37
-rw-r--r--src/react-native-app/android/app/src/main/res/drawable/splashscreen.xml3
-rw-r--r--src/react-native-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml5
-rw-r--r--src/react-native-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml5
-rw-r--r--src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.pngbin0 -> 2297 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.pngbin0 -> 3691 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.pngbin0 -> 4306 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.pngbin0 -> 1457 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.pngbin0 -> 2260 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.pngbin0 -> 2686 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.pngbin0 -> 3197 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.pngbin0 -> 5499 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.pngbin0 -> 6279 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.pngbin0 -> 5156 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.pngbin0 -> 9956 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.pngbin0 -> 10213 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.pngbin0 -> 7459 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.pngbin0 -> 15875 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.pngbin0 -> 15171 bytes
-rw-r--r--src/react-native-app/android/app/src/main/res/values-night/colors.xml1
-rw-r--r--src/react-native-app/android/app/src/main/res/values/colors.xml6
-rw-r--r--src/react-native-app/android/app/src/main/res/values/ic_launcher_background.xml4
-rw-r--r--src/react-native-app/android/app/src/main/res/values/strings.xml6
-rw-r--r--src/react-native-app/android/app/src/main/res/values/styles.xml17
38 files changed, 460 insertions, 0 deletions
diff --git a/src/react-native-app/android/app/build.gradle b/src/react-native-app/android/app/build.gradle
new file mode 100644
index 0000000..c0c3d72
--- /dev/null
+++ b/src/react-native-app/android/app/build.gradle
@@ -0,0 +1,132 @@
+apply plugin: "com.android.application"
+apply plugin: "org.jetbrains.kotlin.android"
+apply plugin: "com.facebook.react"
+
+def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath()
+
+/**
+ * This is the configuration block to customize your React Native Android app.
+ */
+react {
+ entryFile = file(["node", "-e", "require('expo/scripts/resolveAppEntry')", projectRoot, "android", "absolute"].execute(null, rootDir).text.trim())
+ reactNativeDir = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile()
+ hermesCommand = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + "/sdks/hermesc/%OS-BIN%/hermesc"
+ codegenDir = new File(["node", "--print", "require.resolve('@react-native/codegen/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile()
+
+ // Use Expo CLI to bundle the app, this ensures the Metro config
+ // works correctly with Expo projects.
+ cliFile = new File(["node", "--print", "require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })"].execute(null, rootDir).text.trim())
+ bundleCommand = "export:embed"
+}
+
+/**
+ * Set this to true to Run Proguard on Release builds to minify the Java bytecode.
+ */
+def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInReleaseBuilds') ?: false).toBoolean()
+
+/**
+ * The preferred build flavor of JavaScriptCore (JSC)
+ *
+ * For example, to use the international variant, you can use:
+ * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
+ *
+ * The international variant includes ICU i18n library and necessary data
+ * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
+ * give correct results when using with locales other than en-US. Note that
+ * this variant is about 6MiB larger per architecture than default.
+ */
+def jscFlavor = 'org.webkit:android-jsc:+'
+
+android {
+ ndkVersion rootProject.ext.ndkVersion
+
+ buildToolsVersion rootProject.ext.buildToolsVersion
+ compileSdk rootProject.ext.compileSdkVersion
+
+ namespace 'io.opentelemetry.reactnativeapp'
+ defaultConfig {
+ applicationId 'io.opentelemetry.reactnativeapp'
+ minSdkVersion rootProject.ext.minSdkVersion
+ targetSdkVersion rootProject.ext.targetSdkVersion
+ versionCode 1
+ versionName "1.0.0"
+ }
+ signingConfigs {
+ debug {
+ storeFile file('debug.keystore')
+ storePassword 'android'
+ keyAlias 'androiddebugkey'
+ keyPassword 'android'
+ }
+ }
+ buildTypes {
+ debug {
+ signingConfig signingConfigs.debug
+ }
+ release {
+ // Caution! In production, you need to generate your own keystore file.
+ // see https://reactnative.dev/docs/signed-apk-android.
+ signingConfig signingConfigs.debug
+ shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false)
+ minifyEnabled enableProguardInReleaseBuilds
+ proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
+ }
+ }
+ packagingOptions {
+ jniLibs {
+ useLegacyPackaging (findProperty('expo.useLegacyPackaging')?.toBoolean() ?: false)
+ }
+ }
+}
+
+// Apply static values from `gradle.properties` to the `android.packagingOptions`
+// Accepts values in comma delimited lists, example:
+// android.packagingOptions.pickFirsts=/LICENSE,**/picasa.ini
+["pickFirsts", "excludes", "merges", "doNotStrip"].each { prop ->
+ // Split option: 'foo,bar' -> ['foo', 'bar']
+ def options = (findProperty("android.packagingOptions.$prop") ?: "").split(",");
+ // Trim all elements in place.
+ for (i in 0..<options.size()) options[i] = options[i].trim();
+ // `[] - ""` is essentially `[""].filter(Boolean)` removing all empty strings.
+ options -= ""
+
+ if (options.length > 0) {
+ println "android.packagingOptions.$prop += $options ($options.length)"
+ // Ex: android.packagingOptions.pickFirsts += '**/SCCS/**'
+ options.each {
+ android.packagingOptions[prop] += it
+ }
+ }
+}
+
+dependencies {
+ // The version of react-native is set by the React Native Gradle Plugin
+ implementation("com.facebook.react:react-android")
+
+ def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true";
+ def isWebpEnabled = (findProperty('expo.webp.enabled') ?: "") == "true";
+ def isWebpAnimatedEnabled = (findProperty('expo.webp.animated') ?: "") == "true";
+
+ if (isGifEnabled) {
+ // For animated gif support
+ implementation("com.facebook.fresco:animated-gif:${reactAndroidLibs.versions.fresco.get()}")
+ }
+
+ if (isWebpEnabled) {
+ // For webp support
+ implementation("com.facebook.fresco:webpsupport:${reactAndroidLibs.versions.fresco.get()}")
+ if (isWebpAnimatedEnabled) {
+ // Animated webp support
+ implementation("com.facebook.fresco:animated-webp:${reactAndroidLibs.versions.fresco.get()}")
+ }
+ }
+
+ if (hermesEnabled.toBoolean()) {
+ implementation("com.facebook.react:hermes-android")
+ } else {
+ implementation jscFlavor
+ }
+}
+
+apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim(), "../native_modules.gradle");
+applyNativeModulesAppBuildGradle(project)
diff --git a/src/react-native-app/android/app/debug.keystore b/src/react-native-app/android/app/debug.keystore
new file mode 100644
index 0000000..364e105
--- /dev/null
+++ b/src/react-native-app/android/app/debug.keystore
Binary files differ
diff --git a/src/react-native-app/android/app/proguard-rules.pro b/src/react-native-app/android/app/proguard-rules.pro
new file mode 100644
index 0000000..551eb41
--- /dev/null
+++ b/src/react-native-app/android/app/proguard-rules.pro
@@ -0,0 +1,14 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the proguardFiles
+# directive in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# react-native-reanimated
+-keep class com.swmansion.reanimated.** { *; }
+-keep class com.facebook.react.turbomodule.** { *; }
+
+# Add any project specific keep options here:
diff --git a/src/react-native-app/android/app/src/debug/AndroidManifest.xml b/src/react-native-app/android/app/src/debug/AndroidManifest.xml
new file mode 100644
index 0000000..3ec2507
--- /dev/null
+++ b/src/react-native-app/android/app/src/debug/AndroidManifest.xml
@@ -0,0 +1,7 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
+
+ <application android:usesCleartextTraffic="true" tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" tools:replace="android:usesCleartextTraffic" />
+</manifest>
diff --git a/src/react-native-app/android/app/src/main/AndroidManifest.xml b/src/react-native-app/android/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..cb21516
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/AndroidManifest.xml
@@ -0,0 +1,33 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+ <uses-permission android:name="android.permission.INTERNET"/>
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
+ <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
+ <uses-permission android:name="android.permission.VIBRATE"/>
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+ <queries>
+ <intent>
+ <action android:name="android.intent.action.VIEW"/>
+ <category android:name="android.intent.category.BROWSABLE"/>
+ <data android:scheme="https"/>
+ </intent>
+ </queries>
+ <application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="true" android:theme="@style/AppTheme" android:usesCleartextTraffic="true">
+ <meta-data android:name="expo.modules.updates.ENABLED" android:value="false"/>
+ <meta-data android:name="expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH" android:value="ALWAYS"/>
+ <meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="0"/>
+ <activity android:name=".MainActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:theme="@style/Theme.App.SplashScreen" android:exported="true" android:screenOrientation="portrait">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN"/>
+ <category android:name="android.intent.category.LAUNCHER"/>
+ </intent-filter>
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW"/>
+ <category android:name="android.intent.category.DEFAULT"/>
+ <category android:name="android.intent.category.BROWSABLE"/>
+ <data android:scheme="myapp"/>
+ <data android:scheme="io.opentelemetry.reactnativeapp"/>
+ </intent-filter>
+ </activity>
+ <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" android:exported="false"/>
+ </application>
+</manifest>
diff --git a/src/react-native-app/android/app/src/main/ic_launcher-playstore.png b/src/react-native-app/android/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..cc4aaad
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/java/io/opentelemetry/reactnativeapp/MainActivity.kt b/src/react-native-app/android/app/src/main/java/io/opentelemetry/reactnativeapp/MainActivity.kt
new file mode 100644
index 0000000..8b533e9
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/java/io/opentelemetry/reactnativeapp/MainActivity.kt
@@ -0,0 +1,61 @@
+package io.opentelemetry.reactnativeapp
+
+import android.os.Build
+import android.os.Bundle
+
+import com.facebook.react.ReactActivity
+import com.facebook.react.ReactActivityDelegate
+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
+import com.facebook.react.defaults.DefaultReactActivityDelegate
+
+import expo.modules.ReactActivityDelegateWrapper
+
+class MainActivity : ReactActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ // Set the theme to AppTheme BEFORE onCreate to support
+ // coloring the background, status bar, and navigation bar.
+ // This is required for expo-splash-screen.
+ setTheme(R.style.AppTheme);
+ super.onCreate(null)
+ }
+
+ /**
+ * Returns the name of the main component registered from JavaScript. This is used to schedule
+ * rendering of the component.
+ */
+ override fun getMainComponentName(): String = "main"
+
+ /**
+ * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]
+ * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]
+ */
+ override fun createReactActivityDelegate(): ReactActivityDelegate {
+ return ReactActivityDelegateWrapper(
+ this,
+ BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,
+ object : DefaultReactActivityDelegate(
+ this,
+ mainComponentName,
+ fabricEnabled
+ ){})
+ }
+
+ /**
+ * Align the back button behavior with Android S
+ * where moving root activities to background instead of finishing activities.
+ * @see <a href="https://developer.android.com/reference/android/app/Activity#onBackPressed()">onBackPressed</a>
+ */
+ override fun invokeDefaultOnBackPressed() {
+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {
+ if (!moveTaskToBack(false)) {
+ // For non-root activities, use the default implementation to finish them.
+ super.invokeDefaultOnBackPressed()
+ }
+ return
+ }
+
+ // Use the default back button implementation on Android S
+ // because it's doing more than [Activity.moveTaskToBack] in fact.
+ super.invokeDefaultOnBackPressed()
+ }
+}
diff --git a/src/react-native-app/android/app/src/main/java/io/opentelemetry/reactnativeapp/MainApplication.kt b/src/react-native-app/android/app/src/main/java/io/opentelemetry/reactnativeapp/MainApplication.kt
new file mode 100644
index 0000000..75f2a2c
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/java/io/opentelemetry/reactnativeapp/MainApplication.kt
@@ -0,0 +1,55 @@
+package io.opentelemetry.reactnativeapp
+
+import android.app.Application
+import android.content.res.Configuration
+
+import com.facebook.react.PackageList
+import com.facebook.react.ReactApplication
+import com.facebook.react.ReactNativeHost
+import com.facebook.react.ReactPackage
+import com.facebook.react.ReactHost
+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load
+import com.facebook.react.defaults.DefaultReactNativeHost
+import com.facebook.soloader.SoLoader
+
+import expo.modules.ApplicationLifecycleDispatcher
+import expo.modules.ReactNativeHostWrapper
+
+class MainApplication : Application(), ReactApplication {
+
+ override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper(
+ this,
+ object : DefaultReactNativeHost(this) {
+ override fun getPackages(): List<ReactPackage> {
+ // Packages that cannot be autolinked yet can be added manually here, for example:
+ // packages.add(new MyReactNativePackage());
+ return PackageList(this).packages
+ }
+
+ override fun getJSMainModuleName(): String = ".expo/.virtual-metro-entry"
+
+ override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG
+
+ override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
+ override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED
+ }
+ )
+
+ override val reactHost: ReactHost
+ get() = ReactNativeHostWrapper.createReactHost(applicationContext, reactNativeHost)
+
+ override fun onCreate() {
+ super.onCreate()
+ SoLoader.init(this, false)
+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
+ // If you opted-in for the New Architecture, we load the native entry point for this app.
+ load()
+ }
+ ApplicationLifecycleDispatcher.onApplicationCreate(this)
+ }
+
+ override fun onConfigurationChanged(newConfig: Configuration) {
+ super.onConfigurationChanged(newConfig)
+ ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig)
+ }
+}
diff --git a/src/react-native-app/android/app/src/main/res/drawable-hdpi/splashscreen_image.png b/src/react-native-app/android/app/src/main/res/drawable-hdpi/splashscreen_image.png
new file mode 100644
index 0000000..cc4aaad
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/drawable-hdpi/splashscreen_image.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/drawable-mdpi/splashscreen_image.png b/src/react-native-app/android/app/src/main/res/drawable-mdpi/splashscreen_image.png
new file mode 100644
index 0000000..dcb46b9
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/drawable-mdpi/splashscreen_image.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png b/src/react-native-app/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png
new file mode 100644
index 0000000..cc4aaad
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png b/src/react-native-app/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png
new file mode 100644
index 0000000..cc4aaad
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png b/src/react-native-app/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png
new file mode 100644
index 0000000..cc4aaad
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/drawable/ic_launcher_background.xml b/src/react-native-app/android/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..ca3826a
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector
+ android:height="108dp"
+ android:width="108dp"
+ android:viewportHeight="108"
+ android:viewportWidth="108"
+ xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="#3DDC84"
+ android:pathData="M0,0h108v108h-108z"/>
+ <path android:fillColor="#00000000" android:pathData="M9,0L9,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,0L19,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M29,0L29,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M39,0L39,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M49,0L49,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M59,0L59,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M69,0L69,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M79,0L79,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M89,0L89,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M99,0L99,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,9L108,9"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,19L108,19"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,29L108,29"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,39L108,39"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,49L108,49"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,59L108,59"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,69L108,69"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,79L108,79"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,89L108,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,99L108,99"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,29L89,29"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,39L89,39"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,49L89,49"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,59L89,59"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,69L89,69"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,79L89,79"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M29,19L29,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M39,19L39,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M49,19L49,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M59,19L59,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M69,19L69,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M79,19L79,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+</vector>
diff --git a/src/react-native-app/android/app/src/main/res/drawable/rn_edit_text_material.xml b/src/react-native-app/android/app/src/main/res/drawable/rn_edit_text_material.xml
new file mode 100644
index 0000000..8f0aa55
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/drawable/rn_edit_text_material.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<inset xmlns:android="http://schemas.android.com/apk/res/android"
+ android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material"
+ android:insetRight="@dimen/abc_edit_text_inset_horizontal_material"
+ android:insetTop="@dimen/abc_edit_text_inset_top_material"
+ android:insetBottom="@dimen/abc_edit_text_inset_bottom_material"
+ >
+
+ <selector>
+ <!--
+ This file is a copy of abc_edit_text_material (https://bit.ly/3k8fX7I).
+ The item below with state_pressed="false" and state_focused="false" causes a NullPointerException.
+ NullPointerException:tempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)'
+
+ <item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
+
+ For more info, see https://bit.ly/3CdLStv (react-native/pull/29452) and https://bit.ly/3nxOMoR.
+ -->
+ <item android:state_enabled="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
+ <item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha"/>
+ </selector>
+
+</inset>
diff --git a/src/react-native-app/android/app/src/main/res/drawable/splashscreen.xml b/src/react-native-app/android/app/src/main/res/drawable/splashscreen.xml
new file mode 100644
index 0000000..bab718f
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/drawable/splashscreen.xml
@@ -0,0 +1,3 @@
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:drawable="@color/splashscreen_background"/>
+</layer-list>
diff --git a/src/react-native-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/src/react-native-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..80b730f
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@color/ic_launcher_background"/>
+ <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
+</adaptive-icon>
diff --git a/src/react-native-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/src/react-native-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..80b730f
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@color/ic_launcher_background"/>
+ <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
+</adaptive-icon>
diff --git a/src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..91ef4d2
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..1a39537
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000..a8c4d20
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..9ee6bda
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..6086e64
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000..b95d1b4
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..cbd068f
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..355cb1c
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..9cc7421
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..91ff16d
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..d0dfe92
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..50643b3
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..4fa23a3
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..ce2d1b2
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..59e8b6b
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/src/react-native-app/android/app/src/main/res/values-night/colors.xml b/src/react-native-app/android/app/src/main/res/values-night/colors.xml
new file mode 100644
index 0000000..ea100ea
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/values-night/colors.xml
@@ -0,0 +1 @@
+<resources/>
diff --git a/src/react-native-app/android/app/src/main/res/values/colors.xml b/src/react-native-app/android/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..c68b052
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/values/colors.xml
@@ -0,0 +1,6 @@
+<resources>
+ <color name="splashscreen_background">#ffffff</color>
+ <color name="iconBackground">#ffffff</color>
+ <color name="colorPrimary">#023c69</color>
+ <color name="colorPrimaryDark">#ffffff</color>
+</resources>
diff --git a/src/react-native-app/android/app/src/main/res/values/ic_launcher_background.xml b/src/react-native-app/android/app/src/main/res/values/ic_launcher_background.xml
new file mode 100644
index 0000000..f42ada6
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/values/ic_launcher_background.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <color name="ic_launcher_background">#FFFFFF</color>
+</resources>
diff --git a/src/react-native-app/android/app/src/main/res/values/strings.xml b/src/react-native-app/android/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..c35abcb
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/values/strings.xml
@@ -0,0 +1,6 @@
+<resources>
+ <string name="app_name">Astronomy Shop App</string>
+ <string name="expo_splash_screen_resize_mode" translatable="false">contain</string>
+ <string name="expo_splash_screen_status_bar_translucent" translatable="false">false</string>
+ <string name="expo_system_ui_user_interface_style" translatable="false">automatic</string>
+</resources>
diff --git a/src/react-native-app/android/app/src/main/res/values/styles.xml b/src/react-native-app/android/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..333e628
--- /dev/null
+++ b/src/react-native-app/android/app/src/main/res/values/styles.xml
@@ -0,0 +1,17 @@
+<resources xmlns:tools="http://schemas.android.com/tools">
+ <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
+ <item name="android:textColor">@android:color/black</item>
+ <item name="android:editTextStyle">@style/ResetEditText</item>
+ <item name="android:editTextBackground">@drawable/rn_edit_text_material</item>
+ <item name="colorPrimary">@color/colorPrimary</item>
+ <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
+ </style>
+ <style name="ResetEditText" parent="@android:style/Widget.EditText">
+ <item name="android:padding">0dp</item>
+ <item name="android:textColorHint">#c8c8c8</item>
+ <item name="android:textColor">@android:color/black</item>
+ </style>
+ <style name="Theme.App.SplashScreen" parent="AppTheme">
+ <item name="android:windowBackground">@drawable/splashscreen</item>
+ </style>
+</resources>