wennjie 6 years ago
parent
commit
37ad174543
100 changed files with 356 additions and 23344 deletions
  1. 0 22
      HUILIAOAPP/App.js
  2. 0 150
      HUILIAOAPP/android/app/build.gradle
  3. 0 26
      HUILIAOAPP/android/app/src/main/AndroidManifest.xml
  4. 0 15
      HUILIAOAPP/android/app/src/main/java/com/huiliaoapp/MainActivity.java
  5. 0 45
      HUILIAOAPP/android/app/src/main/java/com/huiliaoapp/MainApplication.java
  6. 0 3
      HUILIAOAPP/android/app/src/main/res/values/strings.xml
  7. 0 3
      HUILIAOAPP/android/settings.gradle
  8. 0 24
      HUILIAOAPP/app 2.json
  9. 0 4
      HUILIAOAPP/app.json
  10. BIN
      HUILIAOAPP/assets/icons/icon.png
  11. BIN
      HUILIAOAPP/assets/icons/splash.png
  12. 0 32
      HUILIAOAPP/flow-typed/npm/babel-jest_vx.x.x.js
  13. 0 823
      HUILIAOAPP/flow-typed/npm/expo_vx.x.x.js
  14. 0 6
      HUILIAOAPP/flow-typed/npm/flow-bin_v0.x.x.js
  15. 0 46
      HUILIAOAPP/flow-typed/npm/jest-expo_vx.x.x.js
  16. 0 584
      HUILIAOAPP/flow-typed/npm/jest_v21.x.x.js
  17. 0 39
      HUILIAOAPP/flow-typed/npm/jest_vx.x.x.js
  18. 0 33
      HUILIAOAPP/flow-typed/npm/react-addons-test-utils_vx.x.x.js
  19. 0 123
      HUILIAOAPP/flow-typed/npm/react-native-scripts_vx.x.x.js
  20. 0 7663
      HUILIAOAPP/flow-typed/npm/react-native_vx.x.x.js
  21. 0 62
      HUILIAOAPP/flow-typed/npm/react-test-renderer_v16.x.x.js
  22. 0 66
      HUILIAOAPP/flow-typed/npm/react-test-renderer_vx.x.x.js
  23. 0 8
      HUILIAOAPP/index.js
  24. 0 1468
      HUILIAOAPP/ios/HUILIAOAPP.xcodeproj/project.pbxproj
  25. 0 129
      HUILIAOAPP/ios/HUILIAOAPP.xcodeproj/xcshareddata/xcschemes/HUILIAOAPP-tvOS.xcscheme
  26. 0 129
      HUILIAOAPP/ios/HUILIAOAPP.xcodeproj/xcshareddata/xcschemes/HUILIAOAPP.xcscheme
  27. 0 35
      HUILIAOAPP/ios/HUILIAOAPP/AppDelegate.m
  28. 0 42
      HUILIAOAPP/ios/HUILIAOAPP/Base.lproj/LaunchScreen.xib
  29. 0 57
      HUILIAOAPP/ios/HUILIAOAPP/Info.plist
  30. 0 68
      HUILIAOAPP/ios/HUILIAOAPPTests/HUILIAOAPPTests.m
  31. 0 410
      HUILIAOAPP/js/App.js
  32. 0 45
      HUILIAOAPP/js/Banner.js
  33. 0 121
      HUILIAOAPP/js/CustomTabs.js
  34. 0 117
      HUILIAOAPP/js/CustomTransitioner.js
  35. 0 96
      HUILIAOAPP/js/Drawer.js
  36. 0 96
      HUILIAOAPP/js/InactiveStack.js
  37. 0 63
      HUILIAOAPP/js/KeyboardHandlingExample.js
  38. 0 107
      HUILIAOAPP/js/ModalStack.js
  39. 0 75
      HUILIAOAPP/js/MultipleDrawer.js
  40. 0 22
      HUILIAOAPP/js/SampleText.js
  41. 0 255
      HUILIAOAPP/js/SimpleStack.js
  42. 0 204
      HUILIAOAPP/js/SimpleTabs.js
  43. 0 145
      HUILIAOAPP/js/StackWithCustomHeaderBackImage.js
  44. 0 123
      HUILIAOAPP/js/StackWithHeaderPreset.js
  45. 0 249
      HUILIAOAPP/js/StackWithTranslucentHeader.js
  46. 0 130
      HUILIAOAPP/js/StacksInTabs.js
  47. 0 129
      HUILIAOAPP/js/StacksOverTabs.js
  48. 0 142
      HUILIAOAPP/js/StacksOverTopTabs.js
  49. 0 102
      HUILIAOAPP/js/StacksWithKeys.js
  50. 0 121
      HUILIAOAPP/js/SwitchWithStacks.js
  51. 0 45
      HUILIAOAPP/js/TabsInDrawer.js
  52. 0 127
      HUILIAOAPP/js/TabsWithNavigationEvents.js
  53. 0 103
      HUILIAOAPP/js/TabsWithNavigationFocus.js
  54. BIN
      HUILIAOAPP/js/assets/NavLogo.png
  55. BIN
      HUILIAOAPP/js/assets/back.png
  56. BIN
      HUILIAOAPP/js/assets/dog-back.png
  57. 0 18
      HUILIAOAPP/js/commonComponents/ButtonWithMargin.js
  58. 0 16
      HUILIAOAPP/js/commonComponents/HeaderButtons.js
  59. 0 49
      HUILIAOAPP/package.json
  60. 0 6
      HUILIAOAPP/src/API/index.js
  61. 0 78
      HUILIAOAPP/src/API/leanCloudAPI.js
  62. 0 65
      HUILIAOAPP/src/components/LoginScreen.js
  63. 0 126
      HUILIAOAPP/src/components/ProfileScreen.js
  64. 0 54
      HUILIAOAPP/src/navigators/AppNavigator.js
  65. 0 19
      HUILIAOAPP/src/pages/Login/index.js
  66. 0 19
      HUILIAOAPP/src/pages/Mine/Infomation/index.js
  67. 0 19
      HUILIAOAPP/src/pages/Mine/Notice/index.js
  68. 0 19
      HUILIAOAPP/src/pages/Mine/QrCode/index.js
  69. 0 19
      HUILIAOAPP/src/pages/Mine/ReName/index.js
  70. 0 19
      HUILIAOAPP/src/pages/Mine/RePassword/index.js
  71. 0 19
      HUILIAOAPP/src/pages/Mine/Setting/index.js
  72. 0 19
      HUILIAOAPP/src/pages/Mine/index.js
  73. 0 59
      HUILIAOAPP/src/reducers/index.js
  74. 0 7989
      HUILIAOAPP/yarn.lock
  75. 0 0
      demo/.babelrc
  76. 0 0
      demo/.buckconfig
  77. 0 0
      demo/.flowconfig
  78. 0 0
      demo/.gitattributes
  79. 0 0
      demo/.gitignore
  80. 0 0
      demo/.watchmanconfig
  81. 49 0
      demo/App.js
  82. 65 0
      demo/android/app/BUCK
  83. 150 0
      demo/android/app/build.gradle
  84. 0 0
      demo/android/app/proguard-rules.pro
  85. 29 0
      demo/android/app/src/main/AndroidManifest.xml
  86. 15 0
      demo/android/app/src/main/java/com/demo/MainActivity.java
  87. 45 0
      demo/android/app/src/main/java/com/demo/MainApplication.java
  88. 0 0
      demo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
  89. 0 0
      demo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
  90. 0 0
      demo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
  91. 0 0
      demo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
  92. 0 0
      demo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
  93. 0 0
      demo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
  94. 0 0
      demo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
  95. 0 0
      demo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
  96. 0 0
      demo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
  97. 0 0
      demo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
  98. 3 0
      demo/android/app/src/main/res/values/strings.xml
  99. 0 0
      demo/android/app/src/main/res/values/styles.xml
  100. 0 0
      HUILIAOAPP/android/build.gradle

+ 0 - 22
HUILIAOAPP/App.js

@@ -1,22 +0,0 @@
-// import React from 'react';
-// import { AppRegistry } from 'react-native';
-// import { Provider } from 'react-redux';
-// import { createStore, applyMiddleware } from 'redux';
-// import AppReducer from './src/reducers';
-// import { AppNavigator, middleware } from './src/navigators/AppNavigator';
-
-
-// const store = createStore(AppReducer, applyMiddleware(middleware));
-
-// class HuiLiao extends React.Component {
-//   render() {
-//     return (
-//       <Provider store={store}>
-//         <AppNavigator />
-//       </Provider>
-//     );
-//   }
-// }
-// export default HuiLiao;
-import App from './js/App';
-export default App;

+ 0 - 150
HUILIAOAPP/android/app/build.gradle

@@ -1,150 +0,0 @@
-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
-    buildToolsVersion rootProject.ext.buildToolsVersion
-
-    defaultConfig {
-        applicationId "com.huiliaoapp"
-        minSdkVersion rootProject.ext.minSdkVersion
-        targetSdkVersion rootProject.ext.targetSdkVersion
-        versionCode 1
-        versionName "1.0"
-        ndk {
-            abiFilters "armeabi-v7a", "x86"
-        }
-    }
-    splits {
-        abi {
-            reset()
-            enable enableSeparateBuildPerCPUArchitecture
-            universalApk false  // If true, also generate a universal APK
-            include "armeabi-v7a", "x86"
-        }
-    }
-    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]
-            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 {
-    compile fileTree(dir: "libs", include: ["*.jar"])
-    compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
-    compile "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 - 26
HUILIAOAPP/android/app/src/main/AndroidManifest.xml

@@ -1,26 +0,0 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.huiliaoapp">
-
-    <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
-
-    <application
-      android:name=".MainApplication"
-      android:label="@string/app_name"
-      android:icon="@mipmap/ic_launcher"
-      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 - 15
HUILIAOAPP/android/app/src/main/java/com/huiliaoapp/MainActivity.java

@@ -1,15 +0,0 @@
-package com.huiliaoapp;
-
-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 "HUILIAOAPP";
-    }
-}

+ 0 - 45
HUILIAOAPP/android/app/src/main/java/com/huiliaoapp/MainApplication.java

@@ -1,45 +0,0 @@
-package com.huiliaoapp;
-
-import android.app.Application;
-
-import com.facebook.react.ReactApplication;
-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()
-      );
-    }
-
-    @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 - 3
HUILIAOAPP/android/app/src/main/res/values/strings.xml

@@ -1,3 +0,0 @@
-<resources>
-    <string name="app_name">HUILIAOAPP</string>
-</resources>

+ 0 - 3
HUILIAOAPP/android/settings.gradle

@@ -1,3 +0,0 @@
-rootProject.name = 'HUILIAOAPP'
-
-include ':app'

+ 0 - 24
HUILIAOAPP/app 2.json

@@ -1,24 +0,0 @@
-{
-  "expo": {
-    "name": "ReduxExample",
-    "description": "Try out react-navigation with this awesome Redux example",
-    "version": "1.0.0",
-    "slug": "ReduxExample",
-    "privacy": "public",
-    "orientation": "portrait",
-    "primaryColor": "#cccccc",
-    "icon": "./assets/icons/react-navigation.png",
-    "loading": {
-      "icon": "./assets/icons/react-navigation.png",
-      "hideExponentText": false
-    },
-    "sdkVersion": "27.0.0",
-    "entryPoint": "./node_modules/react-native-scripts/build/bin/crna-entry.js",
-    "packagerOpts": {
-      "assetExts": ["ttf", "mp4"]
-    },
-    "ios": {
-      "supportsTablet": true
-    }
-  }
-}

+ 0 - 4
HUILIAOAPP/app.json

@@ -1,4 +0,0 @@
-{
-  "name": "HUILIAOAPP",
-  "displayName": "HUILIAOAPP"
-}

BIN
HUILIAOAPP/assets/icons/icon.png


BIN
HUILIAOAPP/assets/icons/splash.png


+ 0 - 32
HUILIAOAPP/flow-typed/npm/babel-jest_vx.x.x.js

@@ -1,32 +0,0 @@
-// flow-typed signature: ee7b4028012cfdcd83cc6541a39b2282
-// flow-typed version: <<STUB>>/babel-jest_v^21.0.0/flow_v0.61.0
-
-/**
- * This is an autogenerated libdef stub for:
- *
- *   'babel-jest'
- *
- * Fill this stub out by replacing all the `any` types.
- *
- * Once filled out, we encourage you to share your work with the
- * community by sending a pull request to:
- * https://github.com/flowtype/flow-typed
- */
-
-declare module 'babel-jest' {
-  declare module.exports: any;
-}
-
-/**
- * We include stubs for each file inside this npm package in case you need to
- * require those files directly. Feel free to delete any files that aren't
- * needed.
- */
-declare module 'babel-jest/build/index' {
-  declare module.exports: any;
-}
-
-// Filename aliases
-declare module 'babel-jest/build/index.js' {
-  declare module.exports: $Exports<'babel-jest/build/index'>;
-}

+ 0 - 823
HUILIAOAPP/flow-typed/npm/expo_vx.x.x.js

