diff options
Diffstat (limited to 'android/app')
20 files changed, 278 insertions, 0 deletions
diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..d969418 --- /dev/null +++ b/android/app/build.gradle | |||
| @@ -0,0 +1,119 @@ | |||
| 1 | apply plugin: "com.android.application" | ||
| 2 | apply plugin: "org.jetbrains.kotlin.android" | ||
| 3 | apply plugin: "com.facebook.react" | ||
| 4 | |||
| 5 | /** | ||
| 6 | * This is the configuration block to customize your React Native Android app. | ||
| 7 | * By default you don't need to apply any configuration, just uncomment the lines you need. | ||
| 8 | */ | ||
| 9 | react { | ||
| 10 | /* Folders */ | ||
| 11 | // The root of your project, i.e. where "package.json" lives. Default is '..' | ||
| 12 | // root = file("../") | ||
| 13 | // The folder where the react-native NPM package is. Default is ../node_modules/react-native | ||
| 14 | // reactNativeDir = file("../node_modules/react-native") | ||
| 15 | // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen | ||
| 16 | // codegenDir = file("../node_modules/@react-native/codegen") | ||
| 17 | // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js | ||
| 18 | // cliFile = file("../node_modules/react-native/cli.js") | ||
| 19 | |||
| 20 | /* Variants */ | ||
| 21 | // The list of variants to that are debuggable. For those we're going to | ||
| 22 | // skip the bundling of the JS bundle and the assets. By default is just 'debug'. | ||
| 23 | // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. | ||
| 24 | // debuggableVariants = ["liteDebug", "prodDebug"] | ||
| 25 | |||
| 26 | /* Bundling */ | ||
| 27 | // A list containing the node command and its flags. Default is just 'node'. | ||
| 28 | // nodeExecutableAndArgs = ["node"] | ||
| 29 | // | ||
| 30 | // The command to run when bundling. By default is 'bundle' | ||
| 31 | // bundleCommand = "ram-bundle" | ||
| 32 | // | ||
| 33 | // The path to the CLI configuration file. Default is empty. | ||
| 34 | // bundleConfig = file(../rn-cli.config.js) | ||
| 35 | // | ||
| 36 | // The name of the generated asset file containing your JS bundle | ||
| 37 | // bundleAssetName = "MyApplication.android.bundle" | ||
| 38 | // | ||
| 39 | // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' | ||
| 40 | // entryFile = file("../js/MyApplication.android.js") | ||
| 41 | // | ||
| 42 | // A list of extra flags to pass to the 'bundle' commands. | ||
| 43 | // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle | ||
| 44 | // extraPackagerArgs = [] | ||
| 45 | |||
| 46 | /* Hermes Commands */ | ||
| 47 | // The hermes compiler command to run. By default it is 'hermesc' | ||
| 48 | // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" | ||
| 49 | // | ||
| 50 | // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" | ||
| 51 | // hermesFlags = ["-O", "-output-source-map"] | ||
| 52 | } | ||
| 53 | |||
| 54 | /** | ||
| 55 | * Set this to true to Run Proguard on Release builds to minify the Java bytecode. | ||
| 56 | */ | ||
| 57 | def enableProguardInReleaseBuilds = false | ||
| 58 | |||
| 59 | /** | ||
| 60 | * The preferred build flavor of JavaScriptCore (JSC) | ||
| 61 | * | ||
| 62 | * For example, to use the international variant, you can use: | ||
| 63 | * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` | ||
| 64 | * | ||
| 65 | * The international variant includes ICU i18n library and necessary data | ||
| 66 | * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that | ||
| 67 | * give correct results when using with locales other than en-US. Note that | ||
| 68 | * this variant is about 6MiB larger per architecture than default. | ||
| 69 | */ | ||
| 70 | def jscFlavor = 'org.webkit:android-jsc:+' | ||
| 71 | |||
| 72 | android { | ||
| 73 | ndkVersion rootProject.ext.ndkVersion | ||
| 74 | buildToolsVersion rootProject.ext.buildToolsVersion | ||
| 75 | compileSdk rootProject.ext.compileSdkVersion | ||
| 76 | |||
| 77 | namespace "com.cyberbadge_mobile" | ||
| 78 | defaultConfig { | ||
| 79 | applicationId "com.cyberbadge_mobile" | ||
| 80 | minSdkVersion rootProject.ext.minSdkVersion | ||
| 81 | targetSdkVersion rootProject.ext.targetSdkVersion | ||
| 82 | versionCode 1 | ||
| 83 | versionName "1.0" | ||
| 84 | } | ||
| 85 | signingConfigs { | ||
| 86 | debug { | ||
| 87 | storeFile file('debug.keystore') | ||
| 88 | storePassword 'android' | ||
| 89 | keyAlias 'androiddebugkey' | ||
| 90 | keyPassword 'android' | ||
| 91 | } | ||
| 92 | } | ||
| 93 | buildTypes { | ||
| 94 | debug { | ||
| 95 | signingConfig signingConfigs.debug | ||
| 96 | } | ||
| 97 | release { | ||
| 98 | // Caution! In production, you need to generate your own keystore file. | ||
| 99 | // see https://reactnative.dev/docs/signed-apk-android. | ||
| 100 | signingConfig signingConfigs.debug | ||
| 101 | minifyEnabled enableProguardInReleaseBuilds | ||
| 102 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" | ||
| 103 | } | ||
| 104 | } | ||
| 105 | } | ||
| 106 | |||
| 107 | dependencies { | ||
| 108 | // The version of react-native is set by the React Native Gradle Plugin | ||
| 109 | implementation("com.facebook.react:react-android") | ||
| 110 | implementation("com.facebook.react:flipper-integration") | ||
| 111 | |||
| 112 | if (hermesEnabled.toBoolean()) { | ||
| 113 | implementation("com.facebook.react:hermes-android") | ||
| 114 | } else { | ||
| 115 | implementation jscFlavor | ||
| 116 | } | ||
| 117 | } | ||
| 118 | |||
| 119 | apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) | ||
diff --git a/android/app/debug.keystore b/android/app/debug.keystore new file mode 100644 index 0000000..364e105 --- /dev/null +++ b/android/app/debug.keystore | |||
| Binary files differ | |||
diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro new file mode 100644 index 0000000..11b0257 --- /dev/null +++ b/android/app/proguard-rules.pro | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | # Add project specific ProGuard rules here. | ||
| 2 | # By default, the flags in this file are appended to flags specified | ||
| 3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt | ||
| 4 | # You can edit the include path and order by changing the proguardFiles | ||
| 5 | # directive in build.gradle. | ||
| 6 | # | ||
| 7 | # For more details, see | ||
| 8 | # http://developer.android.com/guide/developing/tools/proguard.html | ||
| 9 | |||
| 10 | # Add any project specific keep options here: | ||
diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..eb98c01 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | xmlns:tools="http://schemas.android.com/tools"> | ||
| 4 | |||
| 5 | <application | ||
| 6 | android:usesCleartextTraffic="true" | ||
| 7 | tools:targetApi="28" | ||
| 8 | tools:ignore="GoogleAppIndexingWarning"/> | ||
| 9 | </manifest> | ||
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..4122f36 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | <manifest xmlns:android="http://schemas.android.com/apk/res/android"> | ||
| 2 | |||
| 3 | <uses-permission android:name="android.permission.INTERNET" /> | ||
| 4 | |||
| 5 | <application | ||
| 6 | android:name=".MainApplication" | ||
| 7 | android:label="@string/app_name" | ||
| 8 | android:icon="@mipmap/ic_launcher" | ||
| 9 | android:roundIcon="@mipmap/ic_launcher_round" | ||
| 10 | android:allowBackup="false" | ||
| 11 | android:theme="@style/AppTheme"> | ||
| 12 | <activity | ||
| 13 | android:name=".MainActivity" | ||
| 14 | android:label="@string/app_name" | ||
| 15 | android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" | ||
| 16 | android:launchMode="singleTask" | ||
| 17 | android:windowSoftInputMode="adjustResize" | ||
| 18 | android:exported="true"> | ||
| 19 | <intent-filter> | ||
| 20 | <action android:name="android.intent.action.MAIN" /> | ||
| 21 | <category android:name="android.intent.category.LAUNCHER" /> | ||
| 22 | </intent-filter> | ||
| 23 | </activity> | ||
| 24 | </application> | ||
| 25 | </manifest> | ||
diff --git a/android/app/src/main/java/com/cyberbadge_mobile/MainActivity.kt b/android/app/src/main/java/com/cyberbadge_mobile/MainActivity.kt new file mode 100644 index 0000000..1417a4e --- /dev/null +++ b/android/app/src/main/java/com/cyberbadge_mobile/MainActivity.kt | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | package com.cyberbadge_mobile | ||
| 2 | |||
| 3 | import com.facebook.react.ReactActivity | ||
| 4 | import com.facebook.react.ReactActivityDelegate | ||
| 5 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled | ||
| 6 | import com.facebook.react.defaults.DefaultReactActivityDelegate | ||
| 7 | |||
| 8 | class MainActivity : ReactActivity() { | ||
| 9 | |||
| 10 | /** | ||
| 11 | * Returns the name of the main component registered from JavaScript. This is used to schedule | ||
| 12 | * rendering of the component. | ||
| 13 | */ | ||
| 14 | override fun getMainComponentName(): String = "cyberbadge_mobile" | ||
| 15 | |||
| 16 | /** | ||
| 17 | * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate] | ||
| 18 | * which allows you to enable New Architecture with a single boolean flags [fabricEnabled] | ||
| 19 | */ | ||
| 20 | override fun createReactActivityDelegate(): ReactActivityDelegate = | ||
| 21 | DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled) | ||
| 22 | } | ||
diff --git a/android/app/src/main/java/com/cyberbadge_mobile/MainApplication.kt b/android/app/src/main/java/com/cyberbadge_mobile/MainApplication.kt new file mode 100644 index 0000000..3fc08cf --- /dev/null +++ b/android/app/src/main/java/com/cyberbadge_mobile/MainApplication.kt | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | package com.cyberbadge_mobile | ||
| 2 | |||
| 3 | import android.app.Application | ||
| 4 | import com.facebook.react.PackageList | ||
| 5 | import com.facebook.react.ReactApplication | ||
| 6 | import com.facebook.react.ReactHost | ||
| 7 | import com.facebook.react.ReactNativeHost | ||
| 8 | import com.facebook.react.ReactPackage | ||
| 9 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load | ||
| 10 | import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost | ||
| 11 | import com.facebook.react.defaults.DefaultReactNativeHost | ||
| 12 | import com.facebook.react.flipper.ReactNativeFlipper | ||
| 13 | import com.facebook.soloader.SoLoader | ||
| 14 | |||
| 15 | class MainApplication : Application(), ReactApplication { | ||
| 16 | |||
| 17 | override val reactNativeHost: ReactNativeHost = | ||
| 18 | object : DefaultReactNativeHost(this) { | ||
| 19 | override fun getPackages(): List<ReactPackage> { | ||
| 20 | // Packages that cannot be autolinked yet can be added manually here, for example: | ||
| 21 | // packages.add(new MyReactNativePackage()); | ||
| 22 | return PackageList(this).packages | ||
| 23 | } | ||
| 24 | |||
| 25 | override fun getJSMainModuleName(): String = "index" | ||
| 26 | |||
| 27 | override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG | ||
| 28 | |||
| 29 | override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED | ||
| 30 | override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED | ||
| 31 | } | ||
| 32 | |||
| 33 | override val reactHost: ReactHost | ||
| 34 | get() = getDefaultReactHost(this.applicationContext, reactNativeHost) | ||
| 35 | |||
| 36 | override fun onCreate() { | ||
| 37 | super.onCreate() | ||
| 38 | SoLoader.init(this, false) | ||
| 39 | if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { | ||
| 40 | // If you opted-in for the New Architecture, we load the native entry point for this app. | ||
| 41 | load() | ||
| 42 | } | ||
| 43 | ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) | ||
| 44 | } | ||
| 45 | } | ||
diff --git a/android/app/src/main/res/drawable/rn_edit_text_material.xml b/android/app/src/main/res/drawable/rn_edit_text_material.xml new file mode 100644 index 0000000..73b37e4 --- /dev/null +++ b/android/app/src/main/res/drawable/rn_edit_text_material.xml | |||
| @@ -0,0 +1,36 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | <!-- Copyright (C) 2014 The Android Open Source Project | ||
| 3 | |||
| 4 | Licensed under the Apache License, Version 2.0 (the "License"); | ||
| 5 | you may not use this file except in compliance with the License. | ||
| 6 | You may obtain a copy of the License at | ||
| 7 | |||
| 8 | http://www.apache.org/licenses/LICENSE-2.0 | ||
| 9 | |||
| 10 | Unless required by applicable law or agreed to in writing, software | ||
| 11 | distributed under the License is distributed on an "AS IS" BASIS, | ||
| 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| 13 | See the License for the specific language governing permissions and | ||
| 14 | limitations under the License. | ||
| 15 | --> | ||
| 16 | <inset xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 17 | android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material" | ||
| 18 | android:insetRight="@dimen/abc_edit_text_inset_horizontal_material" | ||
| 19 | android:insetTop="@dimen/abc_edit_text_inset_top_material" | ||
| 20 | android:insetBottom="@dimen/abc_edit_text_inset_bottom_material"> | ||
| 21 | |||
| 22 | <selector> | ||
| 23 | <!-- | ||
| 24 | This file is a copy of abc_edit_text_material (https://bit.ly/3k8fX7I). | ||
| 25 | The item below with state_pressed="false" and state_focused="false" causes a NullPointerException. | ||
| 26 | NullPointerException:tempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)' | ||
| 27 | |||
| 28 | <item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/> | ||
| 29 | |||
| 30 | For more info, see https://bit.ly/3CdLStv (react-native/pull/29452) and https://bit.ly/3nxOMoR. | ||
| 31 | --> | ||
| 32 | <item android:state_enabled="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/> | ||
| 33 | <item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha"/> | ||
| 34 | </selector> | ||
| 35 | |||
| 36 | </inset> | ||
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..a2f5908 --- /dev/null +++ b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png | |||
| Binary files differ | |||
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000..1b52399 --- /dev/null +++ b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png | |||
| Binary files differ | |||
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..ff10afd --- /dev/null +++ b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png | |||
| Binary files differ | |||
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000..115a4c7 --- /dev/null +++ b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png | |||
| Binary files differ | |||
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..dcd3cd8 --- /dev/null +++ b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png | |||
| Binary files differ | |||
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000..459ca60 --- /dev/null +++ b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png | |||
| Binary files differ | |||
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..8ca12fe --- /dev/null +++ b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png | |||
| Binary files differ | |||
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..8e19b41 --- /dev/null +++ b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png | |||
| Binary files differ | |||
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..b824ebd --- /dev/null +++ b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png | |||
| Binary files differ | |||
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..4c19a13 --- /dev/null +++ b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png | |||
| Binary files differ | |||
diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..6e77bed --- /dev/null +++ b/android/app/src/main/res/values/strings.xml | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | <resources> | ||
| 2 | <string name="app_name">cyberbadge_mobile</string> | ||
| 3 | </resources> | ||
diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..7ba83a2 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | <resources> | ||
| 2 | |||
| 3 | <!-- Base application theme. --> | ||
| 4 | <style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar"> | ||
| 5 | <!-- Customize your theme here. --> | ||
| 6 | <item name="android:editTextBackground">@drawable/rn_edit_text_material</item> | ||
| 7 | </style> | ||
| 8 | |||
| 9 | </resources> | ||
