From 46f155d728ee5e00243d29239c243ec05ecd588c Mon Sep 17 00:00:00 2001
From: Diego Mello <diegolmello@gmail.com>
Date: Wed, 19 Sep 2018 14:08:41 -0300
Subject: [PATCH] [NEW] Use community JSC for Android (#450)

* [NEW] Use community JSC for Android

* Quick fix on unread chats
---
 android/app/build.gradle         |  6 ++++++
 android/build.gradle             |  4 ++++
 app/views/RoomsListView/index.js |  6 +++++-
 index.android.js                 |  3 ---
 package-lock.json                | 31 +++++--------------------------
 package.json                     |  3 +--
 6 files changed, 21 insertions(+), 32 deletions(-)

diff --git a/android/app/build.gradle b/android/app/build.gradle
index cca2263c3..645ad4420 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -183,6 +183,12 @@ repositories {
   maven { url 'https://maven.fabric.io/public' }
 }
 
+configurations.all {
+    resolutionStrategy {
+        force 'org.webkit:android-jsc:r224109'
+    }
+}
+
 dependencies {
     implementation project(':react-native-device-info')
     implementation project(':react-native-gesture-handler')
diff --git a/android/build.gradle b/android/build.gradle
index d0f31d427..0df678373 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -30,6 +30,10 @@ allprojects {
             // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
             url "$rootDir/../node_modules/react-native/android"
         }
+        maven {
+            // Local Maven repo containing AARs with JSC library built for Android
+            url "$rootDir/../node_modules/jsc-android/dist"
+        }
     }
 }
 
diff --git a/app/views/RoomsListView/index.js b/app/views/RoomsListView/index.js
index 5f5265907..e1204edb8 100644
--- a/app/views/RoomsListView/index.js
+++ b/app/views/RoomsListView/index.js
@@ -241,7 +241,11 @@ export default class RoomsListView extends LoggedView {
 				this.removeListener(this.chats);
 			} else {
 				// chats
-				this.chats = this.data.filtered('(unread == 0 && alert == false)');
+				if (this.props.showUnread) {
+					this.chats = this.data.filtered('(unread == 0 && alert == false)');
+				} else {
+					this.chats = this.data;
+				}
 				chats = this.chats.slice();
 				setTimeout(() => {
 					this.chats.addListener(() => this.setState({ chats: this.chats.slice() }));
diff --git a/index.android.js b/index.android.js
index 954c96016..07233ffda 100644
--- a/index.android.js
+++ b/index.android.js
@@ -1,6 +1,3 @@
-import '@babel/polyfill';
-import 'regenerator-runtime/runtime';
-
 import './app/ReactotronConfig';
 import './app/push';
 import App from './app/index';
diff --git a/package-lock.json b/package-lock.json
index 3b171b504..dc7687e15 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -780,27 +780,6 @@
         }
       }
     },
-    "@babel/polyfill": {
-      "version": "7.0.0-beta.47",
-      "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.0.0-beta.47.tgz",
-      "integrity": "sha512-jDKBjX1K/fUNrPGo3wDKEWIXDHZEgpsKTRo3B4Ox5cq5Hxcp219ez/oGofDjNMUJAUI+gfsQfRarMkC5f3uiYw==",
-      "requires": {
-        "core-js": "^2.5.3",
-        "regenerator-runtime": "^0.11.1"
-      },
-      "dependencies": {
-        "core-js": {
-          "version": "2.5.7",
-          "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
-          "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw=="
-        },
-        "regenerator-runtime": {
-          "version": "0.11.1",
-          "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
-          "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
-        }
-      }
-    },
     "@babel/register": {
       "version": "7.0.0-beta.47",
       "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.0.0-beta.47.tgz",
@@ -11451,6 +11430,11 @@
       "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
       "optional": true
     },
+    "jsc-android": {
+      "version": "224109.1.0",
+      "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-224109.1.0.tgz",
+      "integrity": "sha512-mhALFynePc/wJsUt9BJuH13mSK/dGWtBO/pcYwVV1I0A7iduyqy3fSoAt1b0yI+/B3TzlGyue/gqjPxsqG1HRQ=="
+    },
     "jsdom": {
       "version": "11.12.0",
       "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz",
@@ -16670,11 +16654,6 @@
         }
       }
     },
-    "regenerator-runtime": {
-      "version": "0.12.1",
-      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz",
-      "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg=="
-    },
     "regenerator-transform": {
       "version": "0.10.1",
       "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
diff --git a/package.json b/package.json
index a7c2475d2..a9f9470c8 100644
--- a/package.json
+++ b/package.json
@@ -23,7 +23,6 @@
     ]
   },
   "dependencies": {
-    "@babel/polyfill": "^7.0.0-beta.47",
     "@remobile/react-native-toast": "^1.0.7",
     "@storybook/addons": "^3.4.10",
     "@storybook/react-native": "^3.4.10",
@@ -31,6 +30,7 @@
     "ejson": "^2.1.2",
     "js-base64": "^2.4.8",
     "js-sha256": "^0.9.0",
+    "jsc-android": "^224109.1.0",
     "lodash": "^4.17.10",
     "markdown-it-flowdock": "^0.3.7",
     "moment": "^2.22.2",
@@ -75,7 +75,6 @@
     "redux-enhancer-react-native-appstate": "^0.3.1",
     "redux-immutable-state-invariant": "^2.1.0",
     "redux-saga": "^0.16.0",
-    "regenerator-runtime": "^0.12.1",
     "rn-fetch-blob": "^0.10.12",
     "snyk": "^1.90.0",
     "strip-ansi": "^4.0.0"
-- 
GitLab