@@ -1,823 +0,0 @@
-// flow-typed signature: c1ecfe71fbb86c3602b7da3d7c141df1
-// flow-typed version: <<STUB>>/expo_v^24.0.2/flow_v0.61.0
-
-/**
- * This is an autogenerated libdef stub for:
- *
- *   'expo'
- *
- * Fill this stub out by replacing all the `any` types.
- *
- * Once filled out, we encourage you to share your work with the
- * community by sending a pull request to:
- * https://github.com/flowtype/flow-typed
- */
-
-declare module 'expo' {
-  declare module.exports: any;
-}
-
-/**
- * We include stubs for each file inside this npm package in case you need to
- * require those files directly. Feel free to delete any files that aren't
- * needed.
- */
-declare module 'expo/AppEntry' {
-  declare module.exports: any;
-}
-
-declare module 'expo/flow/metro-bundler' {
-  declare module.exports: any;
-}
-
-declare module 'expo/flow/react-native-gesture-handler' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/__mocks__/Constants-development' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/__tests__/Amplitude-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/__tests__/AuthSession-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/__tests__/Constants-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/__tests__/ErrorRecovery-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/__tests__/Expo-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/__tests__/Facebook-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/__tests__/Font-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/__tests__/Location-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/__tests__/Notifications-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/__tests__/SecureStore-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/__tests__/Segment-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/__tests__/WebBrowser-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/admob/RNAdMobBanner' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/admob/RNAdMobInterstitial' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/admob/RNAdMobRewarded' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/admob/RNPublisherBanner' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Amplitude' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/apisAreAvailable' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Asset' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/AuthSession' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/av/Audio' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/av/Audio/Recording' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/av/Audio/Sound' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/av/AV' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/av/Video' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/BarCodeScanner.android' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/BarCodeScanner.ios' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Brightness' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Camera' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/CameraBasedBarCodeScanner' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Constants' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Contacts' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/DangerZone' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/DocumentPicker' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/effects/BlurView.android' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/effects/BlurView.ios' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/effects/LinearGradient.android' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/effects/LinearGradient.ios' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/environment/__tests__/validate-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/environment/logging' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/environment/validate' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/ErrorRecovery' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Expo' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/facebook-ads/AdSettings' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/facebook-ads/BannerViewManager' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/facebook-ads/index' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/facebook-ads/InterstitialAdManager' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/facebook-ads/NativeAdsManager' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/facebook-ads/withNativeAd' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Facebook' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/FaceDetector' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/FileSystem' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Fingerprint' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Font' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/GLView' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Google' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Icon' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/ImageManipulator' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/ImagePicker' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/IntentLauncherAndroid' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/KeepAwake' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/launch/AppLoading' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/launch/AppLoadingNativeWrapper.android' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/launch/AppLoadingNativeWrapper.ios' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/launch/registerRootComponent' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/launch/RootErrorBoundary' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/lib/Queue' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Location' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/logs/__tests__/Logs-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/logs/__tests__/LogSerialization-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/logs/__tests__/RemoteConsole-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/logs/__tests__/RemoteLogging-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/logs/__tests__/RemoteLogs-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/logs/Logs' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/logs/LogSerialization' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/logs/RemoteConsole' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/logs/RemoteLogging' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/modal/Modal' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/modal/ModalHost' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/modal/ModalImplementation' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/modal/PureContainer' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Notifications' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/OldBarCodeScanner' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Payments' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Pedometer' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Permissions' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/ScreenOrientation' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/SecureStore' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Segment' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/sensor/__tests__/Accelerometer-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/sensor/__tests__/DeviceMotion-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/sensor/__tests__/DeviceSensor-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/sensor/__tests__/Gyroscope-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/sensor/__tests__/Magnetometer-test' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/sensor/Accelerometer' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/sensor/DeviceMotion' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/sensor/DeviceSensor' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/sensor/Gyroscope' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/sensor/Magnetometer' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/sensor/MagnetometerUncalibrated' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/sensor/ThreeAxisSensor' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Speech' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/SQLite' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Svg' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/takeSnapshotAsync' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/timer/polyfillNextTick' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/Util' {
-  declare module.exports: any;
-}
-
-declare module 'expo/src/WebBrowser' {
-  declare module.exports: any;
-}
-
-declare module 'expo/tools/hashAssetFiles' {
-  declare module.exports: any;
-}
-
-declare module 'expo/tools/LogReporter' {
-  declare module.exports: any;
-}
-
-// Filename aliases
-declare module 'expo/AppEntry.js' {
-  declare module.exports: $Exports<'expo/AppEntry'>;
-}
-declare module 'expo/flow/metro-bundler.js' {
-  declare module.exports: $Exports<'expo/flow/metro-bundler'>;
-}
-declare module 'expo/flow/react-native-gesture-handler.js' {
-  declare module.exports: $Exports<'expo/flow/react-native-gesture-handler'>;
-}
-declare module 'expo/src/__mocks__/Constants-development.js' {
-  declare module.exports: $Exports<'expo/src/__mocks__/Constants-development'>;
-}
-declare module 'expo/src/__tests__/Amplitude-test.js' {
-  declare module.exports: $Exports<'expo/src/__tests__/Amplitude-test'>;
-}
-declare module 'expo/src/__tests__/AuthSession-test.js' {
-  declare module.exports: $Exports<'expo/src/__tests__/AuthSession-test'>;
-}
-declare module 'expo/src/__tests__/Constants-test.js' {
-  declare module.exports: $Exports<'expo/src/__tests__/Constants-test'>;
-}
-declare module 'expo/src/__tests__/ErrorRecovery-test.js' {
-  declare module.exports: $Exports<'expo/src/__tests__/ErrorRecovery-test'>;
-}
-declare module 'expo/src/__tests__/Expo-test.js' {
-  declare module.exports: $Exports<'expo/src/__tests__/Expo-test'>;
-}
-declare module 'expo/src/__tests__/Facebook-test.js' {
-  declare module.exports: $Exports<'expo/src/__tests__/Facebook-test'>;
-}
-declare module 'expo/src/__tests__/Font-test.js' {
-  declare module.exports: $Exports<'expo/src/__tests__/Font-test'>;
-}
-declare module 'expo/src/__tests__/Location-test.js' {
-  declare module.exports: $Exports<'expo/src/__tests__/Location-test'>;
-}
-declare module 'expo/src/__tests__/Notifications-test.js' {
-  declare module.exports: $Exports<'expo/src/__tests__/Notifications-test'>;
-}
-declare module 'expo/src/__tests__/SecureStore-test.js' {
-  declare module.exports: $Exports<'expo/src/__tests__/SecureStore-test'>;
-}
-declare module 'expo/src/__tests__/Segment-test.js' {
-  declare module.exports: $Exports<'expo/src/__tests__/Segment-test'>;
-}
-declare module 'expo/src/__tests__/WebBrowser-test.js' {
-  declare module.exports: $Exports<'expo/src/__tests__/WebBrowser-test'>;
-}
-declare module 'expo/src/admob/RNAdMobBanner.js' {
-  declare module.exports: $Exports<'expo/src/admob/RNAdMobBanner'>;
-}
-declare module 'expo/src/admob/RNAdMobInterstitial.js' {
-  declare module.exports: $Exports<'expo/src/admob/RNAdMobInterstitial'>;
-}
-declare module 'expo/src/admob/RNAdMobRewarded.js' {
-  declare module.exports: $Exports<'expo/src/admob/RNAdMobRewarded'>;
-}
-declare module 'expo/src/admob/RNPublisherBanner.js' {
-  declare module.exports: $Exports<'expo/src/admob/RNPublisherBanner'>;
-}
-declare module 'expo/src/Amplitude.js' {
-  declare module.exports: $Exports<'expo/src/Amplitude'>;
-}
-declare module 'expo/src/apisAreAvailable.js' {
-  declare module.exports: $Exports<'expo/src/apisAreAvailable'>;
-}
-declare module 'expo/src/Asset.js' {
-  declare module.exports: $Exports<'expo/src/Asset'>;
-}
-declare module 'expo/src/AuthSession.js' {
-  declare module.exports: $Exports<'expo/src/AuthSession'>;
-}
-declare module 'expo/src/av/Audio.js' {
-  declare module.exports: $Exports<'expo/src/av/Audio'>;
-}
-declare module 'expo/src/av/Audio/Recording.js' {
-  declare module.exports: $Exports<'expo/src/av/Audio/Recording'>;
-}
-declare module 'expo/src/av/Audio/Sound.js' {
-  declare module.exports: $Exports<'expo/src/av/Audio/Sound'>;
-}
-declare module 'expo/src/av/AV.js' {
-  declare module.exports: $Exports<'expo/src/av/AV'>;
-}
-declare module 'expo/src/av/Video.js' {
-  declare module.exports: $Exports<'expo/src/av/Video'>;
-}
-declare module 'expo/src/BarCodeScanner.android.js' {
-  declare module.exports: $Exports<'expo/src/BarCodeScanner.android'>;
-}
-declare module 'expo/src/BarCodeScanner.ios.js' {
-  declare module.exports: $Exports<'expo/src/BarCodeScanner.ios'>;
-}
-declare module 'expo/src/Brightness.js' {
-  declare module.exports: $Exports<'expo/src/Brightness'>;
-}
-declare module 'expo/src/Camera.js' {
-  declare module.exports: $Exports<'expo/src/Camera'>;
-}
-declare module 'expo/src/CameraBasedBarCodeScanner.js' {
-  declare module.exports: $Exports<'expo/src/CameraBasedBarCodeScanner'>;
-}
-declare module 'expo/src/Constants.js' {
-  declare module.exports: $Exports<'expo/src/Constants'>;
-}
-declare module 'expo/src/Contacts.js' {
-  declare module.exports: $Exports<'expo/src/Contacts'>;
-}
-declare module 'expo/src/DangerZone.js' {
-  declare module.exports: $Exports<'expo/src/DangerZone'>;
-}
-declare module 'expo/src/DocumentPicker.js' {
-  declare module.exports: $Exports<'expo/src/DocumentPicker'>;
-}
-declare module 'expo/src/effects/BlurView.android.js' {
-  declare module.exports: $Exports<'expo/src/effects/BlurView.android'>;
-}
-declare module 'expo/src/effects/BlurView.ios.js' {
-  declare module.exports: $Exports<'expo/src/effects/BlurView.ios'>;
-}
-declare module 'expo/src/effects/LinearGradient.android.js' {
-  declare module.exports: $Exports<'expo/src/effects/LinearGradient.android'>;
-}
-declare module 'expo/src/effects/LinearGradient.ios.js' {
-  declare module.exports: $Exports<'expo/src/effects/LinearGradient.ios'>;
-}
-declare module 'expo/src/environment/__tests__/validate-test.js' {
-  declare module.exports: $Exports<'expo/src/environment/__tests__/validate-test'>;
-}
-declare module 'expo/src/environment/logging.js' {
-  declare module.exports: $Exports<'expo/src/environment/logging'>;
-}
-declare module 'expo/src/environment/validate.js' {
-  declare module.exports: $Exports<'expo/src/environment/validate'>;
-}
-declare module 'expo/src/ErrorRecovery.js' {
-  declare module.exports: $Exports<'expo/src/ErrorRecovery'>;
-}
-declare module 'expo/src/Expo.js' {
-  declare module.exports: $Exports<'expo/src/Expo'>;
-}
-declare module 'expo/src/facebook-ads/AdSettings.js' {
-  declare module.exports: $Exports<'expo/src/facebook-ads/AdSettings'>;
-}
-declare module 'expo/src/facebook-ads/BannerViewManager.js' {
-  declare module.exports: $Exports<'expo/src/facebook-ads/BannerViewManager'>;
-}
-declare module 'expo/src/facebook-ads/index.js' {
-  declare module.exports: $Exports<'expo/src/facebook-ads/index'>;
-}
-declare module 'expo/src/facebook-ads/InterstitialAdManager.js' {
-  declare module.exports: $Exports<'expo/src/facebook-ads/InterstitialAdManager'>;
-}
-declare module 'expo/src/facebook-ads/NativeAdsManager.js' {
-  declare module.exports: $Exports<'expo/src/facebook-ads/NativeAdsManager'>;
-}
-declare module 'expo/src/facebook-ads/withNativeAd.js' {
-  declare module.exports: $Exports<'expo/src/facebook-ads/withNativeAd'>;
-}
-declare module 'expo/src/Facebook.js' {
-  declare module.exports: $Exports<'expo/src/Facebook'>;
-}
-declare module 'expo/src/FaceDetector.js' {
-  declare module.exports: $Exports<'expo/src/FaceDetector'>;
-}
-declare module 'expo/src/FileSystem.js' {
-  declare module.exports: $Exports<'expo/src/FileSystem'>;
-}
-declare module 'expo/src/Fingerprint.js' {
-  declare module.exports: $Exports<'expo/src/Fingerprint'>;
-}
-declare module 'expo/src/Font.js' {
-  declare module.exports: $Exports<'expo/src/Font'>;
-}
-declare module 'expo/src/GLView.js' {
-  declare module.exports: $Exports<'expo/src/GLView'>;
-}
-declare module 'expo/src/Google.js' {
-  declare module.exports: $Exports<'expo/src/Google'>;
-}
-declare module 'expo/src/Icon.js' {
-  declare module.exports: $Exports<'expo/src/Icon'>;
-}
-declare module 'expo/src/ImageManipulator.js' {
-  declare module.exports: $Exports<'expo/src/ImageManipulator'>;
-}
-declare module 'expo/src/ImagePicker.js' {
-  declare module.exports: $Exports<'expo/src/ImagePicker'>;
-}
-declare module 'expo/src/IntentLauncherAndroid.js' {
-  declare module.exports: $Exports<'expo/src/IntentLauncherAndroid'>;
-}
-declare module 'expo/src/KeepAwake.js' {
-  declare module.exports: $Exports<'expo/src/KeepAwake'>;
-}
-declare module 'expo/src/launch/AppLoading.js' {
-  declare module.exports: $Exports<'expo/src/launch/AppLoading'>;
-}
-declare module 'expo/src/launch/AppLoadingNativeWrapper.android.js' {
-  declare module.exports: $Exports<'expo/src/launch/AppLoadingNativeWrapper.android'>;
-}
-declare module 'expo/src/launch/AppLoadingNativeWrapper.ios.js' {
-  declare module.exports: $Exports<'expo/src/launch/AppLoadingNativeWrapper.ios'>;
-}
-declare module 'expo/src/launch/registerRootComponent.js' {
-  declare module.exports: $Exports<'expo/src/launch/registerRootComponent'>;
-}
-declare module 'expo/src/launch/RootErrorBoundary.js' {
-  declare module.exports: $Exports<'expo/src/launch/RootErrorBoundary'>;
-}
-declare module 'expo/src/lib/Queue.js' {
-  declare module.exports: $Exports<'expo/src/lib/Queue'>;
-}
-declare module 'expo/src/Location.js' {
-  declare module.exports: $Exports<'expo/src/Location'>;
-}
-declare module 'expo/src/logs/__tests__/Logs-test.js' {
-  declare module.exports: $Exports<'expo/src/logs/__tests__/Logs-test'>;
-}
-declare module 'expo/src/logs/__tests__/LogSerialization-test.js' {
-  declare module.exports: $Exports<'expo/src/logs/__tests__/LogSerialization-test'>;
-}
-declare module 'expo/src/logs/__tests__/RemoteConsole-test.js' {
-  declare module.exports: $Exports<'expo/src/logs/__tests__/RemoteConsole-test'>;
-}
-declare module 'expo/src/logs/__tests__/RemoteLogging-test.js' {
-  declare module.exports: $Exports<'expo/src/logs/__tests__/RemoteLogging-test'>;
-}
-declare module 'expo/src/logs/__tests__/RemoteLogs-test.js' {
-  declare module.exports: $Exports<'expo/src/logs/__tests__/RemoteLogs-test'>;
-}
-declare module 'expo/src/logs/Logs.js' {
-  declare module.exports: $Exports<'expo/src/logs/Logs'>;
-}
-declare module 'expo/src/logs/LogSerialization.js' {
-  declare module.exports: $Exports<'expo/src/logs/LogSerialization'>;
-}
-declare module 'expo/src/logs/RemoteConsole.js' {
-  declare module.exports: $Exports<'expo/src/logs/RemoteConsole'>;
-}
-declare module 'expo/src/logs/RemoteLogging.js' {
-  declare module.exports: $Exports<'expo/src/logs/RemoteLogging'>;
-}
-declare module 'expo/src/modal/Modal.js' {
-  declare module.exports: $Exports<'expo/src/modal/Modal'>;
-}
-declare module 'expo/src/modal/ModalHost.js' {
-  declare module.exports: $Exports<'expo/src/modal/ModalHost'>;
-}
-declare module 'expo/src/modal/ModalImplementation.js' {
-  declare module.exports: $Exports<'expo/src/modal/ModalImplementation'>;
-}
-declare module 'expo/src/modal/PureContainer.js' {
-  declare module.exports: $Exports<'expo/src/modal/PureContainer'>;
-}
-declare module 'expo/src/Notifications.js' {
-  declare module.exports: $Exports<'expo/src/Notifications'>;
-}
-declare module 'expo/src/OldBarCodeScanner.js' {
-  declare module.exports: $Exports<'expo/src/OldBarCodeScanner'>;
-}
-declare module 'expo/src/Payments.js' {
-  declare module.exports: $Exports<'expo/src/Payments'>;
-}
-declare module 'expo/src/Pedometer.js' {
-  declare module.exports: $Exports<'expo/src/Pedometer'>;
-}
-declare module 'expo/src/Permissions.js' {
-  declare module.exports: $Exports<'expo/src/Permissions'>;
-}
-declare module 'expo/src/ScreenOrientation.js' {
-  declare module.exports: $Exports<'expo/src/ScreenOrientation'>;
-}
-declare module 'expo/src/SecureStore.js' {
-  declare module.exports: $Exports<'expo/src/SecureStore'>;
-}
-declare module 'expo/src/Segment.js' {
-  declare module.exports: $Exports<'expo/src/Segment'>;
-}
-declare module 'expo/src/sensor/__tests__/Accelerometer-test.js' {
-  declare module.exports: $Exports<'expo/src/sensor/__tests__/Accelerometer-test'>;
-}
-declare module 'expo/src/sensor/__tests__/DeviceMotion-test.js' {
-  declare module.exports: $Exports<'expo/src/sensor/__tests__/DeviceMotion-test'>;
-}
-declare module 'expo/src/sensor/__tests__/DeviceSensor-test.js' {
-  declare module.exports: $Exports<'expo/src/sensor/__tests__/DeviceSensor-test'>;
-}
-declare module 'expo/src/sensor/__tests__/Gyroscope-test.js' {
-  declare module.exports: $Exports<'expo/src/sensor/__tests__/Gyroscope-test'>;
-}
-declare module 'expo/src/sensor/__tests__/Magnetometer-test.js' {
-  declare module.exports: $Exports<'expo/src/sensor/__tests__/Magnetometer-test'>;
-}
-declare module 'expo/src/sensor/Accelerometer.js' {
-  declare module.exports: $Exports<'expo/src/sensor/Accelerometer'>;
-}
-declare module 'expo/src/sensor/DeviceMotion.js' {
-  declare module.exports: $Exports<'expo/src/sensor/DeviceMotion'>;
-}
-declare module 'expo/src/sensor/DeviceSensor.js' {
-  declare module.exports: $Exports<'expo/src/sensor/DeviceSensor'>;
-}
-declare module 'expo/src/sensor/Gyroscope.js' {
-  declare module.exports: $Exports<'expo/src/sensor/Gyroscope'>;
-}
-declare module 'expo/src/sensor/Magnetometer.js' {
-  declare module.exports: $Exports<'expo/src/sensor/Magnetometer'>;
-}
-declare module 'expo/src/sensor/MagnetometerUncalibrated.js' {
-  declare module.exports: $Exports<'expo/src/sensor/MagnetometerUncalibrated'>;
-}
-declare module 'expo/src/sensor/ThreeAxisSensor.js' {
-  declare module.exports: $Exports<'expo/src/sensor/ThreeAxisSensor'>;
-}
-declare module 'expo/src/Speech.js' {
-  declare module.exports: $Exports<'expo/src/Speech'>;
-}
-declare module 'expo/src/SQLite.js' {
-  declare module.exports: $Exports<'expo/src/SQLite'>;
-}
-declare module 'expo/src/Svg.js' {
-  declare module.exports: $Exports<'expo/src/Svg'>;
-}
-declare module 'expo/src/takeSnapshotAsync.js' {
-  declare module.exports: $Exports<'expo/src/takeSnapshotAsync'>;
-}
-declare module 'expo/src/timer/polyfillNextTick.js' {
-  declare module.exports: $Exports<'expo/src/timer/polyfillNextTick'>;
-}
-declare module 'expo/src/Util.js' {
-  declare module.exports: $Exports<'expo/src/Util'>;
-}
-declare module 'expo/src/WebBrowser.js' {
-  declare module.exports: $Exports<'expo/src/WebBrowser'>;
-}
-declare module 'expo/tools/hashAssetFiles.js' {
-  declare module.exports: $Exports<'expo/tools/hashAssetFiles'>;
-}
-declare module 'expo/tools/LogReporter.js' {
-  declare module.exports: $Exports<'expo/tools/LogReporter'>;
-}

+ 0 - 6
HUILIAOAPP/flow-typed/npm/flow-bin_v0.x.x.js

@@ -1,6 +0,0 @@
-// flow-typed signature: 6a5610678d4b01e13bbfbbc62bdaf583
-// flow-typed version: 3817bc6980/flow-bin_v0.x.x/flow_>=v0.25.x
-
-declare module "flow-bin" {
-  declare module.exports: string;
-}

+ 0 - 46
HUILIAOAPP/flow-typed/npm/jest-expo_vx.x.x.js

@@ -1,46 +0,0 @@
-// flow-typed signature: b1e3826a494aecf4ff482336321b54bd
-// flow-typed version: <<STUB>>/jest-expo_v^24.0.0/flow_v0.61.0
-
-/**
- * This is an autogenerated libdef stub for:
- *
- *   'jest-expo'
- *
- * Fill this stub out by replacing all the `any` types.
- *
- * Once filled out, we encourage you to share your work with the
- * community by sending a pull request to:
- * https://github.com/flowtype/flow-typed
- */
-
-declare module 'jest-expo' {
-  declare module.exports: any;
-}
-
-/**
- * We include stubs for each file inside this npm package in case you need to
- * require those files directly. Feel free to delete any files that aren't
- * needed.
- */
-declare module 'jest-expo/src/createMockConstants' {
-  declare module.exports: any;
-}
-
-declare module 'jest-expo/src/expoModules' {
-  declare module.exports: any;
-}
-
-declare module 'jest-expo/src/setup' {
-  declare module.exports: any;
-}
-
-// Filename aliases
-declare module 'jest-expo/src/createMockConstants.js' {
-  declare module.exports: $Exports<'jest-expo/src/createMockConstants'>;
-}
-declare module 'jest-expo/src/expoModules.js' {
-  declare module.exports: $Exports<'jest-expo/src/expoModules'>;
-}
-declare module 'jest-expo/src/setup.js' {
-  declare module.exports: $Exports<'jest-expo/src/setup'>;
-}

+ 0 - 584
HUILIAOAPP/flow-typed/npm/jest_v21.x.x.js

@@ -1,584 +0,0 @@
-// flow-typed signature: 107cf7068b8835594e97f938e8848244
-// flow-typed version: 8b4dd96654/jest_v21.x.x/flow_>=v0.39.x
-
-type JestMockFn<TArguments: $ReadOnlyArray<*>, TReturn> = {
-  (...args: TArguments): TReturn,
-  /**
-   * An object for introspecting mock calls
-   */
-  mock: {
-    /**
-     * An array that represents all calls that have been made into this mock
-     * function. Each call is represented by an array of arguments that were
-     * passed during the call.
-     */
-    calls: Array<TArguments>,
-    /**
-     * An array that contains all the object instances that have been
-     * instantiated from this mock function.
-     */
-    instances: Array<TReturn>
-  },
-  /**
-   * Resets all information stored in the mockFn.mock.calls and
-   * mockFn.mock.instances arrays. Often this is useful when you want to clean
-   * up a mock's usage data between two assertions.
-   */
-  mockClear(): void,
-  /**
-   * Resets all information stored in the mock. This is useful when you want to
-   * completely restore a mock back to its initial state.
-   */
-  mockReset(): void,
-  /**
-   * Removes the mock and restores the initial implementation. This is useful
-   * when you want to mock functions in certain test cases and restore the
-   * original implementation in others. Beware that mockFn.mockRestore only
-   * works when mock was created with jest.spyOn. Thus you have to take care of
-   * restoration yourself when manually assigning jest.fn().
-   */
-  mockRestore(): void,
-  /**
-   * Accepts a function that should be used as the implementation of the mock.
-   * The mock itself will still record all calls that go into and instances
-   * that come from itself -- the only difference is that the implementation
-   * will also be executed when the mock is called.
-   */
-  mockImplementation(
-    fn: (...args: TArguments) => TReturn
-  ): JestMockFn<TArguments, TReturn>,
-  /**
-   * Accepts a function that will be used as an implementation of the mock for
-   * one call to the mocked function. Can be chained so that multiple function
-   * calls produce different results.
-   */
-  mockImplementationOnce(
-    fn: (...args: TArguments) => TReturn
-  ): JestMockFn<TArguments, TReturn>,
-  /**
-   * Just a simple sugar function for returning `this`
-   */
-  mockReturnThis(): void,
-  /**
-   * Deprecated: use jest.fn(() => value) instead
-   */
-  mockReturnValue(value: TReturn): JestMockFn<TArguments, TReturn>,
-  /**
-   * Sugar for only returning a value once inside your mock
-   */
-  mockReturnValueOnce(value: TReturn): JestMockFn<TArguments, TReturn>
-};
-
-type JestAsymmetricEqualityType = {
-  /**
-   * A custom Jasmine equality tester
-   */
-  asymmetricMatch(value: mixed): boolean
-};
-
-type JestCallsType = {
-  allArgs(): mixed,
-  all(): mixed,
-  any(): boolean,
-  count(): number,
-  first(): mixed,
-  mostRecent(): mixed,
-  reset(): void
-};
-
-type JestClockType = {
-  install(): void,
-  mockDate(date: Date): void,
-  tick(milliseconds?: number): void,
-  uninstall(): void
-};
-
-type JestMatcherResult = {
-  message?: string | (() => string),
-  pass: boolean
-};
-
-type JestMatcher = (actual: any, expected: any) => JestMatcherResult;
-
-type JestPromiseType = {
-  /**
-   * Use rejects to unwrap the reason of a rejected promise so any other
-   * matcher can be chained. If the promise is fulfilled the assertion fails.
-   */
-  rejects: JestExpectType,
-  /**
-   * Use resolves to unwrap the value of a fulfilled promise so any other
-   * matcher can be chained. If the promise is rejected the assertion fails.
-   */
-  resolves: JestExpectType
-};
-
-/**
- *  Plugin: jest-enzyme
- */
-type EnzymeMatchersType = {
-  toBeChecked(): void,
-  toBeDisabled(): void,
-  toBeEmpty(): void,
-  toBePresent(): void,
-  toContainReact(element: React$Element<any>): void,
-  toHaveClassName(className: string): void,
-  toHaveHTML(html: string): void,
-  toHaveProp(propKey: string, propValue?: any): void,
-  toHaveRef(refName: string): void,
-  toHaveState(stateKey: string, stateValue?: any): void,
-  toHaveStyle(styleKey: string, styleValue?: any): void,
-  toHaveTagName(tagName: string): void,
-  toHaveText(text: string): void,
-  toIncludeText(text: string): void,
-  toHaveValue(value: any): void,
-  toMatchElement(element: React$Element<any>): void,
-  toMatchSelector(selector: string): void
-};
-
-type JestExpectType = {
-  not: JestExpectType & EnzymeMatchersType,
-  /**
-   * If you have a mock function, you can use .lastCalledWith to test what
-   * arguments it was last called with.
-   */
-  lastCalledWith(...args: Array<any>): void,
-  /**
-   * toBe just checks that a value is what you expect. It uses === to check
-   * strict equality.
-   */
-  toBe(value: any): void,
-  /**
-   * Use .toHaveBeenCalled to ensure that a mock function got called.
-   */
-  toBeCalled(): void,
-  /**
-   * Use .toBeCalledWith to ensure that a mock function was called with
-   * specific arguments.
-   */
-  toBeCalledWith(...args: Array<any>): void,
-  /**
-   * Using exact equality with floating point numbers is a bad idea. Rounding
-   * means that intuitive things fail.
-   */
-  toBeCloseTo(num: number, delta: any): void,
-  /**
-   * Use .toBeDefined to check that a variable is not undefined.
-   */
-  toBeDefined(): void,
-  /**
-   * Use .toBeFalsy when you don't care what a value is, you just want to
-   * ensure a value is false in a boolean context.
-   */
-  toBeFalsy(): void,
-  /**
-   * To compare floating point numbers, you can use toBeGreaterThan.
-   */
-  toBeGreaterThan(number: number): void,
-  /**
-   * To compare floating point numbers, you can use toBeGreaterThanOrEqual.
-   */
-  toBeGreaterThanOrEqual(number: number): void,
-  /**
-   * To compare floating point numbers, you can use toBeLessThan.
-   */
-  toBeLessThan(number: number): void,
-  /**
-   * To compare floating point numbers, you can use toBeLessThanOrEqual.
-   */
-  toBeLessThanOrEqual(number: number): void,
-  /**
-   * Use .toBeInstanceOf(Class) to check that an object is an instance of a
-   * class.
-   */
-  toBeInstanceOf(cls: Class<*>): void,
-  /**
-   * .toBeNull() is the same as .toBe(null) but the error messages are a bit
-   * nicer.
-   */
-  toBeNull(): void,
-  /**
-   * Use .toBeTruthy when you don't care what a value is, you just want to
-   * ensure a value is true in a boolean context.
-   */
-  toBeTruthy(): void,
-  /**
-   * Use .toBeUndefined to check that a variable is undefined.
-   */
-  toBeUndefined(): void,
-  /**
-   * Use .toContain when you want to check that an item is in a list. For
-   * testing the items in the list, this uses ===, a strict equality check.
-   */
-  toContain(item: any): void,
-  /**
-   * Use .toContainEqual when you want to check that an item is in a list. For
-   * testing the items in the list, this matcher recursively checks the
-   * equality of all fields, rather than checking for object identity.
-   */
-  toContainEqual(item: any): void,
-  /**
-   * Use .toEqual when you want to check that two objects have the same value.
-   * This matcher recursively checks the equality of all fields, rather than
-   * checking for object identity.
-   */
-  toEqual(value: any): void,
-  /**
-   * Use .toHaveBeenCalled to ensure that a mock function got called.
-   */
-  toHaveBeenCalled(): void,
-  /**
-   * Use .toHaveBeenCalledTimes to ensure that a mock function got called exact
-   * number of times.
-   */
-  toHaveBeenCalledTimes(number: number): void,
-  /**
-   * Use .toHaveBeenCalledWith to ensure that a mock function was called with
-   * specific arguments.
-   */
-  toHaveBeenCalledWith(...args: Array<any>): void,
-  /**
-   * Use .toHaveBeenLastCalledWith to ensure that a mock function was last called
-   * with specific arguments.
-   */
-  toHaveBeenLastCalledWith(...args: Array<any>): void,
-  /**
-   * Check that an object has a .length property and it is set to a certain
-   * numeric value.
-   */
-  toHaveLength(number: number): void,
-  /**
-   *
-   */
-  toHaveProperty(propPath: string, value?: any): void,
-  /**
-   * Use .toMatch to check that a string matches a regular expression or string.
-   */
-  toMatch(regexpOrString: RegExp | string): void,
-  /**
-   * Use .toMatchObject to check that a javascript object matches a subset of the properties of an object.
-   */
-  toMatchObject(object: Object | Array<Object>): void,
-  /**
-   * This ensures that a React component matches the most recent snapshot.
-   */
-  toMatchSnapshot(name?: string): void,
-  /**
-   * Use .toThrow to test that a function throws when it is called.
-   * If you want to test that a specific error gets thrown, you can provide an
-   * argument to toThrow. The argument can be a string for the error message,
-   * a class for the error, or a regex that should match the error.
-   *
-   * Alias: .toThrowError
-   */
-  toThrow(message?: string | Error | Class<Error> | RegExp): void,
-  toThrowError(message?: string | Error | Class<Error> | RegExp): void,
-  /**
-   * Use .toThrowErrorMatchingSnapshot to test that a function throws a error
-   * matching the most recent snapshot when it is called.
-   */
-  toThrowErrorMatchingSnapshot(): void
-};
-
-type JestObjectType = {
-  /**
-   *  Disables automatic mocking in the module loader.
-   *
-   *  After this method is called, all `require()`s will return the real
-   *  versions of each module (rather than a mocked version).
-   */
-  disableAutomock(): JestObjectType,
-  /**
-   * An un-hoisted version of disableAutomock
-   */
-  autoMockOff(): JestObjectType,
-  /**
-   * Enables automatic mocking in the module loader.
-   */
-  enableAutomock(): JestObjectType,
-  /**
-   * An un-hoisted version of enableAutomock
-   */
-  autoMockOn(): JestObjectType,
-  /**
-   * Clears the mock.calls and mock.instances properties of all mocks.
-   * Equivalent to calling .mockClear() on every mocked function.
-   */
-  clearAllMocks(): JestObjectType,
-  /**
-   * Resets the state of all mocks. Equivalent to calling .mockReset() on every
-   * mocked function.
-   */
-  resetAllMocks(): JestObjectType,
-  /**
-   * Removes any pending timers from the timer system.
-   */
-  clearAllTimers(): void,
-  /**
-   * The same as `mock` but not moved to the top of the expectation by
-   * babel-jest.
-   */
-  doMock(moduleName: string, moduleFactory?: any): JestObjectType,
-  /**
-   * The same as `unmock` but not moved to the top of the expectation by
-   * babel-jest.
-   */
-  dontMock(moduleName: string): JestObjectType,
-  /**
-   * Returns a new, unused mock function. Optionally takes a mock
-   * implementation.
-   */
-  fn<TArguments: $ReadOnlyArray<*>, TReturn>(
-    implementation?: (...args: TArguments) => TReturn
-  ): JestMockFn<TArguments, TReturn>,
-  /**
-   * Determines if the given function is a mocked function.
-   */
-  isMockFunction(fn: Function): boolean,
-  /**
-   * Given the name of a module, use the automatic mocking system to generate a
-   * mocked version of the module for you.
-   */
-  genMockFromModule(moduleName: string): any,
-  /**
-   * Mocks a module with an auto-mocked version when it is being required.
-   *
-   * The second argument can be used to specify an explicit module factory that
-   * is being run instead of using Jest's automocking feature.
-   *
-   * The third argument can be used to create virtual mocks -- mocks of modules
-   * that don't exist anywhere in the system.
-   */
-  mock(
-    moduleName: string,
-    moduleFactory?: any,
-    options?: Object
-  ): JestObjectType,
-  /**
-   * Returns the actual module instead of a mock, bypassing all checks on
-   * whether the module should receive a mock implementation or not.
-   */
-  requireActual(moduleName: string): any,
-  /**
-   * Returns a mock module instead of the actual module, bypassing all checks
-   * on whether the module should be required normally or not.
-   */
-  requireMock(moduleName: string): any,
-  /**
-   * Resets the module registry - the cache of all required modules. This is
-   * useful to isolate modules where local state might conflict between tests.
-   */
-  resetModules(): JestObjectType,
-  /**
-   * Exhausts the micro-task queue (usually interfaced in node via
-   * process.nextTick).
-   */
-  runAllTicks(): void,
-  /**
-   * Exhausts the macro-task queue (i.e., all tasks queued by setTimeout(),
-   * setInterval(), and setImmediate()).
-   */
-  runAllTimers(): void,
-  /**
-   * Exhausts all tasks queued by setImmediate().
-   */
-  runAllImmediates(): void,
-  /**
-   * Executes only the macro task queue (i.e. all tasks queued by setTimeout()
-   * or setInterval() and setImmediate()).
-   */
-  runTimersToTime(msToRun: number): void,
-  /**
-   * Executes only the macro-tasks that are currently pending (i.e., only the
-   * tasks that have been queued by setTimeout() or setInterval() up to this
-   * point)
-   */
-  runOnlyPendingTimers(): void,
-  /**
-   * Explicitly supplies the mock object that the module system should return
-   * for the specified module. Note: It is recommended to use jest.mock()
-   * instead.
-   */
-  setMock(moduleName: string, moduleExports: any): JestObjectType,
-  /**
-   * Indicates that the module system should never return a mocked version of
-   * the specified module from require() (e.g. that it should always return the
-   * real module).
-   */
-  unmock(moduleName: string): JestObjectType,
-  /**
-   * Instructs Jest to use fake versions of the standard timer functions
-   * (setTimeout, setInterval, clearTimeout, clearInterval, nextTick,
-   * setImmediate and clearImmediate).
-   */
-  useFakeTimers(): JestObjectType,
-  /**
-   * Instructs Jest to use the real versions of the standard timer functions.
-   */
-  useRealTimers(): JestObjectType,
-  /**
-   * Creates a mock function similar to jest.fn but also tracks calls to
-   * object[methodName].
-   */
-  spyOn(object: Object, methodName: string): JestMockFn<any, any>,
-  /**
-   * Set the default timeout interval for tests and before/after hooks in milliseconds.
-   * Note: The default timeout interval is 5 seconds if this method is not called.
-   */
-  setTimeout(timeout: number): JestObjectType
-};
-
-type JestSpyType = {
-  calls: JestCallsType
-};
-
-/** Runs this function after every test inside this context */
-declare function afterEach(
-  fn: (done: () => void) => ?Promise<mixed>,
-  timeout?: number
-): void;
-/** Runs this function before every test inside this context */
-declare function beforeEach(
-  fn: (done: () => void) => ?Promise<mixed>,
-  timeout?: number
-): void;
-/** Runs this function after all tests have finished inside this context */
-declare function afterAll(
-  fn: (done: () => void) => ?Promise<mixed>,
-  timeout?: number
-): void;
-/** Runs this function before any tests have started inside this context */
-declare function beforeAll(
-  fn: (done: () => void) => ?Promise<mixed>,
-  timeout?: number
-): void;
-
-/** A context for grouping tests together */
-declare var describe: {
-  /**
-   * Creates a block that groups together several related tests in one "test suite"
-   */
-  (name: string, fn: () => void): void,
-
-  /**
-   * Only run this describe block
-   */
-  only(name: string, fn: () => void): void,
-
-  /**
-   * Skip running this describe block
-   */
-  skip(name: string, fn: () => void): void
-};
-
-/** An individual test unit */
-declare var it: {
-  /**
-   * An individual test unit
-   *
-   * @param {string} Name of Test
-   * @param {Function} Test
-   * @param {number} Timeout for the test, in milliseconds.
-   */
-  (
-    name: string,
-    fn?: (done: () => void) => ?Promise<mixed>,
-    timeout?: number
-  ): void,
-  /**
-   * Only run this test
-   *
-   * @param {string} Name of Test
-   * @param {Function} Test
-   * @param {number} Timeout for the test, in milliseconds.
-   */
-  only(
-    name: string,
-    fn?: (done: () => void) => ?Promise<mixed>,
-    timeout?: number
-  ): void,
-  /**
-   * Skip running this test
-   *
-   * @param {string} Name of Test
-   * @param {Function} Test
-   * @param {number} Timeout for the test, in milliseconds.
-   */
-  skip(
-    name: string,
-    fn?: (done: () => void) => ?Promise<mixed>,
-    timeout?: number
-  ): void,
-  /**
-   * Run the test concurrently
-   *
-   * @param {string} Name of Test
-   * @param {Function} Test
-   * @param {number} Timeout for the test, in milliseconds.
-   */
-  concurrent(
-    name: string,
-    fn?: (done: () => void) => ?Promise<mixed>,
-    timeout?: number
-  ): void
-};
-declare function fit(
-  name: string,
-  fn: (done: () => void) => ?Promise<mixed>,
-  timeout?: number
-): void;
-/** An individual test unit */
-declare var test: typeof it;
-/** A disabled group of tests */
-declare var xdescribe: typeof describe;
-/** A focused group of tests */
-declare var fdescribe: typeof describe;
-/** A disabled individual test */
-declare var xit: typeof it;
-/** A disabled individual test */
-declare var xtest: typeof it;
-
-/** The expect function is used every time you want to test a value */
-declare var expect: {
-  /** The object that you want to make assertions against */
-  (value: any): JestExpectType & JestPromiseType & EnzymeMatchersType,
-  /** Add additional Jasmine matchers to Jest's roster */
-  extend(matchers: { [name: string]: JestMatcher }): void,
-  /** Add a module that formats application-specific data structures. */
-  addSnapshotSerializer(serializer: (input: Object) => string): void,
-  assertions(expectedAssertions: number): void,
-  hasAssertions(): void,
-  any(value: mixed): JestAsymmetricEqualityType,
-  anything(): void,
-  arrayContaining(value: Array<mixed>): void,
-  objectContaining(value: Object): void,
-  /** Matches any received string that contains the exact expected string. */
-  stringContaining(value: string): void,
-  stringMatching(value: string | RegExp): void
-};
-
-// TODO handle return type
-// http://jasmine.github.io/2.4/introduction.html#section-Spies
-declare function spyOn(value: mixed, method: string): Object;
-
-/** Holds all functions related to manipulating test runner */
-declare var jest: JestObjectType;
-
-/**
- * The global Jasmine object, this is generally not exposed as the public API,
- * using features inside here could break in later versions of Jest.
- */
-declare var jasmine: {
-  DEFAULT_TIMEOUT_INTERVAL: number,
-  any(value: mixed): JestAsymmetricEqualityType,
-  anything(): void,
-  arrayContaining(value: Array<mixed>): void,
-  clock(): JestClockType,
-  createSpy(name: string): JestSpyType,
-  createSpyObj(
-    baseName: string,
-    methodNames: Array<string>
-  ): { [methodName: string]: JestSpyType },
-  objectContaining(value: Object): void,
-  stringMatching(value: string): void
-};

