diff --git a/.DS_Store b/.DS_Store
index 6cf0e40..7b0b689 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/Nexacro14/.DS_Store b/Nexacro14/.DS_Store
index 53f1e4a..4226b69 100644
Binary files a/Nexacro14/.DS_Store and b/Nexacro14/.DS_Store differ
diff --git a/Nexacro14/iOS/.DS_Store b/Nexacro14/iOS/.DS_Store
index 0606889..b3f926e 100644
Binary files a/Nexacro14/iOS/.DS_Store and b/Nexacro14/iOS/.DS_Store differ
diff --git a/Nexacro14/iOS/nexacro14_iOS/.DS_Store b/Nexacro14/iOS/nexacro14_iOS/.DS_Store
index 847c8ef..6f49dbd 100644
Binary files a/Nexacro14/iOS/nexacro14_iOS/.DS_Store and b/Nexacro14/iOS/nexacro14_iOS/.DS_Store differ
diff --git a/Nexacro14/iOS/nexacro14_iOS/nexacro14App/.DS_Store b/Nexacro14/iOS/nexacro14_iOS/nexacro14App/.DS_Store
new file mode 100644
index 0000000..313e6b8
Binary files /dev/null and b/Nexacro14/iOS/nexacro14_iOS/nexacro14App/.DS_Store differ
diff --git a/Nexacro17/.DS_Store b/Nexacro17/.DS_Store
new file mode 100644
index 0000000..c418331
Binary files /dev/null and b/Nexacro17/.DS_Store differ
diff --git a/Nexacro17/Android/.DS_Store b/Nexacro17/Android/.DS_Store
new file mode 100644
index 0000000..8f6d39b
Binary files /dev/null and b/Nexacro17/Android/.DS_Store differ
diff --git a/Nexacro17/Android/AndroidX/.DS_Store b/Nexacro17/Android/AndroidX/.DS_Store
new file mode 100644
index 0000000..a8e1281
Binary files /dev/null and b/Nexacro17/Android/AndroidX/.DS_Store differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/.idea/compiler.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/.idea/compiler.xml
new file mode 100644
index 0000000..8144c3c
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/.idea/compiler.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/.idea/copyright/profiles_settings.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/.idea/copyright/profiles_settings.xml
new file mode 100644
index 0000000..e7bedf3
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/.idea/gradle.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/.idea/gradle.xml
new file mode 100644
index 0000000..ddd634d
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/.idea/gradle.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/.idea/misc.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/.idea/misc.xml
new file mode 100644
index 0000000..ea25025
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/.idea/misc.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/.idea/modules.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/.idea/modules.xml
new file mode 100644
index 0000000..57a9122
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/.idea/modules.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/build.gradle b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/build.gradle
new file mode 100644
index 0000000..5953fa4
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/build.gradle
@@ -0,0 +1,53 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 30
+ buildToolsVersion "28.0.3"
+ defaultConfig {
+ applicationId "tobesoft.androidhybrid17"
+ multiDexEnabled true
+ minSdkVersion 19
+ targetSdkVersion 30
+ versionCode 1
+ versionName "1.0"
+// testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ }
+ // release 빌드를 위해서 인증서를 추가함.
+ signingConfigs {
+ release {
+ storeFile file("nexacro-example.jks")
+ storePassword "tobe0701"
+ keyAlias "nexacro-example"
+ keyPassword "tobe0701"
+ }
+ }
+ buildTypes {
+ release {
+ signingConfig signingConfigs.release
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+}
+
+dependencies {
+ // compile fileTree(include: ['*.jar'], dir: 'libs')
+ // androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
+ // exclude group: 'com.android.support', module: 'support-annotations'
+ // })
+ implementation 'androidx.appcompat:appcompat:1.0.0'
+ implementation 'androidx.exifinterface:exifinterface:1.3.2'
+ implementation 'com.google.android.gms:play-services-maps:16.1.0'
+ implementation 'com.google.android.gms:play-services-location:16.0.0'
+ implementation 'com.google.firebase:firebase-core:16.0.6'
+ implementation 'com.google.firebase:firebase-messaging:17.3.4'
+ compile 'androidx.multidex:multidex:2.0.0'
+ implementation 'com.google.android.material:material:1.0.0'
+ compile files('libs/nexacro17.androidx.jar')
+ compile project(':gvr-libs-videowidget')
+ compile project(':gvr-libs-commonwidget')
+ compile project(':gvr-libs-common')
+ // testCompile 'junit:junit:4.12'
+}
+
+apply plugin: 'com.google.gms.google-services'
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/build.gradle.bak b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/build.gradle.bak
new file mode 100644
index 0000000..e34ba40
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/build.gradle.bak
@@ -0,0 +1,35 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 23
+ buildToolsVersion "23.0.3"
+ defaultConfig {
+ applicationId "tobesoft.androidruntime16"
+ minSdkVersion 19
+ targetSdkVersion 23
+ versionCode 1
+ versionName "1.0"
+// testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+}
+
+dependencies {
+// compile fileTree(include: ['*.jar'], dir: 'libs')
+// androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
+// exclude group: 'com.android.support', module: 'support-annotations'
+// })
+ compile 'com.android.support:appcompat-v7:23.4.0'
+ compile 'com.android.support:support-v4:20.0.0'
+ compile 'com.google.android.gms:play-services:+'
+ compile files('libs/nexacro16.jar')
+ compile project(':gvr-libs-videowidget')
+ compile project(':gvr-libs-commonwidget')
+ compile project(':gvr-libs-common')
+// testCompile 'junit:junit:4.12'
+}
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/google-services.json b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/google-services.json
new file mode 100644
index 0000000..99850eb
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/google-services.json
@@ -0,0 +1,127 @@
+{
+ "project_info": {
+ "project_number": "995072755403",
+ "firebase_url": "https://summer-nexus-581.firebaseio.com",
+ "project_id": "summer-nexus-581",
+ "storage_bucket": "summer-nexus-581.appspot.com"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:995072755403:android:0488510b9eaa9ad9",
+ "android_client_info": {
+ "package_name": "com.nexacro.nexacroexample14"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "995072755403-ksam7299dh20s90batq23eis6gpv1749.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyAaOYYoqFY9-AcA_P5jUtK_-2EmeoLvy7g"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "995072755403-ksam7299dh20s90batq23eis6gpv1749.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ]
+ }
+ }
+ },
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:995072755403:android:876a1279862314de",
+ "android_client_info": {
+ "package_name": "com.nexacro.nexacroexample17"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "995072755403-ksam7299dh20s90batq23eis6gpv1749.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyAaOYYoqFY9-AcA_P5jUtK_-2EmeoLvy7g"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "995072755403-ksam7299dh20s90batq23eis6gpv1749.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ]
+ }
+ }
+ },
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:995072755403:android:28b014c688afb816",
+ "android_client_info": {
+ "package_name": "nexacro.launcher"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "995072755403-ksam7299dh20s90batq23eis6gpv1749.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyAaOYYoqFY9-AcA_P5jUtK_-2EmeoLvy7g"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "995072755403-ksam7299dh20s90batq23eis6gpv1749.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ]
+ }
+ }
+ },
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:995072755403:android:cf2f72e91876dd5b",
+ "android_client_info": {
+ "package_name": "tobesoft.androidhybrid17"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "995072755403-ksam7299dh20s90batq23eis6gpv1749.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyAaOYYoqFY9-AcA_P5jUtK_-2EmeoLvy7g"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "995072755403-ksam7299dh20s90batq23eis6gpv1749.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/nexacro-example.jks b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/nexacro-example.jks
new file mode 100644
index 0000000..b33b985
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/nexacro-example.jks differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/proguard-rules.pro b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/proguard-rules.pro
new file mode 100644
index 0000000..7a58a49
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/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 C:\Users\yoonjin\AppData\Local\Android\sdk/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/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/AndroidManifest.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..084cfb7
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/AndroidManifest.xml
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/assets/icu_data/icudtl.dat b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/assets/icu_data/icudtl.dat
new file mode 100644
index 0000000..a1ed922
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/assets/icu_data/icudtl.dat differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/java/tobesoft/androidhybrid/MainActivity.java b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/java/tobesoft/androidhybrid/MainActivity.java
new file mode 100644
index 0000000..e741b34
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/java/tobesoft/androidhybrid/MainActivity.java
@@ -0,0 +1,38 @@
+package tobesoft.androidhybrid;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+
+import com.nexacro.NexacroUpdatorActivity;
+
+public class MainActivity extends NexacroUpdatorActivity {
+
+ public MainActivity() {
+ super();
+
+ //common
+
+ setProjectURL("http://your project url");
+ setBootstrapURL("http://your bootstrap url/start_android.json");
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ Intent intent = getIntent();
+ if(intent != null) {
+ String bootstrapURL = intent.getStringExtra("bootstrapURL");
+ String projectUrl = intent.getStringExtra("projectUrl");
+ if(bootstrapURL != null) {
+ setBootstrapURL(bootstrapURL);
+ setProjectURL(projectUrl);
+ }
+ }
+
+ super.onCreate(savedInstanceState);
+ }
+ @Override
+ public void setContentView(View view) {
+ super.setContentView(view);
+ }
+}
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/java/tobesoft/androidhybrid/MainActivity2.java b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/java/tobesoft/androidhybrid/MainActivity2.java
new file mode 100644
index 0000000..8ca67ed
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/java/tobesoft/androidhybrid/MainActivity2.java
@@ -0,0 +1,28 @@
+package tobesoft.androidhybrid;
+
+import android.os.Bundle;
+import android.view.View;
+
+import com.nexacro.NexacroActivity;
+import com.nexacro.NexacroResourceManager;
+
+/**
+ * Created by yoonjin on 2016-11-23.
+ */
+
+public class MainActivity2 extends NexacroActivity {
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+
+ /* for extends NexacroActivity (for soZom module)*/
+ NexacroResourceManager.createInstance(this);
+ NexacroResourceManager.getInstance().setBootstrapURL("http://your bootstrap url/start_android.json");
+ NexacroResourceManager.getInstance().setProjectURL("http://your project url/");
+ super.onCreate(savedInstanceState);
+ }
+
+ @Override
+ public void setContentView(View view) {
+ super.setContentView(view);
+ }
+}
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/java/tobesoft/androidhybrid/UserNotify.java b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/java/tobesoft/androidhybrid/UserNotify.java
new file mode 100644
index 0000000..855fcf3
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/java/tobesoft/androidhybrid/UserNotify.java
@@ -0,0 +1,32 @@
+package tobesoft.androidhybrid;
+
+import android.util.Log;
+
+import com.nexacro.NexacroActivity;
+import com.nexacro.event.NexacroEventHandler;
+
+public class UserNotify implements NexacroEventHandler {
+
+ public UserNotify() {
+ Log.d("UserNotify", "");
+
+ if(NexacroActivity.getInstance() != null)
+ NexacroActivity.getInstance().setNexacroEventListener(this);
+
+// NexacroActivity.getInstance().setNexacroEventListener(new NexacroEventHandler() {
+// @Override
+// public void onUserNotify(int nNotifyID, String strMessage) {
+// Log.d("UserNotify", "onUserNotify nNotifyID : " + nNotifyID + " strMessage : " + strMessage);
+//
+// // TODO :
+// }
+// });
+ }
+
+ @Override
+ public void onUserNotify(int nNotifyID, String strMessage) {
+ Log.d("UserNotify", "onUserNotify nNotifyID : " + nNotifyID + " strMessage : " + strMessage);
+
+ // TODO :
+ }
+}
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-hdpi/ic_launcher.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..3675d42
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-hdpi/ic_launcher.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-hdpi/splashimage_phone_landscape.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-hdpi/splashimage_phone_landscape.png
new file mode 100644
index 0000000..9325678
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-hdpi/splashimage_phone_landscape.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-hdpi/splashimage_phone_portrait.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-hdpi/splashimage_phone_portrait.png
new file mode 100644
index 0000000..cb71b13
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-hdpi/splashimage_phone_portrait.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-hdpi/text_select_handle_left.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-hdpi/text_select_handle_left.png
new file mode 100644
index 0000000..d2ed06d
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-hdpi/text_select_handle_left.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-hdpi/text_select_handle_middle.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-hdpi/text_select_handle_middle.png
new file mode 100644
index 0000000..be2dc68
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-hdpi/text_select_handle_middle.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-hdpi/text_select_handle_right.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-hdpi/text_select_handle_right.png
new file mode 100644
index 0000000..e419249
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-hdpi/text_select_handle_right.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-mdpi/ic_launcher.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..f73aacd
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-mdpi/ic_launcher.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-mdpi/splashimage_phone_landscape.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-mdpi/splashimage_phone_landscape.png
new file mode 100644
index 0000000..9325678
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-mdpi/splashimage_phone_landscape.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-mdpi/splashimage_phone_portrait.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-mdpi/splashimage_phone_portrait.png
new file mode 100644
index 0000000..cb71b13
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-mdpi/splashimage_phone_portrait.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xhdpi/ic_launcher.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..c51d0b0
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xhdpi/ic_launcher.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xhdpi/splashimage_phone_landscape.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xhdpi/splashimage_phone_landscape.png
new file mode 100644
index 0000000..9325678
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xhdpi/splashimage_phone_landscape.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xhdpi/splashimage_phone_portrait.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xhdpi/splashimage_phone_portrait.png
new file mode 100644
index 0000000..cb71b13
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xhdpi/splashimage_phone_portrait.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xhdpi/text_select_handle_left.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xhdpi/text_select_handle_left.png
new file mode 100644
index 0000000..98d10c9
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xhdpi/text_select_handle_left.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xhdpi/text_select_handle_middle.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xhdpi/text_select_handle_middle.png
new file mode 100644
index 0000000..058b30b
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xhdpi/text_select_handle_middle.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xhdpi/text_select_handle_right.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xhdpi/text_select_handle_right.png
new file mode 100644
index 0000000..b3a0c9f
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xhdpi/text_select_handle_right.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxhdpi/ic_launcher.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..5274a67
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxhdpi/ic_launcher.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxhdpi/splashimage_phone_landscape.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxhdpi/splashimage_phone_landscape.png
new file mode 100644
index 0000000..9325678
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxhdpi/splashimage_phone_landscape.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxhdpi/splashimage_phone_portrait.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxhdpi/splashimage_phone_portrait.png
new file mode 100644
index 0000000..cb71b13
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxhdpi/splashimage_phone_portrait.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxhdpi/text_select_handle_left.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxhdpi/text_select_handle_left.png
new file mode 100644
index 0000000..8497601
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxhdpi/text_select_handle_left.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxhdpi/text_select_handle_middle.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxhdpi/text_select_handle_middle.png
new file mode 100644
index 0000000..7b74f66
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxhdpi/text_select_handle_middle.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxhdpi/text_select_handle_right.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxhdpi/text_select_handle_right.png
new file mode 100644
index 0000000..25e0780
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxhdpi/text_select_handle_right.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxxhdpi/ic_launcher.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..5e6adcb
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxxhdpi/ic_launcher.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxxhdpi/splashimage_phone_landscape.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxxhdpi/splashimage_phone_landscape.png
new file mode 100644
index 0000000..9325678
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxxhdpi/splashimage_phone_landscape.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxxhdpi/splashimage_phone_portrait.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxxhdpi/splashimage_phone_portrait.png
new file mode 100644
index 0000000..cb71b13
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable-xxxhdpi/splashimage_phone_portrait.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable/clipboard_border.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable/clipboard_border.xml
new file mode 100644
index 0000000..0b20fc7
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable/clipboard_border.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable/clipboard_separator.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable/clipboard_separator.xml
new file mode 100644
index 0000000..978c4a4
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable/clipboard_separator.xml
@@ -0,0 +1,42 @@
+
+
+
+ -
+
+
+
-
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+ -
+
+
+
-
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable/ic_launcher.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable/ic_launcher.png
new file mode 100644
index 0000000..3675d42
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable/ic_launcher.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable/splashimage_phone_landscape.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable/splashimage_phone_landscape.png
new file mode 100644
index 0000000..9325678
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable/splashimage_phone_landscape.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable/splashimage_phone_portrait.png b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable/splashimage_phone_portrait.png
new file mode 100644
index 0000000..cb71b13
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/drawable/splashimage_phone_portrait.png differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/layout/clipboard_item.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/layout/clipboard_item.xml
new file mode 100644
index 0000000..d7d4f29
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/layout/clipboard_item.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/layout/clipboard_view.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/layout/clipboard_view.xml
new file mode 100644
index 0000000..5767794
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/layout/clipboard_view.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/layout/nexacro_app.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/layout/nexacro_app.xml
new file mode 100644
index 0000000..e65e4a4
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/layout/nexacro_app.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/layout/nexacromedia_controller.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/layout/nexacromedia_controller.xml
new file mode 100644
index 0000000..33856c0
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/layout/nexacromedia_controller.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values-ja/strings.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values-ja/strings.xml
new file mode 100644
index 0000000..f67d86b
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values-ja/strings.xml
@@ -0,0 +1,51 @@
+
+
+ 17 LaunchX
+
+
+ コピー
+ 貼り付け
+ カット
+ 全て選択
+ 単語選択
+
+
+ 確認
+ キャンセル
+ 移動
+ 上位
+ フィルター
+ ホーム
+ ファイル名がありません。
+ 同一のファイル名があります。上書きしますか?
+
+
+ アップデートがあります。\r\n完了した後に, 再起動してください。
+ 初期ロードに失敗しました。\r\n再起動してください。
+ アップデートが失敗しました。\r\n再起動してください。
+ 起動ファイルがありません。\r\n再起動してください。
+ アップデート中です。
+ アップデート確認中です。
+ アップデート設置中です。
+ アップデートダウン中です。
+ アップデートが完了しました。
+ ローディング 。。。\r\nお待ちください。
+
+
+ 初期化
+ ライセンスチェック
+ フレームワークモジュールのロード
+ 拡張モジュールロード
+ フレームワークスクリプトの実行
+ 応用プログラムロード
+ ADLファイルロード失敗. クリックすると閉じます
+
+ Initialize Nexacro engine
+ Load the application (loading the application)
+ Load the application (preparing the framework)
+ Load the application (executing the framework)
+ Load the application (bootstrapping)
+
+
+ SSL証明書が有効ではありません。続きますか。
+
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values-ko/strings.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values-ko/strings.xml
new file mode 100644
index 0000000..0766580
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values-ko/strings.xml
@@ -0,0 +1,73 @@
+
+
+ 17 LaunchX
+
+
+ 복사하기
+ 붙여넣기
+ 잘라내기
+ 전체선택
+ 단어선택
+
+
+ 확인
+ 취소
+ 이동
+ 상위
+ 필터
+ 홈
+ 파일명이 없습니다.
+ 동일한 파일이 이미 존재합니다. 바꾸시겠습니까?
+
+
+ 업데이트가 있습니다. \r\n완료 후 재시작 해 주세요.
+ 초기 로딩이 실패하였습니다. \r\n재시작 해 주세요.
+ 업데이트가 실패하였습니다. \r\n재시작 해 주세요.
+ 구동에 필요한 파일이 없습니다. \r\n재시작 해 주세요.
+ 업데이트 중입니다.
+ 업데이트 확인 중입니다.
+ 업데이트 설치 중입니다.
+ 업데이트 다운 중입니다.
+ 업데이트가 되었습니다.
+ 로딩중입니다.. \r\n잠시만 기다려주세요...
+
+
+ %1$d 중에 %2$d, %3$s
+ %1$d 중에 %2$d, 선택됨, %3$s
+ %1$s 이미지
+ %1$s 선택됨
+ 입력상자 현재 수정 중 입니다. %1s
+ %1$s 링크
+ %1$s
+ %1$s 삭제됨
+ 스페이스바
+
+
+ 선택 됨
+ 선택 안됨
+
+
+ 클릭
+
+
+ Start Initialize
+ Check License
+ Load Framework Module
+ Load Extend Module
+ Execute Framework Script
+ Load Application
+ Load Fail Application Initialize. Click And Close
+
+ 넥사크로 엔진을 초기화 합니다.
+ 어플리케이션을 로딩합니다.\n( 어플리케이션 로딩 )
+ 어플리케이션을 로딩합니다.\n( 프레임워크 준비중 )
+ 어플리케이션을 로딩합니다.\n( 프레임워크 실행 )
+ Load the application\n(bootstrapping)
+
+
+ 예
+ 아니오
+
+
+ SSL 인증서가 올바르지 않습니다. 계속 진행하시겠습니까?
+
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values-v11/colors.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values-v11/colors.xml
new file mode 100644
index 0000000..1e1fcf7
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values-v11/colors.xml
@@ -0,0 +1,5 @@
+
+
+
+ #000000
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values-v11/styles.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values-v11/styles.xml
new file mode 100644
index 0000000..d408cbc
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values-v11/styles.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values-v14/styles.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values-v14/styles.xml
new file mode 100644
index 0000000..1c089a7
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values-v14/styles.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values-v16/bool.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values-v16/bool.xml
new file mode 100644
index 0000000..2715f07
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values-v16/bool.xml
@@ -0,0 +1,4 @@
+
+
+ true
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values/bool.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values/bool.xml
new file mode 100644
index 0000000..cc2c4d6
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values/bool.xml
@@ -0,0 +1,4 @@
+
+
+ false
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values/colors.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..1e1fcf7
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values/colors.xml
@@ -0,0 +1,5 @@
+
+
+
+ #000000
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values/strings.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..f88896f
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values/strings.xml
@@ -0,0 +1,73 @@
+
+
+ 17 LaunchX
+
+
+ Copy
+ Paste
+ Cut
+ Select All
+ Select Word
+
+
+ OK
+ Cancel
+ Move
+ Upper
+ Filter
+ Home
+ No File Name.
+ There is a file of the save name. Do you want to replace?
+
+
+ It is need to update. \r\nAfter completing, Please restart.
+ First loading is fail. \r\nPlease restart.
+ Update is fail. \r\nPlease restart.
+ Start file is NOT exist. \r\nPlease restart.
+ Being updated.
+ Check for updates.
+ Install for updates.
+ Downloading for updates.
+ Update is Completed.
+ Loading... \r\nPlease Wait...
+
+
+ %1$d of %2$d %3$s
+ %1$d of %2$d selected %3$s
+ %1$s image
+ %1$s selected
+ editing. %1s
+ %1$s link
+ %1$s
+ %1$s deleted
+ spacebar
+
+
+ checked
+ unchecked
+
+
+ click
+
+
+ Start Initialize
+ Check License
+ Load Framework Module
+ Load Extend Module
+ Execute Framework Script
+ Load Application
+ Load Fail Application Initialize. Click And Close
+
+ Initialize Nexacro engine
+ Load the application (loading the application)
+ Load the application (preparing the framework)
+ Load the application (executing the framework)
+ Load the application (bootstrapping)
+
+
+ OK
+ Cancel
+
+
+ The SSL certificate is invalid. Continue?
+
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values/styles.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..4dba0d0
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/values/styles.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/xml/file_paths.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/xml/file_paths.xml
new file mode 100644
index 0000000..7deaeac
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/xml/file_paths.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/xml/nexacro_config.xml b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/xml/nexacro_config.xml
new file mode 100644
index 0000000..191d971
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/app/src/main/res/xml/nexacro_config.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/build.gradle b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/build.gradle
new file mode 100644
index 0000000..c3311c9
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/build.gradle
@@ -0,0 +1,27 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+ repositories {
+ google()
+ mavenCentral()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:4.2.1'
+
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ classpath 'com.google.gms:google-services:4.3.5'
+ }
+}
+
+allprojects {
+ repositories {
+ google()
+ mavenCentral()
+ }
+// buildDir= "C:/tmp/${rootProject.name}/${project.name}"
+}
+
+task clean(type: Delete) {
+ delete rootProject.buildDir
+}
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gradle.properties b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gradle.properties
new file mode 100644
index 0000000..9e6fce1
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gradle.properties
@@ -0,0 +1,19 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+android.enableJetifier=true
+android.useAndroidX=true
+org.gradle.jvmargs=-Xmx1536m
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gradle/wrapper/gradle-wrapper.jar b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..13372ae
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gradle/wrapper/gradle-wrapper.properties b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..758e20a
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Tue Feb 19 11:02:46 KST 2019
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gradlew b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gradlew
new file mode 100644
index 0000000..9d82f78
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gradlew
@@ -0,0 +1,160 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gradlew.bat b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gradlew.bat
new file mode 100644
index 0000000..8a0b282
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gvr-libs-common/build.gradle b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gvr-libs-common/build.gradle
new file mode 100644
index 0000000..f8a0185
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gvr-libs-common/build.gradle
@@ -0,0 +1,2 @@
+configurations.maybeCreate("default")
+artifacts.add("default", file('common.aar'))
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gvr-libs-common/common.aar b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gvr-libs-common/common.aar
new file mode 100644
index 0000000..7ee4dc0
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gvr-libs-common/common.aar differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gvr-libs-commonwidget/build.gradle b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gvr-libs-commonwidget/build.gradle
new file mode 100644
index 0000000..8ea5c20
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gvr-libs-commonwidget/build.gradle
@@ -0,0 +1,2 @@
+configurations.maybeCreate("default")
+artifacts.add("default", file('commonwidget.aar'))
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gvr-libs-commonwidget/commonwidget.aar b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gvr-libs-commonwidget/commonwidget.aar
new file mode 100644
index 0000000..03980d6
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gvr-libs-commonwidget/commonwidget.aar differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gvr-libs-videowidget/build.gradle b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gvr-libs-videowidget/build.gradle
new file mode 100644
index 0000000..602a162
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gvr-libs-videowidget/build.gradle
@@ -0,0 +1,2 @@
+configurations.maybeCreate("default")
+artifacts.add("default", file('videowidget.aar'))
\ No newline at end of file
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gvr-libs-videowidget/videowidget.aar b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gvr-libs-videowidget/videowidget.aar
new file mode 100644
index 0000000..459b78c
Binary files /dev/null and b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/gvr-libs-videowidget/videowidget.aar differ
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/settings.gradle b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/settings.gradle
new file mode 100644
index 0000000..349a3d5
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/settings.gradle
@@ -0,0 +1 @@
+include ':app', ':gvr-libs-videowidget', ':gvr-libs-common', ':gvr-libs-commonwidget', ':gvr-libs-base'
diff --git a/Nexacro17/Android/AndroidX/nexacro17_AndroidX/프로젝트 설명.txt b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/프로젝트 설명.txt
new file mode 100644
index 0000000..8d7ed16
--- /dev/null
+++ b/Nexacro17/Android/AndroidX/nexacro17_AndroidX/프로젝트 설명.txt
@@ -0,0 +1,11 @@
+# so 및 AndroidX용 jar 를 이용하여 nexacro17앱을 만들수 있는 프로젝트 입니다.
+
+nexacro17.androidx.jar
+ -> app\libs 폴더에 복사
+
+libnexacro17.so 는 아키텍쳐별로 아래 폴더에 복사
+ -> app\src\main\jniLibs\arm64-v8a
+ app\src\main\jniLibs\armeabi-v7a
+
+부트스트랩 시작주소는 아래 파일에서 지정
+ -> app\src\main\java\tobesoft\androidhybrid\MainActivity.java
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/.DS_Store b/Nexacro17/Android/Android_Legacy/.DS_Store
new file mode 100644
index 0000000..59584dc
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/.DS_Store differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/.idea/compiler.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/.idea/compiler.xml
new file mode 100644
index 0000000..8144c3c
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/.idea/compiler.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/.idea/copyright/profiles_settings.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/.idea/copyright/profiles_settings.xml
new file mode 100644
index 0000000..e7bedf3
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/.idea/gradle.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/.idea/gradle.xml
new file mode 100644
index 0000000..ddd634d
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/.idea/gradle.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/.idea/misc.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/.idea/misc.xml
new file mode 100644
index 0000000..ea25025
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/.idea/misc.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/.idea/modules.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/.idea/modules.xml
new file mode 100644
index 0000000..db5351f
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/.idea/modules.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/build.gradle b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/build.gradle
new file mode 100644
index 0000000..35c5f52
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/build.gradle
@@ -0,0 +1,53 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 30
+ buildToolsVersion "28.0.3"
+ defaultConfig {
+ applicationId "tobesoft.androidhybrid17"
+ multiDexEnabled true
+ minSdkVersion 19
+ targetSdkVersion 30
+ versionCode 1
+ versionName "1.0"
+// testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ }
+ // release 빌드를 위해서 인증서를 추가함.
+ signingConfigs {
+ release {
+ storeFile file("nexacro-example.jks")
+ storePassword "tobe0701"
+ keyAlias "nexacro-example"
+ keyPassword "tobe0701"
+ }
+ }
+ buildTypes {
+ release {
+ signingConfig signingConfigs.release
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+}
+
+dependencies {
+ // compile fileTree(include: ['*.jar'], dir: 'libs')
+ // androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
+ // exclude group: 'com.android.support', module: 'support-annotations'
+ // })
+ implementation 'com.android.support:appcompat-v7:26.1.0'
+ implementation 'com.android.support:exifinterface:28.0.0'
+ implementation 'com.google.android.gms:play-services-maps:16.1.0'
+ implementation 'com.google.android.gms:play-services-location:16.0.0'
+ implementation 'com.google.firebase:firebase-core:16.0.6'
+ implementation 'com.google.firebase:firebase-messaging:17.3.4'
+ compile 'com.android.support:multidex:1.0.1'
+ implementation 'com.android.support:design:26.1.0'
+ compile files('libs/nexacro17.android.jar')
+ compile project(':gvr-libs-videowidget')
+ compile project(':gvr-libs-commonwidget')
+ compile project(':gvr-libs-common')
+ // testCompile 'junit:junit:4.12'
+}
+
+apply plugin: 'com.google.gms.google-services'
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/build.gradle.bak b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/build.gradle.bak
new file mode 100644
index 0000000..e34ba40
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/build.gradle.bak
@@ -0,0 +1,35 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 23
+ buildToolsVersion "23.0.3"
+ defaultConfig {
+ applicationId "tobesoft.androidruntime16"
+ minSdkVersion 19
+ targetSdkVersion 23
+ versionCode 1
+ versionName "1.0"
+// testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+}
+
+dependencies {
+// compile fileTree(include: ['*.jar'], dir: 'libs')
+// androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
+// exclude group: 'com.android.support', module: 'support-annotations'
+// })
+ compile 'com.android.support:appcompat-v7:23.4.0'
+ compile 'com.android.support:support-v4:20.0.0'
+ compile 'com.google.android.gms:play-services:+'
+ compile files('libs/nexacro16.jar')
+ compile project(':gvr-libs-videowidget')
+ compile project(':gvr-libs-commonwidget')
+ compile project(':gvr-libs-common')
+// testCompile 'junit:junit:4.12'
+}
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/google-services.json b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/google-services.json
new file mode 100644
index 0000000..99850eb
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/google-services.json
@@ -0,0 +1,127 @@
+{
+ "project_info": {
+ "project_number": "995072755403",
+ "firebase_url": "https://summer-nexus-581.firebaseio.com",
+ "project_id": "summer-nexus-581",
+ "storage_bucket": "summer-nexus-581.appspot.com"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:995072755403:android:0488510b9eaa9ad9",
+ "android_client_info": {
+ "package_name": "com.nexacro.nexacroexample14"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "995072755403-ksam7299dh20s90batq23eis6gpv1749.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyAaOYYoqFY9-AcA_P5jUtK_-2EmeoLvy7g"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "995072755403-ksam7299dh20s90batq23eis6gpv1749.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ]
+ }
+ }
+ },
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:995072755403:android:876a1279862314de",
+ "android_client_info": {
+ "package_name": "com.nexacro.nexacroexample17"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "995072755403-ksam7299dh20s90batq23eis6gpv1749.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyAaOYYoqFY9-AcA_P5jUtK_-2EmeoLvy7g"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "995072755403-ksam7299dh20s90batq23eis6gpv1749.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ]
+ }
+ }
+ },
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:995072755403:android:28b014c688afb816",
+ "android_client_info": {
+ "package_name": "nexacro.launcher"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "995072755403-ksam7299dh20s90batq23eis6gpv1749.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyAaOYYoqFY9-AcA_P5jUtK_-2EmeoLvy7g"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "995072755403-ksam7299dh20s90batq23eis6gpv1749.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ]
+ }
+ }
+ },
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:995072755403:android:cf2f72e91876dd5b",
+ "android_client_info": {
+ "package_name": "tobesoft.androidhybrid17"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "995072755403-ksam7299dh20s90batq23eis6gpv1749.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyAaOYYoqFY9-AcA_P5jUtK_-2EmeoLvy7g"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "995072755403-ksam7299dh20s90batq23eis6gpv1749.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/nexacro-example.jks b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/nexacro-example.jks
new file mode 100644
index 0000000..b33b985
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/nexacro-example.jks differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/proguard-rules.pro b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/proguard-rules.pro
new file mode 100644
index 0000000..7a58a49
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_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 C:\Users\yoonjin\AppData\Local\Android\sdk/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/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/AndroidManifest.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..2008291
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/AndroidManifest.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/assets/icu_data/icudtl.dat b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/assets/icu_data/icudtl.dat
new file mode 100644
index 0000000..a1ed922
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/assets/icu_data/icudtl.dat differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/java/tobesoft/androidhybrid/MainActivity.java b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/java/tobesoft/androidhybrid/MainActivity.java
new file mode 100644
index 0000000..e741b34
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/java/tobesoft/androidhybrid/MainActivity.java
@@ -0,0 +1,38 @@
+package tobesoft.androidhybrid;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+
+import com.nexacro.NexacroUpdatorActivity;
+
+public class MainActivity extends NexacroUpdatorActivity {
+
+ public MainActivity() {
+ super();
+
+ //common
+
+ setProjectURL("http://your project url");
+ setBootstrapURL("http://your bootstrap url/start_android.json");
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ Intent intent = getIntent();
+ if(intent != null) {
+ String bootstrapURL = intent.getStringExtra("bootstrapURL");
+ String projectUrl = intent.getStringExtra("projectUrl");
+ if(bootstrapURL != null) {
+ setBootstrapURL(bootstrapURL);
+ setProjectURL(projectUrl);
+ }
+ }
+
+ super.onCreate(savedInstanceState);
+ }
+ @Override
+ public void setContentView(View view) {
+ super.setContentView(view);
+ }
+}
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/java/tobesoft/androidhybrid/MainActivity2.java b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/java/tobesoft/androidhybrid/MainActivity2.java
new file mode 100644
index 0000000..8ca67ed
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/java/tobesoft/androidhybrid/MainActivity2.java
@@ -0,0 +1,28 @@
+package tobesoft.androidhybrid;
+
+import android.os.Bundle;
+import android.view.View;
+
+import com.nexacro.NexacroActivity;
+import com.nexacro.NexacroResourceManager;
+
+/**
+ * Created by yoonjin on 2016-11-23.
+ */
+
+public class MainActivity2 extends NexacroActivity {
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+
+ /* for extends NexacroActivity (for soZom module)*/
+ NexacroResourceManager.createInstance(this);
+ NexacroResourceManager.getInstance().setBootstrapURL("http://your bootstrap url/start_android.json");
+ NexacroResourceManager.getInstance().setProjectURL("http://your project url/");
+ super.onCreate(savedInstanceState);
+ }
+
+ @Override
+ public void setContentView(View view) {
+ super.setContentView(view);
+ }
+}
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/java/tobesoft/androidhybrid/UserNotify.java b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/java/tobesoft/androidhybrid/UserNotify.java
new file mode 100644
index 0000000..855fcf3
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/java/tobesoft/androidhybrid/UserNotify.java
@@ -0,0 +1,32 @@
+package tobesoft.androidhybrid;
+
+import android.util.Log;
+
+import com.nexacro.NexacroActivity;
+import com.nexacro.event.NexacroEventHandler;
+
+public class UserNotify implements NexacroEventHandler {
+
+ public UserNotify() {
+ Log.d("UserNotify", "");
+
+ if(NexacroActivity.getInstance() != null)
+ NexacroActivity.getInstance().setNexacroEventListener(this);
+
+// NexacroActivity.getInstance().setNexacroEventListener(new NexacroEventHandler() {
+// @Override
+// public void onUserNotify(int nNotifyID, String strMessage) {
+// Log.d("UserNotify", "onUserNotify nNotifyID : " + nNotifyID + " strMessage : " + strMessage);
+//
+// // TODO :
+// }
+// });
+ }
+
+ @Override
+ public void onUserNotify(int nNotifyID, String strMessage) {
+ Log.d("UserNotify", "onUserNotify nNotifyID : " + nNotifyID + " strMessage : " + strMessage);
+
+ // TODO :
+ }
+}
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-hdpi/ic_launcher.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..3675d42
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-hdpi/ic_launcher.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-hdpi/splashimage_phone_landscape.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-hdpi/splashimage_phone_landscape.png
new file mode 100644
index 0000000..9325678
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-hdpi/splashimage_phone_landscape.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-hdpi/splashimage_phone_portrait.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-hdpi/splashimage_phone_portrait.png
new file mode 100644
index 0000000..cb71b13
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-hdpi/splashimage_phone_portrait.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-hdpi/text_select_handle_left.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-hdpi/text_select_handle_left.png
new file mode 100644
index 0000000..d2ed06d
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-hdpi/text_select_handle_left.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-hdpi/text_select_handle_middle.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-hdpi/text_select_handle_middle.png
new file mode 100644
index 0000000..be2dc68
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-hdpi/text_select_handle_middle.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-hdpi/text_select_handle_right.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-hdpi/text_select_handle_right.png
new file mode 100644
index 0000000..e419249
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-hdpi/text_select_handle_right.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-mdpi/ic_launcher.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..f73aacd
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-mdpi/ic_launcher.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-mdpi/splashimage_phone_landscape.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-mdpi/splashimage_phone_landscape.png
new file mode 100644
index 0000000..9325678
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-mdpi/splashimage_phone_landscape.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-mdpi/splashimage_phone_portrait.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-mdpi/splashimage_phone_portrait.png
new file mode 100644
index 0000000..cb71b13
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-mdpi/splashimage_phone_portrait.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xhdpi/ic_launcher.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..c51d0b0
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xhdpi/ic_launcher.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xhdpi/splashimage_phone_landscape.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xhdpi/splashimage_phone_landscape.png
new file mode 100644
index 0000000..9325678
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xhdpi/splashimage_phone_landscape.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xhdpi/splashimage_phone_portrait.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xhdpi/splashimage_phone_portrait.png
new file mode 100644
index 0000000..cb71b13
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xhdpi/splashimage_phone_portrait.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xhdpi/text_select_handle_left.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xhdpi/text_select_handle_left.png
new file mode 100644
index 0000000..98d10c9
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xhdpi/text_select_handle_left.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xhdpi/text_select_handle_middle.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xhdpi/text_select_handle_middle.png
new file mode 100644
index 0000000..058b30b
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xhdpi/text_select_handle_middle.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xhdpi/text_select_handle_right.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xhdpi/text_select_handle_right.png
new file mode 100644
index 0000000..b3a0c9f
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xhdpi/text_select_handle_right.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxhdpi/ic_launcher.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..5274a67
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxhdpi/ic_launcher.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxhdpi/splashimage_phone_landscape.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxhdpi/splashimage_phone_landscape.png
new file mode 100644
index 0000000..9325678
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxhdpi/splashimage_phone_landscape.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxhdpi/splashimage_phone_portrait.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxhdpi/splashimage_phone_portrait.png
new file mode 100644
index 0000000..cb71b13
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxhdpi/splashimage_phone_portrait.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxhdpi/text_select_handle_left.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxhdpi/text_select_handle_left.png
new file mode 100644
index 0000000..8497601
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxhdpi/text_select_handle_left.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxhdpi/text_select_handle_middle.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxhdpi/text_select_handle_middle.png
new file mode 100644
index 0000000..7b74f66
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxhdpi/text_select_handle_middle.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxhdpi/text_select_handle_right.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxhdpi/text_select_handle_right.png
new file mode 100644
index 0000000..25e0780
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxhdpi/text_select_handle_right.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxxhdpi/ic_launcher.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..5e6adcb
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxxhdpi/ic_launcher.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxxhdpi/splashimage_phone_landscape.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxxhdpi/splashimage_phone_landscape.png
new file mode 100644
index 0000000..9325678
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxxhdpi/splashimage_phone_landscape.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxxhdpi/splashimage_phone_portrait.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxxhdpi/splashimage_phone_portrait.png
new file mode 100644
index 0000000..cb71b13
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable-xxxhdpi/splashimage_phone_portrait.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable/clipboard_border.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable/clipboard_border.xml
new file mode 100644
index 0000000..0b20fc7
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable/clipboard_border.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable/clipboard_separator.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable/clipboard_separator.xml
new file mode 100644
index 0000000..978c4a4
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable/clipboard_separator.xml
@@ -0,0 +1,42 @@
+
+
+
+ -
+
+
+
-
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+ -
+
+
+
-
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable/ic_launcher.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable/ic_launcher.png
new file mode 100644
index 0000000..3675d42
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable/ic_launcher.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable/splashimage_phone_landscape.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable/splashimage_phone_landscape.png
new file mode 100644
index 0000000..9325678
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable/splashimage_phone_landscape.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable/splashimage_phone_portrait.png b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable/splashimage_phone_portrait.png
new file mode 100644
index 0000000..cb71b13
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/drawable/splashimage_phone_portrait.png differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/layout/clipboard_item.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/layout/clipboard_item.xml
new file mode 100644
index 0000000..d7d4f29
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/layout/clipboard_item.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/layout/clipboard_view.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/layout/clipboard_view.xml
new file mode 100644
index 0000000..5767794
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/layout/clipboard_view.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/layout/nexacro_app.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/layout/nexacro_app.xml
new file mode 100644
index 0000000..e65e4a4
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/layout/nexacro_app.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/layout/nexacromedia_controller.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/layout/nexacromedia_controller.xml
new file mode 100644
index 0000000..33856c0
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/layout/nexacromedia_controller.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values-ja/strings.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values-ja/strings.xml
new file mode 100644
index 0000000..a3dca2d
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values-ja/strings.xml
@@ -0,0 +1,51 @@
+
+
+ 17 Launch
+
+
+ コピー
+ 貼り付け
+ カット
+ 全て選択
+ 単語選択
+
+
+ 確認
+ キャンセル
+ 移動
+ 上位
+ フィルター
+ ホーム
+ ファイル名がありません。
+ 同一のファイル名があります。上書きしますか?
+
+
+ アップデートがあります。\r\n完了した後に, 再起動してください。
+ 初期ロードに失敗しました。\r\n再起動してください。
+ アップデートが失敗しました。\r\n再起動してください。
+ 起動ファイルがありません。\r\n再起動してください。
+ アップデート中です。
+ アップデート確認中です。
+ アップデート設置中です。
+ アップデートダウン中です。
+ アップデートが完了しました。
+ ローディング 。。。\r\nお待ちください。
+
+
+ 初期化
+ ライセンスチェック
+ フレームワークモジュールのロード
+ 拡張モジュールロード
+ フレームワークスクリプトの実行
+ 応用プログラムロード
+ ADLファイルロード失敗. クリックすると閉じます
+
+ Initialize Nexacro engine
+ Load the application (loading the application)
+ Load the application (preparing the framework)
+ Load the application (executing the framework)
+ Load the application (bootstrapping)
+
+
+ SSL証明書が有効ではありません。続きますか。
+
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values-ko/strings.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values-ko/strings.xml
new file mode 100644
index 0000000..ba764b7
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values-ko/strings.xml
@@ -0,0 +1,73 @@
+
+
+ 17 Launch
+
+
+ 복사하기
+ 붙여넣기
+ 잘라내기
+ 전체선택
+ 단어선택
+
+
+ 확인
+ 취소
+ 이동
+ 상위
+ 필터
+ 홈
+ 파일명이 없습니다.
+ 동일한 파일이 이미 존재합니다. 바꾸시겠습니까?
+
+
+ 업데이트가 있습니다. \r\n완료 후 재시작 해 주세요.
+ 초기 로딩이 실패하였습니다. \r\n재시작 해 주세요.
+ 업데이트가 실패하였습니다. \r\n재시작 해 주세요.
+ 구동에 필요한 파일이 없습니다. \r\n재시작 해 주세요.
+ 업데이트 중입니다.
+ 업데이트 확인 중입니다.
+ 업데이트 설치 중입니다.
+ 업데이트 다운 중입니다.
+ 업데이트가 되었습니다.
+ 로딩중입니다.. \r\n잠시만 기다려주세요...
+
+
+ %1$d 중에 %2$d, %3$s
+ %1$d 중에 %2$d, 선택됨, %3$s
+ %1$s 이미지
+ %1$s 선택됨
+ 입력상자 현재 수정 중 입니다. %1s
+ %1$s 링크
+ %1$s
+ %1$s 삭제됨
+ 스페이스바
+
+
+ 선택 됨
+ 선택 안됨
+
+
+ 클릭
+
+
+ Start Initialize
+ Check License
+ Load Framework Module
+ Load Extend Module
+ Execute Framework Script
+ Load Application
+ Load Fail Application Initialize. Click And Close
+
+ 넥사크로 엔진을 초기화 합니다.
+ 어플리케이션을 로딩합니다.\n( 어플리케이션 로딩 )
+ 어플리케이션을 로딩합니다.\n( 프레임워크 준비중 )
+ 어플리케이션을 로딩합니다.\n( 프레임워크 실행 )
+ Load the application\n(bootstrapping)
+
+
+ 예
+ 아니오
+
+
+ SSL 인증서가 올바르지 않습니다. 계속 진행하시겠습니까?
+
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values-v11/colors.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values-v11/colors.xml
new file mode 100644
index 0000000..1e1fcf7
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values-v11/colors.xml
@@ -0,0 +1,5 @@
+
+
+
+ #000000
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values-v11/styles.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values-v11/styles.xml
new file mode 100644
index 0000000..d408cbc
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values-v11/styles.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values-v14/styles.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values-v14/styles.xml
new file mode 100644
index 0000000..1c089a7
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values-v14/styles.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values-v16/bool.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values-v16/bool.xml
new file mode 100644
index 0000000..2715f07
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values-v16/bool.xml
@@ -0,0 +1,4 @@
+
+
+ true
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values/bool.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values/bool.xml
new file mode 100644
index 0000000..cc2c4d6
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values/bool.xml
@@ -0,0 +1,4 @@
+
+
+ false
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values/colors.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..1e1fcf7
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values/colors.xml
@@ -0,0 +1,5 @@
+
+
+
+ #000000
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values/strings.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..2284dbb
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values/strings.xml
@@ -0,0 +1,73 @@
+
+
+ 17 Launch
+
+
+ Copy
+ Paste
+ Cut
+ Select All
+ Select Word
+
+
+ OK
+ Cancel
+ Move
+ Upper
+ Filter
+ Home
+ No File Name.
+ There is a file of the save name. Do you want to replace?
+
+
+ It is need to update. \r\nAfter completing, Please restart.
+ First loading is fail. \r\nPlease restart.
+ Update is fail. \r\nPlease restart.
+ Start file is NOT exist. \r\nPlease restart.
+ Being updated.
+ Check for updates.
+ Install for updates.
+ Downloading for updates.
+ Update is Completed.
+ Loading... \r\nPlease Wait...
+
+
+ %1$d of %2$d %3$s
+ %1$d of %2$d selected %3$s
+ %1$s image
+ %1$s selected
+ editing. %1s
+ %1$s link
+ %1$s
+ %1$s deleted
+ spacebar
+
+
+ checked
+ unchecked
+
+
+ click
+
+
+ Start Initialize
+ Check License
+ Load Framework Module
+ Load Extend Module
+ Execute Framework Script
+ Load Application
+ Load Fail Application Initialize. Click And Close
+
+ Initialize Nexacro engine
+ Load the application (loading the application)
+ Load the application (preparing the framework)
+ Load the application (executing the framework)
+ Load the application (bootstrapping)
+
+
+ OK
+ Cancel
+
+
+ The SSL certificate is invalid. Continue?
+
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values/styles.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..4dba0d0
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/values/styles.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/xml/file_paths.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/xml/file_paths.xml
new file mode 100644
index 0000000..7deaeac
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/xml/file_paths.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/xml/nexacro_config.xml b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/xml/nexacro_config.xml
new file mode 100644
index 0000000..827ce44
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/app/src/main/res/xml/nexacro_config.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/build.gradle b/Nexacro17/Android/Android_Legacy/nexacro17_Android/build.gradle
new file mode 100644
index 0000000..c3311c9
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/build.gradle
@@ -0,0 +1,27 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+ repositories {
+ google()
+ mavenCentral()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:4.2.1'
+
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ classpath 'com.google.gms:google-services:4.3.5'
+ }
+}
+
+allprojects {
+ repositories {
+ google()
+ mavenCentral()
+ }
+// buildDir= "C:/tmp/${rootProject.name}/${project.name}"
+}
+
+task clean(type: Delete) {
+ delete rootProject.buildDir
+}
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/gradle.properties b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gradle.properties
new file mode 100644
index 0000000..aac7c9b
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gradle.properties
@@ -0,0 +1,17 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx1536m
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/gradle/wrapper/gradle-wrapper.jar b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..13372ae
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/gradle/wrapper/gradle-wrapper.properties b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..365a805
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Tue Feb 19 11:02:46 KST 2019
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/gradlew b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gradlew
new file mode 100644
index 0000000..9d82f78
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gradlew
@@ -0,0 +1,160 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/gradlew.bat b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gradlew.bat
new file mode 100644
index 0000000..8a0b282
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/gvr-libs-common/build.gradle b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gvr-libs-common/build.gradle
new file mode 100644
index 0000000..f8a0185
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gvr-libs-common/build.gradle
@@ -0,0 +1,2 @@
+configurations.maybeCreate("default")
+artifacts.add("default", file('common.aar'))
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/gvr-libs-common/common.aar b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gvr-libs-common/common.aar
new file mode 100644
index 0000000..7ee4dc0
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gvr-libs-common/common.aar differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/gvr-libs-commonwidget/build.gradle b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gvr-libs-commonwidget/build.gradle
new file mode 100644
index 0000000..8ea5c20
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gvr-libs-commonwidget/build.gradle
@@ -0,0 +1,2 @@
+configurations.maybeCreate("default")
+artifacts.add("default", file('commonwidget.aar'))
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/gvr-libs-commonwidget/commonwidget.aar b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gvr-libs-commonwidget/commonwidget.aar
new file mode 100644
index 0000000..03980d6
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gvr-libs-commonwidget/commonwidget.aar differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/gvr-libs-videowidget/build.gradle b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gvr-libs-videowidget/build.gradle
new file mode 100644
index 0000000..602a162
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gvr-libs-videowidget/build.gradle
@@ -0,0 +1,2 @@
+configurations.maybeCreate("default")
+artifacts.add("default", file('videowidget.aar'))
\ No newline at end of file
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/gvr-libs-videowidget/videowidget.aar b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gvr-libs-videowidget/videowidget.aar
new file mode 100644
index 0000000..459b78c
Binary files /dev/null and b/Nexacro17/Android/Android_Legacy/nexacro17_Android/gvr-libs-videowidget/videowidget.aar differ
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/settings.gradle b/Nexacro17/Android/Android_Legacy/nexacro17_Android/settings.gradle
new file mode 100644
index 0000000..349a3d5
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/settings.gradle
@@ -0,0 +1 @@
+include ':app', ':gvr-libs-videowidget', ':gvr-libs-common', ':gvr-libs-commonwidget', ':gvr-libs-base'
diff --git a/Nexacro17/Android/Android_Legacy/nexacro17_Android/프로젝트 설명.txt b/Nexacro17/Android/Android_Legacy/nexacro17_Android/프로젝트 설명.txt
new file mode 100644
index 0000000..14af020
--- /dev/null
+++ b/Nexacro17/Android/Android_Legacy/nexacro17_Android/프로젝트 설명.txt
@@ -0,0 +1,11 @@
+# so 및 Android용 jar 를 이용하여 nexacro17앱을 만들수 있는 프로젝트 입니다.
+
+nexacro17.android.jar
+ -> app\libs 폴더에 복사
+
+libnexacro17.so 는 아키텍쳐별로 아래 폴더에 복사
+ -> app\src\main\jniLibs\arm64-v8a
+ app\src\main\jniLibs\armeabi-v7a
+
+부트스트랩 시작주소는 아래 파일에서 지정
+ -> app\src\main\java\tobesoft\androidhybrid\MainActivity.java
\ No newline at end of file
diff --git a/Nexacro17/iOS/.DS_Store b/Nexacro17/iOS/.DS_Store
new file mode 100644
index 0000000..74d7223
Binary files /dev/null and b/Nexacro17/iOS/.DS_Store differ
diff --git a/Nexacro17/iOS/nexacro17_iOS/.DS_Store b/Nexacro17/iOS/nexacro17_iOS/.DS_Store
new file mode 100644
index 0000000..a811621
Binary files /dev/null and b/Nexacro17/iOS/nexacro17_iOS/.DS_Store differ
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App.xcodeproj/project.pbxproj b/Nexacro17/iOS/nexacro17_iOS/nexacro17App.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..a0a9e09
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App.xcodeproj/project.pbxproj
@@ -0,0 +1,462 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 618A57E026D77923006A06B4 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B8EC884B1DE7101600C30DD6 /* libc++.tbd */; };
+ 61A14D3420293FDF00CED070 /* archive in Resources */ = {isa = PBXBuildFile; fileRef = 61A14D3320293FDF00CED070 /* archive */; };
+ B8C6CB241DF79E2F00E2F1F7 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = B8C6CB221DF79E2E00E2F1F7 /* Localizable.strings */; };
+ B8CFAF431F6222DE00307D08 /* splashimage_pad_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = B8CFAF411F6222DE00307D08 /* splashimage_pad_landscape.png */; };
+ B8CFAF441F6222DE00307D08 /* splashimage_phone_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = B8CFAF421F6222DE00307D08 /* splashimage_phone_landscape.png */; };
+ B8EAFA361F74A45C0013FF17 /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B8EAFA351F74A45C0013FF17 /* Launch Screen.storyboard */; };
+ B8EC88121DE702DD00C30DD6 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = B8EC88111DE702DD00C30DD6 /* main.m */; };
+ B8EC88151DE702DE00C30DD6 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B8EC88141DE702DE00C30DD6 /* AppDelegate.m */; };
+ B8EC885C1DE71AA000C30DD6 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = B8EC885A1DE71AA000C30DD6 /* Icon.png */; };
+ B8EC885D1DE71AA000C30DD6 /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B8EC885B1DE71AA000C30DD6 /* Icon@2x.png */; };
+ B8EC88731DE71C7B00C30DD6 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B8EC886E1DE71C7B00C30DD6 /* Default-568h@2x.png */; };
+ B8EC88741DE71C7B00C30DD6 /* Default-Portrait@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = B8EC886F1DE71C7B00C30DD6 /* Default-Portrait@2x~ipad.png */; };
+ B8EC88751DE71C7B00C30DD6 /* Default-Portrait~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = B8EC88701DE71C7B00C30DD6 /* Default-Portrait~ipad.png */; };
+ B8EC88761DE71C7B00C30DD6 /* splashimage_pad_portrait.png in Resources */ = {isa = PBXBuildFile; fileRef = B8EC88711DE71C7B00C30DD6 /* splashimage_pad_portrait.png */; };
+ B8EC88771DE71C7B00C30DD6 /* splashimage_phone_portrait.png in Resources */ = {isa = PBXBuildFile; fileRef = B8EC88721DE71C7B00C30DD6 /* splashimage_phone_portrait.png */; };
+ B8EC88A41DE7DEA500C30DD6 /* data in Resources */ = {isa = PBXBuildFile; fileRef = B8EC88A31DE7DEA500C30DD6 /* data */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 61A14D3320293FDF00CED070 /* archive */ = {isa = PBXFileReference; lastKnownFileType = folder; name = archive; path = nexacro17App/archive; sourceTree = ""; };
+ B8B639D91F09DCDD002BFA20 /* nexacro17App.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = nexacro17App.entitlements; sourceTree = ""; };
+ B8C6CB231DF79E2F00E2F1F7 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = ""; };
+ B8C6CB251DF79E4000E2F1F7 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; };
+ B8C6CB261DF79E5800E2F1F7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; };
+ B8CFAF411F6222DE00307D08 /* splashimage_pad_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = splashimage_pad_landscape.png; sourceTree = ""; };
+ B8CFAF421F6222DE00307D08 /* splashimage_phone_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = splashimage_phone_landscape.png; sourceTree = ""; };
+ B8EAFA351F74A45C0013FF17 /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = ""; };
+ B8EC880D1DE702DD00C30DD6 /* nexacro17App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = nexacro17App.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ B8EC88111DE702DD00C30DD6 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
+ B8EC88131DE702DE00C30DD6 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
+ B8EC88141DE702DE00C30DD6 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
+ B8EC88211DE702DE00C30DD6 /* nexacro17App-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "nexacro17App-Info.plist"; sourceTree = ""; };
+ B8EC882C1DE707C000C30DD6 /* nexacro17App-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "nexacro17App-Prefix.pch"; sourceTree = ""; };
+ B8EC884B1DE7101600C30DD6 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
+ B8EC885A1DE71AA000C30DD6 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Icon.png; sourceTree = ""; };
+ B8EC885B1DE71AA000C30DD6 /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon@2x.png"; sourceTree = ""; };
+ B8EC886E1DE71C7B00C30DD6 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; };
+ B8EC886F1DE71C7B00C30DD6 /* Default-Portrait@2x~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Portrait@2x~ipad.png"; sourceTree = ""; };
+ B8EC88701DE71C7B00C30DD6 /* Default-Portrait~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Portrait~ipad.png"; sourceTree = ""; };
+ B8EC88711DE71C7B00C30DD6 /* splashimage_pad_portrait.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = splashimage_pad_portrait.png; sourceTree = ""; };
+ B8EC88721DE71C7B00C30DD6 /* splashimage_phone_portrait.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = splashimage_phone_portrait.png; sourceTree = ""; };
+ B8EC889B1DE7D68800C30DD6 /* nexacro17.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = nexacro17.framework; sourceTree = ""; };
+ B8EC88A31DE7DEA500C30DD6 /* data */ = {isa = PBXFileReference; lastKnownFileType = folder; name = data; path = nexacro17App/data; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ B8EC880A1DE702DD00C30DD6 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 618A57E026D77923006A06B4 /* libc++.tbd in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ B8EC88041DE702DD00C30DD6 = {
+ isa = PBXGroup;
+ children = (
+ 61A14D3320293FDF00CED070 /* archive */,
+ B8EC88A31DE7DEA500C30DD6 /* data */,
+ B8EC88981DE7D2D300C30DD6 /* Library */,
+ B8EC88271DE704AD00C30DD6 /* Frameworks */,
+ B8EC880F1DE702DD00C30DD6 /* nexacro17App */,
+ B8EC880E1DE702DD00C30DD6 /* Products */,
+ );
+ sourceTree = "";
+ };
+ B8EC880E1DE702DD00C30DD6 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ B8EC880D1DE702DD00C30DD6 /* nexacro17App.app */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ B8EC880F1DE702DD00C30DD6 /* nexacro17App */ = {
+ isa = PBXGroup;
+ children = (
+ B8B639D91F09DCDD002BFA20 /* nexacro17App.entitlements */,
+ B8EC88101DE702DD00C30DD6 /* Supporting Files */,
+ B8EC88591DE71A8200C30DD6 /* res */,
+ B8EC88131DE702DE00C30DD6 /* AppDelegate.h */,
+ B8EC88141DE702DE00C30DD6 /* AppDelegate.m */,
+ );
+ path = nexacro17App;
+ sourceTree = "";
+ };
+ B8EC88101DE702DD00C30DD6 /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ B8C6CB221DF79E2E00E2F1F7 /* Localizable.strings */,
+ B8EC88111DE702DD00C30DD6 /* main.m */,
+ B8EC88211DE702DE00C30DD6 /* nexacro17App-Info.plist */,
+ B8EC882C1DE707C000C30DD6 /* nexacro17App-Prefix.pch */,
+ );
+ name = "Supporting Files";
+ sourceTree = "";
+ };
+ B8EC88271DE704AD00C30DD6 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ B8EC884B1DE7101600C30DD6 /* libc++.tbd */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ B8EC88591DE71A8200C30DD6 /* res */ = {
+ isa = PBXGroup;
+ children = (
+ B8EC885E1DE71ACD00C30DD6 /* splashimage */,
+ B8EAFA351F74A45C0013FF17 /* Launch Screen.storyboard */,
+ B8EC885A1DE71AA000C30DD6 /* Icon.png */,
+ B8EC885B1DE71AA000C30DD6 /* Icon@2x.png */,
+ );
+ path = res;
+ sourceTree = "";
+ };
+ B8EC885E1DE71ACD00C30DD6 /* splashimage */ = {
+ isa = PBXGroup;
+ children = (
+ B8EC886E1DE71C7B00C30DD6 /* Default-568h@2x.png */,
+ B8EC886F1DE71C7B00C30DD6 /* Default-Portrait@2x~ipad.png */,
+ B8EC88701DE71C7B00C30DD6 /* Default-Portrait~ipad.png */,
+ B8EC88711DE71C7B00C30DD6 /* splashimage_pad_portrait.png */,
+ B8CFAF411F6222DE00307D08 /* splashimage_pad_landscape.png */,
+ B8EC88721DE71C7B00C30DD6 /* splashimage_phone_portrait.png */,
+ B8CFAF421F6222DE00307D08 /* splashimage_phone_landscape.png */,
+ );
+ path = splashimage;
+ sourceTree = "";
+ };
+ B8EC88981DE7D2D300C30DD6 /* Library */ = {
+ isa = PBXGroup;
+ children = (
+ B8EC889B1DE7D68800C30DD6 /* nexacro17.framework */,
+ );
+ name = Library;
+ path = nexacro17App/Library;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ B8EC880C1DE702DD00C30DD6 /* nexacro17App */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = B8EC88241DE702DE00C30DD6 /* Build configuration list for PBXNativeTarget "nexacro17App" */;
+ buildPhases = (
+ B8EC88091DE702DD00C30DD6 /* Sources */,
+ B8EC880A1DE702DD00C30DD6 /* Frameworks */,
+ B8EC880B1DE702DD00C30DD6 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = nexacro17App;
+ productName = nexacro17App;
+ productReference = B8EC880D1DE702DD00C30DD6 /* nexacro17App.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ B8EC88051DE702DD00C30DD6 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0900;
+ ORGANIZATIONNAME = com.tobesoft;
+ TargetAttributes = {
+ B8EC880C1DE702DD00C30DD6 = {
+ CreatedOnToolsVersion = 8.1;
+ DevelopmentTeam = RAH8A8577Q;
+ ProvisioningStyle = Automatic;
+ SystemCapabilities = {
+ com.apple.BackgroundModes = {
+ enabled = 1;
+ };
+ com.apple.Maps.iOS = {
+ enabled = 0;
+ };
+ com.apple.Push = {
+ enabled = 1;
+ };
+ com.apple.iCloud = {
+ enabled = 0;
+ };
+ };
+ };
+ };
+ };
+ buildConfigurationList = B8EC88081DE702DD00C30DD6 /* Build configuration list for PBXProject "nexacro17App" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ English,
+ Base,
+ ko,
+ ja,
+ en,
+ );
+ mainGroup = B8EC88041DE702DD00C30DD6;
+ productRefGroup = B8EC880E1DE702DD00C30DD6 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ B8EC880C1DE702DD00C30DD6 /* nexacro17App */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ B8EC880B1DE702DD00C30DD6 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ B8EC88A41DE7DEA500C30DD6 /* data in Resources */,
+ B8EC88761DE71C7B00C30DD6 /* splashimage_pad_portrait.png in Resources */,
+ 61A14D3420293FDF00CED070 /* archive in Resources */,
+ B8CFAF431F6222DE00307D08 /* splashimage_pad_landscape.png in Resources */,
+ B8EAFA361F74A45C0013FF17 /* Launch Screen.storyboard in Resources */,
+ B8EC88771DE71C7B00C30DD6 /* splashimage_phone_portrait.png in Resources */,
+ B8CFAF441F6222DE00307D08 /* splashimage_phone_landscape.png in Resources */,
+ B8EC88741DE71C7B00C30DD6 /* Default-Portrait@2x~ipad.png in Resources */,
+ B8EC88751DE71C7B00C30DD6 /* Default-Portrait~ipad.png in Resources */,
+ B8EC88731DE71C7B00C30DD6 /* Default-568h@2x.png in Resources */,
+ B8EC885C1DE71AA000C30DD6 /* Icon.png in Resources */,
+ B8EC885D1DE71AA000C30DD6 /* Icon@2x.png in Resources */,
+ B8C6CB241DF79E2F00E2F1F7 /* Localizable.strings in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ B8EC88091DE702DD00C30DD6 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ B8EC88151DE702DE00C30DD6 /* AppDelegate.m in Sources */,
+ B8EC88121DE702DD00C30DD6 /* main.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ B8C6CB221DF79E2E00E2F1F7 /* Localizable.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ B8C6CB231DF79E2F00E2F1F7 /* ko */,
+ B8C6CB251DF79E4000E2F1F7 /* ja */,
+ B8C6CB261DF79E5800E2F1F7 /* en */,
+ );
+ name = Localizable.strings;
+ sourceTree = "";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ B8EC88221DE702DE00C30DD6 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_SUSPICIOUS_MOVES = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ MTL_ENABLE_DEBUG_INFO = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ B8EC88231DE702DE00C30DD6 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_SUSPICIOUS_MOVES = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+ B8EC88251DE702DE00C30DD6 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CODE_SIGN_ENTITLEMENTS = nexacro17App/nexacro17App.entitlements;
+ DEVELOPMENT_TEAM = RAH8A8577Q;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(PROJECT_DIR)/nexacro17App/Library",
+ );
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "nexacro17App/nexacro17App-Prefix.pch";
+ INFOPLIST_FILE = "nexacro17App/nexacro17App-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ ONLY_ACTIVE_ARCH = NO;
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-framework",
+ nexacro17,
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = com.tobesoft.nexacro17App;
+ PRODUCT_NAME = "${TARGET_NAME}";
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALID_ARCHS = "";
+ "VALID_ARCHS[sdk=iphoneos*]" = "armv7 armv7s arm64";
+ "VALID_ARCHS[sdk=iphonesimulator*]" = x86_64;
+ };
+ name = Debug;
+ };
+ B8EC88261DE702DE00C30DD6 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CODE_SIGN_ENTITLEMENTS = nexacro17App/nexacro17App.entitlements;
+ DEVELOPMENT_TEAM = RAH8A8577Q;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(PROJECT_DIR)/nexacro17App/Library",
+ );
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "nexacro17App/nexacro17App-Prefix.pch";
+ INFOPLIST_FILE = "nexacro17App/nexacro17App-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ ONLY_ACTIVE_ARCH = NO;
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-framework",
+ nexacro17,
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = com.tobesoft.nexacro17App;
+ PRODUCT_NAME = "${TARGET_NAME}";
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALID_ARCHS = "";
+ "VALID_ARCHS[sdk=iphoneos*]" = "armv7 armv7s arm64";
+ "VALID_ARCHS[sdk=iphonesimulator*]" = x86_64;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ B8EC88081DE702DD00C30DD6 /* Build configuration list for PBXProject "nexacro17App" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ B8EC88221DE702DE00C30DD6 /* Debug */,
+ B8EC88231DE702DE00C30DD6 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ B8EC88241DE702DE00C30DD6 /* Build configuration list for PBXNativeTarget "nexacro17App" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ B8EC88251DE702DE00C30DD6 /* Debug */,
+ B8EC88261DE702DE00C30DD6 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = B8EC88051DE702DD00C30DD6 /* Project object */;
+}
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App.xcodeproj/xcshareddata/xcschemes/nexacro17App.xcscheme b/Nexacro17/iOS/nexacro17_iOS/nexacro17App.xcodeproj/xcshareddata/xcschemes/nexacro17App.xcscheme
new file mode 100644
index 0000000..d1a4471
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App.xcodeproj/xcshareddata/xcschemes/nexacro17App.xcscheme
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/AppDelegate.h b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/AppDelegate.h
new file mode 100644
index 0000000..ef2f35d
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/AppDelegate.h
@@ -0,0 +1,18 @@
+//
+// AppDelegate.h
+// nexacro17App
+//
+// Created by 김재환 on 2016. 11. 24..
+// Copyright © 2016년 com.tobesoft. All rights reserved.
+//
+
+#import
+#import
+#import
+
+@interface AppViewController : NexacroMainViewController
+@end
+
+@interface AppDelegate : NexacroAppDelegate
+- (NexacroMainViewController*)initializeMainViewController;
+@end
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/AppDelegate.m b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/AppDelegate.m
new file mode 100644
index 0000000..14157c9
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/AppDelegate.m
@@ -0,0 +1,38 @@
+//
+// AppDelegate.m
+// nexacro17App
+//
+// Created by 김재환 on 2016. 11. 24..
+// Copyright © 2016년 com.tobesoft. All rights reserved.
+//
+
+#import "AppDelegate.h"
+@implementation AppViewController
+
+// 자동 회전 지원 여부 (YES/NO)
+- (BOOL)shouldAutorotate
+{
+ return YES;
+}
+
+// 회전방향 지원 유무 리턴 (리턴값은 회전 방향의 비트값이 설정된 플러그)
+- (UIInterfaceOrientationMask)supportedInterfaceOrientations
+{
+ return UIInterfaceOrientationMaskAll;
+}
+
+@end
+
+@implementation AppDelegate
+
+- (NexacroMainViewController*)initializeMainViewController
+{
+ NSString *bootstrapUrl = @"http://172.10.12.59:8080/nexacro17/TopsIssueLoader/_ios_/start_ios.json";
+
+ [[NexacroResourceManager sharedResourceManager] setBootstrapURL:bootstrapUrl isDirect:NO];
+ AppViewController* controller = [[AppViewController alloc] initWithFullScreen:NO];
+
+ return controller;
+}
+
+@end
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/Library/.gitkeep b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/Library/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/InAppBrowser.h b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/InAppBrowser.h
new file mode 100644
index 0000000..a476d54
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/InAppBrowser.h
@@ -0,0 +1,32 @@
+
+#ifndef InAppBrowser_h
+#define InAppBrowser_h
+
+#import "PluginCommon.h"
+#import "InAppBrowserDelegate.h"
+
+@class InAppBrowserViewController;
+
+@interface InAppBrowserNavigationController : UINavigationController
+
+@property (nonatomic, retain) InAppBrowserViewController *inAppBrowserviewController;
+
+- (instancetype)initWithFrame:(CGRect)frame bridgeName:(NSString *)bridgeName;
+- (void)open:(NSString *)urlString;
+
+- (void)setInAppBrowserDelegate:(id)delegate;
+
+@end
+
+
+@interface InAppBrowserViewController : UIViewController
+
+@property (nonatomic, strong) id wkWebView;
+
+@property (nonatomic, weak) id inAppBrowserDelegate;
+
+- (instancetype)initWithFrame:(CGRect)frame bridgeName:(NSString *)bridgeName;
+
+@end
+
+#endif /* InAppBrowser_h */
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/InAppBrowser.m b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/InAppBrowser.m
new file mode 100644
index 0000000..d3a59ec
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/InAppBrowser.m
@@ -0,0 +1,163 @@
+
+#import "InAppBrowser.h"
+
+#import
+
+@implementation InAppBrowserNavigationController
+
+- (instancetype)initWithFrame:(CGRect)frame bridgeName:(NSString *)bridgeName
+{
+ self.inAppBrowserviewController = [[InAppBrowserViewController alloc] initWithFrame:frame
+ bridgeName:bridgeName];
+ if (self.inAppBrowserviewController) {
+ self = [self initWithRootViewController:self.inAppBrowserviewController];
+
+ UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"닫기"
+ style:UIBarButtonItemStylePlain
+ target:self
+ action:@selector(onRightBarButton:)];
+
+ self.inAppBrowserviewController.navigationItem.rightBarButtonItem = rightButton;
+ }
+
+ return self;
+}
+
+- (void)setInAppBrowserDelegate:(id)delegate
+{
+ self.inAppBrowserviewController.inAppBrowserDelegate = delegate;
+}
+
+- (void)open:(NSString *)urlString
+{
+ NSString *escapedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
+ NSURL *url = [NSURL URLWithString:escapedString];
+ NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
+ [(WKWebView*)self.inAppBrowserviewController.wkWebView loadRequest:request];
+
+ UIViewController* viewController = [[UIApplication sharedApplication] keyWindow].rootViewController;
+ while (viewController.presentedViewController) {
+ viewController = viewController.presentedViewController;
+ }
+
+ [viewController presentViewController:self animated:YES completion:nil];
+}
+
+- (void)onRightBarButton:(UIBarButtonItem *)sender
+{
+ if (self.inAppBrowserviewController.inAppBrowserDelegate) {
+ [self.inAppBrowserviewController.inAppBrowserDelegate onRightBarButton];
+ }
+
+ [self dismissViewControllerAnimated:YES completion:nil];
+}
+
+@end /* InAppBrowserNavigationController */
+
+
+@implementation InAppBrowserViewController
+
+- (instancetype)initWithFrame:(CGRect)frame bridgeName:(NSString *)bridgeName
+{
+ if (self = [super init]) {
+ WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
+ [[config userContentController] addScriptMessageHandler:self
+ name:bridgeName];
+
+ frame.origin.y = 0;
+ self.wkWebView = [[WKWebView alloc] initWithFrame:frame
+ configuration:config];
+
+ [self.wkWebView setNavigationDelegate:self];
+ [self.wkWebView setUIDelegate:self];
+
+ [self.view addSubview:self.wkWebView];
+ }
+
+ return self;
+}
+
+- (void)viewDidDisappear:(BOOL)animated
+{
+ [super viewDidDisappear:YES];
+
+ SEL sel = @selector(viewDidDisappear);
+ if (self.inAppBrowserDelegate && [self.inAppBrowserDelegate respondsToSelector:sel]) {
+ [self.inAppBrowserDelegate viewDidDisappear];
+ }
+}
+
+#pragma mark - WKWebView - WKScriptMessageHandler
+- (void)userContentController:(WKUserContentController *)userContentController
+ didReceiveScriptMessage:(WKScriptMessage *)message
+{
+ SEL sel = @selector(userContentController:didReceiveScriptMessage:);
+ if (self.inAppBrowserDelegate && [self.inAppBrowserDelegate respondsToSelector:sel]) {
+ [self.inAppBrowserDelegate userContentController:userContentController
+ didReceiveScriptMessage:message];
+ }
+}
+
+#pragma mark - WKWebView - WKNavigationDelegate
+- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(nonnull WKNavigationAction *)navigationAction decisionHandler:(nonnull void (^)(WKNavigationActionPolicy))decisionHandler
+{
+ NSString *url = navigationAction.request.URL.absoluteString;
+
+ if ([url hasPrefix:@"http"] || [url hasPrefix:@"https"]) {
+ decisionHandler(WKNavigationActionPolicyAllow);
+ } else {
+ [[UIApplication sharedApplication] openURL:[[navigationAction request] URL]];
+ decisionHandler(WKNavigationActionPolicyCancel);
+ }
+}
+
+- (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation
+{
+
+}
+
+- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
+{
+
+}
+
+- (void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *)error
+{
+
+}
+
+#pragma mark - WKWebView - WKUIDelegate
+- (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(void))completionHandler
+{
+ NSString* title = NSLocalizedString(@"alert_title", @"title");
+ if ([title isEqualToString:@"alert_title"])
+ title = @"";
+
+ UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];
+
+ __block BOOL bCompletionHandlerCalled = false;
+
+ [alertController addAction:[UIAlertAction actionWithTitle:@"OK"
+ style:UIAlertActionStyleCancel
+ handler:^(UIAlertAction *action) {
+ if (bCompletionHandlerCalled == false)
+ {
+ bCompletionHandlerCalled = true;
+ completionHandler();
+ }
+ }]];
+
+ [self presentViewController:alertController animated:YES completion:^{}];
+}
+
+- (void)webView:(WKWebView *)webView runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(BOOL result))completionHandler
+{
+
+}
+
+- (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(nullable NSString *)defaultText initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSString * __nullable result))completionHandler
+{
+
+}
+
+@end
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/InAppBrowserDelegate.h b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/InAppBrowserDelegate.h
new file mode 100644
index 0000000..42dd76f
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/InAppBrowserDelegate.h
@@ -0,0 +1,13 @@
+#ifndef InAppBrowserDelegate_h
+#define InAppBrowserDelegate_h
+
+@protocol InAppBrowserDelegate
+
+- (void)onRightBarButton;
+- (void)viewDidDisappear;
+- (void)userContentController:(WKUserContentController *)userContentController
+ didReceiveScriptMessage:(WKScriptMessage *)message;
+
+@end
+
+#endif /* InAppBrowserDelegate_h */
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/InAppBrowserPlugin.h b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/InAppBrowserPlugin.h
new file mode 100644
index 0000000..3840e12
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/InAppBrowserPlugin.h
@@ -0,0 +1,15 @@
+
+#ifndef InAppBrowserPlugin_h
+#define InAppBrowserPlugin_h
+
+#import "PluginCommon.h"
+#import "InAppBrowserDelegate.h"
+
+// nexacro Standard Object와의 통신을 위한 인터페이스
+//
+
+@interface InAppBrowserPlugin : PluginCommon
+
+@end
+
+#endif /* InAppBrowserPlugin_h */
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/InAppBrowserPlugin.m b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/InAppBrowserPlugin.m
new file mode 100644
index 0000000..6849d48
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/InAppBrowserPlugin.m
@@ -0,0 +1,77 @@
+
+#import "InAppBrowserPlugin.h"
+
+#import
+
+#import "AppDelegate.h"
+#import "InAppBrowser.h"
+
+@interface InAppBrowserPlugin ()
+@property InAppBrowserNavigationController *inAppBrowserNavigationController;
+@end
+
+@implementation InAppBrowserPlugin
+
+// nexacro standard Object의 CallMethod에 의해 호출
+-(void)callMethod:(NSString *)lid withDict:(NSMutableDictionary *)options
+{
+ [self printArgs:[NSString stringWithUTF8String:__func__] arg:options];
+
+ self.nID = [lid integerValue];
+ self.mSerivceId = [options strValueForKey:@"serviceid"];
+
+ NSDictionary *dic = [options dicValueForKey:@"param"];
+ NSString *startUrl = [dic strValueForKey:@"starturl"];
+
+ if ([self.mSerivceId isEqualToString:@"show"]) {
+ [self show:startUrl];
+ }
+}
+
+- (void)show:(NSString *)url
+{
+ if (_inAppBrowserNavigationController == nil) {
+ // InAppBrowse 초기화
+ CGRect frame = [self.webView bounds];
+ _inAppBrowserNavigationController =[[InAppBrowserNavigationController alloc] initWithFrame:frame
+ bridgeName:@"nexacro_iab"];
+ [_inAppBrowserNavigationController setInAppBrowserDelegate:self];
+ }
+
+ // 우측 상단 닫기 버튼을 숨기고 싶을때 주석 제거
+ // inAppBrowserNavigationController.navigationBarHidden = YES;
+
+ [_inAppBrowserNavigationController open:url];
+}
+
+#pragma mark - InAppBrowserDelegate
+- (void)onRightBarButton
+{
+ [self send:CODE_SUCCES withMsg:@"InAppBrowser navigationbar right button touched."];
+}
+
+- (void)viewDidDisappear
+{
+ [self send:CODE_SUCCES withMsg:@"InAppBrowser viewDidDisappear."];
+}
+
+// 웹페이지로 부터 전달 받은 메시지 처리
+- (void)userContentController:(WKUserContentController *)userContentController
+ didReceiveScriptMessage:(WKScriptMessage *)message;
+{
+ NSLog(@"JavaScript Message:%@", message.body);
+
+ if ([message.body isEqualToString:@"종료"]) {
+ [_inAppBrowserNavigationController dismissViewControllerAnimated:YES completion:nil];
+ [self send:CODE_SUCCES withMsg:@"창 닫기 버튼이 클릭되어 창이 InAppBrowser가 종료 되었습니다."];
+ } else {
+ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"InAppBrowser message"
+ message:message.body
+ delegate:nil
+ cancelButtonTitle:@"OK"
+ otherButtonTitles:nil];
+ [alert show];
+ }
+}
+
+@end
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/NSDicEx.h b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/NSDicEx.h
new file mode 100644
index 0000000..cc6c02f
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/NSDicEx.h
@@ -0,0 +1,48 @@
+//
+// NSDicEx.h
+// Nexacro
+//
+// Created by mario on 2015. 5. 21..
+// Copyright (c) 2015년 tobesoft. All rights reserved.
+//
+
+
+#ifndef NEXACRO_NSDicEx_h
+#define NEXACRO_NSDicEx_h
+
+//!! category func
+@interface NSDictionary(util_)
+- (NSInteger)intValueForKey:(NSString *)arg;
+- (BOOL)boolValueForKey:(NSString *)arg;
+- (NSString *)strValueForKey:(NSString *)arg;
+- (NSArray *)arryValueForKey:(NSString *)arg;
+- (NSMutableDictionary*)dicValueForKey:(NSString *)arg;
+@end
+
+@implementation NSDictionary (util_)
+
+- (NSInteger)intValueForKey:(NSString *)arg
+{
+ return [[self objectForKey:arg] integerValue];
+}
+- (BOOL)boolValueForKey:(NSString*)arg
+{
+ return [[self objectForKey:arg] boolValue];
+}
+- (NSString *)strValueForKey:(NSString*)arg
+{
+ return (NSString *)[self objectForKey:arg];
+}
+- (NSArray *)arryValueForKey:(NSString*)arg
+{
+ return (NSArray *)[self objectForKey:arg];
+
+}
+- (NSMutableDictionary *)dicValueForKey:(NSString *)arg
+{
+ return (NSMutableDictionary *)[self objectForKey:arg];
+
+}
+@end
+
+#endif
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/PluginCommon.h b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/PluginCommon.h
new file mode 100644
index 0000000..223287b
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/PluginCommon.h
@@ -0,0 +1,39 @@
+//
+// PluginCommon.h
+// AIAONE
+//
+// Created by TOBESOFT on 2016. 3. 31..
+//
+//
+
+#import
+#import "nexacro17/DeviceAPI.h"
+#import "NSDicEx.h"
+
+#define CODE_SUCCES 0
+#define CODE_ERROR -1
+#define CODE_LOGIN_FAIL -9
+
+
+@interface PluginCommon : DeviceAPI
+{
+ NSInteger nID;
+ NSInteger reason;
+ NSString *mSerivceId;
+}
+
+@property (nonatomic) NSInteger nID;
+@property (nonatomic) NSInteger reason;
+@property (nonatomic, retain) NSString *mSerivceId;
+
+- (void)printArgs:(NSString *)fname arg:(NSDictionary*)arg;
+- (NSString *)alias2path:(NSString *)setPath;
+
+- (NSString *)getSuccessReturnString:(NSInteger)reason;
+- (NSString *)getSuccessReturnString:(NSInteger)reason retVal:(NSString *)arg;
+- (NSString *)getErrorReturnString:(NSInteger)errcode reasonCode:(NSInteger)rcode errMsg:(NSString *)msg;
+- (void)writeEvent:(NSString *)eventName result:(NSString *)selectResult;
+
+- (void)send:(int)cd withMsg:(NSString *)m;
+
+@end
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/PluginCommon.m b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/PluginCommon.m
new file mode 100644
index 0000000..37d8ce2
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/PluginCommon.m
@@ -0,0 +1,220 @@
+//
+// PluginCommon.m
+// AIAONE
+//
+// Created by TOBESOFT on 2016. 3. 31..
+//
+//
+
+#import "PluginCommon.h"
+
+#define SVCID @"svcid"
+#define REASON @"reason"
+#define RETVAL @"returnvalue"
+
+#define CALL_BACK @"_oncallback"
+
+#define METHOD_CALLMETHOD @"callMethod"
+
+
+@interface NSString (util_)
+
+- (NSInteger)indexOf:(NSString *)text;
+
+@end
+
+
+@implementation NSString (util_)
+
+- (NSInteger)indexOf:(NSString *)text {
+ NSRange range = [self rangeOfString:text];
+ if ( range.length > 0 ) {
+ return range.location;
+ } else {
+ return -1;
+ }
+}
+
+@end
+
+
+@implementation PluginCommon
+@synthesize nID;
+@synthesize reason;
+@synthesize mSerivceId;
+
+- (void)printArgs:(NSString *)fname arg:(NSDictionary *)arg
+{
+#ifdef _DEBUG
+ SBJsonWriter *jw = [[[SBJsonWriter alloc] init] autorelease];
+ NSString *json = [jw stringWithObject:arg];
+
+ NSLog(@"[%@] %@", fname, json);
+#endif
+}
+
+
+- (NSString *)alias2path:(NSString *)setPath
+{
+ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
+ NSUserDomainMask,
+ YES);
+ NSString *docsPath = [paths objectAtIndex:0];
+ NSString *realPath = [NSString stringWithFormat:@"%@/NEXACRO", docsPath];
+ NSString *fullpath = [setPath stringByReplacingOccurrencesOfString:@"%25USERAPP%25"
+ withString:realPath];
+
+ return fullpath;
+}
+
+
+
+//--
+/*!
+ @function writeEvent
+ @abstract BLMPrinterIF.m
+ @discussion
+ 명령 수행 결과를 JavaScript runCallBack 함수를 통해서 전달한다.
+ @param eventName
+ onsuccess 등과 같은 callback 함수에 대한 이름
+ @param selectResult
+ eventName 함수에 전달될 결과 result 값
+ @return NONE
+ */
+
+- (void)writeEvent:(NSString *)eventName result:(NSString *)selectResult
+{
+ NSString *callbackResult = [NSString stringWithFormat:@"runCallback(\"%ld\",\"%@\", %@);",
+ (long)self.nID, eventName, selectResult];
+
+ [self writeJavascript:callbackResult];
+}
+
+/*!
+ @function getErrorReturnString
+ @abstract BLMPrinterIF.m
+ @discussion
+ 오류 발생시 BLM SDK 오류 코드에 따른 Result 문자열을 리턴한다.
+ @param errcode
+ BLM SDK 정의 오류 코드
+ @param rcode
+ 에러가발생한 기능코드
+ @param msg
+ BLM SDK 정의 오류 코드
+ @return
+ 성공 : error result string
+ 실패 : 로직 오류
+ */
+
+- (NSString*)getErrorReturnString:(NSInteger)errcode
+ reasonCode:(NSInteger)rcode
+ errMsg:(NSString *)msg
+{
+
+ NSString *retString = [[NSString alloc] initWithFormat:
+ @"{\"reason\":%ld, \"errorcode\":\"%ld\", \"errormsg\":\"%@\"}",
+ (long)rcode, (long)errcode, msg];
+ return retString;
+}
+
+- (void)sendMessage:(int)cd withMsg:(NSObject *)m
+{
+ NSMutableDictionary *mdic = [[NSMutableDictionary alloc] init];
+ @try {
+ [mdic setObject:[NSNumber numberWithInt:cd] forKey:@"code"];
+ [mdic setObject:m forKey:@"message"];
+ } @catch(NSException *e) {
+ //e.printStackTrace();
+ }
+ [self send:cd withMsg:mdic];
+}
+
+- (void)send:(int)reason1 withMsg:(NSObject *)retval
+{
+ @try
+ {
+ NSMutableDictionary *mdic = [[NSMutableDictionary alloc] init];
+ [mdic setObject:[NSNumber numberWithInt:reason1] forKey:REASON];
+ if(retval == nil) retval = [NSNull null];
+ [mdic setObject:retval forKey:RETVAL];
+ [mdic setObject:self.mSerivceId forKey:SVCID];
+
+ NSData *data = [NSJSONSerialization dataWithJSONObject:mdic options:NSJSONWritingPrettyPrinted error:nil];
+ NSString *jsonStr = [[NSString alloc] initWithData:data
+ encoding:NSUTF8StringEncoding];
+
+ [self writeEvent:CALL_BACK result:jsonStr];
+ }
+ @catch(NSException *e)
+ {
+ //e.printStackTrace();
+ }
+ @finally
+ {
+ self.mSerivceId = nil;
+ }
+
+}
+
+/*!
+ @function getSuccessReturnString
+ @abstract BLMPrinterIF.m
+ @discussion
+ 성공한 경우 Result 문자열을 리턴한다.
+ @param reason
+ 동작이 성공한 기능코드
+ @return
+ 성공 : success result string
+ 실패 : 로직 오류
+ */
+- (NSString*)getSuccessReturnString:(NSInteger)reason
+{
+ return [self getSuccessReturnString:reason retVal:@""];
+}
+/*!
+ @function getSuccessReturnString
+ @abstract BLMPrinterIF.m
+ @discussion
+ 성공한 경우 Result 문자열을 리턴한다.
+ @param reason
+ 동작이 성공한 기능코드
+ @param arg
+ 리턴값
+ @return
+ 성공 : success result string
+ 실패 : 로직 오류
+ */
+- (NSString *)getSuccessReturnString:(NSInteger)reason retValobj:(NSObject *)arg
+{
+ if(arg == nil) arg = @"\"\"";
+ //arg = [arg stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
+ //NSString * retString = [[NSString alloc] initWithFormat:@"{\"reason\":%ld, \"returnvalue\":\"%@\"}", (long)reason, arg];
+
+ NSMutableDictionary *mdic = [[NSMutableDictionary alloc] init];
+ //[mdic set]
+ [mdic setObject:[NSNumber numberWithInt:reason] forKey:@"reason"];
+ [mdic setObject:arg forKey:@"returnvalue"];
+
+ NSData *data = [NSJSONSerialization dataWithJSONObject:mdic options:NSJSONWritingPrettyPrinted error:nil];
+ NSString *jsonStr = [[NSString alloc] initWithData:data
+ encoding:NSUTF8StringEncoding];
+ return jsonStr;
+}
+
+- (NSString *)getSuccessReturnString:(NSInteger)reason retVal:(NSString *)arg
+{
+ if(arg == nil) arg = @"\"\"";
+ //arg = [arg stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
+ NSString * retString = [[NSString alloc] initWithFormat:@"{\"reason\":%ld, \"returnvalue\":\"%@\"}", (long)reason, arg];
+
+ //NSMutableDictionary *mdic = [[NSMutableDictionary alloc] init];
+ //[mdic set]
+ //[mdic setObject:[NSNumber numberWithInt:reason] forKey:@"reason"];
+ //[mdic setValue:arg forKey:@"returnvalue"];
+ //NSString *ret = [FSPJSONUtil makeToString:mdic];
+ //NSLog(@"---->%@", ret);
+ //return ret;
+ return retString;
+}
+
+@end
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/SafariViewControllerPlugin.h b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/SafariViewControllerPlugin.h
new file mode 100644
index 0000000..c7d7028
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/SafariViewControllerPlugin.h
@@ -0,0 +1,16 @@
+
+#ifndef SafariViewControllerPlugin_h
+#define SafariViewControllerPlugin_h
+
+#import
+
+#import "PluginCommon.h"
+
+// SafariViewController로 만들어진 브라우저
+//
+
+@interface SafariViewControllerPlugin : PluginCommon
+
+@end
+
+#endif /* SafariViewControllerPlugin_h */
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/SafariViewControllerPlugin.m b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/SafariViewControllerPlugin.m
new file mode 100644
index 0000000..b5cf92a
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/SamplePlugin/SafariViewControllerPlugin.m
@@ -0,0 +1,58 @@
+
+#import "SafariViewControllerPlugin.h"
+
+#import
+#import
+#import
+
+#import "AppDelegate.h"
+
+@implementation SafariViewControllerPlugin
+
+- (void)callMethod:(NSString *)lid withDict:(NSMutableDictionary *)options
+{
+ [self printArgs:[NSString stringWithUTF8String:__func__] arg:options];
+
+ self.nID = [lid integerValue];
+ self.mSerivceId = [options strValueForKey:@"serviceid"];
+
+ NSDictionary *dic = [options dicValueForKey:@"param"];
+
+ if ([self.mSerivceId isEqualToString:@"show"]) {
+ NSString *startUrl = [dic strValueForKey:@"starturl"];
+ NSURL *url = [NSURL URLWithString:startUrl];
+
+ [self show:url];
+ }
+}
+
+- (void)show:(NSURL *)url
+{
+ UIViewController* viewController = [[UIApplication sharedApplication] keyWindow].rootViewController;
+ while (viewController.presentedViewController) {
+ viewController = viewController.presentedViewController;
+ }
+
+ SFSafariViewController* sfc = [[SFSafariViewController alloc] initWithURL:url];
+ sfc.delegate = self;
+
+ [viewController presentViewController:sfc animated:YES completion:nil];
+}
+
+#pragma mark - SFSafariViewController - SFSafariViewControllerDelegate
+- (void)safariViewController:(SFSafariViewController *)controller didCompleteInitialLoad:(BOOL)didLoadSuccessfully
+{
+ NSLog(@"safariViewController didLoadSuccessfully: %d", didLoadSuccessfully);
+}
+
+- (void)safariViewControllerDidFinish:(SFSafariViewController *)controller
+{
+ [self send:CODE_SUCCES withMsg:@"safariViewController viewDidDisappear."];
+}
+
+- (void)safariViewController:(SFSafariViewController *)controller initialLoadDidRedirectToURL:(NSURL *)URL
+{
+ NSLog(@"safariViewController initialLoadDidRedirectToURL: %@", URL.absoluteString);
+}
+
+@end
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/archive/.keep b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/archive/.keep
new file mode 100644
index 0000000..e69de29
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/data/nexacro_config.xml b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/data/nexacro_config.xml
new file mode 100644
index 0000000..ce7d012
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/data/nexacro_config.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/en.lproj/Localizable.strings b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/en.lproj/Localizable.strings
new file mode 100644
index 0000000..d906af8
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/en.lproj/Localizable.strings
@@ -0,0 +1,27 @@
+/*
+ Localizable.strings
+ Nexacro
+
+ Created by 오 영진 on 12. 12. 3..
+
+*/
+
+"needupdate" = "It is need to update. \r\nIt will start after the update is completed.";
+"force_close" = "Update is Completed.";
+"loadingFail" = "First loading is fail. \r\nPlease restart.";
+"updateFail" = "Update is fail. \r\nPlease restart.";
+"notexist" = "Start file is NOT exist. \r\nPlease restart.";
+"BeingUpdated" = "Being updated.";
+"wantreplace" = "There is a file of the save name. Do you want to replace? ";
+"ok" = "OK";
+"cancel" = "Cancel";
+"alert_title" = "";
+"move" = "Move";
+"upper" = "Upper";
+"filter" = "Filter";
+"home" = "Home";
+"nofilename" = "No File Name.";
+"checkforupdates" = "Check for updates.";
+"installforupdates" = "Install for updates.";
+"downloadingforupdates" = "Downloading for updates.";
+"new_engine_available" = "Engine update required.";
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/ja.lproj/Localizable.strings b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/ja.lproj/Localizable.strings
new file mode 100644
index 0000000..c583dc7
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/ja.lproj/Localizable.strings
@@ -0,0 +1,27 @@
+/*
+ Localizable.strings
+ Nexacro
+
+ Created by 오 영진 on 12. 12. 3..
+
+*/
+
+"needupdate" = "アップデートがあります。\r\n完了した後に始まります。";
+"force_close" = "アップデートが完了しました。";
+"loadingFail" = "初期ロードに失敗しました。\r\n再起動してください。";
+"updateFail" ="アップデートが失敗しました。\r\n再起動してください。";
+"notexist" = "起動ファイルがありません。\r\n再起動してください。";
+"BeingUpdated" = "アップデート中です。";
+"wantreplace" = "同一のファイル名があります。上書きしますか?";
+"ok" = "確認";
+"cancel" = "キャンセル";
+"alert_title" = "";
+"move" = "移動";
+"upper" = "上位";
+"filter" = "フィルター";
+"home" = "ホーム";
+"nofilename" = "ファイル名がありません。";
+"checkforupdates" = "アップデート確認中です。";
+"installforupdates" = "アップデート設置中です。";
+"downloadingforupdates" = "アップデートダウン中です。";
+"new_engine_available" = "新規バージョンがご利用になれます。";
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/ko.lproj/Localizable.strings b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/ko.lproj/Localizable.strings
new file mode 100644
index 0000000..d351cc3
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/ko.lproj/Localizable.strings
@@ -0,0 +1,27 @@
+/*
+ Localizable.strings
+ Nexacro
+
+ Created by 오 영진 on 12. 12. 3..
+
+*/
+
+"needupdate" = "업데이트가 있습니다. \r\n업데이트 완료 후 시작됩니다.";
+"force_close" = "업데이트 되었습니다.";
+"loadingFail" = "초기 로딩이 실패하였습니다. \r\n재시작 해 주세요.";
+"updateFail" = "업데이트가 실패하였습니다. \r\n재시작 해 주세요.";
+"notexist" = "구동에 필요한 파일이 없습니다. \r\n재시작 해 주세요.";
+"BeingUpdated" = "업데이트 중입니다.";
+"wantreplace" = "동일한 파일이 이미 존재합니다. 바꾸시겠습니까?";
+"ok" = "확인";
+"cancel" = "취소";
+"alert_title" = "";
+"move" = "이동";
+"upper" = "상위";
+"filter" = "필터";
+"home" = "홈";
+"nofilename" = "파일명이 없습니다.";
+"checkforupdates" = "업데이트 확인 중입니다.";
+"installforupdates" = "업데이트 설치 중입니다.";
+"downloadingforupdates" = "업데이트 다운 중입니다.";
+"new_engine_available" = "새로운 엔진 버전이 있습니다.\r\n업데이트 하십시오.";
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/main.m b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/main.m
new file mode 100644
index 0000000..1bbe05a
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/main.m
@@ -0,0 +1,16 @@
+//
+// main.m
+// nexacro17App
+//
+// Created by 김재환 on 2016. 11. 24..
+// Copyright © 2016년 com.tobesoft. All rights reserved.
+//
+
+#import
+#import "AppDelegate.h"
+
+int main(int argc, char * argv[]) {
+ @autoreleasepool {
+ return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
+ }
+}
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/nexacro17App-Info.plist b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/nexacro17App-Info.plist
new file mode 100644
index 0000000..c0c226c
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/nexacro17App-Info.plist
@@ -0,0 +1,100 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleDisplayName
+ ${PRODUCT_NAME}
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ ${PRODUCT_NAME}
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1
+ LSApplicationCategoryType
+
+ LSRequiresIPhoneOS
+
+ NSAppTransportSecurity
+
+ NSAllowsArbitraryLoads
+
+
+ NSLocationAlwaysUsageDescription
+ Google Map 사용자 위치 서비스에 사용됩니다.
+ NSLocationUsageDescription
+ Google Map 사용자 위치 서비스에 사용됩니다.
+ NSLocationWhenInUseUsageDescription
+ Google Map 사용자 위치 서비스에 사용됩니다.
+ UIBackgroundModes
+
+ UIFileSharingEnabled
+
+ UILaunchStoryboardName
+ Launch Screen
+ UIRequiredDeviceCapabilities
+
+ armv7
+
+ UIStatusBarHidden
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+
+ UIViewControllerBasedStatusBarAppearance
+
+ LSApplicationQueriesSchemes
+
+ ExternalAPITest
+
+ NSCameraUsageDescription
+ 카메라에 접근하기 위해 사용됩니다.
+ NSPhotoLibraryAddUsageDescription
+ 앨범에 접근하기 위해 사용됩니다.
+ NSPhotoLibraryUsageDescription
+ 앨범에 접근하기 위해 사용됩니다.
+ CFBundleURLTypes
+
+
+ CFBundleURLName
+ com.tobesoft.nexacro17App
+ CFBundleURLSchemes
+
+ nexacro17App
+
+
+
+ NSBluetoothAlwaysUsageDescription
+ 블루투스에 접근하기 위해 사용됩니다.
+ NSBluetoothPeripheralUsageDescription
+ 블루투스에 접근하기 위해 사용됩니다.
+ NSRemindersUsageDescription
+ 미리 알림 접근을 위해 사용됩니다.
+ NSContactsUsageDescription
+ 연락처를 조회하고 추가 하는데 사용됩니다.
+ NSMicrophoneUsageDescription
+ 마이크를 통해 소리를 녹음 하는데 사용됩니다.
+ NSCalendarsUsageDescription
+ 일정을 조회 하기 위해 사용됩니다.
+
+
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/nexacro17App-Prefix.pch b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/nexacro17App-Prefix.pch
new file mode 100644
index 0000000..62ed4cc
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/nexacro17App-Prefix.pch
@@ -0,0 +1,14 @@
+//
+// Prefix header for all source files of the 'Nexacro17' target in the 'Nexacro16' project
+//
+
+#import
+
+#ifndef __IPHONE_3_0
+#warning "This project uses features only available in iOS SDK 3.0 and later."
+#endif
+
+#ifdef __OBJC__
+#import
+#import
+#endif
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/nexacro17App.entitlements b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/nexacro17App.entitlements
new file mode 100644
index 0000000..903def2
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/nexacro17App.entitlements
@@ -0,0 +1,8 @@
+
+
+
+
+ aps-environment
+ development
+
+
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/Icon.png b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/Icon.png
new file mode 100644
index 0000000..efdc9a1
Binary files /dev/null and b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/Icon.png differ
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/Icon@2x.png b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/Icon@2x.png
new file mode 100644
index 0000000..ac913cd
Binary files /dev/null and b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/Icon@2x.png differ
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/Launch Screen.storyboard b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/Launch Screen.storyboard
new file mode 100644
index 0000000..1c8a10e
--- /dev/null
+++ b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/Launch Screen.storyboard
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/check.png b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/check.png
new file mode 100644
index 0000000..a744f09
Binary files /dev/null and b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/check.png differ
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/check_o.png b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/check_o.png
new file mode 100644
index 0000000..0c08ff6
Binary files /dev/null and b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/check_o.png differ
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/Default-568h@2x.png b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/Default-568h@2x.png
new file mode 100644
index 0000000..b548b2f
Binary files /dev/null and b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/Default-568h@2x.png differ
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/Default-Portrait@2x~ipad.png b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/Default-Portrait@2x~ipad.png
new file mode 100644
index 0000000..942f5bb
Binary files /dev/null and b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/Default-Portrait@2x~ipad.png differ
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/Default-Portrait~ipad.png b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/Default-Portrait~ipad.png
new file mode 100644
index 0000000..942f5bb
Binary files /dev/null and b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/Default-Portrait~ipad.png differ
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/splashimage_pad_landscape.png b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/splashimage_pad_landscape.png
new file mode 100644
index 0000000..e50ef2d
Binary files /dev/null and b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/splashimage_pad_landscape.png differ
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/splashimage_pad_portrait.png b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/splashimage_pad_portrait.png
new file mode 100644
index 0000000..942f5bb
Binary files /dev/null and b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/splashimage_pad_portrait.png differ
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/splashimage_phone_landscape.png b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/splashimage_phone_landscape.png
new file mode 100644
index 0000000..fba5c06
Binary files /dev/null and b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/splashimage_phone_landscape.png differ
diff --git a/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/splashimage_phone_portrait.png b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/splashimage_phone_portrait.png
new file mode 100644
index 0000000..cb71b13
Binary files /dev/null and b/Nexacro17/iOS/nexacro17_iOS/nexacro17App/res/splashimage/splashimage_phone_portrait.png differ