From ced272d906d458c84961de5dd9fa1b8e25516155 Mon Sep 17 00:00:00 2001 From: funorpain Date: Tue, 9 Aug 2016 07:48:17 -0700 Subject: [PATCH] Android: TicTacToe Example Project Summary: **Motivation** Android project for TicTacToe example is missing. **Test plan (required)** Open Android Studio and run TicTacToe-android-app. It builds and runs as expected. Closes https://github.com/facebook/react-native/pull/8918 Differential Revision: D3684375 Pulled By: foghina fbshipit-source-id: cd4112467179d3d334cab198d817ed8b5b32599b --- Examples/TicTacToe/android/app/BUCK | 31 ++++++++++ Examples/TicTacToe/android/app/build.gradle | 31 ++++++++++ .../TicTacToe/android/app/gradle.properties | 1 + .../TicTacToe/android/app/proguard-rules.pro | 17 +++++ .../android/app/src/main/AndroidManifest.xml | 30 +++++++++ .../react/tictactoe/TicTacToeActivity.java | 23 +++++++ .../react/tictactoe/TicTacToeApplication.java | 58 ++++++++++++++++++ .../src/main/res/drawable/launcher_icon.png | Bin 0 -> 9578 bytes .../app/src/main/res/layout/activity_main.xml | 12 ++++ .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/styles.xml | 8 +++ settings.gradle | 2 +- 12 files changed, 215 insertions(+), 1 deletion(-) create mode 100644 Examples/TicTacToe/android/app/BUCK create mode 100644 Examples/TicTacToe/android/app/build.gradle create mode 100644 Examples/TicTacToe/android/app/gradle.properties create mode 100644 Examples/TicTacToe/android/app/proguard-rules.pro create mode 100644 Examples/TicTacToe/android/app/src/main/AndroidManifest.xml create mode 100644 Examples/TicTacToe/android/app/src/main/java/com/facebook/react/tictactoe/TicTacToeActivity.java create mode 100644 Examples/TicTacToe/android/app/src/main/java/com/facebook/react/tictactoe/TicTacToeApplication.java create mode 100644 Examples/TicTacToe/android/app/src/main/res/drawable/launcher_icon.png create mode 100644 Examples/TicTacToe/android/app/src/main/res/layout/activity_main.xml create mode 100644 Examples/TicTacToe/android/app/src/main/res/values/strings.xml create mode 100644 Examples/TicTacToe/android/app/src/main/res/values/styles.xml diff --git a/Examples/TicTacToe/android/app/BUCK b/Examples/TicTacToe/android/app/BUCK new file mode 100644 index 00000000000..5c7c9b83345 --- /dev/null +++ b/Examples/TicTacToe/android/app/BUCK @@ -0,0 +1,31 @@ +include_defs('//ReactAndroid/DEFS') + +android_binary( + name = 'app', + manifest = 'src/main/AndroidManifest.xml', + keystore = '//keystores:debug', + deps = [ + ':tictactoe-lib', + ], +) + +android_library( + name = 'tictactoe-lib', + srcs = glob(['src/main/java/**/*.java']), + deps = [ + ':res', + react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/modules/core:core'), + react_native_target('java/com/facebook/react/shell:shell'), + react_native_target('java/com/facebook/react:react'), + react_native_target('jni/prebuilt:android-jsc'), + # .so files are prebuilt by Gradle with `./gradlew :ReactAndroid:packageReactNdkLibsForBuck` + react_native_target('jni/prebuilt:reactnative-libs'), + ], +) + +android_resource( + name = 'res', + res = 'src/main/res', + package = 'com.facebook.react.tictactoe', +) diff --git a/Examples/TicTacToe/android/app/build.gradle b/Examples/TicTacToe/android/app/build.gradle new file mode 100644 index 00000000000..94509eca564 --- /dev/null +++ b/Examples/TicTacToe/android/app/build.gradle @@ -0,0 +1,31 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 23 + buildToolsVersion "23.0.1" + + defaultConfig { + applicationId "com.facebook.react.tictactoe" + minSdkVersion 16 + targetSdkVersion 22 + versionCode 1 + versionName "1.0" + ndk { + abiFilters "armeabi-v7a", "x86" + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + compile 'com.android.support:appcompat-v7:23.0.1' + + // Build React Native from source + compile project(':ReactAndroid') +} diff --git a/Examples/TicTacToe/android/app/gradle.properties b/Examples/TicTacToe/android/app/gradle.properties new file mode 100644 index 00000000000..dfbe478748b --- /dev/null +++ b/Examples/TicTacToe/android/app/gradle.properties @@ -0,0 +1 @@ +android.useDeprecatedNdk=true diff --git a/Examples/TicTacToe/android/app/proguard-rules.pro b/Examples/TicTacToe/android/app/proguard-rules.pro new file mode 100644 index 00000000000..a92fa177ee4 --- /dev/null +++ b/Examples/TicTacToe/android/app/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/Examples/TicTacToe/android/app/src/main/AndroidManifest.xml b/Examples/TicTacToe/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000000..a6dbe21557a --- /dev/null +++ b/Examples/TicTacToe/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Examples/TicTacToe/android/app/src/main/java/com/facebook/react/tictactoe/TicTacToeActivity.java b/Examples/TicTacToe/android/app/src/main/java/com/facebook/react/tictactoe/TicTacToeActivity.java new file mode 100644 index 00000000000..3589ea4e5a6 --- /dev/null +++ b/Examples/TicTacToe/android/app/src/main/java/com/facebook/react/tictactoe/TicTacToeActivity.java @@ -0,0 +1,23 @@ +/** + * The examples provided by Facebook are for non-commercial testing and + * evaluation purposes only. + * + * Facebook reserves all rights not expressly granted. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL + * FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package com.facebook.react.tictactoe; + +import com.facebook.react.ReactActivity; + +public class TicTacToeActivity extends ReactActivity { + @Override + protected String getMainComponentName() { + return "TicTacToeApp"; + } +} diff --git a/Examples/TicTacToe/android/app/src/main/java/com/facebook/react/tictactoe/TicTacToeApplication.java b/Examples/TicTacToe/android/app/src/main/java/com/facebook/react/tictactoe/TicTacToeApplication.java new file mode 100644 index 00000000000..bf56be8f4df --- /dev/null +++ b/Examples/TicTacToe/android/app/src/main/java/com/facebook/react/tictactoe/TicTacToeApplication.java @@ -0,0 +1,58 @@ +/** + * The examples provided by Facebook are for non-commercial testing and + * evaluation purposes only. + * + * Facebook reserves all rights not expressly granted. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL + * FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +package com.facebook.react.tictactoe; + +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 java.util.Arrays; +import java.util.List; + +import javax.annotation.Nullable; + +public class TicTacToeApplication extends Application implements ReactApplication { + private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { + @Override + public String getJSMainModuleName() { + return "Examples/TicTacToe/TicTacToeApp"; + } + + @Override + public @Nullable String getBundleAssetName() { + return "TicTacToeApp.bundle"; + } + + @Override + protected boolean getUseDeveloperSupport() { + return true; + } + + @Override + protected List getPackages() { + return Arrays.asList( + new MainReactPackage() + ); + } + }; + + @Override + public ReactNativeHost getReactNativeHost() { + return mReactNativeHost; + } +} diff --git a/Examples/TicTacToe/android/app/src/main/res/drawable/launcher_icon.png b/Examples/TicTacToe/android/app/src/main/res/drawable/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a4aa3bd6d9acdc977bc945565d7722d84e0797c8 GIT binary patch literal 9578 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