+ 0 - 39
HUILIAOAPP/flow-typed/npm/jest_vx.x.x.js

@@ -1,39 +0,0 @@
-// flow-typed signature: 3ba80f288ae054d394dca2d025d14dd9
-// flow-typed version: <<STUB>>/jest_v^21.0.1/flow_v0.53.0
-
-/**
- * This is an autogenerated libdef stub for:
- *
- *   'jest'
- *
- * Fill this stub out by replacing all the `any` types.
- *
- * Once filled out, we encourage you to share your work with the
- * community by sending a pull request to:
- * https://github.com/flowtype/flow-typed
- */
-
-declare module 'jest' {
-  declare module.exports: any;
-}
-
-/**
- * We include stubs for each file inside this npm package in case you need to
- * require those files directly. Feel free to delete any files that aren't
- * needed.
- */
-declare module 'jest/bin/jest' {
-  declare module.exports: any;
-}
-
-declare module 'jest/build/jest' {
-  declare module.exports: any;
-}
-
-// Filename aliases
-declare module 'jest/bin/jest.js' {
-  declare module.exports: $Exports<'jest/bin/jest'>;
-}
-declare module 'jest/build/jest.js' {
-  declare module.exports: $Exports<'jest/build/jest'>;
-}

+ 0 - 33
HUILIAOAPP/flow-typed/npm/react-addons-test-utils_vx.x.x.js

@@ -1,33 +0,0 @@
-// flow-typed signature: fe3ce80849031f84c8c106122bef896a
-// flow-typed version: <<STUB>>/react-addons-test-utils_v16.0.0-alpha.3/flow_v0.53.0
-
-/**
- * This is an autogenerated libdef stub for:
- *
- *   'react-addons-test-utils'
- *
- * Fill this stub out by replacing all the `any` types.
- *
- * Once filled out, we encourage you to share your work with the
- * community by sending a pull request to:
- * https://github.com/flowtype/flow-typed
- */
-
-declare module 'react-addons-test-utils' {
-  declare module.exports: any;
-}
-
-/**
- * We include stubs for each file inside this npm package in case you need to
- * require those files directly. Feel free to delete any files that aren't
- * needed.
- */
-
-
-// Filename aliases
-declare module 'react-addons-test-utils/index' {
-  declare module.exports: $Exports<'react-addons-test-utils'>;
-}
-declare module 'react-addons-test-utils/index.js' {
-  declare module.exports: $Exports<'react-addons-test-utils'>;
-}

+ 0 - 123
HUILIAOAPP/flow-typed/npm/react-native-scripts_vx.x.x.js

@@ -1,123 +0,0 @@
-// flow-typed signature: 42d8cd2e84e894c09d28f891fef9f01d
-// flow-typed version: <<STUB>>/react-native-scripts_v^1.5.0/flow_v0.61.0
-
-/**
- * This is an autogenerated libdef stub for:
- *
- *   'react-native-scripts'
- *
- * Fill this stub out by replacing all the `any` types.
- *
- * Once filled out, we encourage you to share your work with the
- * community by sending a pull request to:
- * https://github.com/flowtype/flow-typed
- */
-
-declare module 'react-native-scripts' {
-  declare module.exports: any;
-}
-
-/**
- * We include stubs for each file inside this npm package in case you need to
- * require those files directly. Feel free to delete any files that aren't
- * needed.
- */
-declare module 'react-native-scripts/build/bin/crna-entry' {
-  declare module.exports: any;
-}
-
-declare module 'react-native-scripts/build/bin/react-native-scripts' {
-  declare module.exports: any;
-}
-
-declare module 'react-native-scripts/build/scripts/android' {
-  declare module.exports: any;
-}
-
-declare module 'react-native-scripts/build/scripts/eject' {
-  declare module.exports: any;
-}
-
-declare module 'react-native-scripts/build/scripts/init' {
-  declare module.exports: any;
-}
-
-declare module 'react-native-scripts/build/scripts/ios' {
-  declare module.exports: any;
-}
-
-declare module 'react-native-scripts/build/scripts/start' {
-  declare module.exports: any;
-}
-
-declare module 'react-native-scripts/build/util/clearConsole' {
-  declare module.exports: any;
-}
-
-declare module 'react-native-scripts/build/util/expo' {
-  declare module.exports: any;
-}
-
-declare module 'react-native-scripts/build/util/install' {
-  declare module.exports: any;
-}
-
-declare module 'react-native-scripts/build/util/log' {
-  declare module.exports: any;
-}
-
-declare module 'react-native-scripts/build/util/packager' {
-  declare module.exports: any;
-}
-
-declare module 'react-native-scripts/template/App' {
-  declare module.exports: any;
-}
-
-declare module 'react-native-scripts/template/App.test' {
-  declare module.exports: any;
-}
-
-// Filename aliases
-declare module 'react-native-scripts/build/bin/crna-entry.js' {
-  declare module.exports: $Exports<'react-native-scripts/build/bin/crna-entry'>;
-}
-declare module 'react-native-scripts/build/bin/react-native-scripts.js' {
-  declare module.exports: $Exports<'react-native-scripts/build/bin/react-native-scripts'>;
-}
-declare module 'react-native-scripts/build/scripts/android.js' {
-  declare module.exports: $Exports<'react-native-scripts/build/scripts/android'>;
-}
-declare module 'react-native-scripts/build/scripts/eject.js' {
-  declare module.exports: $Exports<'react-native-scripts/build/scripts/eject'>;
-}
-declare module 'react-native-scripts/build/scripts/init.js' {
-  declare module.exports: $Exports<'react-native-scripts/build/scripts/init'>;
-}
-declare module 'react-native-scripts/build/scripts/ios.js' {
-  declare module.exports: $Exports<'react-native-scripts/build/scripts/ios'>;
-}
-declare module 'react-native-scripts/build/scripts/start.js' {
-  declare module.exports: $Exports<'react-native-scripts/build/scripts/start'>;
-}
-declare module 'react-native-scripts/build/util/clearConsole.js' {
-  declare module.exports: $Exports<'react-native-scripts/build/util/clearConsole'>;
-}
-declare module 'react-native-scripts/build/util/expo.js' {
-  declare module.exports: $Exports<'react-native-scripts/build/util/expo'>;
-}
-declare module 'react-native-scripts/build/util/install.js' {
-  declare module.exports: $Exports<'react-native-scripts/build/util/install'>;
-}
-declare module 'react-native-scripts/build/util/log.js' {
-  declare module.exports: $Exports<'react-native-scripts/build/util/log'>;
-}
-declare module 'react-native-scripts/build/util/packager.js' {
-  declare module.exports: $Exports<'react-native-scripts/build/util/packager'>;
-}
-declare module 'react-native-scripts/template/App.js' {
-  declare module.exports: $Exports<'react-native-scripts/template/App'>;
-}
-declare module 'react-native-scripts/template/App.test.js' {
-  declare module.exports: $Exports<'react-native-scripts/template/App.test'>;
-}

File diff suppressed because it is too large
+ 0 - 7663
HUILIAOAPP/flow-typed/npm/react-native_vx.x.x.js


+ 0 - 62
HUILIAOAPP/flow-typed/npm/react-test-renderer_v16.x.x.js

@@ -1,62 +0,0 @@
-// flow-typed signature: 2d946f2ec4aba5210b19d053c411a59d
-// flow-typed version: 95b3e05165/react-test-renderer_v16.x.x/flow_>=v0.47.x
-
-// Type definitions for react-test-renderer 16.x.x
-// Ported from: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react-test-renderer
-
-type ReactTestRendererJSON = {
-  type: string,
-  props: { [propName: string]: any },
-  children: null | ReactTestRendererJSON[]
-};
-
-type ReactTestRendererTree = ReactTestRendererJSON & {
-  nodeType: "component" | "host",
-  instance: any,
-  rendered: null | ReactTestRendererTree
-};
-
-type ReactTestInstance = {
-  instance: any,
-  type: string,
-  props: { [propName: string]: any },
-  parent: null | ReactTestInstance,
-  children: Array<ReactTestInstance | string>,
-
-  find(predicate: (node: ReactTestInstance) => boolean): ReactTestInstance,
-  findByType(type: React$ElementType): ReactTestInstance,
-  findByProps(props: { [propName: string]: any }): ReactTestInstance,
-
-  findAll(
-    predicate: (node: ReactTestInstance) => boolean,
-    options?: { deep: boolean }
-  ): ReactTestInstance[],
-  findAllByType(
-    type: React$ElementType,
-    options?: { deep: boolean }
-  ): ReactTestInstance[],
-  findAllByProps(
-    props: { [propName: string]: any },
-    options?: { deep: boolean }
-  ): ReactTestInstance[]
-};
-
-type ReactTestRenderer = {
-  toJSON(): null | ReactTestRendererJSON,
-  toTree(): null | ReactTestRendererTree,
-  unmount(nextElement?: React$Element<any>): void,
-  update(nextElement: React$Element<any>): void,
-  getInstance(): null | ReactTestInstance,
-  root: ReactTestInstance
-};
-
-type TestRendererOptions = {
-  createNodeMock(element: React$Element<any>): any
-};
-
-declare module "react-test-renderer" {
-  declare function create(
-    nextElement: React$Element<any>,
-    options?: TestRendererOptions
-  ): ReactTestRenderer;
-}

+ 0 - 66
HUILIAOAPP/flow-typed/npm/react-test-renderer_vx.x.x.js

@@ -1,66 +0,0 @@
-// flow-typed signature: bc77d9125cee5869fd1f9ffe55231e21
-// flow-typed version: <<STUB>>/react-test-renderer_v16.0.0-alpha.12/flow_v0.53.0
-
-/**
- * This is an autogenerated libdef stub for:
- *
- *   'react-test-renderer'
- *
- * Fill this stub out by replacing all the `any` types.
- *
- * Once filled out, we encourage you to share your work with the
- * community by sending a pull request to:
- * https://github.com/flowtype/flow-typed
- */
-
-declare module 'react-test-renderer' {
-  declare module.exports: any;
-}
-
-/**
- * We include stubs for each file inside this npm package in case you need to
- * require those files directly. Feel free to delete any files that aren't
- * needed.
- */
-declare module 'react-test-renderer/cjs/react-test-renderer-shallow.development' {
-  declare module.exports: any;
-}
-
-declare module 'react-test-renderer/cjs/react-test-renderer-stack.development' {
-  declare module.exports: any;
-}
-
-declare module 'react-test-renderer/cjs/react-test-renderer.development' {
-  declare module.exports: any;
-}
-
-declare module 'react-test-renderer/shallow' {
-  declare module.exports: any;
-}
-
-declare module 'react-test-renderer/stack' {
-  declare module.exports: any;
-}
-
-// Filename aliases
-declare module 'react-test-renderer/cjs/react-test-renderer-shallow.development.js' {
-  declare module.exports: $Exports<'react-test-renderer/cjs/react-test-renderer-shallow.development'>;
-}
-declare module 'react-test-renderer/cjs/react-test-renderer-stack.development.js' {
-  declare module.exports: $Exports<'react-test-renderer/cjs/react-test-renderer-stack.development'>;
-}
-declare module 'react-test-renderer/cjs/react-test-renderer.development.js' {
-  declare module.exports: $Exports<'react-test-renderer/cjs/react-test-renderer.development'>;
-}
-declare module 'react-test-renderer/index' {
-  declare module.exports: $Exports<'react-test-renderer'>;
-}
-declare module 'react-test-renderer/index.js' {
-  declare module.exports: $Exports<'react-test-renderer'>;
-}
-declare module 'react-test-renderer/shallow.js' {
-  declare module.exports: $Exports<'react-test-renderer/shallow'>;
-}
-declare module 'react-test-renderer/stack.js' {
-  declare module.exports: $Exports<'react-test-renderer/stack'>;
-}

+ 0 - 8
HUILIAOAPP/index.js

@@ -1,8 +0,0 @@
-/** @format */
-
-import {AppRegistry} from 'react-native';
-import App from './App';
-import {name as appName} from './app.json';
-
-
-AppRegistry.registerComponent(appName, () => App);

File diff suppressed because it is too large
+ 0 - 1468
HUILIAOAPP/ios/HUILIAOAPP.xcodeproj/project.pbxproj


+ 0 - 129
HUILIAOAPP/ios/HUILIAOAPP.xcodeproj/xcshareddata/xcschemes/HUILIAOAPP-tvOS.xcscheme

@@ -1,129 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Scheme
-   LastUpgradeVersion = "0820"
-   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 = "HUILIAOAPP-tvOS.app"
-               BlueprintName = "HUILIAOAPP-tvOS"
-               ReferencedContainer = "container:HUILIAOAPP.xcodeproj">
-            </BuildableReference>
-         </BuildActionEntry>
-         <BuildActionEntry
-            buildForTesting = "YES"
-            buildForRunning = "YES"
-            buildForProfiling = "NO"
-            buildForArchiving = "NO"
-            buildForAnalyzing = "YES">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "2D02E48F1E0B4A5D006451C7"
-               BuildableName = "HUILIAOAPP-tvOSTests.xctest"
-               BlueprintName = "HUILIAOAPP-tvOSTests"
-               ReferencedContainer = "container:HUILIAOAPP.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 = "HUILIAOAPP-tvOSTests.xctest"
-               BlueprintName = "HUILIAOAPP-tvOSTests"
-               ReferencedContainer = "container:HUILIAOAPP.xcodeproj">
-            </BuildableReference>
-         </TestableReference>
-      </Testables>
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7"
-            BuildableName = "HUILIAOAPP-tvOS.app"
-            BlueprintName = "HUILIAOAPP-tvOS"
-            ReferencedContainer = "container:HUILIAOAPP.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 = "HUILIAOAPP-tvOS.app"
-            BlueprintName = "HUILIAOAPP-tvOS"
-            ReferencedContainer = "container:HUILIAOAPP.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 = "HUILIAOAPP-tvOS.app"
-            BlueprintName = "HUILIAOAPP-tvOS"
-            ReferencedContainer = "container:HUILIAOAPP.xcodeproj">
-         </BuildableReference>
-      </BuildableProductRunnable>
-   </ProfileAction>
-   <AnalyzeAction
-      buildConfiguration = "Debug">
-   </AnalyzeAction>
-   <ArchiveAction
-      buildConfiguration = "Release"
-      revealArchiveInOrganizer = "YES">
-   </ArchiveAction>
-</Scheme>

+ 0 - 129
HUILIAOAPP/ios/HUILIAOAPP.xcodeproj/xcshareddata/xcschemes/HUILIAOAPP.xcscheme

