@ -0,0 +1,6 @@ | |||
[android] | |||
target = Google Inc.:Google APIs:23 | |||
[maven_repositories] | |||
central = https://repo1.maven.org/maven2 |
@ -0,0 +1,69 @@ | |||
[ignore] | |||
; We fork some components by platform | |||
.*/*[.]android.js | |||
; Ignore "BUCK" generated dirs | |||
<PROJECT_ROOT>/\.buckd/ | |||
; Ignore unexpected extra "@providesModule" | |||
.*/node_modules/.*/node_modules/fbjs/.* | |||
; Ignore duplicate module providers | |||
; For RN Apps installed via npm, "Libraries" folder is inside | |||
; "node_modules/react-native" but in the source repo it is in the root | |||
.*/Libraries/react-native/React.js | |||
; Ignore polyfills | |||
.*/Libraries/polyfills/.* | |||
; Ignore metro | |||
.*/node_modules/metro/.* | |||
[include] | |||
[libs] | |||
node_modules/react-native/Libraries/react-native/react-native-interface.js | |||
node_modules/react-native/flow/ | |||
[options] | |||
emoji=true | |||
esproposal.optional_chaining=enable | |||
esproposal.nullish_coalescing=enable | |||
module.system=haste | |||
module.system.haste.use_name_reducers=true | |||
# get basename | |||
module.system.haste.name_reducers='^.*/\([a-zA-Z0-9$_.-]+\.js\(\.flow\)?\)$' -> '\1' | |||
# strip .js or .js.flow suffix | |||
module.system.haste.name_reducers='^\(.*\)\.js\(\.flow\)?$' -> '\1' | |||
# strip .ios suffix | |||
module.system.haste.name_reducers='^\(.*\)\.ios$' -> '\1' | |||
module.system.haste.name_reducers='^\(.*\)\.android$' -> '\1' | |||
module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1' | |||
module.system.haste.paths.blacklist=.*/__tests__/.* | |||
module.system.haste.paths.blacklist=.*/__mocks__/.* | |||
module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/Animated/src/polyfills/.* | |||
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/Libraries/.* | |||
munge_underscores=true | |||
module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub' | |||
module.file_ext=.js | |||
module.file_ext=.jsx | |||
module.file_ext=.json | |||
module.file_ext=.native.js | |||
suppress_type=$FlowIssue | |||
suppress_type=$FlowFixMe | |||
suppress_type=$FlowFixMeProps | |||
suppress_type=$FlowFixMeState | |||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) | |||
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ | |||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy | |||
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError | |||
[version] | |||
^0.92.0 |
@ -0,0 +1 @@ | |||
*.pbxproj -text |
@ -0,0 +1,56 @@ | |||
# OSX | |||
# | |||
.DS_Store | |||
# Xcode | |||
# | |||
build/ | |||
*.pbxuser | |||
!default.pbxuser | |||
*.mode1v3 | |||
!default.mode1v3 | |||
*.mode2v3 | |||
!default.mode2v3 | |||
*.perspectivev3 | |||
!default.perspectivev3 | |||
xcuserdata | |||
*.xccheckout | |||
*.moved-aside | |||
DerivedData | |||
*.hmap | |||
*.ipa | |||
*.xcuserstate | |||
project.xcworkspace | |||
# Android/IntelliJ | |||
# | |||
build/ | |||
.idea | |||
.gradle | |||
local.properties | |||
*.iml | |||
# node.js | |||
# | |||
node_modules/ | |||
npm-debug.log | |||
yarn-error.log | |||
# BUCK | |||
buck-out/ | |||
\.buckd/ | |||
*.keystore | |||
# fastlane | |||
# | |||
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the | |||
# screenshots whenever they are needed. | |||
# For more information about the recommended setup visit: | |||
# https://docs.fastlane.tools/best-practices/source-control/ | |||
*/fastlane/report.xml | |||
*/fastlane/Preview.html | |||
*/fastlane/screenshots | |||
# Bundle artifact | |||
*.jsbundle |
@ -0,0 +1 @@ | |||
{} |
@ -0,0 +1,25 @@ | |||
import React, { Component } from "react"; | |||
import { StyleSheet, View } from "react-native"; | |||
import DatePicker from "react-native-date-picker"; | |||
export default class App extends Component { | |||
state = { date: new Date() }; | |||
render = () => ( | |||
<View style={styles.container}> | |||
<DatePicker | |||
date={this.state.date} | |||
onDateChange={date => this.setState({ date })} | |||
/> | |||
</View> | |||
); | |||
} | |||
const styles = StyleSheet.create({ | |||
container: { | |||
flex: 1, | |||
justifyContent: "center", | |||
alignItems: "center", | |||
backgroundColor: "#FFFFFF" | |||
} | |||
}); |
@ -0,0 +1,14 @@ | |||
/** | |||
* @format | |||
*/ | |||
import 'react-native'; | |||
import React from 'react'; | |||
import App from '../App'; | |||
// Note: test renderer must be required after react-native. | |||
import renderer from 'react-test-renderer'; | |||
it('renders correctly', () => { | |||
renderer.create(<App />); | |||
}); |
@ -0,0 +1,55 @@ | |||
# To learn about Buck see [Docs](https://buckbuild.com/). | |||
# To run your application with Buck: | |||
# - install Buck | |||
# - `npm start` - to start the packager | |||
# - `cd android` | |||
# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` | |||
# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck | |||
# - `buck install -r android/app` - compile, install and run application | |||
# | |||
load(":build_defs.bzl", "create_aar_targets", "create_jar_targets") | |||
lib_deps = [] | |||
create_aar_targets(glob(["libs/*.aar"])) | |||
create_jar_targets(glob(["libs/*.jar"])) | |||
android_library( | |||
name = "all-libs", | |||
exported_deps = lib_deps, | |||
) | |||
android_library( | |||
name = "app-code", | |||
srcs = glob([ | |||
"src/main/java/**/*.java", | |||
]), | |||
deps = [ | |||
":all-libs", | |||
":build_config", | |||
":res", | |||
], | |||
) | |||
android_build_config( | |||
name = "build_config", | |||
package = "com.rn599", | |||
) | |||
android_resource( | |||
name = "res", | |||
package = "com.rn599", | |||
res = "src/main/res", | |||
) | |||
android_binary( | |||
name = "app", | |||
keystore = "//android/keystores:debug", | |||
manifest = "src/main/AndroidManifest.xml", | |||
package_type = "debug", | |||
deps = [ | |||
":app-code", | |||
], | |||
) |
@ -0,0 +1,152 @@ | |||
apply plugin: "com.android.application" | |||
import com.android.build.OutputFile | |||
/** | |||
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets | |||
* and bundleReleaseJsAndAssets). | |||
* These basically call `react-native bundle` with the correct arguments during the Android build | |||
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the | |||
* bundle directly from the development server. Below you can see all the possible configurations | |||
* and their defaults. If you decide to add a configuration block, make sure to add it before the | |||
* `apply from: "../../node_modules/react-native/react.gradle"` line. | |||
* | |||
* project.ext.react = [ | |||
* // the name of the generated asset file containing your JS bundle | |||
* bundleAssetName: "index.android.bundle", | |||
* | |||
* // the entry file for bundle generation | |||
* entryFile: "index.android.js", | |||
* | |||
* // whether to bundle JS and assets in debug mode | |||
* bundleInDebug: false, | |||
* | |||
* // whether to bundle JS and assets in release mode | |||
* bundleInRelease: true, | |||
* | |||
* // whether to bundle JS and assets in another build variant (if configured). | |||
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants | |||
* // The configuration property can be in the following formats | |||
* // 'bundleIn${productFlavor}${buildType}' | |||
* // 'bundleIn${buildType}' | |||
* // bundleInFreeDebug: true, | |||
* // bundleInPaidRelease: true, | |||
* // bundleInBeta: true, | |||
* | |||
* // whether to disable dev mode in custom build variants (by default only disabled in release) | |||
* // for example: to disable dev mode in the staging build type (if configured) | |||
* devDisabledInStaging: true, | |||
* // The configuration property can be in the following formats | |||
* // 'devDisabledIn${productFlavor}${buildType}' | |||
* // 'devDisabledIn${buildType}' | |||
* | |||
* // the root of your project, i.e. where "package.json" lives | |||
* root: "../../", | |||
* | |||
* // where to put the JS bundle asset in debug mode | |||
* jsBundleDirDebug: "$buildDir/intermediates/assets/debug", | |||
* | |||
* // where to put the JS bundle asset in release mode | |||
* jsBundleDirRelease: "$buildDir/intermediates/assets/release", | |||
* | |||
* // where to put drawable resources / React Native assets, e.g. the ones you use via | |||
* // require('./image.png')), in debug mode | |||
* resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", | |||
* | |||
* // where to put drawable resources / React Native assets, e.g. the ones you use via | |||
* // require('./image.png')), in release mode | |||
* resourcesDirRelease: "$buildDir/intermediates/res/merged/release", | |||
* | |||
* // by default the gradle tasks are skipped if none of the JS files or assets change; this means | |||
* // that we don't look at files in android/ or ios/ to determine whether the tasks are up to | |||
* // date; if you have any other folders that you want to ignore for performance reasons (gradle | |||
* // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ | |||
* // for example, you might want to remove it from here. | |||
* inputExcludes: ["android/**", "ios/**"], | |||
* | |||
* // override which node gets called and with what additional arguments | |||
* nodeExecutableAndArgs: ["node"], | |||
* | |||
* // supply additional arguments to the packager | |||
* extraPackagerArgs: [] | |||
* ] | |||
*/ | |||
project.ext.react = [ | |||
entryFile: "index.js" | |||
] | |||
apply from: "../../node_modules/react-native/react.gradle" | |||
/** | |||
* Set this to true to create two separate APKs instead of one: | |||
* - An APK that only works on ARM devices | |||
* - An APK that only works on x86 devices | |||
* The advantage is the size of the APK is reduced by about 4MB. | |||
* Upload all the APKs to the Play Store and people will download | |||
* the correct one based on the CPU architecture of their device. | |||
*/ | |||
def enableSeparateBuildPerCPUArchitecture = false | |||
/** | |||
* Run Proguard to shrink the Java bytecode in release builds. | |||
*/ | |||
def enableProguardInReleaseBuilds = false | |||
android { | |||
compileSdkVersion rootProject.ext.compileSdkVersion | |||
compileOptions { | |||
sourceCompatibility JavaVersion.VERSION_1_8 | |||
targetCompatibility JavaVersion.VERSION_1_8 | |||
} | |||
defaultConfig { | |||
applicationId "com.rn599" | |||
minSdkVersion rootProject.ext.minSdkVersion | |||
targetSdkVersion rootProject.ext.targetSdkVersion | |||
versionCode 1 | |||
versionName "1.0" | |||
} | |||
splits { | |||
abi { | |||
reset() | |||
enable enableSeparateBuildPerCPUArchitecture | |||
universalApk false // If true, also generate a universal APK | |||
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64" | |||
} | |||
} | |||
buildTypes { | |||
release { | |||
minifyEnabled enableProguardInReleaseBuilds | |||
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" | |||
} | |||
} | |||
// applicationVariants are e.g. debug, release | |||
applicationVariants.all { variant -> | |||
variant.outputs.each { output -> | |||
// For each separate APK per architecture, set a unique version code as described here: | |||
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits | |||
def versionCodes = ["armeabi-v7a":1, "x86":2, "arm64-v8a": 3, "x86_64": 4] | |||
def abi = output.getFilter(OutputFile.ABI) | |||
if (abi != null) { // null for the universal-debug, universal-release variants | |||
output.versionCodeOverride = | |||
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode | |||
} | |||
} | |||
} | |||
} | |||
dependencies { | |||
implementation project(':react-native-date-picker') | |||
implementation fileTree(dir: "libs", include: ["*.jar"]) | |||
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}" | |||
implementation "com.facebook.react:react-native:+" // From node_modules | |||
} | |||
// Run this once to be able to run the application with BUCK | |||
// puts all compile dependencies into folder libs for BUCK to use | |||
task copyDownloadableDepsToLibs(type: Copy) { | |||
from configurations.compile | |||
into 'libs' | |||
} |
@ -0,0 +1,19 @@ | |||
"""Helper definitions to glob .aar and .jar targets""" | |||
def create_aar_targets(aarfiles): | |||
for aarfile in aarfiles: | |||
name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")] | |||
lib_deps.append(":" + name) | |||
android_prebuilt_aar( | |||
name = name, | |||
aar = aarfile, | |||
) | |||
def create_jar_targets(jarfiles): | |||
for jarfile in jarfiles: | |||
name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")] | |||
lib_deps.append(":" + name) | |||
prebuilt_jar( | |||
name = name, | |||
binary_jar = jarfile, | |||
) |
@ -0,0 +1,17 @@ | |||
# 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 | |||
# Add any project specific keep options here: | |||
# If your project uses WebView with JS, uncomment the following | |||
# and specify the fully qualified class name to the JavaScript interface | |||
# class: | |||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { | |||
# public *; | |||
#} |
@ -0,0 +1,8 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<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" /> | |||
</manifest> |
@ -0,0 +1,26 @@ | |||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |||
package="com.rn599"> | |||
<uses-permission android:name="android.permission.INTERNET" /> | |||
<application | |||
android:name=".MainApplication" | |||
android:label="@string/app_name" | |||
android:icon="@mipmap/ic_launcher" | |||
android:roundIcon="@mipmap/ic_launcher_round" | |||
android:allowBackup="false" | |||
android:theme="@style/AppTheme"> | |||
<activity | |||
android:name=".MainActivity" | |||
android:label="@string/app_name" | |||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" | |||
android:windowSoftInputMode="adjustResize"> | |||
<intent-filter> | |||
<action android:name="android.intent.action.MAIN" /> | |||
<category android:name="android.intent.category.LAUNCHER" /> | |||
</intent-filter> | |||
</activity> | |||
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" /> | |||
</application> | |||
</manifest> |
@ -0,0 +1,15 @@ | |||
package com.rn599; | |||
import com.facebook.react.ReactActivity; | |||
public class MainActivity extends ReactActivity { | |||
/** | |||
* Returns the name of the main component registered from JavaScript. | |||
* This is used to schedule rendering of the component. | |||
*/ | |||
@Override | |||
protected String getMainComponentName() { | |||
return "rn599"; | |||
} | |||
} |
@ -0,0 +1,47 @@ | |||
package com.rn599; | |||
import android.app.Application; | |||
import com.facebook.react.ReactApplication; | |||
import com.henninghall.date_picker.DatePickerPackage; | |||
import com.facebook.react.ReactNativeHost; | |||
import com.facebook.react.ReactPackage; | |||
import com.facebook.react.shell.MainReactPackage; | |||
import com.facebook.soloader.SoLoader; | |||
import java.util.Arrays; | |||
import java.util.List; | |||
public class MainApplication extends Application implements ReactApplication { | |||
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { | |||
@Override | |||
public boolean getUseDeveloperSupport() { | |||
return BuildConfig.DEBUG; | |||
} | |||
@Override | |||
protected List<ReactPackage> getPackages() { | |||
return Arrays.<ReactPackage>asList( | |||
new MainReactPackage(), | |||
new DatePickerPackage() | |||
); | |||
} | |||
@Override | |||
protected String getJSMainModuleName() { | |||
return "index"; | |||
} | |||
}; | |||
@Override | |||
public ReactNativeHost getReactNativeHost() { | |||
return mReactNativeHost; | |||
} | |||
@Override | |||
public void onCreate() { | |||
super.onCreate(); | |||
SoLoader.init(this, /* native exopackage */ false); | |||
} | |||
} |
@ -0,0 +1,3 @@ | |||
<resources> | |||
<string name="app_name">rn599</string> | |||
</resources> |
@ -0,0 +1,8 @@ | |||
<resources> | |||
<!-- Base application theme. --> | |||
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> | |||
<!-- Customize your theme here. --> | |||
</style> | |||
</resources> |
@ -0,0 +1,33 @@ | |||
// Top-level build file where you can add configuration options common to all sub-projects/modules. | |||
buildscript { | |||
ext { | |||
buildToolsVersion = "28.0.3" | |||
minSdkVersion = 16 | |||
compileSdkVersion = 28 | |||
targetSdkVersion = 28 | |||
supportLibVersion = "28.0.0" | |||
} | |||
repositories { | |||
google() | |||
jcenter() | |||
} | |||
dependencies { | |||
classpath("com.android.tools.build:gradle:3.4.0") | |||
// NOTE: Do not place your application dependencies here; they belong | |||
// in the individual module build.gradle files | |||
} | |||
} | |||
allprojects { | |||
repositories { | |||
mavenLocal() | |||
google() | |||
jcenter() | |||
maven { | |||
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm | |||
url "$rootDir/../node_modules/react-native/android" | |||
} | |||
} | |||
} |
@ -0,0 +1,18 @@ | |||
# Project-wide Gradle settings. | |||
# IDE (e.g. Android Studio) users: | |||
# Gradle settings configured through the IDE *will override* | |||
# any settings specified in this file. | |||
# For more details on how to configure your build environment visit | |||
# http://www.gradle.org/docs/current/userguide/build_environment.html | |||
# Specifies the JVM arguments used for the daemon process. | |||
# The setting is particularly useful for tweaking memory settings. | |||
# Default value: -Xmx10248m -XX:MaxPermSize=256m | |||
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 | |||
# When configured, Gradle will run in incubating parallel mode. | |||
# This option should only be used with decoupled projects. More details, visit | |||
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects | |||
# org.gradle.parallel=true |
@ -0,0 +1,5 @@ | |||
distributionBase=GRADLE_USER_HOME | |||
distributionPath=wrapper/dists | |||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip | |||
zipStoreBase=GRADLE_USER_HOME | |||
zipStorePath=wrapper/dists |
@ -0,0 +1,188 @@ | |||
#!/usr/bin/env sh | |||
# | |||
# Copyright 2015 the original author or authors. | |||
# | |||
# 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. | |||
# | |||
############################################################################## | |||
## | |||
## Gradle start up script for UN*X | |||
## | |||
############################################################################## | |||
# Attempt to set APP_HOME | |||
# Resolve links: $0 may be a link | |||
PRG="$0" | |||
# Need this for relative symlinks. | |||
while [ -h "$PRG" ] ; do | |||
ls=`ls -ld "$PRG"` | |||
link=`expr "$ls" : '.*-> \(.*\)$'` | |||
if expr "$link" : '/.*' > /dev/null; then | |||
PRG="$link" | |||
else | |||
PRG=`dirname "$PRG"`"/$link" | |||
fi | |||
done | |||
SAVED="`pwd`" | |||
cd "`dirname \"$PRG\"`/" >/dev/null | |||
APP_HOME="`pwd -P`" | |||
cd "$SAVED" >/dev/null | |||
APP_NAME="Gradle" | |||
APP_BASE_NAME=`basename "$0"` | |||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. | |||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' | |||
# Use the maximum available, or set MAX_FD != -1 to use that value. | |||
MAX_FD="maximum" | |||
warn () { | |||
echo "$*" | |||
} | |||
die () { | |||
echo | |||
echo "$*" | |||
echo | |||
exit 1 | |||
} | |||
# OS specific support (must be 'true' or 'false'). | |||
cygwin=false | |||
msys=false | |||
darwin=false | |||
nonstop=false | |||
case "`uname`" in | |||
CYGWIN* ) | |||
cygwin=true | |||
;; | |||
Darwin* ) | |||
darwin=true | |||
;; | |||
MINGW* ) | |||
msys=true | |||
;; | |||
NONSTOP* ) | |||
nonstop=true | |||
;; | |||
esac | |||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar | |||
# Determine the Java command to use to start the JVM. | |||
if [ -n "$JAVA_HOME" ] ; then | |||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then | |||
# IBM's JDK on AIX uses strange locations for the executables | |||
JAVACMD="$JAVA_HOME/jre/sh/java" | |||
else | |||
JAVACMD="$JAVA_HOME/bin/java" | |||
fi | |||
if [ ! -x "$JAVACMD" ] ; then | |||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME | |||
Please set the JAVA_HOME variable in your environment to match the | |||
location of your Java installation." | |||
fi | |||
else | |||
JAVACMD="java" | |||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. | |||
Please set the JAVA_HOME variable in your environment to match the | |||
location of your Java installation." | |||
fi | |||
# Increase the maximum file descriptors if we can. | |||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then | |||
MAX_FD_LIMIT=`ulimit -H -n` | |||
if [ $? -eq 0 ] ; then | |||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then | |||
MAX_FD="$MAX_FD_LIMIT" | |||
fi | |||
ulimit -n $MAX_FD | |||
if [ $? -ne 0 ] ; then | |||
warn "Could not set maximum file descriptor limit: $MAX_FD" | |||
fi | |||
else | |||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" | |||
fi | |||
fi | |||
# For Darwin, add options to specify how the application appears in the dock | |||
if $darwin; then | |||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" | |||
fi | |||
# For Cygwin, switch paths to Windows format before running java | |||
if $cygwin ; then | |||
APP_HOME=`cygpath --path --mixed "$APP_HOME"` | |||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` | |||
JAVACMD=`cygpath --unix "$JAVACMD"` | |||
# We build the pattern for arguments to be converted via cygpath | |||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` | |||
SEP="" | |||
for dir in $ROOTDIRSRAW ; do | |||
ROOTDIRS="$ROOTDIRS$SEP$dir" | |||
SEP="|" | |||
done | |||
OURCYGPATTERN="(^($ROOTDIRS))" | |||
# Add a user-defined pattern to the cygpath arguments | |||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then | |||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" | |||
fi | |||
# Now convert the arguments - kludge to limit ourselves to /bin/sh | |||
i=0 | |||
for arg in "$@" ; do | |||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` | |||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option | |||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition | |||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` | |||
else | |||
eval `echo args$i`="\"$arg\"" | |||
fi | |||
i=$((i+1)) | |||
done | |||
case $i in | |||
(0) set -- ;; | |||
(1) set -- "$args0" ;; | |||
(2) set -- "$args0" "$args1" ;; | |||
(3) set -- "$args0" "$args1" "$args2" ;; | |||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;; | |||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; | |||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; | |||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; | |||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; | |||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; | |||
esac | |||
fi | |||
# Escape application args | |||
save () { | |||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done | |||
echo " " | |||
} | |||
APP_ARGS=$(save "$@") | |||
# Collect all arguments for the java command, following the shell quoting and substitution rules | |||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" | |||
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong | |||
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then | |||
cd "$(dirname "$0")" | |||
fi | |||
exec "$JAVACMD" "$@" |
@ -0,0 +1,100 @@ | |||
@rem | |||
@rem Copyright 2015 the original author or authors. | |||
@rem | |||
@rem Licensed under the Apache License, Version 2.0 (the "License"); | |||
@rem you may not use this file except in compliance with the License. | |||
@rem You may obtain a copy of the License at | |||
@rem | |||
@rem http://www.apache.org/licenses/LICENSE-2.0 | |||
@rem | |||
@rem Unless required by applicable law or agreed to in writing, software | |||
@rem distributed under the License is distributed on an "AS IS" BASIS, | |||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
@rem See the License for the specific language governing permissions and | |||
@rem limitations under the License. | |||
@rem | |||
@if "%DEBUG%" == "" @echo off | |||
@rem ########################################################################## | |||
@rem | |||
@rem Gradle startup script for Windows | |||
@rem | |||
@rem ########################################################################## | |||
@rem Set local scope for the variables with windows NT shell | |||
if "%OS%"=="Windows_NT" setlocal | |||
set DIRNAME=%~dp0 | |||
if "%DIRNAME%" == "" set DIRNAME=. | |||
set APP_BASE_NAME=%~n0 | |||
set APP_HOME=%DIRNAME% | |||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. | |||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" | |||
@rem Find java.exe | |||
if defined JAVA_HOME goto findJavaFromJavaHome | |||
set JAVA_EXE=java.exe | |||
%JAVA_EXE% -version >NUL 2>&1 | |||
if "%ERRORLEVEL%" == "0" goto init | |||
echo. | |||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. | |||
echo. | |||
echo Please set the JAVA_HOME variable in your environment to match the | |||
echo location of your Java installation. | |||
goto fail | |||
:findJavaFromJavaHome | |||
set JAVA_HOME=%JAVA_HOME:"=% | |||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe | |||
if exist "%JAVA_EXE%" goto init | |||
echo. | |||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% | |||
echo. | |||
echo Please set the JAVA_HOME variable in your environment to match the | |||
echo location of your Java installation. | |||
goto fail | |||
:init | |||
@rem Get command-line arguments, handling Windows variants | |||
if not "%OS%" == "Windows_NT" goto win9xME_args | |||
:win9xME_args | |||
@rem Slurp the command line arguments. | |||
set CMD_LINE_ARGS= | |||
set _SKIP=2 | |||
:win9xME_args_slurp | |||
if "x%~1" == "x" goto execute | |||
set CMD_LINE_ARGS=%* | |||
:execute | |||
@rem Setup the command line | |||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar | |||
@rem Execute Gradle | |||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% | |||
:end | |||
@rem End local scope for the variables with windows NT shell | |||
if "%ERRORLEVEL%"=="0" goto mainEnd | |||
:fail | |||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of | |||
rem the _cmd.exe /c_ return code! | |||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 | |||
exit /b 1 | |||
:mainEnd | |||
if "%OS%"=="Windows_NT" endlocal | |||
:omega |
@ -0,0 +1,8 @@ | |||
keystore( | |||
name = "debug", | |||
properties = "debug.keystore.properties", | |||
store = "debug.keystore", | |||
visibility = [ | |||
"PUBLIC", | |||
], | |||
) |
@ -0,0 +1,4 @@ | |||
key.store=debug.keystore | |||
key.alias=androiddebugkey | |||
key.store.password=android | |||
key.alias.password=android |
@ -0,0 +1,5 @@ | |||
rootProject.name = 'rn599' | |||
include ':react-native-date-picker' | |||
project(':react-native-date-picker').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-date-picker/android') | |||
include ':app' |
@ -0,0 +1,4 @@ | |||
{ | |||
"name": "rn599", | |||
"displayName": "rn599" | |||
} |
@ -0,0 +1,3 @@ | |||
module.exports = { | |||
presets: ['module:metro-react-native-babel-preset'], | |||
}; |
@ -0,0 +1,9 @@ | |||
/** | |||
* @format | |||
*/ | |||
import { AppRegistry } from "react-native"; | |||
import App from "./App"; | |||
import { name as appName } from "./app.json"; | |||
AppRegistry.registerComponent(appName, () => App); |
@ -0,0 +1,54 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |||
<plist version="1.0"> | |||
<dict> | |||
<key>CFBundleDevelopmentRegion</key> | |||
<string>en</string> | |||
<key>CFBundleExecutable</key> | |||
<string>$(EXECUTABLE_NAME)</string> | |||
<key>CFBundleIdentifier</key> | |||
<string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string> | |||
<key>CFBundleInfoDictionaryVersion</key> | |||
<string>6.0</string> | |||
<key>CFBundleName</key> | |||
<string>$(PRODUCT_NAME)</string> | |||
<key>CFBundlePackageType</key> | |||
<string>APPL</string> | |||
<key>CFBundleShortVersionString</key> | |||
<string>1.0</string> | |||
<key>CFBundleSignature</key> | |||
<string>????</string> | |||
<key>CFBundleVersion</key> | |||
<string>1</string> | |||
<key>LSRequiresIPhoneOS</key> | |||
<true/> | |||
<key>UILaunchStoryboardName</key> | |||
<string>LaunchScreen</string> | |||
<key>UIRequiredDeviceCapabilities</key> | |||
<array> | |||
<string>armv7</string> | |||
</array> | |||
<key>UISupportedInterfaceOrientations</key> | |||
<array> | |||
<string>UIInterfaceOrientationPortrait</string> | |||
<string>UIInterfaceOrientationLandscapeLeft</string> | |||
<string>UIInterfaceOrientationLandscapeRight</string> | |||
</array> | |||
<key>UIViewControllerBasedStatusBarAppearance</key> | |||
<false/> | |||
<key>NSLocationWhenInUseUsageDescription</key> | |||
<string></string> | |||
<key>NSAppTransportSecurity</key> | |||
<!--See http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/ --> | |||
<dict> | |||
<key>NSExceptionDomains</key> | |||
<dict> | |||
<key>localhost</key> | |||
<dict> | |||
<key>NSExceptionAllowsInsecureHTTPLoads</key> | |||
<true/> | |||
</dict> | |||
</dict> | |||
</dict> | |||
</dict> | |||
</plist> |
@ -0,0 +1,24 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |||
<plist version="1.0"> | |||
<dict> | |||
<key>CFBundleDevelopmentRegion</key> | |||
<string>en</string> | |||
<key>CFBundleExecutable</key> | |||
<string>$(EXECUTABLE_NAME)</string> | |||
<key>CFBundleIdentifier</key> | |||
<string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string> | |||
<key>CFBundleInfoDictionaryVersion</key> | |||
<string>6.0</string> | |||
<key>CFBundleName</key> | |||
<string>$(PRODUCT_NAME)</string> | |||
<key>CFBundlePackageType</key> | |||
<string>BNDL</string> | |||
<key>CFBundleShortVersionString</key> | |||
<string>1.0</string> | |||
<key>CFBundleSignature</key> | |||
<string>????</string> | |||
<key>CFBundleVersion</key> | |||
<string>1</string> | |||
</dict> | |||
</plist> |
@ -0,0 +1,129 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<Scheme | |||
LastUpgradeVersion = "0940" | |||
version = "1.3"> | |||
<BuildAction | |||
parallelizeBuildables = "NO" | |||
buildImplicitDependencies = "YES"> | |||
<BuildActionEntries> | |||
<BuildActionEntry | |||
buildForTesting = "YES" | |||
buildForRunning = "YES" | |||
buildForProfiling = "YES" | |||
buildForArchiving = "YES" | |||
buildForAnalyzing = "YES"> | |||
<BuildableReference | |||
BuildableIdentifier = "primary" | |||
BlueprintIdentifier = "2D2A28121D9B038B00D4039D" | |||
BuildableName = "libReact.a" | |||
BlueprintName = "React-tvOS" | |||
ReferencedContainer = "container:../node_modules/react-native/React/React.xcodeproj"> | |||
</BuildableReference> | |||
</BuildActionEntry> | |||
<BuildActionEntry | |||
buildForTesting = "YES" | |||
buildForRunning = "YES" | |||
buildForProfiling = "YES" | |||
buildForArchiving = "YES" | |||
buildForAnalyzing = "YES"> | |||
<BuildableReference | |||
BuildableIdentifier = "primary" | |||
BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" | |||
BuildableName = "rn599-tvOS.app" | |||
BlueprintName = "rn599-tvOS" | |||
ReferencedContainer = "container:rn599.xcodeproj"> | |||
</BuildableReference> | |||
</BuildActionEntry> | |||
<BuildActionEntry | |||
buildForTesting = "YES" | |||
buildForRunning = "YES" | |||
buildForProfiling = "NO" | |||
buildForArchiving = "NO" | |||
buildForAnalyzing = "YES"> | |||
<BuildableReference | |||
BuildableIdentifier = "primary" | |||
BlueprintIdentifier = "2D02E48F1E0B4A5D006451C7" | |||
BuildableName = "rn599-tvOSTests.xctest" | |||
BlueprintName = "rn599-tvOSTests" | |||
ReferencedContainer = "container:rn599.xcodeproj"> | |||
</BuildableReference> | |||
</BuildActionEntry> | |||
</BuildActionEntries> | |||
</BuildAction> | |||
<TestAction | |||
buildConfiguration = "Debug" | |||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" | |||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" | |||
shouldUseLaunchSchemeArgsEnv = "YES"> | |||
<Testables> | |||
<TestableReference | |||
skipped = "NO"> | |||
<BuildableReference | |||
BuildableIdentifier = "primary" | |||
BlueprintIdentifier = "2D02E48F1E0B4A5D006451C7" | |||
BuildableName = "rn599-tvOSTests.xctest" | |||
BlueprintName = "rn599-tvOSTests" | |||
ReferencedContainer = "container:rn599.xcodeproj"> | |||
</BuildableReference> | |||
</TestableReference> | |||
</Testables> | |||
<MacroExpansion> | |||
<BuildableReference | |||
BuildableIdentifier = "primary" | |||
BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" | |||
BuildableName = "rn599-tvOS.app" | |||
BlueprintName = "rn599-tvOS" | |||
ReferencedContainer = "container:rn599.xcodeproj"> | |||
</BuildableReference> | |||
</MacroExpansion> | |||
<AdditionalOptions> | |||
</AdditionalOptions> | |||
</TestAction> | |||
<LaunchAction | |||
buildConfiguration = "Debug" | |||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" | |||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" | |||
launchStyle = "0" | |||
useCustomWorkingDirectory = "NO" | |||
ignoresPersistentStateOnLaunch = "NO" | |||
debugDocumentVersioning = "YES" | |||
debugServiceExtension = "internal" | |||
allowLocationSimulation = "YES"> | |||
<BuildableProductRunnable | |||
runnableDebuggingMode = "0"> | |||
<BuildableReference | |||
BuildableIdentifier = "primary" | |||
BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" | |||
BuildableName = "rn599-tvOS.app" | |||
BlueprintName = "rn599-tvOS" | |||
ReferencedContainer = "container:rn599.xcodeproj"> | |||
</BuildableReference> | |||
</BuildableProductRunnable> | |||
<AdditionalOptions> | |||
</AdditionalOptions> | |||
</LaunchAction> | |||
<ProfileAction | |||
buildConfiguration = "Release" | |||
shouldUseLaunchSchemeArgsEnv = "YES" | |||
savedToolIdentifier = "" | |||
useCustomWorkingDirectory = "NO" | |||
debugDocumentVersioning = "YES"> | |||
<BuildableProductRunnable | |||
runnableDebuggingMode = "0"> | |||
<BuildableReference | |||
BuildableIdentifier = "primary" | |||
BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" | |||
BuildableName = "rn599-tvOS.app" | |||
BlueprintName = "rn599-tvOS" | |||
ReferencedContainer = "container:rn599.xcodeproj"> | |||
</BuildableReference> | |||
</BuildableProductRunnable> | |||
</ProfileAction> | |||
<AnalyzeAction | |||
buildConfiguration = "Debug"> | |||
</AnalyzeAction> | |||
<ArchiveAction | |||
buildConfiguration = "Release" | |||
revealArchiveInOrganizer = "YES"> | |||
</ArchiveAction> | |||
</Scheme> |
@ -0,0 +1,129 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<Scheme | |||
LastUpgradeVersion = "0940" | |||
version = "1.3"> | |||
<BuildAction | |||
parallelizeBuildables = "NO" | |||
buildImplicitDependencies = "YES"> | |||
<BuildActionEntries> | |||
<BuildActionEntry | |||
buildForTesting = "YES" | |||
buildForRunning = "YES" | |||
buildForProfiling = "YES" | |||
buildForArchiving = "YES" | |||
buildForAnalyzing = "YES"> | |||
<BuildableReference | |||
BuildableIdentifier = "primary" | |||
BlueprintIdentifier = "83CBBA2D1A601D0E00E9B192" | |||
BuildableName = "libReact.a" | |||
BlueprintName = "React" | |||
ReferencedContainer = "container:../node_modules/react-native/React/React.xcodeproj"> | |||
</BuildableReference> | |||
</BuildActionEntry> | |||
<BuildActionEntry | |||
buildForTesting = "YES" | |||
buildForRunning = "YES" | |||
buildForProfiling = "YES" | |||
buildForArchiving = "YES" | |||
buildForAnalyzing = "YES"> | |||
<BuildableReference | |||
BuildableIdentifier = "primary" | |||
BlueprintIdentifier = "13B07F861A680F5B00A75B9A" | |||
BuildableName = "rn599.app" | |||
BlueprintName = "rn599" | |||
ReferencedContainer = "container:rn599.xcodeproj"> | |||
</BuildableReference> | |||
</BuildActionEntry> | |||
<BuildActionEntry | |||
buildForTesting = "YES" | |||
buildForRunning = "YES" | |||
buildForProfiling = "NO" | |||
buildForArchiving = "NO" | |||
buildForAnalyzing = "YES"> | |||
<BuildableReference | |||
BuildableIdentifier = "primary" | |||
BlueprintIdentifier = "00E356ED1AD99517003FC87E" | |||
BuildableName = "rn599Tests.xctest" | |||
BlueprintName = "rn599Tests" | |||
ReferencedContainer = "container:rn599.xcodeproj"> | |||
</BuildableReference> | |||
</BuildActionEntry> | |||
</BuildActionEntries> | |||
</BuildAction> | |||
<TestAction | |||
buildConfiguration = "Debug" | |||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" | |||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" | |||
shouldUseLaunchSchemeArgsEnv = "YES"> | |||
<Testables> | |||
<TestableReference | |||
skipped = "NO"> | |||
<BuildableReference | |||
BuildableIdentifier = "primary" | |||
BlueprintIdentifier = "00E356ED1AD99517003FC87E" | |||
BuildableName = "rn599Tests.xctest" | |||
BlueprintName = "rn599Tests" | |||
ReferencedContainer = "container:rn599.xcodeproj"> | |||
</BuildableReference> | |||
</TestableReference> | |||
</Testables> | |||
<MacroExpansion> | |||
<BuildableReference | |||
BuildableIdentifier = "primary" | |||
BlueprintIdentifier = "13B07F861A680F5B00A75B9A" | |||
BuildableName = "rn599.app" | |||
BlueprintName = "rn599" | |||
ReferencedContainer = "container:rn599.xcodeproj"> | |||
</BuildableReference> | |||
</MacroExpansion> | |||
<AdditionalOptions> | |||
</AdditionalOptions> | |||
</TestAction> | |||
<LaunchAction | |||
buildConfiguration = "Debug" | |||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" | |||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" | |||
launchStyle = "0" | |||
useCustomWorkingDirectory = "NO" | |||
ignoresPersistentStateOnLaunch = "NO" | |||
debugDocumentVersioning = "YES" | |||
debugServiceExtension = "internal" | |||
allowLocationSimulation = "YES"> | |||
<BuildableProductRunnable | |||
runnableDebuggingMode = "0"> | |||
<BuildableReference | |||
BuildableIdentifier = "primary" | |||
BlueprintIdentifier = "13B07F861A680F5B00A75B9A" | |||
BuildableName = "rn599.app" | |||
BlueprintName = "rn599" | |||
ReferencedContainer = "container:rn599.xcodeproj"> | |||
</BuildableReference> | |||
</BuildableProductRunnable> | |||
<AdditionalOptions> | |||
</AdditionalOptions> | |||
</LaunchAction> | |||
<ProfileAction | |||
buildConfiguration = "Release" | |||
shouldUseLaunchSchemeArgsEnv = "YES" | |||
savedToolIdentifier = "" | |||
useCustomWorkingDirectory = "NO" | |||
debugDocumentVersioning = "YES"> | |||
<BuildableProductRunnable | |||
runnableDebuggingMode = "0"> | |||
<BuildableReference | |||
BuildableIdentifier = "primary" | |||
BlueprintIdentifier = "13B07F861A680F5B00A75B9A" | |||
BuildableName = "rn599.app" | |||
BlueprintName = "rn599" | |||
ReferencedContainer = "container:rn599.xcodeproj"> | |||
</BuildableReference> | |||
</BuildableProductRunnable> | |||
</ProfileAction> | |||
<AnalyzeAction | |||
buildConfiguration = "Debug"> | |||
</AnalyzeAction> | |||
<ArchiveAction | |||
buildConfiguration = "Release" | |||
revealArchiveInOrganizer = "YES"> | |||
</ArchiveAction> | |||
</Scheme> |
@ -0,0 +1,15 @@ | |||
/** | |||
* Copyright (c) Facebook, Inc. and its affiliates. | |||
* | |||
* This source code is licensed under the MIT license found in the | |||
* LICENSE file in the root directory of this source tree. | |||
*/ | |||
#import <React/RCTBridgeDelegate.h> | |||
#import <UIKit/UIKit.h> | |||
@interface AppDelegate : UIResponder <UIApplicationDelegate, RCTBridgeDelegate> | |||
@property (nonatomic, strong) UIWindow *window; | |||
@end |
@ -0,0 +1,42 @@ | |||
/** | |||
* Copyright (c) Facebook, Inc. and its affiliates. | |||
* | |||
* This source code is licensed under the MIT license found in the | |||
* LICENSE file in the root directory of this source tree. | |||
*/ | |||
#import "AppDelegate.h" | |||
#import <React/RCTBridge.h> | |||
#import <React/RCTBundleURLProvider.h> | |||
#import <React/RCTRootView.h> | |||
@implementation AppDelegate | |||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions | |||
{ | |||
RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; | |||
RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge | |||
moduleName:@"rn599" | |||
initialProperties:nil]; | |||
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; | |||
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; | |||
UIViewController *rootViewController = [UIViewController new]; | |||
rootViewController.view = rootView; | |||
self.window.rootViewController = rootViewController; | |||
[self.window makeKeyAndVisible]; | |||
return YES; | |||
} | |||
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge | |||
{ | |||
#if DEBUG | |||
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; | |||
#else | |||
return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; | |||
#endif | |||
} | |||
@end |
@ -0,0 +1,42 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7702" systemVersion="14D136" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES"> | |||
<dependencies> | |||
<deployment identifier="iOS"/> | |||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7701"/> | |||
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/> | |||
</dependencies> | |||
<objects> | |||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> | |||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> | |||
<view contentMode="scaleToFill" id="iN0-l3-epB"> | |||
<rect key="frame" x="0.0" y="0.0" width="480" height="480"/> | |||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | |||
<subviews> | |||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Powered by React Native" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye"> | |||
<rect key="frame" x="20" y="439" width="441" height="21"/> | |||
<fontDescription key="fontDescription" type="system" pointSize="17"/> | |||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | |||
<nil key="highlightedColor"/> | |||
</label> | |||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="rn599" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX"> | |||
<rect key="frame" x="20" y="140" width="441" height="43"/> | |||
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/> | |||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/> | |||
<nil key="highlightedColor"/> | |||
</label> | |||
</subviews> | |||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> | |||
<constraints> | |||
<constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/> | |||
<constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/> | |||
<constraint firstAttribute="bottom" secondItem="8ie-xW-0ye" secondAttribute="bottom" constant="20" id="Kzo-t9-V3l"/> | |||
<constraint firstItem="8ie-xW-0ye" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="MfP-vx-nX0"/> | |||
<constraint firstAttribute="centerX" secondItem="8ie-xW-0ye" secondAttribute="centerX" id="ZEH-qu-HZ9"/> | |||
<constraint firstItem="kId-c2-rCX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="fvb-Df-36g"/> | |||
</constraints> | |||
<nil key="simulatedStatusBarMetrics"/> | |||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> | |||
<point key="canvasLocation" x="548" y="455"/> | |||
</view> | |||
</objects> | |||
</document> |
@ -0,0 +1,38 @@ | |||
{ | |||
"images" : [ | |||
{ | |||
"idiom" : "iphone", | |||
"size" : "29x29", | |||
"scale" : "2x" | |||
}, | |||
{ | |||
"idiom" : "iphone", | |||
"size" : "29x29", | |||
"scale" : "3x" | |||
}, | |||
{ | |||
"idiom" : "iphone", | |||
"size" : "40x40", | |||
"scale" : "2x" | |||
}, | |||
{ | |||
"idiom" : "iphone", | |||
"size" : "40x40", | |||
"scale" : "3x" | |||
}, | |||
{ | |||
"idiom" : "iphone", | |||
"size" : "60x60", | |||
"scale" : "2x" | |||
}, | |||
{ | |||
"idiom" : "iphone", | |||
"size" : "60x60", | |||
"scale" : "3x" | |||
} | |||
], | |||
"info" : { | |||
"version" : 1, | |||
"author" : "xcode" | |||
} | |||
} |
@ -0,0 +1,6 @@ | |||
{ | |||
"info" : { | |||
"version" : 1, | |||
"author" : "xcode" | |||
} | |||
} |
@ -0,0 +1,60 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |||
<plist version="1.0"> | |||
<dict> | |||
<key>CFBundleDevelopmentRegion</key> | |||
<string>en</string> | |||
<key>CFBundleDisplayName</key> | |||
<string>rn599</string> | |||
<key>CFBundleExecutable</key> | |||
<string>$(EXECUTABLE_NAME)</string> | |||
<key>CFBundleIdentifier</key> | |||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> | |||
<key>CFBundleInfoDictionaryVersion</key> | |||
<string>6.0</string> | |||
<key>CFBundleName</key> | |||
<string>$(PRODUCT_NAME)</string> | |||
<key>CFBundlePackageType</key> | |||
<string>APPL</string> | |||
<key>CFBundleShortVersionString</key> | |||
<string>1.0</string> | |||
<key>CFBundleSignature</key> | |||
<string>????</string> | |||
<key>CFBundleVersion</key> | |||
<string>1</string> | |||
<key>LSRequiresIPhoneOS</key> | |||
<true/> | |||
<key>NSLocationWhenInUseUsageDescription</key> | |||
<string></string> | |||
<key>UILaunchStoryboardName</key> | |||
<string>LaunchScreen</string> | |||
<key>UIRequiredDeviceCapabilities</key> | |||
<array> | |||
<string>armv7</string> | |||
</array> | |||
<key>UISupportedInterfaceOrientations</key> | |||
<array> | |||
<string>UIInterfaceOrientationPortrait</string> | |||
<string>UIInterfaceOrientationLandscapeLeft</string> | |||
<string>UIInterfaceOrientationLandscapeRight</string> | |||
</array> | |||
<key>UIViewControllerBasedStatusBarAppearance</key> | |||
<false/> | |||
<key>NSLocationWhenInUseUsageDescription</key> | |||
<string></string> | |||
<key>NSAppTransportSecurity</key> | |||
<!--See http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/ --> | |||
<dict> | |||
<key>NSAllowsArbitraryLoads</key> | |||
<true/> | |||
<key>NSExceptionDomains</key> | |||
<dict> | |||
<key>localhost</key> | |||
<dict> | |||
<key>NSExceptionAllowsInsecureHTTPLoads</key> | |||
<true/> | |||
</dict> | |||
</dict> | |||
</dict> | |||
</dict> | |||
</plist> |
@ -0,0 +1,16 @@ | |||
/** | |||
* Copyright (c) Facebook, Inc. and its affiliates. | |||
* | |||
* This source code is licensed under the MIT license found in the | |||
* LICENSE file in the root directory of this source tree. | |||
*/ | |||
#import <UIKit/UIKit.h> | |||
#import "AppDelegate.h" | |||
int main(int argc, char * argv[]) { | |||
@autoreleasepool { | |||
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); | |||
} | |||
} |
@ -0,0 +1,24 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |||
<plist version="1.0"> | |||
<dict> | |||
<key>CFBundleDevelopmentRegion</key> | |||
<string>en</string> | |||
<key>CFBundleExecutable</key> | |||
<string>$(EXECUTABLE_NAME)</string> | |||
<key>CFBundleIdentifier</key> | |||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> | |||
<key>CFBundleInfoDictionaryVersion</key> | |||
<string>6.0</string> | |||
<key>CFBundleName</key> | |||
<string>$(PRODUCT_NAME)</string> | |||
<key>CFBundlePackageType</key> | |||
<string>BNDL</string> | |||
<key>CFBundleShortVersionString</key> | |||
<string>1.0</string> | |||
<key>CFBundleSignature</key> | |||
<string>????</string> | |||
<key>CFBundleVersion</key> | |||
<string>1</string> | |||
</dict> | |||
</plist> |
@ -0,0 +1,68 @@ | |||
/** | |||
* Copyright (c) Facebook, Inc. and its affiliates. | |||
* | |||
* This source code is licensed under the MIT license found in the | |||
* LICENSE file in the root directory of this source tree. | |||
*/ | |||
#import <UIKit/UIKit.h> | |||
#import <XCTest/XCTest.h> | |||
#import <React/RCTLog.h> | |||
#import <React/RCTRootView.h> | |||
#define TIMEOUT_SECONDS 600 | |||
#define TEXT_TO_LOOK_FOR @"Welcome to React Native!" | |||
@interface rn599Tests : XCTestCase | |||
@end | |||
@implementation rn599Tests | |||
- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test | |||
{ | |||
if (test(view)) { | |||
return YES; | |||
} | |||
for (UIView *subview in [view subviews]) { | |||
if ([self findSubviewInView:subview matching:test]) { | |||
return YES; | |||
} | |||
} | |||
return NO; | |||
} | |||
- (void)testRendersWelcomeScreen | |||
{ | |||
UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; | |||
NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; | |||
BOOL foundElement = NO; | |||
__block NSString *redboxError = nil; | |||
RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { | |||
if (level >= RCTLogLevelError) { | |||
redboxError = message; | |||
} | |||
}); | |||
while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { | |||
[[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; | |||
[[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; | |||
foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) { | |||
if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { | |||
return YES; | |||
} | |||
return NO; | |||
}]; | |||
} | |||
RCTSetLogFunction(RCTDefaultLogFunction); | |||
XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); | |||
XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); | |||
} | |||
@end |
@ -0,0 +1,17 @@ | |||
/** | |||
* Metro configuration for React Native | |||
* https://github.com/facebook/react-native | |||
* | |||
* @format | |||
*/ | |||
module.exports = { | |||
transformer: { | |||
getTransformOptions: async () => ({ | |||
transform: { | |||
experimentalImportSupport: false, | |||
inlineRequires: false, | |||
}, | |||
}), | |||
}, | |||
}; |
@ -0,0 +1,25 @@ | |||
{ | |||
"name": "rn599", | |||
"version": "0.0.1", | |||
"private": true, | |||
"scripts": { | |||
"start": "node node_modules/react-native/local-cli/cli.js start", | |||
"test": "jest" | |||
}, | |||
"dependencies": { | |||
"react": "16.8.3", | |||
"react-native": "0.59.9", | |||
"react-native-date-picker": "^2.4.2" | |||
}, | |||
"devDependencies": { | |||
"@babel/core": "^7.4.5", | |||
"@babel/runtime": "^7.4.5", | |||
"babel-jest": "^24.8.0", | |||
"jest": "^24.8.0", | |||
"metro-react-native-babel-preset": "^0.54.1", | |||
"react-test-renderer": "16.8.3" | |||
}, | |||
"jest": { | |||
"preset": "react-native" | |||
} | |||
} |