72ATT)w1$($I%NoWL(@b}2Wz(}4&;la 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 EKl*B@YybcN literal 0 HcmV?d00001 diff --git a/Examples/TicTacToe/android/app/src/main/res/layout/activity_main.xml b/Examples/TicTacToe/android/app/src/main/res/layout/activity_main.xml new file mode 100644 index 00000000000..7d338d621d0 --- /dev/null +++ b/Examples/TicTacToe/android/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,12 @@ + + + + + diff --git a/Examples/TicTacToe/android/app/src/main/res/values/strings.xml b/Examples/TicTacToe/android/app/src/main/res/values/strings.xml new file mode 100644 index 00000000000..26cdf63c684 --- /dev/null +++ b/Examples/TicTacToe/android/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + TicTacToeApp + diff --git a/Examples/TicTacToe/android/app/src/main/res/values/styles.xml b/Examples/TicTacToe/android/app/src/main/res/values/styles.xml new file mode 100644 index 00000000000..319eb0ca100 --- /dev/null +++ b/Examples/TicTacToe/android/app/src/main/res/values/styles.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/settings.gradle b/settings.gradle index c952f9077a4..ccc7b3b962e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,3 +1,3 @@ // Copyright 2004-present Facebook. All Rights Reserved. -include ':ReactAndroid', ':Examples:UIExplorer:android:app', ':Examples:Movies:android:app' +include ':ReactAndroid', ':Examples:UIExplorer:android:app', ':Examples:Movies:android:app', ':Examples:TicTacToe:android:app'