@@ -1,129 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Scheme
-   LastUpgradeVersion = "0620"
-   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 = "HUILIAOAPP.app"
-               BlueprintName = "HUILIAOAPP"
-               ReferencedContainer = "container:HUILIAOAPP.xcodeproj">
-            </BuildableReference>
-         </BuildActionEntry>
-         <BuildActionEntry
-            buildForTesting = "YES"
-            buildForRunning = "YES"
-            buildForProfiling = "NO"
-            buildForArchiving = "NO"
-            buildForAnalyzing = "YES">
-            <BuildableReference
-               BuildableIdentifier = "primary"
-               BlueprintIdentifier = "00E356ED1AD99517003FC87E"
-               BuildableName = "HUILIAOAPPTests.xctest"
-               BlueprintName = "HUILIAOAPPTests"
-               ReferencedContainer = "container:HUILIAOAPP.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 = "HUILIAOAPPTests.xctest"
-               BlueprintName = "HUILIAOAPPTests"
-               ReferencedContainer = "container:HUILIAOAPP.xcodeproj">
-            </BuildableReference>
-         </TestableReference>
-      </Testables>
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
-            BuildableName = "HUILIAOAPP.app"
-            BlueprintName = "HUILIAOAPP"
-            ReferencedContainer = "container:HUILIAOAPP.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 = "HUILIAOAPP.app"
-            BlueprintName = "HUILIAOAPP"
-            ReferencedContainer = "container:HUILIAOAPP.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 = "HUILIAOAPP.app"
-            BlueprintName = "HUILIAOAPP"
-            ReferencedContainer = "container:HUILIAOAPP.xcodeproj">
-         </BuildableReference>
-      </BuildableProductRunnable>
-   </ProfileAction>
-   <AnalyzeAction
-      buildConfiguration = "Debug">
-   </AnalyzeAction>
-   <ArchiveAction
-      buildConfiguration = "Release"
-      revealArchiveInOrganizer = "YES">
-   </ArchiveAction>
-</Scheme>

+ 0 - 35
HUILIAOAPP/ios/HUILIAOAPP/AppDelegate.m

@@ -1,35 +0,0 @@
-/**
- * Copyright (c) 2015-present, Facebook, Inc.
- *
- * 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/RCTBundleURLProvider.h>
-#import <React/RCTRootView.h>
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
-{
-  NSURL *jsCodeLocation;
-
-  jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
-
-  RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
-                                                      moduleName:@"HUILIAOAPP"
-                                               initialProperties:nil
-                                                   launchOptions:launchOptions];
-  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;
-}
-
-@end

+ 0 - 42
HUILIAOAPP/ios/HUILIAOAPP/Base.lproj/LaunchScreen.xib

@@ -1,42 +0,0 @@
-<?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="HUILIAOAPP" 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 - 57
HUILIAOAPP/ios/HUILIAOAPP/Info.plist

@@ -1,57 +0,0 @@
-<?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>HUILIAOAPP</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>NSAppTransportSecurity</key>
-	<dict>
-		<key>NSAllowsArbitraryLoads</key>
-		<true/>
-		<key>NSExceptionDomains</key>
-		<dict>
-			<key>localhost</key>
-			<dict>
-				<key>NSExceptionAllowsInsecureHTTPLoads</key>
-				<true/>
-			</dict>
-		</dict>
-	</dict>
-	<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/>
-</dict>
-</plist>

+ 0 - 68
HUILIAOAPP/ios/HUILIAOAPPTests/HUILIAOAPPTests.m

@@ -1,68 +0,0 @@
-/**
- * Copyright (c) 2015-present, Facebook, Inc.
- *
- * 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 HUILIAOAPPTests : XCTestCase
-
-@end
-
-@implementation HUILIAOAPPTests
-
-- (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 - 410
HUILIAOAPP/js/App.js

@@ -1,410 +0,0 @@
-/* @flow */
-
-import React from 'react';
-import { Asset, Constants, ScreenOrientation } from 'expo';
-
-ScreenOrientation.allow(ScreenOrientation.Orientation.ALL);
-
-import {
-  Animated,
-  Image,
-  Platform,
-  ScrollView,
-  StyleSheet,
-  TouchableOpacity,
-  Text,
-  StatusBar,
-  View,
-} from 'react-native';
-import { SafeAreaView, createStackNavigator } from 'react-navigation';
-
-import CustomTabs from './CustomTabs';
-import CustomTransitioner from './CustomTransitioner';
-import Drawer from './Drawer';
-import MultipleDrawer from './MultipleDrawer';
-import TabsInDrawer from './TabsInDrawer';
-import ModalStack from './ModalStack';
-import StacksInTabs from './StacksInTabs';
-import StacksOverTabs from './StacksOverTabs';
-import StacksOverTopTabs from './StacksOverTopTabs';
-import StacksWithKeys from './StacksWithKeys';
-import InactiveStack from './InactiveStack';
-import StackWithCustomHeaderBackImage from './StackWithCustomHeaderBackImage';
-import SimpleStack from './SimpleStack';
-import StackWithHeaderPreset from './StackWithHeaderPreset';
-import StackWithTranslucentHeader from './StackWithTranslucentHeader';
-import SimpleTabs from './SimpleTabs';
-import SwitchWithStacks from './SwitchWithStacks';
-import TabsWithNavigationFocus from './TabsWithNavigationFocus';
-import TabsWithNavigationEvents from './TabsWithNavigationEvents';
-import KeyboardHandlingExample from './KeyboardHandlingExample';
-
-const ExampleInfo = {
-  SimpleStack: {
-    name: 'Stack Example',
-    description: 'A card stack',
-  },
-  SwitchWithStacks: {
-    name: 'Switch between routes',
-    description: 'Jump between routes',
-  },
-  InactiveStack: {
-    name: 'Navigate idempotently to stacks in inactive routes',
-    description:
-      'An inactive route in a stack should be given the opportunity to handle actions',
-  },
-  StackWithCustomHeaderBackImage: {
-    name: 'Custom header back image',
-    description: 'Stack with custom header back image',
-  },
-  SimpleTabs: {
-    name: 'Tabs Example',
-    description: 'Tabs following platform conventions',
-  },
-  Drawer: {
-    name: 'Drawer Example',
-    description: 'Android-style drawer navigation',
-  },
-  StackWithHeaderPreset: {
-    name: 'UIKit-style Header Transitions',
-    description: 'Masked back button and sliding header items. iOS only.',
-  },
-  StackWithTranslucentHeader: {
-    name: 'Translucent Header',
-    description: 'Render arbitrary translucent content in header background.',
-  },
-  // MultipleDrawer: {
-  //   name: 'Multiple Drawer Example',
-  //   description: 'Add any drawer you need',
-  // },
-  TabsInDrawer: {
-    name: 'Drawer + Tabs Example',
-    description: 'A drawer combined with tabs',
-  },
-  CustomTabs: {
-    name: 'Custom Tabs',
-    description: 'Custom tabs with tab router',
-  },
-  CustomTransitioner: {
-    name: 'Custom Transitioner',
-    description: 'Custom transitioner with stack router',
-  },
-  ModalStack: {
-    name:
-      Platform.OS === 'ios'
-        ? 'Modal Stack Example'
-        : 'Stack with Dynamic Header',
-    description:
-      Platform.OS === 'ios'
-        ? 'Stack navigation with modals'
-        : 'Dynamically showing and hiding the header',
-  },
-  StacksInTabs: {
-    name: 'Stacks in Tabs',
-    description: 'Nested stack navigation in tabs',
-  },
-  StacksOverTabs: {
-    name: 'Stacks over Tabs',
-    description: 'Nested stack navigation that pushes on top of tabs',
-  },
-  StacksOverTopTabs: {
-    name: 'Stacks with non-standard header height',
-    description: 'Tab navigator in stack with custom header heights',
-  },
-  StacksWithKeys: {
-    name: 'Link in Stack with keys',
-    description: 'Use keys to link between screens',
-  },
-  LinkStack: {
-    name: 'Link in Stack',
-    description: 'Deep linking into a route in stack',
-  },
-  LinkTabs: {
-    name: 'Link to Settings Tab',
-    description: 'Deep linking into a route in tab',
-  },
-  TabsWithNavigationFocus: {
-    name: 'withNavigationFocus',
-    description: 'Receive the focus prop to know when a screen is focused',
-  },
-  TabsWithNavigationEvents: {
-    name: 'NavigationEvents',
-    description:
-      'Declarative NavigationEvents component to subscribe to navigation events',
-  },
-  KeyboardHandlingExample: {
-    name: 'Keyboard Handling Example',
-    description:
-      'Demo automatic handling of keyboard showing/hiding inside StackNavigator',
-  },
-};
-
-const ExampleRoutes = {
-  SimpleStack,
-  SwitchWithStacks,
-  SimpleTabs: SimpleTabs,
-  Drawer: Drawer,
-  // MultipleDrawer: {
-  //   screen: MultipleDrawer,
-  // },
-  StackWithCustomHeaderBackImage: StackWithCustomHeaderBackImage,
-  ...Platform.select({
-    ios: {
-      StackWithHeaderPreset: StackWithHeaderPreset,
-    },
-    android: {},
-  }),
-  StackWithTranslucentHeader: StackWithTranslucentHeader,
-  TabsInDrawer: TabsInDrawer,
-  CustomTabs: CustomTabs,
-  CustomTransitioner: CustomTransitioner,
-  ModalStack: ModalStack,
-  StacksWithKeys: StacksWithKeys,
-  StacksInTabs: StacksInTabs,
-  StacksOverTabs: StacksOverTabs,
-  StacksOverTopTabs: StacksOverTopTabs,
-  LinkStack: {
-    screen: SimpleStack,
-    path: 'people/Jordan',
-  },
-  LinkTabs: {
-    screen: SimpleTabs,
-    path: 'settings',
-  },
-  TabsWithNavigationFocus,
-  TabsWithNavigationEvents,
-  KeyboardHandlingExample,
-  // This is commented out because it's rarely useful
-  // InactiveStack,
-};
-
-type State = {
-  scrollY: Animated.Value,
-};
-class MainScreen extends React.Component<any, State> {
-  state = {
-    scrollY: new Animated.Value(0),
-  };
-
-  componentDidMount() {
-    Asset.fromModule(
-      require('react-navigation/src/views/assets/back-icon-mask.png')
-    ).downloadAsync();
-    Asset.fromModule(
-      require('react-navigation/src/views/assets/back-icon.png')
-    ).downloadAsync();
-  }
-
-  render() {
-    const { navigation } = this.props;
-
-    const scale = this.state.scrollY.interpolate({
-      inputRange: [-450, 0, 100],
-      outputRange: [2, 1, 0.8],
-      extrapolate: 'clamp',
-    });
-
-    const translateY = this.state.scrollY.interpolate({
-      inputRange: [-450, 0, 100],
-      outputRange: [-150, 0, 40],
-    });
-
-    const opacity = this.state.scrollY.interpolate({
-      inputRange: [0, 50],
-      outputRange: [1, 0],
-      extrapolate: 'clamp',
-    });
-
-    const underlayOpacity = this.state.scrollY.interpolate({
-      inputRange: [0, 50],
-      outputRange: [0, 1],
-      extrapolate: 'clamp',
-    });
-
-    const backgroundScale = this.state.scrollY.interpolate({
-      inputRange: [-450, 0],
-      outputRange: [3, 1],
-      extrapolate: 'clamp',
-    });
-
-    const backgroundTranslateY = this.state.scrollY.interpolate({
-      inputRange: [-450, 0],
-      outputRange: [0, 0],
-    });
-
-    return (
-      <View style={{ flex: 1 }}>
-        <Animated.ScrollView
-          style={{ flex: 1 }}
-          scrollEventThrottle={1}
-          onScroll={Animated.event(
-            [
-              {
-                nativeEvent: { contentOffset: { y: this.state.scrollY } },
-              },
-            ],
-            { useNativeDriver: true }
-          )}
-        >
-          <Animated.View
-            style={[
-              styles.backgroundUnderlay,
-              {
-                transform: [
-                  { scale: backgroundScale },
-                  { translateY: backgroundTranslateY },
-                ],
-              },
-            ]}
-          />
-          <Animated.View
-            style={{ opacity, transform: [{ scale }, { translateY }] }}
-          >
-            <SafeAreaView
-              style={styles.bannerContainer}
-              forceInset={{ top: 'always', bottom: 'never' }}
-            >
-              <View style={styles.banner}>
-                <Image
-                  source={require('./assets/NavLogo.png')}
-                  style={styles.bannerImage}
-                />
-                <Text style={styles.bannerTitle}>
-                  React Navigation Examples
-                </Text>
-              </View>
-            </SafeAreaView>
-          </Animated.View>
-
-          <SafeAreaView forceInset={{ bottom: 'always', horizontal: 'never' }}>
-            <View style={{ backgroundColor: '#fff' }}>
-              {Object.keys(ExampleRoutes).map((routeName: string) => (
-                <TouchableOpacity
-                  key={routeName}
-                  onPress={() => {
-                    let route = ExampleRoutes[routeName];
-                    if (route.screen || route.path || route.params) {
-                      const { path, params, screen } = route;
-                      const { router } = screen;
-                      const action =
-                        path && router.getActionForPathAndParams(path, params);
-                      navigation.navigate(routeName, {}, action);
-                    } else {
-                      navigation.navigate(routeName);
-                    }
-                  }}
-                >
-                  <SafeAreaView
-                    style={styles.itemContainer}
-                    forceInset={{ veritcal: 'never', bottom: 'never' }}
-                  >
-                    <View style={styles.item}>
-                      <Text style={styles.title}>
-                        {ExampleInfo[routeName].name}
-                      </Text>
-                      <Text style={styles.description}>
-                        {ExampleInfo[routeName].description}
-                      </Text>
-                    </View>
-                  </SafeAreaView>
-                </TouchableOpacity>
-              ))}
-            </View>
-          </SafeAreaView>
-        </Animated.ScrollView>
-        <StatusBar barStyle="light-content" />
-        <Animated.View
-          style={[styles.statusBarUnderlay, { opacity: underlayOpacity }]}
-        />
-      </View>
-    );
-  }
-}
-
-const AppNavigator = createStackNavigator(
-  {
-    ...ExampleRoutes,
-    Index: {
-      screen: MainScreen,
-    },
-  },
-  {
-    initialRouteName: 'Index',
-    headerMode: 'none',
-
-    /*
-   * Use modal on iOS because the card mode comes from the right,
-   * which conflicts with the drawer example gesture
-   */
-    mode: Platform.OS === 'ios' ? 'modal' : 'card',
-  }
-);
-
-export default AppNavigator;
-
-const styles = StyleSheet.create({
-  item: {
-    paddingHorizontal: 16,
-    paddingVertical: 12,
-  },
-  itemContainer: {
-    backgroundColor: '#fff',
-    borderBottomWidth: StyleSheet.hairlineWidth,
-    borderBottomColor: '#ddd',
-  },
-  image: {
-    width: 120,
-    height: 120,
-    alignSelf: 'center',
-    marginBottom: 20,
-    resizeMode: 'contain',
-  },
-  statusBarUnderlay: {
-    backgroundColor: '#673ab7',
-    position: 'absolute',
-    top: 0,
-    left: 0,
-    right: 0,
-    height: Constants.statusBarHeight,
-  },
-  title: {
-    fontSize: 16,
-    fontWeight: 'bold',
-    color: '#444',
-  },
-  description: {
-    fontSize: 13,
-    color: '#999',
-  },
-  backgroundUnderlay: {
-    backgroundColor: '#673ab7',
-    position: 'absolute',
-    top: -100,
-    height: 300,
-    left: 0,
-    right: 0,
-  },
-  bannerContainer: {
-    // backgroundColor: '#673ab7',
-    alignItems: 'center',
-  },
-  banner: {
-    flexDirection: 'row',
-    alignItems: 'center',
-    padding: 16,
-  },
-  bannerImage: {
-    width: 36,
-    height: 36,
-    resizeMode: 'contain',
-    tintColor: '#fff',
-    margin: 8,
-  },
-  bannerTitle: {
-    fontSize: 18,
-    fontWeight: '200',
-    color: '#fff',
-    marginVertical: 8,
-    marginRight: 5,
-  },
-});

+ 0 - 45
HUILIAOAPP/js/Banner.js

@@ -1,45 +0,0 @@
-/* @flow */
-
-import React from 'react';
-
-import { Image, Platform, StyleSheet, Text, View } from 'react-native';
-import { SafeAreaView } from 'react-navigation';
-
-const Banner = () => (
-  <SafeAreaView
-    style={styles.bannerContainer}
-    forceInset={{ top: 'always' }}
-  >
-    <View style={styles.banner}>
-      <Image source={require('./assets/NavLogo.png')} style={styles.image} />
-      <Text style={styles.title}>React Navigation Examples</Text>
-    </View>
-  </SafeAreaView>
-);
-
-export default Banner;
-
-const styles = StyleSheet.create({
-  bannerContainer: {
-    backgroundColor: '#673ab7',
-    paddingTop: 20,
-  },
-  banner: {
-    flexDirection: 'row',
-    alignItems: 'center',
-    padding: 16,
-  },
-  image: {
-    width: 36,
-    height: 36,
-    resizeMode: 'contain',
-    tintColor: '#fff',
-    margin: 8,
-  },
-  title: {
-    fontSize: 18,
-    fontWeight: '200',
-    color: '#fff',
-    margin: 8,
-  },
-});

+ 0 - 121
HUILIAOAPP/js/CustomTabs.js

@@ -1,121 +0,0 @@
-/**
- * @flow
- */
-
-import React from 'react';
-import {
-  Platform,
-  ScrollView,
-  StyleSheet,
-  StatusBar,
-  Text,
-  TouchableOpacity,
-  View,
-} from 'react-native';
-import {
-  createNavigator,
-  createNavigationContainer,
-  SafeAreaView,
-  TabRouter,
-} from 'react-navigation';
-import SampleText from './SampleText';
-import { Button } from './commonComponents/ButtonWithMargin';
-
-const MyNavScreen = ({ navigation, banner }) => (
-  <ScrollView>
-    <SafeAreaView forceInset={{ horizontal: 'always' }}>
-      <SampleText>{banner}</SampleText>
-      <Button
-        onPress={() => {
-          navigation.goBack(null);
-        }}
-        title="Go back"
-      />
-    </SafeAreaView>
-    <StatusBar barStyle="default" />
-  </ScrollView>
-);
-
-const MyHomeScreen = ({ navigation }) => (
-  <MyNavScreen banner="Home Screen" navigation={navigation} />
-);
-
-const MyNotificationsScreen = ({ navigation }) => (
-  <MyNavScreen banner="Notifications Screen" navigation={navigation} />
-);
-
-const MySettingsScreen = ({ navigation }) => (
-  <MyNavScreen banner="Settings Screen" navigation={navigation} />
-);
-
-const CustomTabBar = ({ navigation }) => {
-  const { routes } = navigation.state;
-  return (
-    <SafeAreaView style={styles.tabContainer}>
-      {routes.map(route => (
-        <TouchableOpacity
-          onPress={() => navigation.navigate(route.routeName)}
-          style={styles.tab}
-          key={route.routeName}
-        >
-          <Text>{route.routeName}</Text>
-        </TouchableOpacity>
-      ))}
-    </SafeAreaView>
-  );
-};
-
-const CustomTabView = ({ descriptors, navigation }) => {
-  const { routes, index } = navigation.state;
-  const descriptor = descriptors[routes[index].key];
-  const ActiveScreen = descriptor.getComponent();
-  return (
-    <SafeAreaView forceInset={{ top: 'always' }}>
-      <CustomTabBar navigation={navigation} />
-      <ActiveScreen navigation={descriptor.navigation} />
-    </SafeAreaView>
-  );
-};
-
-const CustomTabRouter = TabRouter(
-  {
-    Home: {
-      screen: MyHomeScreen,
-      path: '',
-    },
-    Notifications: {
-      screen: MyNotificationsScreen,
-      path: 'notifications',
-    },
-    Settings: {
-      screen: MySettingsScreen,
-      path: 'settings',
-    },
-  },
-  {
-    // Change this to start on a different tab
-    initialRouteName: 'Home',
-  }
-);
-
-const CustomTabs = createNavigationContainer(
-  createNavigator(CustomTabView, CustomTabRouter, {})
-);
-
-const styles = StyleSheet.create({
-  tabContainer: {
-    flexDirection: 'row',
-    height: 48,
-  },
-  tab: {
-    flex: 1,
-    alignItems: 'center',
-    justifyContent: 'center',
-    margin: 4,
-    borderWidth: 1,
-    borderColor: '#ddd',
-    borderRadius: 4,
-  },
-});
-
-export default CustomTabs;

+ 0 - 117
HUILIAOAPP/js/CustomTransitioner.js

@@ -1,117 +0,0 @@
-import React, { Component, PropTypes } from 'react';
-import {
-  Animated,
-  Easing,
-  Image,
-  Platform,
-  StatusBar,
-  StyleSheet,
-  View,
-} from 'react-native';
-import {
-  Transitioner,
-  SafeAreaView,
-  StackRouter,
-  createNavigationContainer,
-  createNavigator,
-} from 'react-navigation';
-import SampleText from './SampleText';
-import { Button } from './commonComponents/ButtonWithMargin';
-
-const MyNavScreen = ({ navigation, banner }) => (
-  <SafeAreaView forceInset={{ top: 'always' }}>
-    <SampleText>{banner}</SampleText>
-    {navigation.state &&
-      navigation.state.routeName !== 'Settings' && (
-        <Button
-          onPress={() => navigation.navigate('Settings')}
-          title="Go to a settings screen"
-        />
-      )}
-
-    <Button onPress={() => navigation.goBack(null)} title="Go back" />
-    <StatusBar barStyle="default" />
-  </SafeAreaView>
-);
-
-const MyHomeScreen = ({ navigation }) => (
-  <MyNavScreen banner="Home Screen" navigation={navigation} />
-);
-
-const MySettingsScreen = ({ navigation }) => (
-  <MyNavScreen banner="Settings Screen" navigation={navigation} />
-);
-
-class CustomNavigationView extends Component {
-  render() {
-    const { navigation, router, descriptors } = this.props;
-
-    return (
-      <Transitioner
-        configureTransition={this._configureTransition}
-        descriptors={descriptors}
-        navigation={navigation}
-        render={this._render}
-      />
-    );
-  }
-
-  _configureTransition(transitionProps, prevTransitionProps) {
-    return {
-      duration: 200,
-      easing: Easing.out(Easing.ease),
-    };
-  }
-
-  _render = (transitionProps, prevTransitionProps) => {
-    const scenes = transitionProps.scenes.map(scene =>
-      this._renderScene(transitionProps, scene)
-    );
-    return <View style={{ flex: 1 }}>{scenes}</View>;
-  };
-
-  _renderScene = (transitionProps, scene) => {
-    const { navigation, router } = this.props;
-    const { routes } = navigation.state;
-    const { position } = transitionProps;
-    const { index } = scene;
-
-    const animatedValue = position.interpolate({
-      inputRange: [index - 1, index, index + 1],
-      outputRange: [0, 1, 0],
-    });
-
-    const animation = {
-      opacity: animatedValue,
-      transform: [{ scale: animatedValue }],
-    };
-
-    const Scene = scene.descriptor.getComponent();
-    return (
-      <Animated.View key={index} style={[styles.view, animation]}>
-        <Scene navigation={scene.descriptor.navigation} />
-      </Animated.View>
-    );
-  };
-}
-
-const CustomRouter = StackRouter({
-  Home: { screen: MyHomeScreen },
-  Settings: { screen: MySettingsScreen },
-});
-
-const CustomTransitioner = createNavigationContainer(
-  createNavigator(CustomNavigationView, CustomRouter, {})
-);
-
-export default CustomTransitioner;
-
-const styles = StyleSheet.create({
-  view: {
-    position: 'absolute',
-    left: 0,
-    right: 0,
-    top: 0,
-    bottom: 0,
-  },
-});

+ 0 - 96
HUILIAOAPP/js/Drawer.js

@@ -1,96 +0,0 @@
-/**
- * @flow
- */
-
-import React from 'react';
-import { Platform, ScrollView, StatusBar } from 'react-native';
-import {
-  createStackNavigator,
-  createDrawerNavigator,
-  SafeAreaView,
-} from 'react-navigation';
-import MaterialIcons from 'react-native-vector-icons/MaterialIcons';
-import SampleText from './SampleText';
-import { Button } from './commonComponents/ButtonWithMargin';
-
-const MyNavScreen = ({ navigation, banner }) => (
-  <ScrollView>
-    <SafeAreaView forceInset={{ top: 'always' }}>
-      <SampleText>{banner}</SampleText>
-      <Button onPress={() => navigation.openDrawer()} title="Open drawer" />
-      <Button
-        onPress={() => navigation.navigate('Email')}
-        title="Open other screen"
-      />
-      <Button onPress={() => navigation.goBack(null)} title="Go back" />
-    </SafeAreaView>
-    <StatusBar barStyle="default" />
-  </ScrollView>
-);
-
-const InboxScreen = ({ navigation }) => (
-  <MyNavScreen banner={'Inbox Screen'} navigation={navigation} />
-);
-InboxScreen.navigationOptions = {
-  headerTitle: 'Inbox',
-};
-
-const EmailScreen = ({ navigation }) => (
-  <MyNavScreen banner={'Email Screen'} navigation={navigation} />
-);
-
-const DraftsScreen = ({ navigation }) => (
-  <MyNavScreen banner={'Drafts Screen'} navigation={navigation} />
-);
-DraftsScreen.navigationOptions = {
-  headerTitle: 'Drafts',
-};
-
-const InboxStack = createStackNavigator({
-  Inbox: { screen: InboxScreen },
-  Email: { screen: EmailScreen },
-});
-
-InboxStack.navigationOptions = {
-  drawerLabel: 'Inbox',
-  drawerIcon: ({ tintColor }) => (
-    <MaterialIcons
-      name="move-to-inbox"
-      size={24}
-      style={{ color: tintColor }}
-    />
-  ),
-};
-
-const DraftsStack = createStackNavigator({
-  Drafts: { screen: DraftsScreen },
-  Email: { screen: EmailScreen },
-});
-
-DraftsStack.navigationOptions = {
-  drawerLabel: 'Drafts',
-  drawerIcon: ({ tintColor }) => (
-    <MaterialIcons name="drafts" size={24} style={{ color: tintColor }} />
-  ),
-};
-
-const DrawerExample = createDrawerNavigator(
-  {
-    Inbox: {
-      path: '/',
-      screen: InboxStack,
-    },
-    Drafts: {
-      path: '/sent',
-      screen: DraftsStack,
-    },
-  },
-  {
-    initialRouteName: 'Drafts',
-    contentOptions: {
-      activeTintColor: '#e91e63',
-    },
-  }
-);
-
-export default DrawerExample;

+ 0 - 96
HUILIAOAPP/js/InactiveStack.js

@@ -1,96 +0,0 @@
-import React from 'react';
-import { Button, Text, StatusBar, View, StyleSheet } from 'react-native';
-import {
-  SafeAreaView,
-  createStackNavigator,
-  createSwitchNavigator,
-  NavigationActions,
-} from 'react-navigation';
-
-const runSubRoutes = navigation => {
-  navigation.dispatch(NavigationActions.navigate({ routeName: 'First2' }));
-  navigation.dispatch(NavigationActions.navigate({ routeName: 'Second2' }));
-  navigation.dispatch(NavigationActions.navigate({ routeName: 'First2' }));
-};
-
-const runSubRoutesWithIntermediate = navigation => {
-  navigation.dispatch(toFirst1);
-  navigation.dispatch(toSecond2);
-  navigation.dispatch(toFirst);
-  navigation.dispatch(toFirst2);
-};
-
-const runSubAction = navigation => {
-  navigation.dispatch(toFirst2);
-  navigation.dispatch(toSecond2);
-  navigation.dispatch(toFirstChild1);
-};
-
-const DummyScreen = ({ routeName, navigation, style }) => {
-  return (
-    <SafeAreaView
-      style={[
-        StyleSheet.absoluteFill,
-        {
-          alignItems: 'center',
-          justifyContent: 'center',
-          backgroundColor: 'white',
-        },
-        style,
-      ]}
-    >
-      <Text style={{ fontWeight: '800' }}>
-        {routeName}({navigation.state.key})
-      </Text>
-      <View>
-        <Button title="back" onPress={() => navigation.goBack()} />
-        <Button title="dismiss" onPress={() => navigation.dismiss()} />
-        <Button
-          title="between sub-routes"
-          onPress={() => runSubRoutes(navigation)}
-        />
-        <Button
-          title="between sub-routes (with intermediate)"
-          onPress={() => runSubRoutesWithIntermediate(navigation)}
-        />
-
-        <Button
-          title="with sub-action"
-          onPress={() => runSubAction(navigation)}
-        />
-      </View>
-      <StatusBar barStyle="default" />
-    </SafeAreaView>
-  );
-};
-
-const createDummyScreen = routeName => {
-  const BoundDummyScreen = props => DummyScreen({ ...props, routeName });
-  return BoundDummyScreen;
-};
-
-const toFirst = NavigationActions.navigate({ routeName: 'First' });
-const toFirst1 = NavigationActions.navigate({ routeName: 'First1' });
-const toFirst2 = NavigationActions.navigate({ routeName: 'First2' });
-const toSecond2 = NavigationActions.navigate({ routeName: 'Second2' });
-const toFirstChild1 = NavigationActions.navigate({
-  routeName: 'First',
-  action: NavigationActions.navigate({ routeName: 'First1' }),
-});
-
-export default createStackNavigator(
-  {
-    Other: createDummyScreen('Leaf'),
-    First: createStackNavigator({
-      First1: createDummyScreen('First1'),
-      First2: createDummyScreen('First2'),
-    }),
-    Second: createStackNavigator({
-      Second1: createDummyScreen('Second1'),
-      Second2: createDummyScreen('Second2'),
-    }),
-  },
-  {
-    headerMode: 'none',
-  }
-);

+ 0 - 63
HUILIAOAPP/js/KeyboardHandlingExample.js

@@ -1,63 +0,0 @@
-import React from 'react';
-import { StatusBar, View, TextInput, InteractionManager } from 'react-native';
-import { createStackNavigator, withNavigationFocus } from 'react-navigation';
-import { Button } from './commonComponents/ButtonWithMargin';
-
-class ScreenOne extends React.Component {
-  static navigationOptions = {
-    title: 'Home',
-  };
-
-  render() {
-    const { navigation } = this.props;
-    return (
-      <View style={{ paddingTop: 30 }}>
-        <Button
-          onPress={() => navigation.push('ScreenTwo')}
-          title="Push screen with focused text input"
-        />
-        <Button onPress={() => navigation.goBack(null)} title="Go Home" />
-        <StatusBar barStyle="default" />
-      </View>
-    );
-  }
-}
-
-class ScreenTwo extends React.Component {
-  static navigationOptions = ({ navigation }) => ({
-    title: navigation.getParam('inputValue', 'Screen w/ Input'),
-  });
-
-  componentDidMount() {
-    InteractionManager.runAfterInteractions(() => {
-      this._textInput.focus();
-    });
-  }
-
-  render() {
-    const { navigation } = this.props;
-    return (
-      <View style={{ paddingTop: 30 }}>
-        <View style={{ alignSelf: 'center', paddingVertical: 20 }}>
-          <TextInput
-            ref={c => (this._textInput = c)}
-            onChangeText={inputValue => navigation.setParams({ inputValue })}
-            style={{
-              backgroundColor: 'white',
-              height: 24,
-              width: 150,
-              borderColor: '#555',
-              borderWidth: 1,
-            }}
-          />
-        </View>
-        <Button onPress={() => navigation.pop()} title="Pop" />
-      </View>
-    );
-  }
-}
-
-export default createStackNavigator({
-  ScreenOne,
-  ScreenTwo: withNavigationFocus(ScreenTwo),
-});

+ 0 - 107
HUILIAOAPP/js/ModalStack.js

@@ -1,107 +0,0 @@
-/**
- * @flow
- */
-
-import React from 'react';
-import { ScrollView, StatusBar, Text } from 'react-native';
-import { SafeAreaView, createStackNavigator } from 'react-navigation';
-import SampleText from './SampleText';
-import { Button } from './commonComponents/ButtonWithMargin';
-
-const MyNavScreen = ({ navigation, banner }) => (
-  <ScrollView>
-    <SafeAreaView
-      forceInset={{
-        top: navigation.state.routeName === 'HeaderTest' ? 'always' : 'never',
-      }}
-    >
-      <SampleText>{banner}</SampleText>
-      <Button
-        onPress={() => navigation.navigate('Profile', { name: 'Jane' })}
-        title="Go to a profile screen"
-      />
-      <Button
-        onPress={() => navigation.navigate('HeaderTest')}
-        title="Go to a header toggle screen"
-      />
-      {navigation.state.routeName === 'HeaderTest' && (
-        <Button
-          title="Toggle Header"
-          onPress={() =>
-            navigation.setParams({
-              headerVisible:
-                !navigation.state.params ||
-                !navigation.state.params.headerVisible,
-            })
-          }
-        />
-      )}
-      <Button onPress={() => navigation.goBack(null)} title="Go back" />
-    </SafeAreaView>
-    <StatusBar barStyle="default" />
-  </ScrollView>
-);
-
-const MyHomeScreen = ({ navigation }) => (
-  <MyNavScreen banner="Home Screen" navigation={navigation} />
-);
-MyHomeScreen.navigationOptions = {
-  title: 'Welcome',
-};
-
-const MyProfileScreen = ({ navigation }) => (
-  <MyNavScreen
-    banner={`${navigation.state.params.name}'s Profile`}
-    navigation={navigation}
-  />
-);
-MyProfileScreen.navigationOptions = ({ navigation }) => ({
-  title: `${navigation.state.params.name}'s Profile!`,
-});
-
-const ProfileNavigator = createStackNavigator(
-  {
-    Home: {
-      screen: MyHomeScreen,
-    },
-    Profile: {
-      path: 'people/:name',
-      screen: MyProfileScreen,
-    },
-  },
-  {
-    navigationOptions: {
-      headerLeft: null,
-    },
-    mode: 'modal',
-  }
-);
-
-const MyHeaderTestScreen = ({ navigation }) => (
-  <MyNavScreen banner={`Full screen view`} navigation={navigation} />
-);
-MyHeaderTestScreen.navigationOptions = ({ navigation }) => {
-  const headerVisible =
-    navigation.state.params && navigation.state.params.headerVisible;
-  return {
-    header: headerVisible ? undefined : null,
-    title: 'Now you see me',
-  };
-};
-
-const ModalStack = createStackNavigator(
-  {
-    ProfileNavigator: {
-      screen: ProfileNavigator,
-    },
-    HeaderTest: { screen: MyHeaderTestScreen },
-  },
-  {
-    navigationOptions: {
-      header: null,
-    },
-    mode: 'modal',
-  }
-);
-
-export default ModalStack;

+ 0 - 75
HUILIAOAPP/js/MultipleDrawer.js

@@ -1,75 +0,0 @@
-/**
- * @flow
- */
-
-import React from 'react';
-import { Platform, ScrollView, StyleSheet } from 'react-native';
-import { createDrawerNavigator } from 'react-navigation';
-import MaterialIcons from 'react-native-vector-icons/MaterialIcons';
-import SampleText from './SampleText';
-import { Button } from './commonComponents/ButtonWithMargin';
-
-const MyNavScreen = ({ navigation, banner }) => (
-  <ScrollView style={styles.container}>
-    <SampleText>{banner}</SampleText>
-    <Button onPress={() => navigation.openDrawer()} title="Open drawer" />
-    <Button onPress={() => navigation.goBack(null)} title="Go back" />
-  </ScrollView>
-);
-
-const InboxScreen = ({ navigation }) => (
-  <MyNavScreen banner={'Inbox Screen'} navigation={navigation} />
-);
-InboxScreen.navigationOptions = {
-  drawerLabel: 'Inbox',
-  drawerIcon: ({ tintColor }) => (
-    <MaterialIcons
-      name="move-to-inbox"
-      size={24}
-      style={{ color: tintColor }}
-    />
-  ),
-};
-
-const DraftsScreen = ({ navigation }) => (
-  <MyNavScreen banner={'Drafts Screen'} navigation={navigation} />
-);
-DraftsScreen.navigationOptions = {
-  drawerLabel: 'Drafts',
-  drawerIcon: ({ tintColor }) => (
-    <MaterialIcons name="drafts" size={24} style={{ color: tintColor }} />
-  ),
-};
-
-const DrawerExample = createDrawerNavigator(
-  {
-    Inbox: {
-      path: '/',
-      screen: InboxScreen,
-    },
-    Drafts: {
-      path: '/sent',
-      screen: DraftsScreen,
-    },
-  },
-  {
-    initialRouteName: 'Drafts',
-    contentOptions: {
-      activeTintColor: '#e91e63',
-    },
-  }
-);
-
-const MainDrawerExample = createDrawerNavigator({
-  Drafts: {
-    screen: DrawerExample,
-  },
-});
-
-const styles = StyleSheet.create({
-  container: {
-    marginTop: Platform.OS === 'ios' ? 20 : 0,
-  },
-});
-
-export default MainDrawerExample;

+ 0 - 22
HUILIAOAPP/js/SampleText.js

@@ -1,22 +0,0 @@
-/* @flow */
-
-import React from 'react';
-
-import { StyleSheet, Text } from 'react-native';
-
-/**
- * Used across examples as a screen placeholder.
- */
-import type { ChildrenArray } from 'react';
-
-const SampleText = ({ children }: { children?: ChildrenArray<*> }) => (
-  <Text style={styles.sampleText}>{children}</Text>
-);
-
-export default SampleText;
-
-const styles = StyleSheet.create({
-  sampleText: {
-    margin: 14,
-  },
-});

+ 0 - 255
HUILIAOAPP/js/SimpleStack.js

@@ -1,255 +0,0 @@
-/**
- * @flow
- */
-
-import type {
-  NavigationScreenProp,
-  NavigationState,
-  NavigationStateRoute,
-  NavigationEventSubscription,
-} from 'react-navigation';
-
-import * as React from 'react';
-import { Platform, ScrollView, StatusBar } from 'react-native';
-import {
-  createStackNavigator,
-  SafeAreaView,
-  withNavigation,
-  NavigationActions,
-  StackActions,
-} from 'react-navigation';
-import invariant from 'invariant';
-
-import SampleText from './SampleText';
-import { Button } from './commonComponents/ButtonWithMargin';
-import { HeaderButtons } from './commonComponents/HeaderButtons';
-
-const DEBUG = false;
-
-type MyNavScreenProps = {
-  navigation: NavigationScreenProp<NavigationState>,
-  banner: React.Node,
-};
-
-type BackButtonProps = {
-  navigation: NavigationScreenProp<NavigationStateRoute>,
-};
-
-class MyBackButton extends React.Component<BackButtonProps, any> {
-  render() {
-    return (
-      <HeaderButtons>
-        <HeaderButtons.Item title="Back" onPress={this._navigateBack} />
-      </HeaderButtons>
-    );
-  }
-
-  _navigateBack = () => {
-    this.props.navigation.goBack(null);
-  };
-}
-
-const MyBackButtonWithNavigation = withNavigation(MyBackButton);
-
-class MyNavScreen extends React.Component<MyNavScreenProps> {
-  render() {
-    const { navigation, banner } = this.props;
-    const { push, replace, popToTop, pop, dismiss } = navigation;
-    invariant(
-      push && replace && popToTop && pop && dismiss,
-      'missing action creators for StackNavigator'
-    );
-    return (
-      <SafeAreaView>
-        <SampleText>{banner}</SampleText>
-        <Button
-          onPress={() => push('Profile', { name: 'Jane' })}
-          title="Push a profile screen"
-        />
-        <Button
-          onPress={() =>
-            navigation.dispatch(
-              StackActions.reset({
-                index: 0,
-                actions: [
-                  NavigationActions.navigate({
-                    routeName: 'Photos',
-                    params: { name: 'Jane' },
-                  }),
-                ],
-              })
-            )
-          }
-          title="Reset photos"
-        />
-        <Button
-          onPress={() => navigation.navigate('Photos', { name: 'Jane' })}
-          title="Navigate to a photos screen"
-        />
-        <Button
-          onPress={() => replace('Profile', { name: 'Lucy' })}
-          title="Replace with profile"
-        />
-        <Button onPress={() => popToTop()} title="Pop to top" />
-        <Button onPress={() => pop()} title="Pop" />
-        <Button
-          onPress={() => {
-            if (navigation.goBack()) {
-              console.log('goBack handled');
-            } else {
-              console.log('goBack unhandled');
-            }
-          }}
-          title="Go back"
-        />
-        <Button onPress={() => dismiss()} title="Dismiss" />
-        <StatusBar barStyle="default" />
-      </SafeAreaView>
-    );
-  }
-}
-
-type MyHomeScreenProps = {
-  navigation: NavigationScreenProp<NavigationState>,
-};
-
-class MyHomeScreen extends React.Component<MyHomeScreenProps> {
-  static navigationOptions = {
-    title: 'Welcome',
-  };
-  _s0: NavigationEventSubscription;
-  _s1: NavigationEventSubscription;
-  _s2: NavigationEventSubscription;
-  _s3: NavigationEventSubscription;
-
-  componentDidMount() {
-    this._s0 = this.props.navigation.addListener('willFocus', this._onWF);
-    this._s1 = this.props.navigation.addListener('didFocus', this._onDF);
-    this._s2 = this.props.navigation.addListener('willBlur', this._onWB);
-    this._s3 = this.props.navigation.addListener('didBlur', this._onDB);
-  }
-  componentWillUnmount() {
-    this._s0.remove();
-    this._s1.remove();
-    this._s2.remove();
-    this._s3.remove();
-  }
-  _onWF = a => {
-    DEBUG && console.log('_willFocus HomeScreen', a);
-  };
-  _onDF = a => {
-    DEBUG && console.log('_didFocus HomeScreen', a);
-  };
-  _onWB = a => {
-    DEBUG && console.log('_willBlur HomeScreen', a);
-  };
-  _onDB = a => {
-    DEBUG && console.log('_didBlur HomeScreen', a);
-  };
-
-  render() {
-    const { navigation } = this.props;
-    return <MyNavScreen banner="Home Screen" navigation={navigation} />;
-  }
-}
-
-type MyPhotosScreenProps = {
-  navigation: NavigationScreenProp<NavigationState>,
-};
-class MyPhotosScreen extends React.Component<MyPhotosScreenProps> {
-  static navigationOptions = {
-    title: 'Photos',
-    headerLeft: <MyBackButtonWithNavigation />,
-  };
-  _s0: NavigationEventSubscription;
-  _s1: NavigationEventSubscription;
-  _s2: NavigationEventSubscription;
-  _s3: NavigationEventSubscription;
-
-  componentDidMount() {
-    this._s0 = this.props.navigation.addListener('willFocus', this._onWF);
-    this._s1 = this.props.navigation.addListener('didFocus', this._onDF);
-    this._s2 = this.props.navigation.addListener('willBlur', this._onWB);
-    this._s3 = this.props.navigation.addListener('didBlur', this._onDB);
-  }
-  componentWillUnmount() {
-    this._s0.remove();
-    this._s1.remove();
-    this._s2.remove();
-    this._s3.remove();
-  }
-  _onWF = a => {
-    DEBUG && console.log('_willFocus PhotosScreen', a);
-  };
-  _onDF = a => {
-    DEBUG && console.log('_didFocus PhotosScreen', a);
-  };
-  _onWB = a => {
-    DEBUG && console.log('_willBlur PhotosScreen', a);
-  };
-  _onDB = a => {
-    DEBUG && console.log('_didBlur PhotosScreen', a);
-  };
-
-  render() {
-    const { navigation } = this.props;
-    return (
-      <MyNavScreen
-        banner={`${navigation.getParam('name')}'s Photos`}
-        navigation={navigation}
-      />
-    );
-  }
-}
-
-const MyProfileScreen = ({ navigation }) => (
-  <MyNavScreen
-    banner={`${
-      navigation.getParam('mode') === 'edit' ? 'Now Editing ' : ''
-    }${navigation.getParam('name')}'s Profile`}
-    navigation={navigation}
-  />
-);
-
-MyProfileScreen.navigationOptions = props => {
-  const { navigation } = props;
-  const { state, setParams } = navigation;
-  const { params } = state;
-  return {
-    headerBackImage: params.headerBackImage,
-    headerTitle: `${params.name}'s Profile!`,
-    // Render a button on the right side of the header.
-    // When pressed switches the screen to edit mode.
-    headerRight: (
-      <HeaderButtons>
-        <HeaderButtons.Item
-          title={params.mode === 'edit' ? 'Done' : 'Edit'}
-          onPress={() =>
-            setParams({ mode: params.mode === 'edit' ? '' : 'edit' })
-          }
-        />
-      </HeaderButtons>
-    ),
-  };
-};
-
-const SimpleStack = createStackNavigator(
-  {
-    Home: {
-      screen: MyHomeScreen,
-    },
-    Profile: {
-      path: 'people/:name',
-      screen: MyProfileScreen,
-    },
-    Photos: {
-      path: 'photos/:name',
-      screen: MyPhotosScreen,
-    },
-  },
-  {
-    // headerLayoutPreset: 'center',
-  }
-);
-
-export default SimpleStack;

+ 0 - 204
HUILIAOAPP/js/SimpleTabs.js

@@ -1,204 +0,0 @@
-/**
- * @flow
- */
-
-import type {
-  NavigationScreenProp,
-  NavigationEventSubscription,
-} from 'react-navigation';
-
-import React from 'react';
-import { Platform, ScrollView, StatusBar, View } from 'react-native';
-import { SafeAreaView, createBottomTabNavigator } from 'react-navigation';
-import Ionicons from 'react-native-vector-icons/Ionicons';
-import SampleText from './SampleText';
-import { Button } from './commonComponents/ButtonWithMargin';
-
-const MyNavScreen = ({ navigation, banner }) => (
-  <SafeAreaView forceInset={{ horizontal: 'always', top: 'always' }}>
-    <SampleText>{banner}</SampleText>
-    <Button
-      onPress={() => navigation.navigate('Home')}
-      title="Go to home tab"
-    />
-    <Button
-      onPress={() => navigation.navigate('Settings')}
-      title="Go to settings tab"
-    />
-    <Button onPress={() => navigation.goBack(null)} title="Go back" />
-    <StatusBar barStyle="default" />
-  </SafeAreaView>
-);
-
-const MyHomeScreen = ({ navigation }) => (
-  <MyNavScreen banner="Home Tab" navigation={navigation} />
-);
-
-MyHomeScreen.navigationOptions = {
-  tabBarTestIDProps: {
-    testID: 'TEST_ID_HOME',
-    accessibilityLabel: 'TEST_ID_HOME_ACLBL',
-  },
-  tabBarLabel: 'Home',
-  tabBarIcon: ({ tintColor, focused }) => (
-    <Ionicons
-      name={focused ? 'ios-home' : 'ios-home-outline'}
-      size={26}
-      style={{ color: tintColor }}
-    />
-  ),
-};
-
-type MyPeopleScreenProps = {
-  navigation: NavigationScreenProp<*>,
-};
-class MyPeopleScreen extends React.Component<MyPeopleScreenProps> {
-  _s0: NavigationEventSubscription;
-  _s1: NavigationEventSubscription;
-  _s2: NavigationEventSubscription;
-  _s3: NavigationEventSubscription;
-
-  static navigationOptions = {
-    tabBarLabel: 'People',
-    tabBarIcon: ({ tintColor, focused }) => (
-      <Ionicons
-        name={focused ? 'ios-people' : 'ios-people-outline'}
-        size={26}
-        style={{ color: tintColor }}
-      />
-    ),
-  };
-  componentDidMount() {
-    this._s0 = this.props.navigation.addListener('willFocus', this._onEvent);
-    this._s1 = this.props.navigation.addListener('didFocus', this._onEvent);
-    this._s2 = this.props.navigation.addListener('willBlur', this._onEvent);
-    this._s3 = this.props.navigation.addListener('didBlur', this._onEvent);
-  }
-  componentWillUnmount() {
-    this._s0.remove();
-    this._s1.remove();
-    this._s2.remove();
-    this._s3.remove();
-  }
-  _onEvent = a => {
-    console.log('EVENT ON PEOPLE TAB', a.type, a);
-  };
-  render() {
-    const { navigation } = this.props;
-    return <MyNavScreen banner="People Tab" navigation={navigation} />;
-  }
-}
-
-type MyChatScreenProps = {
-  navigation: NavigationScreenProp<*>,
-};
-class MyChatScreen extends React.Component<MyChatScreenProps> {
-  _s0: NavigationEventSubscription;
-  _s1: NavigationEventSubscription;
-  _s2: NavigationEventSubscription;
-  _s3: NavigationEventSubscription;
-
-  static navigationOptions = {
-    tabBarLabel: 'Chat',
-    tabBarIcon: ({ tintColor, focused }) => (
-      <Ionicons
-        name={focused ? 'ios-chatboxes' : 'ios-chatboxes-outline'}
-        size={26}
-        style={{ color: tintColor }}
-      />
-    ),
-  };
-  componentDidMount() {
-    this._s0 = this.props.navigation.addListener('willFocus', this._onEvent);
-    this._s1 = this.props.navigation.addListener('didFocus', this._onEvent);
-    this._s2 = this.props.navigation.addListener('willBlur', this._onEvent);
-    this._s3 = this.props.navigation.addListener('didBlur', this._onEvent);
-  }
-  componentWillUnmount() {
-    this._s0.remove();
-    this._s1.remove();
-    this._s2.remove();
-    this._s3.remove();
-  }
-  _onEvent = a => {
-    console.log('EVENT ON CHAT TAB', a.type, a);
-  };
-  render() {
-    const { navigation } = this.props;
-    return <MyNavScreen banner="Chat Tab" navigation={navigation} />;
-  }
-}
-
-const MySettingsScreen = ({ navigation }) => (
-  <MyNavScreen banner="Settings Tab" navigation={navigation} />
-);
-
-MySettingsScreen.navigationOptions = {
-  tabBarLabel: 'Settings',
-  tabBarIcon: ({ tintColor, focused }) => (
-    <Ionicons
-      name={focused ? 'ios-settings' : 'ios-settings-outline'}
-      size={26}
-      style={{ color: tintColor }}
-    />
-  ),
-};
-
-const SimpleTabs = createBottomTabNavigator(
-  {
-    Home: {
-      screen: MyHomeScreen,
-      path: '',
-    },
-    People: {
-      screen: MyPeopleScreen,
-      path: 'cart',
-    },
-    Chat: {
-      screen: MyChatScreen,
-      path: 'chat',
-    },
-    Settings: {
-      screen: MySettingsScreen,
-      path: 'settings',
-    },
-  },
-  {
-    tabBarOptions: {
-      activeTintColor: '#e91e63',
-    },
-  }
-);
-
-type SimpleTabsContainerProps = {
-  navigation: NavigationScreenProp<*>,
-};
-
-class SimpleTabsContainer extends React.Component<SimpleTabsContainerProps> {
-  static router = SimpleTabs.router;
-  _s0: NavigationEventSubscription;
-  _s1: NavigationEventSubscription;
-  _s2: NavigationEventSubscription;
-  _s3: NavigationEventSubscription;
-
-  componentDidMount() {
-    this._s0 = this.props.navigation.addListener('willFocus', this._onAction);
-    this._s1 = this.props.navigation.addListener('didFocus', this._onAction);
-    this._s2 = this.props.navigation.addListener('willBlur', this._onAction);
-    this._s3 = this.props.navigation.addListener('didBlur', this._onAction);
-  }
-  componentWillUnmount() {
-    this._s0.remove();
-    this._s1.remove();
-    this._s2.remove();
-    this._s3.remove();
-  }
-  _onAction = a => {
-    console.log('TABS EVENT', a.type, a);
-  };
-  render() {
-    return <SimpleTabs navigation={this.props.navigation} />;
-  }
-}
-
-export default SimpleTabsContainer;

+ 0 - 145
HUILIAOAPP/js/StackWithCustomHeaderBackImage.js

@@ -1,145 +0,0 @@
-/**
- * @flow
- */
-
-import type { NavigationScreenProp } from 'react-navigation';
-
-import * as React from 'react';
-import { Image, Button, StatusBar, StyleSheet } from 'react-native';
-import { createStackNavigator, SafeAreaView } from 'react-navigation';
-import SampleText from './SampleText';
-
-type MyNavScreenProps = {
-  navigation: NavigationScreenProp<*>,
-  banner: React.Node,
-};
-
-class MyCustomHeaderBackImage extends React.Component<any, any> {
-  render() {
-    const source = require('./assets/back.png');
-    return (
-      <Image
-        source={source}
-        style={[styles.myCustomHeaderBackImage, this.props.style]}
-      />
-    );
-  }
-}
-
-class MyNavScreen extends React.Component<MyNavScreenProps> {
-  render() {
-    const { navigation, banner } = this.props;
-    return (
-      <SafeAreaView>
-        <SampleText>{banner}</SampleText>
-        <Button
-          onPress={() => navigation.navigate('Photos', { name: 'Jane' })}
-          title="Navigate to a photos screen"
-        />
-        <Button onPress={() => navigation.goBack(null)} title="Go back" />
-        <StatusBar barStyle="default" />
-      </SafeAreaView>
-    );
-  }
-}
-
-type MyHomeScreenProps = {
-  navigation: NavigationScreenProp<*>,
-};
-
-class MyHomeScreen extends React.Component<MyHomeScreenProps> {
-  static navigationOptions = {
-    title: 'Welcome',
-    headerBackTitle: null,
-  };
-
-  render() {
-    const { navigation } = this.props;
-    return <MyNavScreen banner="Home Screen" navigation={navigation} />;
-  }
-}
-
-type MyPhotosScreenProps = {
-  navigation: NavigationScreenProp<*>,
-};
-class MyPhotosScreen extends React.Component<MyPhotosScreenProps> {
-  static navigationOptions = ({ navigation }) => ({
-    title: `${navigation.state.params.name}'s photos`,
-    headerBackTitle: null,
-  });
-
-  render() {
-    const { navigation } = this.props;
-    return (
-      <SafeAreaView>
-        <SampleText>{`${navigation.state.params.name}'s Photos`}</SampleText>
-        <Button
-          onPress={() => navigation.navigate('Profile', { name: 'Jane' })}
-          title="Navigate to a profile screen"
-        />
-        <Button onPress={() => navigation.goBack(null)} title="Go back" />
-        <StatusBar barStyle="default" />
-      </SafeAreaView>
-    );
-  }
-}
-
-type MyProfileScreenProps = {
-  navigation: NavigationScreenProp<*>,
-};
-class MyProfileScreen extends React.Component<MyProfileScreenProps> {
-  static navigationOptions = ({ navigation }) => ({
-    title: 'Profile',
-    headerBackImage: (
-      <MyCustomHeaderBackImage style={styles.myCustomHeaderBackImageAlt} />
-    ),
-  });
-
-  render() {
-    const { navigation } = this.props;
-    return (
-      <SafeAreaView>
-        <SampleText>{`${navigation.state.params.name}'s Profile`}</SampleText>
-        <Button onPress={() => navigation.goBack(null)} title="Go back" />
-        <StatusBar barStyle="default" />
-      </SafeAreaView>
-    );
-  }
-}
-
-const StackWithCustomHeaderBackImage = createStackNavigator(
-  {
-    Home: {
-      screen: MyHomeScreen,
-    },
-    Photos: {
-      path: 'photos/:name',
-      screen: MyPhotosScreen,
-    },
-    Profile: {
-      path: 'profile/:name',
-      screen: MyProfileScreen,
-    },
-  },
-  {
-    navigationOptions: {
-      headerBackImage: MyCustomHeaderBackImage,
-    },
-  }
-);
-
-export default StackWithCustomHeaderBackImage;
-
-const styles = StyleSheet.create({
-  myCustomHeaderBackImage: {
-    height: 14.5,
-    width: 24,
-    marginLeft: 9,
-    marginRight: 12,
-    marginVertical: 12,
-    resizeMode: 'contain',
-  },
-  myCustomHeaderBackImageAlt: {
-    tintColor: '#f00',
-  },
-});

+ 0 - 123
HUILIAOAPP/js/StackWithHeaderPreset.js

@@ -1,123 +0,0 @@
-/**
- * @flow
- */
-import type { NavigationScreenProp } from 'react-navigation';
-
-import * as React from 'react';
-import { ScrollView, StatusBar } from 'react-native';
-import { createStackNavigator, SafeAreaView } from 'react-navigation';
-import invariant from 'invariant';
-
-import { Button } from './commonComponents/ButtonWithMargin';
-
-type NavScreenProps = {
-  navigation: NavigationScreenProp<*>,
-};
-
-class HomeScreen extends React.Component<NavScreenProps> {
-  static navigationOptions = {
-    title: 'Welcome',
-  };
-
-  render() {
-    const { navigation } = this.props;
-    const { push } = navigation;
-    invariant(push, 'missing `push` action creator for StackNavigator');
-
-    return (
-      <SafeAreaView style={{ paddingTop: 30 }}>
-        <Button onPress={() => push('Other')} title="Push another screen" />
-        <Button
-          onPress={() => push('ScreenWithNoHeader')}
-          title="Push screen with no header"
-        />
-        <Button onPress={() => navigation.goBack(null)} title="Go Home" />
-        <StatusBar barStyle="default" />
-      </SafeAreaView>
-    );
-  }
-}
-
-class OtherScreen extends React.Component<NavScreenProps> {
-  static navigationOptions = {
-    title: 'Your title here',
-  };
-
-  render() {
-    const { navigation } = this.props;
-    const { push, pop } = navigation;
-    invariant(push && pop, 'missing action creators for StackNavigator');
-
-    return (
-      <SafeAreaView style={{ paddingTop: 30 }}>
-        <Button
-          onPress={() => push('ScreenWithLongTitle')}
-          title="Push another screen"
-        />
-        <Button
-          onPress={() => push('ScreenWithNoHeader')}
-          title="Push screen with no header"
-        />
-        <Button onPress={() => pop()} title="Pop" />
-        <Button onPress={() => navigation.goBack(null)} title="Go back" />
-        <StatusBar barStyle="default" />
-      </SafeAreaView>
-    );
-  }
-}
-
-class ScreenWithLongTitle extends React.Component<NavScreenProps> {
-  static navigationOptions = {
-    title: "Another title that's kind of long",
-  };
-
-  render() {
-    const { navigation } = this.props;
-    const { pop } = navigation;
-    invariant(pop, 'missing `pop` action creator for StackNavigator');
-
-    return (
-      <SafeAreaView style={{ paddingTop: 30 }}>
-        <Button onPress={() => pop()} title="Pop" />
-        <Button onPress={() => navigation.goBack(null)} title="Go back" />
-        <StatusBar barStyle="default" />
-      </SafeAreaView>
-    );
-  }
-}
-
-class ScreenWithNoHeader extends React.Component<NavScreenProps> {
-  static navigationOptions = {
-    header: null,
-    title: 'No Header',
-  };
-
-  render() {
-    const { navigation } = this.props;
-    const { push, pop } = navigation;
-    invariant(push && pop, 'missing action creators for StackNavigator');
-
-    return (
-      <SafeAreaView style={{ paddingTop: 30 }}>
-        <Button onPress={() => push('Other')} title="Push another screen" />
-        <Button onPress={() => pop()} title="Pop" />
-        <Button onPress={() => navigation.goBack(null)} title="Go back" />
-        <StatusBar barStyle="default" />
-      </SafeAreaView>
-    );
-  }
-}
-
-const StackWithHeaderPreset = createStackNavigator(
-  {
-    Home: HomeScreen,
-    Other: OtherScreen,
-    ScreenWithNoHeader: ScreenWithNoHeader,
-    ScreenWithLongTitle: ScreenWithLongTitle,
-  },
-  {
-    headerTransitionPreset: 'uikit',
-  }
-);
-
-export default StackWithHeaderPreset;

+ 0 - 249
HUILIAOAPP/js/StackWithTranslucentHeader.js

@@ -1,249 +0,0 @@
-/**
- * @flow
- */
-
-import type {
-  NavigationScreenProp,
-  NavigationEventSubscription,
-} from 'react-navigation';
-
-import { isIphoneX } from 'react-native-iphone-x-helper';
-
-import * as React from 'react';
-import { BlurView, Constants } from 'expo';
-import {
-  Dimensions,
-  Platform,
-  ScrollView,
-  StatusBar,
-  StyleSheet,
-  View,
-} from 'react-native';
-import { Header, createStackNavigator } from 'react-navigation';
-import invariant from 'invariant';
-
-import SampleText from './SampleText';
-import { Button } from './commonComponents/ButtonWithMargin';
-import { HeaderButtons } from './commonComponents/HeaderButtons';
-
-type MyNavScreenProps = {
-  navigation: NavigationScreenProp<*>,
-  banner: React.Node,
-};
-
-class MyNavScreen extends React.Component<MyNavScreenProps> {
-  render() {
-    const { navigation, banner } = this.props;
-    const { push, replace, popToTop, pop } = navigation;
-    invariant(
-      push && replace && popToTop && pop,
-      'missing action creators for StackNavigator'
-    );
-    return (
-      <ScrollView style={{ flex: 1 }} {...this.getHeaderInset()}>
-        <SampleText>{banner}</SampleText>
-        <Button
-          onPress={() => push('Profile', { name: 'Jane' })}
-          title="Push a profile screen"
-        />
-        <Button
-          onPress={() => navigation.navigate('Photos', { name: 'Jane' })}
-          title="Navigate to a photos screen"
-        />
-        <Button
-          onPress={() => replace('Profile', { name: 'Lucy' })}
-          title="Replace with profile"
-        />
-        <Button onPress={() => popToTop()} title="Pop to top" />
-        <Button onPress={() => pop()} title="Pop" />
-        <Button onPress={() => navigation.goBack(null)} title="Go back" />
-        <StatusBar barStyle="default" />
-      </ScrollView>
-    );
-  }
-
-  // Inset to compensate for navigation bar being transparent.
-  // And improved abstraction for this will be built in to react-navigation
-  // at some point.
-
-  getHeaderInset() {
-    const NOTCH_HEIGHT = isIphoneX() ? 25 : 0;
-
-    // $FlowIgnore: we will remove the HEIGHT static soon enough
-    const BASE_HEADER_HEIGHT = Header.HEIGHT;
-
-    const HEADER_HEIGHT =
-      Platform.OS === 'ios'
-        ? BASE_HEADER_HEIGHT + NOTCH_HEIGHT
-        : BASE_HEADER_HEIGHT + Constants.statusBarHeight;
-
-    return Platform.select({
-      ios: {
-        contentInset: { top: HEADER_HEIGHT },
-        contentOffset: { y: -HEADER_HEIGHT },
-      },
-      android: {
-        contentContainerStyle: {
-          paddingTop: HEADER_HEIGHT,
-        },
-      },
-    });
-  }
-}
-
-type MyHomeScreenProps = {
-  navigation: NavigationScreenProp<*>,
-};
-
-class MyHomeScreen extends React.Component<MyHomeScreenProps> {
-  static navigationOptions = {
-    title: 'Welcome',
-  };
-  _s0: NavigationEventSubscription;
-  _s1: NavigationEventSubscription;
-  _s2: NavigationEventSubscription;
-  _s3: NavigationEventSubscription;
-
-  componentDidMount() {
-    this._s0 = this.props.navigation.addListener('willFocus', this._onWF);
-    this._s1 = this.props.navigation.addListener('didFocus', this._onDF);
-    this._s2 = this.props.navigation.addListener('willBlur', this._onWB);
-    this._s3 = this.props.navigation.addListener('didBlur', this._onDB);
-  }
-  componentWillUnmount() {
-    this._s0.remove();
-    this._s1.remove();
-    this._s2.remove();
-    this._s3.remove();
-  }
-  _onWF = a => {
-    console.log('_willFocus HomeScreen', a);
-  };
-  _onDF = a => {
-    console.log('_didFocus HomeScreen', a);
-  };
-  _onWB = a => {
-    console.log('_willBlur HomeScreen', a);
-  };
-  _onDB = a => {
-    console.log('_didBlur HomeScreen', a);
-  };
-
-  render() {
-    const { navigation } = this.props;
-    return <MyNavScreen banner="Home Screen" navigation={navigation} />;
-  }
-}
-
-type MyPhotosScreenProps = {
-  navigation: NavigationScreenProp<*>,
-};
-class MyPhotosScreen extends React.Component<MyPhotosScreenProps> {
-  static navigationOptions = {
-    title: 'Photos',
-  };
-  _s0: NavigationEventSubscription;
-  _s1: NavigationEventSubscription;
-  _s2: NavigationEventSubscription;
-  _s3: NavigationEventSubscription;
-
-  componentDidMount() {
-    this._s0 = this.props.navigation.addListener('willFocus', this._onWF);
-    this._s1 = this.props.navigation.addListener('didFocus', this._onDF);
-    this._s2 = this.props.navigation.addListener('willBlur', this._onWB);
-    this._s3 = this.props.navigation.addListener('didBlur', this._onDB);
-  }
-  componentWillUnmount() {
-    this._s0.remove();
-    this._s1.remove();
-    this._s2.remove();
-    this._s3.remove();
-  }
-  _onWF = a => {
-    console.log('_willFocus PhotosScreen', a);
-  };
-  _onDF = a => {
-    console.log('_didFocus PhotosScreen', a);
-  };
-  _onWB = a => {
-    console.log('_willBlur PhotosScreen', a);
-  };
-  _onDB = a => {
-    console.log('_didBlur PhotosScreen', a);
-  };
-
-  render() {
-    const { navigation } = this.props;
-    return (
-      <MyNavScreen
-        banner={`${navigation.state.params.name}'s Photos`}
-        navigation={navigation}
-      />
-    );
-  }
-}
-
-const MyProfileScreen = ({ navigation }) => (
-  <MyNavScreen
-    banner={`${navigation.state.params.mode === 'edit' ? 'Now Editing ' : ''}${
-      navigation.state.params.name
-    }'s Profile`}
-    navigation={navigation}
-  />
-);
-
-MyProfileScreen.navigationOptions = props => {
-  const { navigation } = props;
-  const { state, setParams } = navigation;
-  const { params } = state;
-  return {
-    headerBackImage: params.headerBackImage,
-    headerTitle: `${params.name}'s Profile!`,
-    // Render a button on the right side of the header.
-    // When pressed switches the screen to edit mode.
-    headerRight: (
-      <HeaderButtons>
-        <HeaderButtons.Item
-          title={params.mode === 'edit' ? 'Done' : 'Edit'}
-          onPress={() =>
-            setParams({ mode: params.mode === 'edit' ? '' : 'edit' })
-          }
-        />
-      </HeaderButtons>
-    ),
-  };
-};
-
-const StackWithTranslucentHeader = createStackNavigator(
-  {
-    Home: {
-      screen: MyHomeScreen,
-    },
-    Profile: {
-      path: 'people/:name',
-      screen: MyProfileScreen,
-    },
-    Photos: {
-      path: 'photos/:name',
-      screen: MyPhotosScreen,
-    },
-  },
-  {
-    headerTransitionPreset: 'uikit',
-    navigationOptions: {
-      headerTransparent: true,
-      headerStyle: {
-        borderBottomWidth: StyleSheet.hairlineWidth,
-        borderBottomColor: '#A7A7AA',
-      },
-      headerBackground: Platform.select({
-        ios: <BlurView style={{ flex: 1 }} intensity={98} />,
-        android: (
-          <View style={{ flex: 1, backgroundColor: 'rgba(255,255,255,0.7)' }} />
-        ),
-      }),
-    },
-  }
-);
-
-export default StackWithTranslucentHeader;

+ 0 - 130
HUILIAOAPP/js/StacksInTabs.js

@@ -1,130 +0,0 @@
-/**
- * @flow
- */
-
-import React from 'react';
-import { ScrollView, StatusBar } from 'react-native';
-import {
-  SafeAreaView,
-  createStackNavigator,
-  createBottomTabNavigator,
-} from 'react-navigation';
-
-import Ionicons from 'react-native-vector-icons/Ionicons';
-import SampleText from './SampleText';
-import { Button } from './commonComponents/ButtonWithMargin';
-
-const MyNavScreen = ({ navigation, banner }) => (
-  <ScrollView>
-    <SafeAreaView forceInset={{ horizontal: 'always' }}>
-      <SampleText>{banner}</SampleText>
-      <Button
-        onPress={() => navigation.navigate('Profile', { name: 'Jordan' })}
-        title="Open profile screen"
-      />
-      <Button
-        onPress={() => navigation.navigate('NotifSettings')}
-        title="Open notifications screen"
-      />
-      <Button
-        onPress={() => navigation.navigate('SettingsTab')}
-        title="Go to settings tab"
-      />
-      <Button onPress={() => navigation.goBack(null)} title="Go back" />
-    </SafeAreaView>
-
-    <StatusBar barStyle="default" />
-  </ScrollView>
-);
-
-const MyHomeScreen = ({ navigation }) => (
-  <MyNavScreen banner="Home Screen" navigation={navigation} />
-);
-
-const MyProfileScreen = ({ navigation }) => (
-  <MyNavScreen
-    banner={`${navigation.state.params.name}s Profile`}
-    navigation={navigation}
-  />
-);
-
-const MyNotificationsSettingsScreen = ({ navigation }) => (
-  <MyNavScreen banner="Notifications Screen" navigation={navigation} />
-);
-
-const MySettingsScreen = ({ navigation }) => (
-  <MyNavScreen banner="Settings Screen" navigation={navigation} />
-);
-
-const MainTab = createStackNavigator({
-  Home: {
-    screen: MyHomeScreen,
-    path: '/',
-    navigationOptions: {
-      title: 'Welcome',
-    },
-  },
-  Profile: {
-    screen: MyProfileScreen,
-    path: '/people/:name',
-    navigationOptions: ({ navigation }) => ({
-      title: `${navigation.state.params.name}'s Profile!`,
-    }),
-  },
-});
-
-const SettingsTab = createStackNavigator({
-  Settings: {
-    screen: MySettingsScreen,
-    path: '/',
-    navigationOptions: () => ({
-      title: 'Settings',
-    }),
-  },
-  NotifSettings: {
-    screen: MyNotificationsSettingsScreen,
-    navigationOptions: {
-      title: 'Notifications',
-    },
-  },
-});
-
-const StacksInTabs = createBottomTabNavigator(
-  {
-    MainTab: {
-      screen: MainTab,
-      path: '/',
-      navigationOptions: {
-        tabBarLabel: 'Home',
-        tabBarIcon: ({ tintColor, focused }) => (
-          <Ionicons
-            name={focused ? 'ios-home' : 'ios-home-outline'}
-            size={26}
-            style={{ color: tintColor }}
-          />
-        ),
-      },
-    },
-    SettingsTab: {
-      screen: SettingsTab,
-      path: '/settings',
-      navigationOptions: {
-        tabBarLabel: 'Settings',
-        tabBarIcon: ({ tintColor, focused }) => (
-          <Ionicons
-            name={focused ? 'ios-settings' : 'ios-settings-outline'}
-            size={26}
-            style={{ color: tintColor }}
-          />
-        ),
-      },
-    },
-  },
-  {
-    tabBarOptions: {
-      showLabel: false,
-    },
-  }
-);
-
-export default StacksInTabs;

+ 0 - 129
HUILIAOAPP/js/StacksOverTabs.js

@@ -1,129 +0,0 @@
-/**
- * @flow
- */
-
-import React from 'react';
-import { ScrollView, StatusBar } from 'react-native';
-import {
-  SafeAreaView,
-  createStackNavigator,
-  createBottomTabNavigator,
-} from 'react-navigation';
-
-import Ionicons from 'react-native-vector-icons/Ionicons';
-import SampleText from './SampleText';
-import { Button } from './commonComponents/ButtonWithMargin';
-
-const MyNavScreen = ({ navigation, banner }) => (
-  <ScrollView>
-    <SafeAreaView forceInset={{ horizontal: 'always' }}>
-      <SampleText>{banner}</SampleText>
-      <Button
-        onPress={() => navigation.navigate('Profile', { name: 'Jordan' })}
-        title="Open profile screen"
-      />
-      <Button
-        onPress={() => navigation.navigate('NotifSettings')}
-        title="Open notifications screen"
-      />
-      <Button
-        onPress={() => navigation.navigate('SettingsTab')}
-        title="Go to settings tab"
-      />
-      <Button onPress={() => navigation.goBack(null)} title="Go back" />
-    </SafeAreaView>
-    <StatusBar barStyle="default" />
-  </ScrollView>
-);
-
-const MyHomeScreen = ({ navigation }) => (
-  <MyNavScreen banner="Home Screen" navigation={navigation} />
-);
-
-const MyProfileScreen = ({ navigation }) => (
-  <MyNavScreen
-    banner={`${navigation.state.params.name}s Profile`}
-    navigation={navigation}
-  />
-);
-
-const MyNotificationsSettingsScreen = ({ navigation }) => (
-  <MyNavScreen banner="Notifications Screen" navigation={navigation} />
-);
-
-const MySettingsScreen = ({ navigation }) => (
-  <MyNavScreen banner="Settings Screen" navigation={navigation} />
-);
-
-const TabNav = createBottomTabNavigator(
-  {
-    MainTab: {
-      screen: MyHomeScreen,
-      path: '/',
-      navigationOptions: {
-        title: 'Welcome',
-        tabBarLabel: 'Home',
-        tabBarIcon: ({ tintColor, focused }) => (
-          <Ionicons
-            name={focused ? 'ios-home' : 'ios-home-outline'}
-            size={26}
-            style={{ color: tintColor }}
-          />
-        ),
-      },
-    },
-    SettingsTab: {
-      screen: MySettingsScreen,
-      path: '/settings',
-      navigationOptions: {
-        title: 'Settings',
-        tabBarIcon: ({ tintColor, focused }) => (
-          <Ionicons
-            name={focused ? 'ios-settings' : 'ios-settings-outline'}
-            size={26}
-            style={{ color: tintColor }}
-          />
-        ),
-      },
-    },
-  },
-  {
-    tabBarPosition: 'bottom',
-    animationEnabled: false,
-    swipeEnabled: false,
-  }
-);
-
-TabNav.navigationOptions = ({ navigation }) => {
-  let { routeName } = navigation.state.routes[navigation.state.index];
-  let title;
-  if (routeName === 'SettingsTab') {
-    title = 'Settings';
-  } else if (routeName === 'MainTab') {
-    title = 'Home';
-  }
-  return {
-    title,
-  };
-};
-
-const StacksOverTabs = createStackNavigator({
-  Root: {
-    screen: TabNav,
-  },
-  NotifSettings: {
-    screen: MyNotificationsSettingsScreen,
-    navigationOptions: {
-      title: 'Notifications',
-    },
-  },
-  Profile: {
-    screen: MyProfileScreen,
-    path: '/people/:name',
-    navigationOptions: ({ navigation }) => ({
-      title: `${navigation.state.params.name}'s Profile!`,
-    }),
-  },
-});
-
-export default StacksOverTabs;

+ 0 - 142
HUILIAOAPP/js/StacksOverTopTabs.js

@@ -1,142 +0,0 @@
-/**
- * @flow
- */
-
-import React from 'react';
-import { View, ScrollView, StatusBar, StyleSheet } from 'react-native';
-import {
-  SafeAreaView,
-  createStackNavigator,
-  createMaterialTopTabNavigator,
-} from 'react-navigation';
-import { Constants } from 'expo';
-import { MaterialTopTabBar } from 'react-navigation-tabs';
-
-import SampleText from './SampleText';
-import { Button } from './commonComponents/ButtonWithMargin';
-
-const HEADER_HEIGHT = 64;
-
-const MyNavScreen = ({ navigation, banner, statusBarStyle }) => (
-  <ScrollView>
-    <SafeAreaView forceInset={{ horizontal: 'always' }}>
-      <SampleText>{banner}</SampleText>
-      <Button
-        onPress={() => navigation.navigate('Profile', { name: 'Jordan' })}
-        title="Open profile screen"
-      />
-      <Button
-        onPress={() => navigation.navigate('NotifSettings')}
-        title="Open notifications screen"
-      />
-      <Button
-        onPress={() => navigation.navigate('SettingsTab')}
-        title="Go to settings tab"
-      />
-      <Button onPress={() => navigation.goBack(null)} title="Go back" />
-    </SafeAreaView>
-    <StatusBar barStyle={statusBarStyle || 'default'} />
-  </ScrollView>
-);
-
-const MyHomeScreen = ({ navigation }) => (
-  <MyNavScreen
-    banner="Home Screen"
-    navigation={navigation}
-    statusBarStyle="light-content"
-  />
-);
-
-const MyProfileScreen = ({ navigation }) => (
-  <MyNavScreen
-    banner={`${navigation.state.params.name}s Profile`}
-    navigation={navigation}
-  />
-);
-
-const MyNotificationsSettingsScreen = ({ navigation }) => (
-  <MyNavScreen banner="Notifications Screen" navigation={navigation} />
-);
-
-const MySettingsScreen = ({ navigation }) => (
-  <MyNavScreen
-    banner="Settings Screen"
-    navigation={navigation}
-    statusBarStyle="light-content"
-  />
-);
-
-const styles = StyleSheet.create({
-  stackHeader: {
-    height: HEADER_HEIGHT,
-  },
-  tab: {
-    height: HEADER_HEIGHT,
-  },
-});
-
-function MaterialTopTabBarWithStatusBar(props) {
-  return (
-    <View
-      style={{
-        paddingTop: Constants.statusBarHeight,
-        backgroundColor: '#2196f3',
-      }}
-    >
-      <MaterialTopTabBar {...props} jumpToIndex={() => {}} />
-    </View>
-  );
-}
-
-const TabNavigator = createMaterialTopTabNavigator(
-  {
-    MainTab: {
-      screen: MyHomeScreen,
-      navigationOptions: {
-        title: 'Welcome',
-      },
-    },
-    SettingsTab: {
-      screen: MySettingsScreen,
-      navigationOptions: {
-        title: 'Settings',
-      },
-    },
-  },
-  {
-    tabBarComponent: MaterialTopTabBarWithStatusBar,
-    tabBarOptions: {
-      tabStyle: styles.tab,
-    },
-  }
-);
-
-const StackNavigator = createStackNavigator(
-  {
-    Root: {
-      screen: TabNavigator,
-      navigationOptions: {
-        header: null,
-      },
-    },
-    NotifSettings: {
-      screen: MyNotificationsSettingsScreen,
-      navigationOptions: {
-        title: 'Notifications',
-      },
-    },
-    Profile: {
-      screen: MyProfileScreen,
-      navigationOptions: ({ navigation }) => ({
-        title: `${navigation.state.params.name}'s Profile!`,
-      }),
-    },
-  },
-  {
-    navigationOptions: {
-      headerStyle: styles.stackHeader,
-    },
-  }
-);
-
-export default StackNavigator;

+ 0 - 102
HUILIAOAPP/js/StacksWithKeys.js

@@ -1,102 +0,0 @@
-import React from 'react';
-import { StatusBar, Text, View } from 'react-native';
-import { createStackNavigator } from 'react-navigation';
-import { Button } from './commonComponents/ButtonWithMargin';
-
-class HomeScreen extends React.Component<any, any> {
-  render() {
-    return (
-      <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
-        <Text>Home</Text>
-        <Button
-          title="Navigate to 'Profile' with key 'A'"
-          onPress={() =>
-            this.props.navigation.navigate({
-              routeName: 'Profile',
-              key: 'A',
-              params: { homeKey: this.props.navigation.state.key },
-            })
-          }
-        />
-        <Button
-          title="Go back to other examples"
-          onPress={() => this.props.navigation.goBack(null)}
-        />
-        <StatusBar barStyle="default" />
-      </View>
-    );
-  }
-}
-
-class ProfileScreen extends React.Component<any, any> {
-  render() {
-    const { homeKey } = this.props.navigation.state.params;
-    return (
-      <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
-        <Text>Profile</Text>
-        <Button
-          title="Navigate to 'Settings' with key 'B'"
-          onPress={() =>
-            this.props.navigation.navigate({
-              routeName: 'Settings',
-              key: 'B',
-              params: { homeKey },
-            })
-          }
-        />
-        <Button
-          title={`Navigate back to 'Home' with key ${homeKey}`}
-          onPress={() =>
-            this.props.navigation.navigate({ routeName: 'Home', key: homeKey })
-          }
-        />
-      </View>
-    );
-  }
-}
-
-class SettingsScreen extends React.Component<any, any> {
-  render() {
-    const { homeKey } = this.props.navigation.state.params;
-
-    return (
-      <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
-        <Text>Settings</Text>
-        <Button
-          title={`Navigate back to 'Home' with key ${homeKey}`}
-          onPress={() =>
-            this.props.navigation.navigate({ routeName: 'Home', key: homeKey })
-          }
-        />
-        <Button
-          title="Navigate back to 'Profile' with key 'A'"
-          onPress={() =>
-            this.props.navigation.navigate({
-              routeName: 'Profile',
-              key: 'A',
-            })
-          }
-        />
-      </View>
-    );
-  }
-}
-
-const Stack = createStackNavigator(
-  {
-    Home: {
-      screen: HomeScreen,
-    },
-    Profile: {
-      screen: ProfileScreen,
-    },
-    Settings: {
-      screen: SettingsScreen,
-    },
-  },
-  {
-    headerMode: 'none',
-  }
-);
-
-export default Stack;

+ 0 - 121
HUILIAOAPP/js/SwitchWithStacks.js

@@ -1,121 +0,0 @@
-/**
- * @flow
- */
-
-import React from 'react';
-import {
-  ActivityIndicator,
-  AsyncStorage,
-  StatusBar,
-  StyleSheet,
-  View,
-} from 'react-native';
-import { createStackNavigator, createSwitchNavigator } from 'react-navigation';
-import { Button } from './commonComponents/ButtonWithMargin';
-
-class SignInScreen extends React.Component<any, any> {
-  static navigationOptions = {
-    title: 'Please sign in',
-  };
-
-  render() {
-    return (
-      <View style={styles.container}>
-        <Button title="Sign in!" onPress={this._signInAsync} />
-        <Button
-          title="Go back to other examples"
-          onPress={() => this.props.navigation.goBack(null)}
-        />
-        <StatusBar barStyle="default" />
-      </View>
-    );
-  }
-
-  _signInAsync = async () => {
-    await AsyncStorage.setItem('userToken', 'abc');
-    this.props.navigation.navigate('Home');
-  };
-}
-
-class HomeScreen extends React.Component<any, any> {
-  static navigationOptions = {
-    title: 'Welcome to the app!',
-  };
-
-  render() {
-    return (
-      <View style={styles.container}>
-        <Button title="Show me more of the app" onPress={this._showMoreApp} />
-        <Button title="Actually, sign me out :)" onPress={this._signOutAsync} />
-        <StatusBar barStyle="default" />
-      </View>
-    );
-  }
-
-  _showMoreApp = () => {
-    this.props.navigation.navigate('Other');
-  };
-
-  _signOutAsync = async () => {
-    await AsyncStorage.clear();
-    this.props.navigation.navigate('Auth');
-  };
-}
-
-class OtherScreen extends React.Component<any, any> {
-  static navigationOptions = {
-    title: 'Lots of features here',
-  };
-
-  render() {
-    return (
-      <View style={styles.container}>
-        <Button title="I'm done, sign me out" onPress={this._signOutAsync} />
-        <StatusBar barStyle="default" />
-      </View>
-    );
-  }
-
-  _signOutAsync = async () => {
-    await AsyncStorage.clear();
-    this.props.navigation.navigate('Auth');
-  };
-}
-
-class LoadingScreen extends React.Component<any, any> {
-  componentDidMount() {
-    this._bootstrapAsync();
-  }
-
-  _bootstrapAsync = async () => {
-    const userToken = await AsyncStorage.getItem('userToken');
-    let initialRouteName = userToken ? 'App' : 'Auth';
-    this.props.navigation.navigate(initialRouteName);
-  };
-
-  render() {
-    return (
-      <View style={styles.container}>
-        <ActivityIndicator />
-        <StatusBar barStyle="default" />
-      </View>
-    );
-  }
-}
-
-const styles = StyleSheet.create({
-  container: {
-    flex: 1,
-    alignItems: 'center',
-    justifyContent: 'center',
-  },
-});
-
-const AppStack = createStackNavigator({ Home: HomeScreen, Other: OtherScreen });
-const AuthStack = createStackNavigator({ SignIn: SignInScreen });
-
-export default createSwitchNavigator({
-  Loading: LoadingScreen,
-  App: AppStack,
-  Auth: AuthStack,
-});

+ 0 - 45
HUILIAOAPP/js/TabsInDrawer.js

@@ -1,45 +0,0 @@
-/**
- * @flow
- */
-
-import React from 'react';
-import { Platform, ScrollView } from 'react-native';
-import { createDrawerNavigator } from 'react-navigation';
-import MaterialIcons from 'react-native-vector-icons/MaterialIcons';
-import SimpleTabs from './SimpleTabs';
-import StacksOverTabs from './StacksOverTabs';
-
-const TabsInDrawer = createDrawerNavigator({
-  SimpleTabs: {
-    screen: SimpleTabs,
-    navigationOptions: {
-      drawer: () => ({
-        label: 'Simple Tabs',
-        icon: ({ tintColor }) => (
-          <MaterialIcons
-            name="filter-1"
-            size={24}
-            style={{ color: tintColor }}
-          />
-        ),
-      }),
-    },
-  },
-  StacksOverTabs: {
-    screen: StacksOverTabs,
-    navigationOptions: {
-      drawer: () => ({
-        label: 'Stacks Over Tabs',
-        icon: ({ tintColor }) => (
-          <MaterialIcons
-            name="filter-2"
-            size={24}
-            style={{ color: tintColor }}
-          />
-        ),
-      }),
-    },
-  },
-});
-
-export default TabsInDrawer;

+ 0 - 127
HUILIAOAPP/js/TabsWithNavigationEvents.js

@@ -1,127 +0,0 @@
-/**
- * @flow
- */
-
-import React from 'react';
-import { FlatList, SafeAreaView, StatusBar, Text, View } from 'react-native';
-import { NavigationEvents } from 'react-navigation';
-import { createMaterialBottomTabNavigator } from 'react-navigation-material-bottom-tabs';
-import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
-
-const Event = ({ event }) => (
-  <View
-    style={{
-      borderColor: 'grey',
-      borderWidth: 1,
-      borderRadius: 3,
-      padding: 5,
-      flexDirection: 'row',
-      alignItems: 'center',
-      justifyContent: 'space-between',
-    }}
-  >
-    <Text>{event.type}</Text>
-    <Text>
-      {event.action.type.replace('Navigation/', '')}
-      {event.action.routeName ? '=>' + event.action.routeName : ''}
-    </Text>
-  </View>
-);
-
-const createTabScreen = (name, icon, focusedIcon) => {
-  class TabScreen extends React.Component<any, any> {
-    static navigationOptions = {
-      tabBarLabel: name,
-      tabBarIcon: ({ tintColor, focused }) => (
-        <MaterialCommunityIcons
-          name={focused ? focusedIcon : icon}
-          size={26}
-          style={{ color: focused ? tintColor : '#ccc' }}
-        />
-      ),
-    };
-
-    state = { eventLog: [] };
-
-    append = navigationEvent => {
-      this.setState(({ eventLog }) => ({
-        eventLog: eventLog.concat(navigationEvent),
-      }));
-    };
-
-    render() {
-      return (
-        <SafeAreaView
-          forceInset={{ horizontal: 'always', top: 'always' }}
-          style={{
-            flex: 1,
-          }}
-        >
-          <Text
-            style={{
-              margin: 10,
-              marginTop: 30,
-              fontSize: 30,
-              fontWeight: 'bold',
-            }}
-          >
-            Events for tab {name}
-          </Text>
-
-          <View style={{ flex: 1, width: '100%', marginTop: 10 }}>
-            <FlatList
-              data={this.state.eventLog}
-              keyExtractor={item => `${this.state.eventLog.indexOf(item)}`}
-              renderItem={({ item }) => (
-                <View
-                  style={{
-                    marginVertical: 5,
-                    marginHorizontal: 10,
-                    backgroundColor: '#e4e4e4',
-                  }}
-                >
-                  <Event event={item} />
-                </View>
-              )}
-            />
-          </View>
-
-          <NavigationEvents
-            onWillFocus={this.append}
-            onDidFocus={this.append}
-            onWillBlur={this.append}
-            onDidBlur={this.append}
-          />
-
-          <StatusBar barStyle="default" />
-        </SafeAreaView>
-      );
-    }
-  }
-
-  return TabScreen;
-};
-
-const TabsWithNavigationEvents = createMaterialBottomTabNavigator(
-  {
-    One: {
-      screen: createTabScreen('One', 'numeric-1-box-outline', 'numeric-1-box'),
-    },
-    Two: {
-      screen: createTabScreen('Two', 'numeric-2-box-outline', 'numeric-2-box'),
-    },
-    Three: {
-      screen: createTabScreen(
-        'Three',
-        'numeric-3-box-outline',
-        'numeric-3-box'
-      ),
-    },
-  },
-  {
-    shifting: false,
-    activeTintColor: '#F44336',
-  }
-);
-
-export default TabsWithNavigationEvents;

+ 0 - 103
HUILIAOAPP/js/TabsWithNavigationFocus.js

@@ -1,103 +0,0 @@
-/**
- * @flow
- */
-
-import React from 'react';
-import { SafeAreaView, StatusBar, Text, View } from 'react-native';
-import { withNavigationFocus } from 'react-navigation';
-import { createMaterialBottomTabNavigator } from 'react-navigation-material-bottom-tabs';
-import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
-import { Button } from './commonComponents/ButtonWithMargin';
-
-import SampleText from './SampleText';
-
-class Child extends React.Component<any, any> {
-  render() {
-    return (
-      <Text style={{ color: this.props.isFocused ? 'green' : 'maroon' }}>
-        {this.props.isFocused
-          ? 'I know that my parent is focused!'
-          : 'My parent is not focused! :O'}
-      </Text>
-    );
-  }
-}
-
-const ChildWithNavigationFocus = withNavigationFocus(Child);
-
-const createTabScreen = (name, icon, focusedIcon, tintColor = '#673ab7') => {
-  class TabScreen extends React.Component<any, any> {
-    static navigationOptions = {
-      tabBarLabel: name,
-      tabBarIcon: ({ tintColor, focused }) => (
-        <MaterialCommunityIcons
-          name={focused ? focusedIcon : icon}
-          size={26}
-          style={{ color: focused ? tintColor : '#ccc' }}
-        />
-      ),
-    };
-
-    state = { showChild: false };
-
-    render() {
-      const { isFocused } = this.props;
-
-      return (
-        <SafeAreaView
-          forceInset={{ horizontal: 'always', top: 'always' }}
-          style={{
-            flex: 1,
-            alignItems: 'center',
-            justifyContent: 'center',
-          }}
-        >
-          <Text style={{ fontWeight: '700', fontSize: 16, marginBottom: 5 }}>
-            {'Tab ' + name.toLowerCase()}
-          </Text>
-          <Text style={{ marginBottom: 20 }}>
-            {'props.isFocused: ' + (isFocused ? ' true' : 'false')}
-          </Text>
-          {this.state.showChild ? (
-            <ChildWithNavigationFocus />
-          ) : (
-            <Button
-              title="Press me"
-              onPress={() => this.setState({ showChild: true })}
-            />
-          )}
-          <Button
-            onPress={() => this.props.navigation.pop()}
-            title="Back to other examples"
-          />
-          <StatusBar barStyle="default" />
-        </SafeAreaView>
-      );
-    }
-  }
-  return withNavigationFocus(TabScreen);
-};
-
-const TabsWithNavigationFocus = createMaterialBottomTabNavigator(
-  {
-    One: {
-      screen: createTabScreen('One', 'numeric-1-box-outline', 'numeric-1-box'),
-    },
-    Two: {
-      screen: createTabScreen('Two', 'numeric-2-box-outline', 'numeric-2-box'),
-    },
-    Three: {
-      screen: createTabScreen(
-        'Three',
-        'numeric-3-box-outline',
-        'numeric-3-box'
-      ),
-    },
-  },
-  {
-    shifting: false,
-    activeTintColor: '#F44336',
-  }
-);
-
-export default TabsWithNavigationFocus;

BIN
HUILIAOAPP/js/assets/NavLogo.png


BIN
HUILIAOAPP/js/assets/back.png


BIN
HUILIAOAPP/js/assets/dog-back.png


+ 0 - 18
HUILIAOAPP/js/commonComponents/ButtonWithMargin.js

@@ -1,18 +0,0 @@
-import { Button as RNButton, StyleSheet, View, Platform } from 'react-native';
-import React from 'react';
-
-export const Button = props => (
-  <View style={styles.margin}>
-    <RNButton {...props} />
-  </View>
-);
-
-const styles = StyleSheet.create({
-  margin: {
-    ...Platform.select({
-      android: {
-        margin: 10,
-      },
-    }),
-  },
-});

+ 0 - 16
HUILIAOAPP/js/commonComponents/HeaderButtons.js

@@ -1,16 +0,0 @@
-import DefaultHeaderButtons from 'react-navigation-header-buttons';
-import * as React from 'react';
-import { Platform } from 'react-native';
-
-export class HeaderButtons extends React.PureComponent {
-  static Item = DefaultHeaderButtons.Item;
-
-  render() {
-    return (
-      <DefaultHeaderButtons
-        color={Platform.OS === 'ios' ? '#037aff' : 'black'}
-        {...this.props}
-      />
-    );
-  }
-}

+ 0 - 49
HUILIAOAPP/package.json

@@ -1,49 +0,0 @@
-{
-  "name": "HUILIAOAPP",
-  "version": "0.0.1",
-  "private": true,
-  "scripts": {
-    "start": "node node_modules/react-native/local-cli/cli.js start",
-    "test": "jest"
-  },
-  "dependencies": {
-    "axios": "^0.18.0",
-    "babel-preset-expo": "^4.0.0",
-    "expo": "^27.0.0",
-    "leancloud-realtime": "^4.2.0",
-    "leancloud-realtime-plugin-typed-messages": "^3.0.1",
-    "leancloud-storage": "^3.10.0",
-    "prop-types": "^15.5.10",
-    "react": "16.4.1",
-    "react-native": "0.56.0",
-    "react-native-qrcode": "^0.2.7",
-    "react-navigation": "^2.11.2",
-    "react-navigation-redux-helpers": "^2.0.5",
-    "react-redux": "^5.0.6",
-    "redux": "^3.7.2",
-    
-
-    "invariant": "^2.2.4",
-    "react-native-iphone-x-helper": "^1.0.2",
-
-    "react-navigation-header-buttons": "^0.0.4",
-    "react-navigation-material-bottom-tabs": "^0.3.0",
-    "react-navigation-tabs": "^0.5.1"
-  },
-  "devDependencies": {
-    "babel-jest": "23.4.2",
-    "babel-preset-react-native": "^5",
-    "flow-bin": "^0.74.0",
-    "jest": "23.5.0",
-    "react-native-scripts": "^1.3.1",
-    "react-test-renderer": "16.4.1",
-
-    "babel-plugin-transform-remove-console": "^6.9.0",
-
-    "jest-expo": "^28.0.0"
-
-  },
-  "jest": {
-    "preset": "react-native"
-  }
-}

+ 0 - 6
HUILIAOAPP/src/API/index.js

@@ -1,6 +0,0 @@
-import LeanCloudAPI from './leanCloudAPI';
-
-
-export {
-    LeanCloudAPI
-}

+ 0 - 78
HUILIAOAPP/src/API/leanCloudAPI.js

@@ -1,78 +0,0 @@
-import AV from 'leancloud-storage';
-import {TypedMessagesPlugin} from 'leancloud-realtime-plugin-typed-messages'
-import {Realtime} from "leancloud-realtime";
-import {AV_APP_ID as appId, AV_APP_KEY as appKey} from '../config';
-
-class LeanCloudAPI {
-    constructor() {
-      this.AV = null;
-      this.realtime = null;
-      this.imClient = null;
-      this.username = null;
-    }
-  
-    init() {
-      AV.init({appId, appKey});
-      this.AV = AV;
-      this.realtime = new Realtime({
-        appId,
-        appKey,
-        plugins: [TypedMessagesPlugin],
-      });
-
-      console.log(AV)
-    }
-  
-    async login(username,password) {
-     let result= await this.AV.User.logIn(username, password)
-      this.username = username;
-      return result;
-    }
-  
-    async logout() {
-      if (this.imClient) {
-        return await imClient.close();
-      }
-      if (this.AV) {
-        return await this.AV.User.logOut();
-      }
-    }
-  
-    // async createIMClient(dispatch) {
-    //   console.log('init im client');
-    //   if (!this.username) {
-    //     throw new Error('Please login first.');
-    //   }
-    //   this.imClient = await this.realtime.createIMClient(this.username);
-  
-    //   this.realtime.on('message', function (msg) {
-    //     console.log('msg: ' + msg);
-    //     dispath && dispatch(receivedWsMsg(msg))
-    //   });
-    //   this.realtime.on('disconnect', function () {
-    //     console.log('服务器连接已断开');
-    //     dispath && dispatch(offline());
-    //   });
-    //   this.realtime.on('offline', function () {
-    //     console.log('离线(网络连接已断开)');
-    //     dispath && dispatch(offline());
-    //   });
-    //   this.realtime.on('online', function () {
-    //     console.log('已恢复在线');
-    //     dispath && dispatch(online());
-    //   });
-    //   this.realtime.on('schedule', function (attempt, delay) {
-    //     console.log(delay + 'ms 后进行第' + (attempt + 1) + '次重连');
-    //   });
-    //   this.realtime.on('retry', function (attempt) {
-    //     console.log('正在进行第' + (attempt + 1) + '次重连');
-    //   });
-    //   this.realtime.on('reconnect', function () {
-    //     console.log('与服务端连接恢复');
-    //   });
-  
-    //   return this.imClient;
-    // }
-  }
-
-  export default new LeanCloudAPI();

+ 0 - 65
HUILIAOAPP/src/components/LoginScreen.js

@@ -1,65 +0,0 @@
-import React ,{ Component }from 'react';
-import PropTypes from 'prop-types';
-import { Button, StyleSheet, Text, View,WebView } from 'react-native';
-
-import {LeanCloudAPI} from '../API';
-import QRCode from 'react-native-qrcode';
-
-const styles = StyleSheet.create({
-  container: {
-    flex: 1,
-    justifyContent: 'center',
-    alignItems: 'center',
-    backgroundColor: '#F5FCFF',
-  },
-  welcome: {
-    fontSize: 20,
-    textAlign: 'center',
-    margin: 10,
-  },
-});
-
-
-
-class LoginScreen extends Component{
-  constructor(props){
-    super(props)
-  }
-  componentWillMount(){
-    // LeanCloudAPI.init()
-    // console.log(LeanCloudAPI.login('wenjie','123456'))
-  }
-
-  render(){
-    const {navigation} = this.props
-    return(
-      <View style={styles.container}>
-      <Text style={styles.welcome}>
-        Screen A
-      </Text>
-      <Text style={styles.instructions}>
-        This is great
-      </Text>
-      <QRCode
-          value={'123456'}
-          size={200}
-          bgColor='black'
-          fgColor='white'/>
-      <Button
-        onPress={() => navigation.dispatch({ type: 'Login' })}
-        title="Log in"
-      />
-    </View>
-    )
-  }
-}
-
-LoginScreen.propTypes = {
-  navigation: PropTypes.object.isRequired,
-};
-
-LoginScreen.navigationOptions = {
-  title: 'Log In',
-};
-
-export default LoginScreen;

+ 0 - 126
HUILIAOAPP/src/components/ProfileScreen.js

@@ -1,126 +0,0 @@
-/**
- * @flow
- */
-
-import React from 'react';
-import { ScrollView, StatusBar,Text } from 'react-native';
-import {
-  SafeAreaView,
-  createStackNavigator,
-  createBottomTabNavigator,
-} from 'react-navigation';
-
-// import Ionicons from 'react-native-vector-icons/Ionicons';
-
-const MyNavScreen = ({ navigation, banner }) => (
-  <ScrollView>
-    <SafeAreaView forceInset={{ horizontal: 'always' }}>
-      <Text
-        onPress={() => navigation.navigate('Profile', { name: 'Jordan' })}
-        title="Open profile screen"
-      />
-      <Text
-        onPress={() => navigation.navigate('NotifSettings')}
-        title="Open notifications screen"
-      />
-      <Text
-        onPress={() => navigation.navigate('SettingsTab')}
-        title="Go to settings tab"
-      />
-      <Text onPress={() => navigation.goBack(null)} title="Go back" />
-    </SafeAreaView>
-    <StatusBar barStyle="default" />
-  </ScrollView>
-);
-
-const MyHomeScreen = ({ navigation }) => (
-  <MyNavScreen banner="Home Screen" navigation={navigation} />
-);
-
-const MyProfileScreen = ({ navigation }) => (
-  <MyNavScreen
-    banner={`${navigation.state.params.name}s Profile`}
-    navigation={navigation}
-  />
-);
-
-const MyNotificationsSettingsScreen = ({ navigation }) => (
-  <MyNavScreen banner="Notifications Screen" navigation={navigation} />
-);
-
-const MySettingsScreen = ({ navigation }) => (
-  <MyNavScreen banner="Settings Screen" navigation={navigation} />
-);
-
-const TabNav = createBottomTabNavigator(
-  {
-    MainTab: {
-      screen: MyHomeScreen,
-      path: '/',
-      navigationOptions: {
-        title: 'Welcome',
-        tabBarLabel: 'Home',
-        // tabBarIcon: ({ tintColor, focused }) => (
-        //   <Ionicons
-        //     name={focused ? 'ios-home' : 'ios-home-outline'}
-        //     size={26}
-        //     style={{ color: tintColor }}
-        //   />
-        // ),
-      },
-    },
-    SettingsTab: {
-      screen: MySettingsScreen,
-      path: '/settings',
-      navigationOptions: {
-        title: 'Settings',
-        // tabBarIcon: ({ tintColor, focused }) => (
-        //   <Ionicons
-        //     name={focused ? 'ios-settings' : 'ios-settings-outline'}
-        //     size={26}
-        //     style={{ color: tintColor }}
-        //   />
-        // ),
-      },
-    },
-  },
-  {
-    tabBarPosition: 'bottom',
-    animationEnabled: false,
-    swipeEnabled: false,
-  }
-);
-
-TabNav.navigationOptions = ({ navigation }) => {
-  let { routeName } = navigation.state.routes[navigation.state.index];
-  let title;
-  if (routeName === 'SettingsTab') {
-    title = 'Settings';
-  } else if (routeName === 'MainTab') {
-    title = 'Home';
-  }
-  return {
-    title,
-  };
-};
-
-const StacksOverTabs = createStackNavigator({
-  Root: {
-    screen: TabNav,
-  },
-  NotifSettings: {
-    screen: MyNotificationsSettingsScreen,
-    navigationOptions: {
-      title: 'Notifications',
-    },
-  },
-  Profile: {
-    screen: MyProfileScreen,
-    path: '/people/:name',
-    navigationOptions: ({ navigation }) => ({
-      title: `${navigation.state.params.name}'s Profile!`,
-    }),
-  },
-});
-
-export default StacksOverTabs;

+ 0 - 54
HUILIAOAPP/src/navigators/AppNavigator.js

@@ -1,54 +0,0 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
-import { createStackNavigator } from 'react-navigation';
-import {
-  reduxifyNavigator,
-  createReactNavigationReduxMiddleware,
-} from 'react-navigation-redux-helpers';
-
-import LoginScreen from '../components/LoginScreen';
-import MainScreen from '../components/MainScreen';
-import ProfileScreen from '../components/ProfileScreen';
-
-import Mine  from '../pages/Mine';
-import Setting from '../pages/Mine/Setting';
-import ReName from '../pages/Mine/ReName';
-import RePassword from '../pages/Mine/RePassword';
-import Infomation from '../pages/Mine/Infomation';
-import QrCode from '../pages/Mine/QrCode';
-import Notice from '../pages/Mine/Notice';
-
-import Login from '../pages/Login'
-
-
-const middleware = createReactNavigationReduxMiddleware(
-  'root',
-  state => state.nav
-);
-
-const RootNavigator = createStackNavigator({
-  Index:{ screen: Login },
-  Login: { screen: Login },
-  // Login: { screen: LoginScreen },
-  Main: { screen: MainScreen },
-  Profile: { screen: ProfileScreen },
-  Mine: { screen: Mine },
-  ReName: { screen: ReName },
-  RePassword: { screen: RePassword },
-  Infomation: { screen: Infomation },
-  QrCode: { screen: QrCode },
-  Notice: { screen: Notice },
-  
-  
-});
-
-const AppWithNavigationState = reduxifyNavigator(RootNavigator, 'root');
-
-const mapStateToProps = state => ({
-  state: state.nav,
-});
-
-const AppNavigator = connect(mapStateToProps)(AppWithNavigationState);
-
-export { RootNavigator, AppNavigator, middleware };

+ 0 - 19
HUILIAOAPP/src/pages/Login/index.js

@@ -1,19 +0,0 @@
-import React,{Component} from 'react';
-import { View ,Text } from 'react-native';
-
-
-class Mine extends Component {
-    constructor(props){
-        super(props)
-    }
-    render(){
-        return (
-            <View>
-                <Text>Mine</Text>
-            </View>
-        )
-    }
-}
-
-export default Mine;
-

+ 0 - 19
HUILIAOAPP/src/pages/Mine/Infomation/index.js

@@ -1,19 +0,0 @@
-import React,{Component} from 'react';
-import { View ,Text } from 'react-native';
-
-
-class Infomation extends Component {
-    constructor(props){
-        super(props)
-    }
-    render(){
-        return (
-            <View>
-                <Text>Infomation</Text>
-            </View>
-        )
-    }
-}
-
-export default Infomation;
-

+ 0 - 19
HUILIAOAPP/src/pages/Mine/Notice/index.js

@@ -1,19 +0,0 @@
-import React,{Component} from 'react';
-import { View ,Text } from 'react-native';
-
-
-class Notice extends Component {
-    constructor(props){
-        super(props)
-    }
-    render(){
-        return (
-            <View>
-                <Text>Notice</Text>
-            </View>
-        )
-    }
-}
-
-export default Notice;
-

+ 0 - 19
HUILIAOAPP/src/pages/Mine/QrCode/index.js

@@ -1,19 +0,0 @@
-import React,{Component} from 'react';
-import { View ,Text } from 'react-native';
-
-
-class QrCode extends Component {
-    constructor(props){
-        super(props)
-    }
-    render(){
-        return (
-            <View>
-                <Text>QrCode</Text>
-            </View>
-        )
-    }
-}
-
-export default QrCode;
-

+ 0 - 19
HUILIAOAPP/src/pages/Mine/ReName/index.js

@@ -1,19 +0,0 @@
-import React,{Component} from 'react';
-import { View ,Text } from 'react-native';
-
-
-class ReName extends Component {
-    constructor(props){
-        super(props)
-    }
-    render(){
-        return (
-            <View>
-                <Text>ReName</Text>
-            </View>
-        )
-    }
-}
-
-export default ReName;
-

+ 0 - 19
HUILIAOAPP/src/pages/Mine/RePassword/index.js

@@ -1,19 +0,0 @@
-import React,{Component} from 'react';
-import { View ,Text } from 'react-native';
-
-
-class RePassword extends Component {
-    constructor(props){
-        super(props)
-    }
-    render(){
-        return (
-            <View>
-                <Text>RePassword</Text>
-            </View>
-        )
-    }
-}
-
-export default RePassword;
-

+ 0 - 19
HUILIAOAPP/src/pages/Mine/Setting/index.js

@@ -1,19 +0,0 @@
-import React,{Component} from 'react';
-import { View ,Text } from 'react-native';
-
-
-class Setting extends Component {
-    constructor(props){
-        super(props)
-    }
-    render(){
-        return (
-            <View>
-                <Text>Setting</Text>
-            </View>
-        )
-    }
-}
-
-export default Setting;
-

+ 0 - 19
HUILIAOAPP/src/pages/Mine/index.js

@@ -1,19 +0,0 @@
-import React,{Component} from 'react';
-import { View ,Text } from 'react-native';
-
-
-class Mine extends Component {
-    constructor(props){
-        super(props)
-    }
-    render(){
-        return (
-            <View>
-                <Text>Mine</Text>
-            </View>
-        )
-    }
-}
-
-export default Mine;
-

+ 0 - 59
HUILIAOAPP/src/reducers/index.js

@@ -1,59 +0,0 @@
-import { combineReducers } from 'redux';
-import { NavigationActions } from 'react-navigation';
-
-import { RootNavigator } from '../navigators/AppNavigator';
-
-// Start with two routes: The Main screen, with the Login screen on top.
-const firstAction = RootNavigator.router.getActionForPathAndParams('Main');
-const tempNavState = RootNavigator.router.getStateForAction(firstAction);
-const secondAction = RootNavigator.router.getActionForPathAndParams('Login');
-
-console
-const initialNavState = RootNavigator.router.getStateForAction(
-  secondAction,
-  tempNavState
-);
-
-function nav(state = initialNavState, action) {
-  let nextState;
-  switch (action.type) {
-    case 'Login':
-      nextState = RootNavigator.router.getStateForAction(
-        NavigationActions.back(),
-        state
-      );
-      break;
-    case 'Logout':
-      nextState = RootNavigator.router.getStateForAction(
-        NavigationActions.navigate({ routeName: 'Login' }),
-        state
-      );
-      break;
-    default:
-      nextState = RootNavigator.router.getStateForAction(action, state);
-      break;
-  }
-
-  // Simply return the original `state` if `nextState` is null or undefined.
-  return nextState || state;
-}
-
-const initialAuthState = { isLoggedIn: false };
-
-function auth(state = initialAuthState, action) {
-  switch (action.type) {
-    case 'Login':
-      return { ...state, isLoggedIn: true };
-    case 'Logout':
-      return { ...state, isLoggedIn: false };
-    default:
-      return state;
-  }
-}
-
-const AppReducer = combineReducers({
-  nav,
-  auth,
-});
-
-export default AppReducer;

File diff suppressed because it is too large
+ 0 - 7989
HUILIAOAPP/yarn.lock


HUILIAOAPP/.babelrc → demo/.babelrc


HUILIAOAPP/.buckconfig → demo/.buckconfig


HUILIAOAPP/.flowconfig → demo/.flowconfig


HUILIAOAPP/.gitattributes → demo/.gitattributes


HUILIAOAPP/.gitignore → demo/.gitignore


HUILIAOAPP/.watchmanconfig → demo/.watchmanconfig


+ 49 - 0
demo/App.js

@@ -0,0 +1,49 @@
+/**
+ * Sample React Native App
+ * https://github.com/facebook/react-native
+ *
+ * @format
+ * @flow
+ */
+
+import React, {Component} from 'react';
+import {Platform, StyleSheet, Text, View} from 'react-native';
+
+const instructions = Platform.select({
+  ios: 'Press Cmd+R to reload,\n' + 'Cmd+D or shake for dev menu',
+  android:
+    'Double tap R on your keyboard to reload,\n' +
+    'Shake or press menu button for dev menu',
+});
+
+type Props = {};
+export default class App extends Component<Props> {
+  render() {
+    return (
+      <View style={styles.container}>
+        <Text style={styles.welcome}>Welcome to React Native!</Text>
+        <Text style={styles.instructions}>To get started, edit App.js</Text>
+        <Text style={styles.instructions}>{instructions}</Text>
+      </View>
+    );
+  }
+}
+
+const styles = StyleSheet.create({
+  container: {
+    flex: 1,
+    justifyContent: 'center',
+    alignItems: 'center',
+    backgroundColor: '#F5FCFF',
+  },
+  welcome: {
+    fontSize: 20,
+    textAlign: 'center',
+    margin: 10,
+  },
+  instructions: {
+    textAlign: 'center',
+    color: '#333333',
+    marginBottom: 5,
+  },
+});

+ 65 - 0
demo/android/app/BUCK

@@ -0,0 +1,65 @@
+# 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
+#
+
+lib_deps = []
+
+for jarfile in glob(['libs/*.jar']):
+  name = 'jars__' + jarfile[jarfile.rindex('/') + 1: jarfile.rindex('.jar')]
+  lib_deps.append(':' + name)
+  prebuilt_jar(
+    name = name,
+    binary_jar = jarfile,
+  )
+
+for aarfile in glob(['libs/*.aar']):
+  name = 'aars__' + aarfile[aarfile.rindex('/') + 1: aarfile.rindex('.aar')]
+  lib_deps.append(':' + name)
+  android_prebuilt_aar(
+    name = name,
+    aar = aarfile,
+  )
+
+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.demo",
+)
+
+android_resource(
+    name = "res",
+    package = "com.demo",
+    res = "src/main/res",
+)
+
+android_binary(
+    name = "app",
+    keystore = "//android/keystores:debug",
+    manifest = "src/main/AndroidManifest.xml",
+    package_type = "debug",
+    deps = [
+        ":app-code",
+    ],
+)

+ 150 - 0
demo/android/app/build.gradle

@@ -0,0 +1,150 @@
+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
+    buildToolsVersion rootProject.ext.buildToolsVersion
+
+    defaultConfig {
+        applicationId "com.demo"
+        minSdkVersion rootProject.ext.minSdkVersion
+        targetSdkVersion rootProject.ext.targetSdkVersion
+        versionCode 1
+        versionName "1.0"
+        ndk {
+            abiFilters "armeabi-v7a", "x86"
+        }
+    }
+    splits {
+        abi {
+            reset()
+            enable enableSeparateBuildPerCPUArchitecture
+            universalApk false  // If true, also generate a universal APK
+            include "armeabi-v7a", "x86"
+        }
+    }
+    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]
+            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 {
+    compile fileTree(dir: "libs", include: ["*.jar"])
+    compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
+    compile "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'
+}

HUILIAOAPP/android/app/proguard-rules.pro → demo/android/app/proguard-rules.pro


+ 29 - 0
demo/android/app/src/main/AndroidManifest.xml

@@ -0,0 +1,29 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.demo">
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
+    <uses-permission android:name="android.permission.CAMERA" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+
+    <application
+      android:name=".MainApplication"
+      android:label="@string/app_name"
+      android:icon="@mipmap/ic_launcher"
+      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>

+ 15 - 0
demo/android/app/src/main/java/com/demo/MainActivity.java

@@ -0,0 +1,15 @@
+package com.demo;
+
+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 "demo";
+    }
+}

+ 45 - 0
demo/android/app/src/main/java/com/demo/MainApplication.java

@@ -0,0 +1,45 @@
+package com.demo;
+
+import android.app.Application;
+
+import com.facebook.react.ReactApplication;
+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()
+      );
+    }
+
+    @Override
+    protected String getJSMainModuleName() {
+      return "index";
+    }
+  };
+
+  @Override
+  public ReactNativeHost getReactNativeHost() {
+    return mReactNativeHost;
+  }
+
+  @Override
+  public void onCreate() {
+    super.onCreate();
+    SoLoader.init(this, /* native exopackage */ false);
+  }
+}

HUILIAOAPP/android/app/src/main/res/mipmap-hdpi/ic_launcher.png → demo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png


HUILIAOAPP/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png → demo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png


HUILIAOAPP/android/app/src/main/res/mipmap-mdpi/ic_launcher.png → demo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png


HUILIAOAPP/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png → demo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png


HUILIAOAPP/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png → demo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png


HUILIAOAPP/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png → demo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png


HUILIAOAPP/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png → demo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


HUILIAOAPP/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png → demo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png


HUILIAOAPP/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png → demo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


HUILIAOAPP/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png → demo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png


+ 3 - 0
demo/android/app/src/main/res/values/strings.xml

@@ -0,0 +1,3 @@
+<resources>
+    <string name="app_name">demo</string>
+</resources>

HUILIAOAPP/android/app/src/main/res/values/styles.xml → demo/android/app/src/main/res/values/styles.xml


+ 0 - 0
HUILIAOAPP/android/build.gradle


Some files were not shown because too many files changed in this diff