From d9c581ffacb245b113385c9ea18dd9ed0fc6b24d Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Fri, 13 Jul 2018 14:26:10 +0100 Subject: [PATCH 01/45] Update README.md --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 8ac053b..0375e2b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,12 @@ +# Package Deprecated + +React should now give you the dimensions you need correctly. +https://github.com/facebook/react-native/commit/228a1fe7d48d57a0fbb2d852135ef94247198aaa + + + + + ## ExtraDimensions This module allows you to access additional display metrics on Android devices. (RN 0.47.0+) From 57d1eba2485cd9fdf8cc35e23bf5249100809d8f Mon Sep 17 00:00:00 2001 From: Carlos Q Date: Thu, 19 Jul 2018 19:31:05 +0200 Subject: [PATCH 02/45] Use project-wide properties and new dependency * Support for gradle 3.+ * Support for RN 0.56.+ --- android/build.gradle | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 361ce62..09645e6 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,12 +1,17 @@ apply plugin: 'com.android.library' +def DEFAULT_COMPILE_SDK_VERSION = 26 +def DEFAULT_BUILD_TOOLS_VERSION = "26.0.3" +def DEFAULT_TARGET_SDK_VERSION = 26 +def DEFAULT_MIN_SDK_VERSION = 16 + android { - compileSdkVersion 23 - buildToolsVersion "23.0.1" + compileSdkVersion rootProject.hasProperty('compileSdkVersion') ? rootProject.compileSdkVersion : DEFAULT_COMPILE_SDK_VERSION + buildToolsVersion rootProject.hasProperty('buildToolsVersion') ? rootProject.buildToolsVersion : DEFAULT_BUILD_TOOLS_VERSION - defaultConfig { - minSdkVersion 16 - targetSdkVersion 22 + defaultConfig { + minSdkVersion rootProject.hasProperty('minSdkVersion') ? rootProject.minSdkVersion : DEFAULT_MIN_SDK_VERSION + targetSdkVersion rootProject.hasProperty('targetSdkVersion') ? rootProject.targetSdkVersion : DEFAULT_TARGET_SDK_VERSION versionCode 1 versionName "1.0" ndk { @@ -16,5 +21,5 @@ android { } dependencies { - compile 'com.facebook.react:react-native:+' + implementation 'com.facebook.react:react-native:+' } From 93afb3a82b9f42b1da134eeb0c9e5cf9d8540905 Mon Sep 17 00:00:00 2001 From: Carlos Q Date: Fri, 20 Jul 2018 00:22:57 +0200 Subject: [PATCH 03/45] Refactor --- android/build.gradle | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 09645e6..1527cc0 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,3 +1,7 @@ +def safeExtGet(prop, fallback) { + rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback +} + apply plugin: 'com.android.library' def DEFAULT_COMPILE_SDK_VERSION = 26 @@ -6,12 +10,12 @@ def DEFAULT_TARGET_SDK_VERSION = 26 def DEFAULT_MIN_SDK_VERSION = 16 android { - compileSdkVersion rootProject.hasProperty('compileSdkVersion') ? rootProject.compileSdkVersion : DEFAULT_COMPILE_SDK_VERSION - buildToolsVersion rootProject.hasProperty('buildToolsVersion') ? rootProject.buildToolsVersion : DEFAULT_BUILD_TOOLS_VERSION + compileSdkVersion safeExtGet('compileSdkVersion', 26) + buildToolsVersion safeExtGet('buildToolsVersion', '26.0.3') defaultConfig { - minSdkVersion rootProject.hasProperty('minSdkVersion') ? rootProject.minSdkVersion : DEFAULT_MIN_SDK_VERSION - targetSdkVersion rootProject.hasProperty('targetSdkVersion') ? rootProject.targetSdkVersion : DEFAULT_TARGET_SDK_VERSION + minSdkVersion safeExtGet('minSdkVersion', 16) + targetSdkVersion safeExtGet('targetSdkVersion', 26) versionCode 1 versionName "1.0" ndk { From 089d3db8ffa0f1fb67ab02f83257f634afbc35cf Mon Sep 17 00:00:00 2001 From: Carlos Q Date: Fri, 20 Jul 2018 00:23:36 +0200 Subject: [PATCH 04/45] Refactor --- android/build.gradle | 5 ----- 1 file changed, 5 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 1527cc0..3bcc9f3 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -4,11 +4,6 @@ def safeExtGet(prop, fallback) { apply plugin: 'com.android.library' -def DEFAULT_COMPILE_SDK_VERSION = 26 -def DEFAULT_BUILD_TOOLS_VERSION = "26.0.3" -def DEFAULT_TARGET_SDK_VERSION = 26 -def DEFAULT_MIN_SDK_VERSION = 16 - android { compileSdkVersion safeExtGet('compileSdkVersion', 26) buildToolsVersion safeExtGet('buildToolsVersion', '26.0.3') From 9615b20c1619deb97a8bd86d09d4061d7fa4824d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sondre=20M=C3=A6re=20Overskaug?= Date: Mon, 8 Oct 2018 12:11:20 +0200 Subject: [PATCH 05/45] fix: support react-native 0.57 RN 0.57 requires gradle 3, which in turn requires certain build tools and sdk versions --- android/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 361ce62..102983e 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,12 +1,12 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 23 - buildToolsVersion "23.0.1" + compileSdkVersion 27 + buildToolsVersion "27.0.3" defaultConfig { minSdkVersion 16 - targetSdkVersion 22 + targetSdkVersion 26 versionCode 1 versionName "1.0" ndk { From acf4d5a2efb5a7105817252fe8729b5be2bea8e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sondre=20M=C3=A6re=20Overskaug?= Date: Mon, 8 Oct 2018 12:11:49 +0200 Subject: [PATCH 06/45] chore: release 0.22.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8b7e6a2..bc1fee7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-extra-dimensions-android", - "version": "0.21.0", + "version": "0.22.0", "description": "Access additional display metrics on Android devices: status bar height, soft menu bar height, real screen size.", "main": "index.js", "repository": { From c008d1b30bb8036450c138be651a328e4248d572 Mon Sep 17 00:00:00 2001 From: Youngsu Han Date: Fri, 12 Oct 2018 03:39:12 +0900 Subject: [PATCH 07/45] update README.md (#37) * Update README.md --- README.md | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 0375e2b..11823a6 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,3 @@ -# Package Deprecated - -React should now give you the dimensions you need correctly. -https://github.com/facebook/react-native/commit/228a1fe7d48d57a0fbb2d852135ef94247198aaa - - - - ## ExtraDimensions @@ -32,10 +24,10 @@ view needs to fill up the real screen size. npm install react-native-extra-dimensions-android --save ``` -2. link using rnpm +2. linking ``` - rnpm link react-native-extra-dimensions-android + react-native link react-native-extra-dimensions-android ``` 3. You may have to register the module (in android/app/src/main/java/com/YOUR-PROJECT-NAME/MainApplication.java) From 8a1aa1451c16ee24d58186117dadf24c19cb0001 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Tue, 30 Oct 2018 20:48:55 +0000 Subject: [PATCH 08/45] Update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8b7e6a2..bc1fee7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-extra-dimensions-android", - "version": "0.21.0", + "version": "0.22.0", "description": "Access additional display metrics on Android devices: status bar height, soft menu bar height, real screen size.", "main": "index.js", "repository": { From 88a1160435b014a4790dacfbb826e91b9a0bb7c7 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Mon, 12 Nov 2018 17:21:37 +0000 Subject: [PATCH 09/45] Update README.md on how to link package with RN (#38) * Update README.md * Update README.md From 0985a9df925ebfa5c54de5bcde7476137341327a Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Thu, 20 Dec 2018 08:36:54 +0000 Subject: [PATCH 10/45] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 11823a6..a36f64d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ +### Notice +Pull requests always welcome! + ## ExtraDimensions This module allows you to access additional display metrics on Android devices. (RN 0.47.0+) From 2af954f8006aa82e15b5cbe7ad90579915939bfa Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Thu, 20 Dec 2018 08:45:12 +0000 Subject: [PATCH 11/45] 1.0.0 --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index bc1fee7..09cb767 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-extra-dimensions-android", - "version": "0.22.0", + "version": "1.0.0", "description": "Access additional display metrics on Android devices: status bar height, soft menu bar height, real screen size.", "main": "index.js", "repository": { @@ -19,9 +19,9 @@ "android" ], "rnpm": { - "android": { - "packageInstance": "new ExtraDimensionsPackage()" - } + "android": { + "packageInstance": "new ExtraDimensionsPackage()" + } }, "author": "Jack Hsu (http://jaysoo.ca/)", "license": "ISC" From 057777b8597c14e3dd028efd8d8117ede2bd12cf Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Thu, 20 Dec 2018 09:00:35 +0000 Subject: [PATCH 12/45] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a36f64d..69c6d5c 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Pull requests always welcome! ## ExtraDimensions -This module allows you to access additional display metrics on Android devices. (RN 0.47.0+) +This module allows you to access additional display metrics on Android devices. (RN 0.57.0+) - Actual width and height of the screen (including elements such as soft menu bar) - Soft menu height From 7c344b6b4539aeb1ca0ac4f6bdad7313d6b87494 Mon Sep 17 00:00:00 2001 From: Sebastian Trebunak <33039909+sinodko@users.noreply.github.com> Date: Wed, 20 Feb 2019 15:19:29 +0100 Subject: [PATCH 13/45] fix: Build with RN 0.58.4 and android SDK 28 fail (#42) * fix react-native 0.58 build error * version bumped up from 1.0.0 to 1.0.1 --- android/build.gradle | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 31886fc..22945d3 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -5,12 +5,12 @@ def safeExtGet(prop, fallback) { apply plugin: 'com.android.library' android { - compileSdkVersion 27 - buildToolsVersion "27.0.3" + compileSdkVersion rootProject.ext.compileSdkVersion + buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { - minSdkVersion 16 - targetSdkVersion 26 + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 versionName "1.0" ndk { diff --git a/package.json b/package.json index 09cb767..8e09bb8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-extra-dimensions-android", - "version": "1.0.0", + "version": "1.0.1", "description": "Access additional display metrics on Android devices: status bar height, soft menu bar height, real screen size.", "main": "index.js", "repository": { From 9c6cdfdaec879feb45ca8308a192e68cbf803e0a Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Thu, 21 Feb 2019 14:36:11 +0000 Subject: [PATCH 14/45] Exlude android/build files --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9ad9872..1855297 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,5 @@ lib/ node_modules/ npm-debug.log .idea/ - +android/build *.iml From 3e642c6be9d10aadeff7710a499560fc6d245e9e Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Thu, 21 Feb 2019 15:20:21 +0000 Subject: [PATCH 15/45] Checks for hardware buttons if hardware buttons are enabled (and software are disabled) return 0 instead of still returning the height of the software menu buttons --- .../ca/jaysoo/extradimensions/ExtraDimensionsModule.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java b/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java index 0f9fc03..618d406 100644 --- a/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java +++ b/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java @@ -10,6 +10,7 @@ import android.provider.Settings; import android.content.res.Resources; import android.view.WindowManager; +import android.view.ViewConfiguration; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.LifecycleEventListener; @@ -82,6 +83,11 @@ public Map getConstants() { return constants; } + private boolean hasPermanentMenuKey() { + final Context ctx = getReactApplicationContext(); + return ViewConfiguration.get(ctx).hasPermanentMenuKey(); + } + private float getStatusBarHeight(DisplayMetrics metrics) { final Context ctx = getReactApplicationContext(); final int heightResId = ctx.getResources().getIdentifier("status_bar_height", "dimen", "android"); @@ -92,6 +98,9 @@ private float getStatusBarHeight(DisplayMetrics metrics) { } private float getSoftMenuBarHeight(DisplayMetrics metrics) { + if(hasPermanentMenuKey()) { + return 0; + } final float realHeight = getRealHeight(metrics); final Context ctx = getReactApplicationContext(); final DisplayMetrics usableMetrics = ctx.getResources().getDisplayMetrics(); From e87e79df27a41d41f56a6d2f9aad5cec2f35f9b5 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Thu, 21 Feb 2019 15:22:25 +0000 Subject: [PATCH 16/45] Convert floats to int --- index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 9184c7c..ef65361 100644 --- a/index.js +++ b/index.js @@ -4,7 +4,9 @@ var { NativeModules, Platform } = require('react-native'); if (Platform.OS === 'android') { module.exports = { get(dim) { - return NativeModules.ExtraDimensions[dim]; + const result = NativeModules.ExtraDimensions[dim]; + // If rounding down is ODD, round up. If rounding down is EVEN, round down. + return Math.floor(result) % 2 ? Math.ceil(result) : Math.floor(result); } }; } else { From 229411acdf4347560ab42e77693da2db6d0ac4f4 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Thu, 21 Feb 2019 15:23:19 +0000 Subject: [PATCH 17/45] added SOFT_MENU_BAR_ENABLED const --- .../java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java | 2 ++ index.js | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java b/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java index 618d406..cce4155 100644 --- a/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java +++ b/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java @@ -79,6 +79,7 @@ public Map getConstants() { constants.put("STATUS_BAR_HEIGHT", getStatusBarHeight(metrics)); constants.put("SOFT_MENU_BAR_HEIGHT", getSoftMenuBarHeight(metrics)); constants.put("SMART_BAR_HEIGHT", getSmartBarHeight(metrics)); + constants.put("SOFT_MENU_BAR_ENABLED", hasPermanentMenuKey()); return constants; } @@ -105,6 +106,7 @@ private float getSoftMenuBarHeight(DisplayMetrics metrics) { final Context ctx = getReactApplicationContext(); final DisplayMetrics usableMetrics = ctx.getResources().getDisplayMetrics(); + // Passing getMetrics will update the value of the Object DisplayMetrics metrics ((WindowManager) mReactContext.getSystemService(Context.WINDOW_SERVICE)) .getDefaultDisplay().getMetrics(metrics); final int usableHeight = usableMetrics.heightPixels; diff --git a/index.js b/index.js index ef65361..3fdb662 100644 --- a/index.js +++ b/index.js @@ -5,6 +5,10 @@ if (Platform.OS === 'android') { module.exports = { get(dim) { const result = NativeModules.ExtraDimensions[dim]; + + if(typeof result !== 'number') { + return result; + } // If rounding down is ODD, round up. If rounding down is EVEN, round down. return Math.floor(result) % 2 ? Math.ceil(result) : Math.floor(result); } From 2c2d2ff00f2eb617c98cfc21589e0fb696f10729 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Thu, 21 Feb 2019 15:23:33 +0000 Subject: [PATCH 18/45] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8e09bb8..605656c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-extra-dimensions-android", - "version": "1.0.1", + "version": "1.1.1", "description": "Access additional display metrics on Android devices: status bar height, soft menu bar height, real screen size.", "main": "index.js", "repository": { From 7aed11e4c6aeb678082894a3c83172eaf6b20fe3 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Thu, 21 Feb 2019 15:27:06 +0000 Subject: [PATCH 19/45] Better instructions --- README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 69c6d5c..4eb0c68 100644 --- a/README.md +++ b/README.md @@ -33,8 +33,8 @@ view needs to fill up the real screen size. react-native link react-native-extra-dimensions-android ``` -3. You may have to register the module (in android/app/src/main/java/com/YOUR-PROJECT-NAME/MainApplication.java) - +2b. You may have to register the module (in android/app/src/main/java/com/YOUR-PROJECT-NAME/MainApplication.java) +`react-native link` should automatically do the following for you. If it doesn't, you might have to add it yourself. ``` import ca.jaysoo.extradimensions.ExtraDimensionsPackage; // <--- import @@ -50,7 +50,10 @@ view needs to fill up the real screen size. ...... } ``` - +3. As this is a package with Java, you'll need to rebuild the project. + +e.g. `react-native run-android` + 4. Whenever you want to use it within React Native code now you can: `var ExtraDimensions = require('react-native-extra-dimensions-android');` From 54ffd5e25a918e034ab49f38f703017b416481f6 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Thu, 21 Feb 2019 15:30:52 +0000 Subject: [PATCH 20/45] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 605656c..5e4354b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-extra-dimensions-android", - "version": "1.1.1", + "version": "1.1.0", "description": "Access additional display metrics on Android devices: status bar height, soft menu bar height, real screen size.", "main": "index.js", "repository": { From 962479bbbfedf437c864c3d3ad3fb36b4e5c7ad9 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Thu, 21 Feb 2019 15:41:46 +0000 Subject: [PATCH 21/45] try catch if project hasn't been rebuilt --- index.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 3fdb662..7266437 100644 --- a/index.js +++ b/index.js @@ -4,8 +4,14 @@ var { NativeModules, Platform } = require('react-native'); if (Platform.OS === 'android') { module.exports = { get(dim) { - const result = NativeModules.ExtraDimensions[dim]; - + try { + if(!NativeModules.hasOwnProperty('ExtraDimensions')) { + throw "ExtraDimensions not defined. Try rebuilding your project. e.g. react-native run-android" + } + const result = NativeModules.ExtraDimensions[dim]; + } catch (e) { + console.error(e) + } if(typeof result !== 'number') { return result; } From bd4f398b86656f3f8c430d49186e14154e9d28cd Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Thu, 21 Feb 2019 15:42:00 +0000 Subject: [PATCH 22/45] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5e4354b..605656c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-extra-dimensions-android", - "version": "1.1.0", + "version": "1.1.1", "description": "Access additional display metrics on Android devices: status bar height, soft menu bar height, real screen size.", "main": "index.js", "repository": { From 7a0895087da305179f5d69a613415e72fa2db1d7 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Thu, 21 Feb 2019 17:26:36 +0000 Subject: [PATCH 23/45] IMPORTANT FIX --- index.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/index.js b/index.js index 7266437..98d97aa 100644 --- a/index.js +++ b/index.js @@ -5,18 +5,19 @@ if (Platform.OS === 'android') { module.exports = { get(dim) { try { - if(!NativeModules.hasOwnProperty('ExtraDimensions')) { + if(!NativeModules.ExtraDimensions) { throw "ExtraDimensions not defined. Try rebuilding your project. e.g. react-native run-android" } const result = NativeModules.ExtraDimensions[dim]; + + if(typeof result !== 'number') { + return result; + } + // If rounding down is ODD, round up. If rounding down is EVEN, round down. + return Math.floor(result) % 2 ? Math.ceil(result) : Math.floor(result); } catch (e) { console.error(e) } - if(typeof result !== 'number') { - return result; - } - // If rounding down is ODD, round up. If rounding down is EVEN, round down. - return Math.floor(result) % 2 ? Math.ceil(result) : Math.floor(result); } }; } else { From f9ae500a62d1a549aa984e67c025f9644500f8d7 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Thu, 21 Feb 2019 17:26:58 +0000 Subject: [PATCH 24/45] Update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 605656c..26dc051 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-extra-dimensions-android", - "version": "1.1.1", + "version": "1.1.2", "description": "Access additional display metrics on Android devices: status bar height, soft menu bar height, real screen size.", "main": "index.js", "repository": { From a690cbf56eac957ec805d398e047f203c297a323 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Mon, 25 Feb 2019 08:22:07 +0000 Subject: [PATCH 25/45] Tidy up --- .../ExtraDimensionsModule.java | 27 ++++++++----------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java b/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java index cce4155..dbb47cd 100644 --- a/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java +++ b/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java @@ -130,24 +130,19 @@ private float getSmartBarHeight(DisplayMetrics metrics) { final boolean autoHideSmartBar = Settings.System.getInt(context.getContentResolver(), "mz_smartbar_auto_hide", 0) == 1; - if (isMeiZu) { - if (autoHideSmartBar) { - return 0; - } else { - try { - Class c = Class.forName("com.android.internal.R$dimen"); - Object obj = c.newInstance(); - Field field = c.getField("mz_action_button_min_height"); - int height = Integer.parseInt(field.get(obj).toString()); - return context.getResources().getDimensionPixelSize(height) / metrics.density; - } catch (Throwable e) { // 不自动隐藏smartbar同时又没有smartbar高度字段供访问,取系统navigationbar的高度 - return getNormalNavigationBarHeight(context) / metrics.density; - } - } - } else { + if (!isMeiZu || autoHideSmartBar) { return 0; - //return getNormalNavigationBarHeight(context) / metrics.density; } + try { + Class c = Class.forName("com.android.internal.R$dimen"); + Object obj = c.newInstance(); + Field field = c.getField("mz_action_button_min_height"); + int height = Integer.parseInt(field.get(obj).toString()); + return context.getResources().getDimensionPixelSize(height) / metrics.density; + } catch (Throwable e) { // 不自动隐藏smartbar同时又没有smartbar高度字段供访问,取系统navigationbar的高度 + return getNormalNavigationBarHeight(context) / metrics.density; + } + //return getNormalNavigationBarHeight(context) / metrics.density; } protected static float getNormalNavigationBarHeight(final Context ctx) { From bfa058f8f859a6e60b70eada6f00d5e1ff6b9996 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Mon, 25 Feb 2019 08:31:14 +0000 Subject: [PATCH 26/45] Revert Auto-Rounding feature. The result of display calculations may come back as floats. This is okay. They're calculations based on dpi and height/width, not actual pixel counts --- index.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/index.js b/index.js index 98d97aa..ff42f1d 100644 --- a/index.js +++ b/index.js @@ -13,8 +13,7 @@ if (Platform.OS === 'android') { if(typeof result !== 'number') { return result; } - // If rounding down is ODD, round up. If rounding down is EVEN, round down. - return Math.floor(result) % 2 ? Math.ceil(result) : Math.floor(result); + return result; } catch (e) { console.error(e) } From be42fd056be46e5af5f34c032caaddc4913fdf94 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Mon, 25 Feb 2019 08:31:34 +0000 Subject: [PATCH 27/45] Add semi-colons --- index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index ff42f1d..7a3113f 100644 --- a/index.js +++ b/index.js @@ -6,7 +6,7 @@ if (Platform.OS === 'android') { get(dim) { try { if(!NativeModules.ExtraDimensions) { - throw "ExtraDimensions not defined. Try rebuilding your project. e.g. react-native run-android" + throw "ExtraDimensions not defined. Try rebuilding your project. e.g. react-native run-android"; } const result = NativeModules.ExtraDimensions[dim]; @@ -15,7 +15,7 @@ if (Platform.OS === 'android') { } return result; } catch (e) { - console.error(e) + console.error(e); } } }; From 58f2b85604c59880d50dff79011022ed4f2bc248 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Mon, 25 Feb 2019 08:32:31 +0000 Subject: [PATCH 28/45] Make constants accessible through funcs Each constant is not accessible through a function. This should make autocomplete within IDE's much easier --- index.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/index.js b/index.js index 7a3113f..d2c065f 100644 --- a/index.js +++ b/index.js @@ -17,6 +17,24 @@ if (Platform.OS === 'android') { } catch (e) { console.error(e); } + }, + getRealWidthHeight() { + return this.get('REAL_WINDOW_HEIGHT'); + }, + getRealWindowWidth() { + return this.get('REAL_WIDTH_WIDTH'); + }, + getStatusBarHeight() { + return this.get('STATUS_BAR_HEIGHT'); + }, + getSoftMenuBarHeight() { + return this.get('SOFT_MENU_BAR_HEIGHT'); + }, + getSmartBarHeight() { + return this.get('SMART_BAR_HEIGHT'); + }, + isSoftMenuBarEnabled() { + return this.get('SOFT_MENU_BAR_ENABLED'); } }; } else { From a199cc3584a3d652e94b3fe4219b3dd27ac495a6 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Mon, 25 Feb 2019 08:32:59 +0000 Subject: [PATCH 29/45] v1.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 26dc051..6d226b4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-extra-dimensions-android", - "version": "1.1.2", + "version": "1.2", "description": "Access additional display metrics on Android devices: status bar height, soft menu bar height, real screen size.", "main": "index.js", "repository": { From 6048ecba4453215e9524ba769d28f1cc49e8c355 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Mon, 25 Feb 2019 10:47:34 +0000 Subject: [PATCH 30/45] Update README.md --- README.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 4eb0c68..eda18b6 100644 --- a/README.md +++ b/README.md @@ -68,12 +68,21 @@ Or, if you are using ES6 ### API -There is only one method `get(dimension: string)` that takes in a dimension name, and returns its value as a `number`. +`ExtraDimensions.get(dimension: string)` that takes in a dimension name, and returns its value as a `number`. Supported dimensions are: -- `REAL_WINDOW_HEIGHT` - Actual height of screen including system decor elements -- `REAL_WINDOW_WIDTH` - Actual width of screen including system decor elements -- `STATUS_BAR_HEIGHT` - Height of the status bar +- `REAL_WINDOW_HEIGHT` - Actual height of screen including system decor elements +- `REAL_WINDOW_WIDTH` - Actual width of screen including system decor elements +- `STATUS_BAR_HEIGHT` - Height of the status bar - `SOFT_MENU_BAR_HEIGHT` - Height of the soft menu bar (supported on most new Android devices) -- `SMART_BAR_HEIGHT` - Height of the MeiZu's device smart bar +- `SMART_BAR_HEIGHT` - Height of the MeiZu's device smart bar + +Alternatively, there are methods for each constant, to fulfill autocomplete in your IDE + +`ExtraDimensions.getRealWidthHeight()` +`ExtraDimensions.getRealWindowWidth()` +`ExtraDimensions.getStatusBarHeight()` +`ExtraDimensions.getSoftMenuBarHeight()` +`ExtraDimensions.getSmartBarHeight()` +`ExtraDimensions.isSoftMenuBarEnabled()` From 72091b912d012fcdbc9aa02e63d7c7a82f393809 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Mon, 25 Feb 2019 13:57:35 +0000 Subject: [PATCH 31/45] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index eda18b6..ae89aad 100644 --- a/README.md +++ b/README.md @@ -81,8 +81,13 @@ Supported dimensions are: Alternatively, there are methods for each constant, to fulfill autocomplete in your IDE `ExtraDimensions.getRealWidthHeight()` + `ExtraDimensions.getRealWindowWidth()` + `ExtraDimensions.getStatusBarHeight()` + `ExtraDimensions.getSoftMenuBarHeight()` + `ExtraDimensions.getSmartBarHeight()` + `ExtraDimensions.isSoftMenuBarEnabled()` From 0d411dfef93f6d45382553552807ffe6d3b8f3a9 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Mon, 25 Feb 2019 14:23:16 +0000 Subject: [PATCH 32/45] Version bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6d226b4..7dd0795 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-extra-dimensions-android", - "version": "1.2", + "version": "1.2.1", "description": "Access additional display metrics on Android devices: status bar height, soft menu bar height, real screen size.", "main": "index.js", "repository": { From ad019bd6d94a9050115840bea8ea3eaeb94c110c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Cort=C3=A9s=20Ross?= Date: Wed, 27 Feb 2019 10:30:57 +0100 Subject: [PATCH 33/45] Fixed some typos in readme and helper functions (#44) --- README.md | 2 +- index.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ae89aad..ab648dc 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ Supported dimensions are: Alternatively, there are methods for each constant, to fulfill autocomplete in your IDE -`ExtraDimensions.getRealWidthHeight()` +`ExtraDimensions.getRealWindowHeight()` `ExtraDimensions.getRealWindowWidth()` diff --git a/index.js b/index.js index d2c065f..daf56af 100644 --- a/index.js +++ b/index.js @@ -18,11 +18,11 @@ if (Platform.OS === 'android') { console.error(e); } }, - getRealWidthHeight() { + getRealWindowHeight() { return this.get('REAL_WINDOW_HEIGHT'); }, getRealWindowWidth() { - return this.get('REAL_WIDTH_WIDTH'); + return this.get('REAL_WINDOW_WIDTH'); }, getStatusBarHeight() { return this.get('STATUS_BAR_HEIGHT'); From 33503f251f378fd621872549d82b124c539b5248 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0rfan=20=C5=9Eener?= <2094635+irfansener@users.noreply.github.com> Date: Mon, 4 Mar 2019 17:50:56 +0300 Subject: [PATCH 34/45] Fixed no has property issue (#48) Appreciate it! --- android/build.gradle | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 22945d3..c470e07 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -4,13 +4,18 @@ def safeExtGet(prop, fallback) { apply plugin: 'com.android.library' +def DEFAULT_COMPILE_SDK_VERSION = 27 +def DEFAULT_BUILD_TOOLS_VERSION = "27.0.3" +def DEFAULT_TARGET_SDK_VERSION = 26 +def DEFAULT_SUPPORT_LIB_VERSION = "27.0.2" + android { - compileSdkVersion rootProject.ext.compileSdkVersion - buildToolsVersion rootProject.ext.buildToolsVersion + compileSdkVersion rootProject.hasProperty('compileSdkVersion') ? rootProject.compileSdkVersion : DEFAULT_COMPILE_SDK_VERSION + buildToolsVersion rootProject.hasProperty('buildToolsVersion') ? rootProject.buildToolsVersion : DEFAULT_BUILD_TOOLS_VERSION defaultConfig { - minSdkVersion rootProject.ext.minSdkVersion - targetSdkVersion rootProject.ext.targetSdkVersion + minSdkVersion 16 + targetSdkVersion rootProject.hasProperty('targetSdkVersion') ? rootProject.targetSdkVersion : DEFAULT_TARGET_SDK_VERSION versionCode 1 versionName "1.0" ndk { From 0d118b7888c228884158efa7c749a9b1867ecfa3 Mon Sep 17 00:00:00 2001 From: "Madd.is" Date: Wed, 20 Mar 2019 19:38:09 +0100 Subject: [PATCH 35/45] switch to module syntax in order to support future tree shaking. (#49) Unifies interface on all platforms Module syntax for potential tree shaking --- index.d.ts | 6 ++++ index.js | 97 ++++++++++++++++++++++++++++++------------------------ 2 files changed, 60 insertions(+), 43 deletions(-) diff --git a/index.d.ts b/index.d.ts index 566b0eb..af4ea1f 100644 --- a/index.d.ts +++ b/index.d.ts @@ -7,6 +7,12 @@ declare type Dimensions = declare interface ExtraDimensions { get: (dim: Dimensions) => number; + getRealWindowHeight: () => number; + getRealWindowWidth: () => number; + getStatusBarHeight: () => number; + getSoftMenuBarHeight: () => number; + getSmartBarHeight: () => number; + isSoftMenuBarEnabled: () => number; } declare module "react-native-extra-dimensions-android" { diff --git a/index.js b/index.js index daf56af..13a5f72 100644 --- a/index.js +++ b/index.js @@ -1,47 +1,58 @@ -const React = require('react'); -var { NativeModules, Platform } = require('react-native'); - -if (Platform.OS === 'android') { - module.exports = { - get(dim) { - try { - if(!NativeModules.ExtraDimensions) { - throw "ExtraDimensions not defined. Try rebuilding your project. e.g. react-native run-android"; - } - const result = NativeModules.ExtraDimensions[dim]; - - if(typeof result !== 'number') { - return result; - } +import { NativeModules, Platform } from 'react-native'; + +export function get(dim) { + if (Platform.OS !== 'android') { + + console.warn('react-native-extra-dimensions-android is only available on Android. Trying to access', dim); + return 0; + } else { // android + try { + if (!NativeModules.ExtraDimensions) { + throw "ExtraDimensions not defined. Try rebuilding your project. e.g. react-native run-android"; + } + const result = NativeModules.ExtraDimensions[dim]; + + if (typeof result !== 'number') { return result; - } catch (e) { - console.error(e); } - }, - getRealWindowHeight() { - return this.get('REAL_WINDOW_HEIGHT'); - }, - getRealWindowWidth() { - return this.get('REAL_WINDOW_WIDTH'); - }, - getStatusBarHeight() { - return this.get('STATUS_BAR_HEIGHT'); - }, - getSoftMenuBarHeight() { - return this.get('SOFT_MENU_BAR_HEIGHT'); - }, - getSmartBarHeight() { - return this.get('SMART_BAR_HEIGHT'); - }, - isSoftMenuBarEnabled() { - return this.get('SOFT_MENU_BAR_ENABLED'); - } - }; -} else { - module.exports = { - get(dim) { - console.warn('react-native-extra-dimensions-android is only available on Android'); - return 0; + return result; + } catch (e) { + console.error(e); } - }; + } +} + +export function getRealWindowHeight() { + return get('REAL_WINDOW_HEIGHT'); +} + +export function getRealWindowWidth() { + return get('REAL_WINDOW_WIDTH'); +} + +export function getStatusBarHeight() { + return get('STATUS_BAR_HEIGHT'); +} + +export function getSoftMenuBarHeight() { + return get('SOFT_MENU_BAR_HEIGHT'); +} + +export function getSmartBarHeight() { + return get('SMART_BAR_HEIGHT'); +} + +export function isSoftMenuBarEnabled() { + return get('SOFT_MENU_BAR_ENABLED'); +} + +// stay compatible with pre-es6 exports +export default { + get, + getRealWindowHeight, + getRealWindowWidth, + getStatusBarHeight, + getSoftMenuBarHeight, + getSmartBarHeight, + isSoftMenuBarEnabled } From 7cd366ee246b173c981643763b6a7a0d43913147 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Sat, 30 Mar 2019 23:10:02 +0000 Subject: [PATCH 36/45] Update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7dd0795..371ffe6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-extra-dimensions-android", - "version": "1.2.1", + "version": "1.2.2", "description": "Access additional display metrics on Android devices: status bar height, soft menu bar height, real screen size.", "main": "index.js", "repository": { From 5b3e14e057afaac898057feaa4109f2963c43970 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Sun, 31 Mar 2019 00:38:35 +0000 Subject: [PATCH 37/45] Update code for SOFT_MENU_BAR_ENABLED --- .../java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java b/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java index dbb47cd..d64f805 100644 --- a/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java +++ b/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java @@ -85,8 +85,8 @@ public Map getConstants() { } private boolean hasPermanentMenuKey() { - final Context ctx = getReactApplicationContext(); - return ViewConfiguration.get(ctx).hasPermanentMenuKey(); + int id = ctx.getResources().getIdentifier("config_showNavigationBar", "bool", "android"); + return id > 0 && resources.getBoolean(id); } private float getStatusBarHeight(DisplayMetrics metrics) { From 4615f5e6aff85329b967193bfb1788a6ba344055 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Sun, 31 Mar 2019 12:05:09 +0100 Subject: [PATCH 38/45] Update Version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 371ffe6..6371028 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-extra-dimensions-android", - "version": "1.2.2", + "version": "1.2.3", "description": "Access additional display metrics on Android devices: status bar height, soft menu bar height, real screen size.", "main": "index.js", "repository": { From da3e7495e9ef69ad9cc8c2effc2d6c2d3e0acd68 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Sun, 31 Mar 2019 12:29:34 +0100 Subject: [PATCH 39/45] Update ExtraDimensionsModule.java --- .../java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java b/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java index d64f805..c66d9cb 100644 --- a/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java +++ b/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java @@ -85,7 +85,8 @@ public Map getConstants() { } private boolean hasPermanentMenuKey() { - int id = ctx.getResources().getIdentifier("config_showNavigationBar", "bool", "android"); + resources = ctx.getResources(); + int id = resources.getIdentifier("config_showNavigationBar", "bool", "android"); return id > 0 && resources.getBoolean(id); } From c41652e8c8b811211090c8f1d05041daa799e1c2 Mon Sep 17 00:00:00 2001 From: Mathieu Bruguier Date: Tue, 2 Apr 2019 07:37:02 -0700 Subject: [PATCH 40/45] Fixed getSoftMenuBarHeight() not returning the right value on notched devices (#50) --- .../extradimensions/ExtraDimensionsModule.java | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java b/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java index c66d9cb..e909941 100644 --- a/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java +++ b/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java @@ -103,16 +103,12 @@ private float getSoftMenuBarHeight(DisplayMetrics metrics) { if(hasPermanentMenuKey()) { return 0; } - final float realHeight = getRealHeight(metrics); final Context ctx = getReactApplicationContext(); - final DisplayMetrics usableMetrics = ctx.getResources().getDisplayMetrics(); - - // Passing getMetrics will update the value of the Object DisplayMetrics metrics - ((WindowManager) mReactContext.getSystemService(Context.WINDOW_SERVICE)) - .getDefaultDisplay().getMetrics(metrics); - final int usableHeight = usableMetrics.heightPixels; - - return Math.max(0, realHeight - usableHeight / metrics.density); + final int heightResId = ctx.getResources().getIdentifier("navigation_bar_height", "dimen", "android"); + return + heightResId > 0 + ? ctx.getResources().getDimensionPixelSize(heightResId) / metrics.density + : 0; } private float getRealHeight(DisplayMetrics metrics) { From 202f91f2dcf3d604e051cd3e5dadaf68bcd39d94 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Tue, 2 Apr 2019 15:37:41 +0100 Subject: [PATCH 41/45] Update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6371028..5ed4f85 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-extra-dimensions-android", - "version": "1.2.3", + "version": "1.2.4", "description": "Access additional display metrics on Android devices: status bar height, soft menu bar height, real screen size.", "main": "index.js", "repository": { From 9cfbb17c9522da20a8b2f95354c761227bc33af0 Mon Sep 17 00:00:00 2001 From: Mathieu Bruguier Date: Tue, 2 Apr 2019 16:28:10 -0700 Subject: [PATCH 42/45] Fixed build issue and hasPermanentMenuKey() returning the wrong value (#51) * Fixed build issue * Fixed hasPermanentMenuKey() returning the wrong value * Cleaned up code slightly --- .../ca/jaysoo/extradimensions/ExtraDimensionsModule.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java b/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java index e909941..330a3d2 100644 --- a/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java +++ b/android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java @@ -85,9 +85,9 @@ public Map getConstants() { } private boolean hasPermanentMenuKey() { - resources = ctx.getResources(); - int id = resources.getIdentifier("config_showNavigationBar", "bool", "android"); - return id > 0 && resources.getBoolean(id); + final Context ctx = getReactApplicationContext(); + int id = ctx.getResources().getIdentifier("config_showNavigationBar", "bool", "android"); + return !(id > 0 && ctx.getResources().getBoolean(id)); } private float getStatusBarHeight(DisplayMetrics metrics) { From 0d449d2668a61d9900498ca894aec9691cc7a1a7 Mon Sep 17 00:00:00 2001 From: Marcus Coleman Date: Wed, 3 Apr 2019 00:28:34 +0100 Subject: [PATCH 43/45] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5ed4f85..7a31ef8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-extra-dimensions-android", - "version": "1.2.4", + "version": "1.2.5", "description": "Access additional display metrics on Android devices: status bar height, soft menu bar height, real screen size.", "main": "index.js", "repository": { From 659fb4c7dee2e828b4da6a26e0c8ba92dffbf585 Mon Sep 17 00:00:00 2001 From: Jan Czizikow Date: Mon, 9 Sep 2019 19:33:52 +0200 Subject: [PATCH 44/45] migrate to react-native.config (#57) --- package.json | 5 ----- react-native.config.js | 9 +++++++++ 2 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 react-native.config.js diff --git a/package.json b/package.json index 7a31ef8..cfc1d2c 100644 --- a/package.json +++ b/package.json @@ -18,11 +18,6 @@ "react", "android" ], - "rnpm": { - "android": { - "packageInstance": "new ExtraDimensionsPackage()" - } - }, "author": "Jack Hsu (http://jaysoo.ca/)", "license": "ISC" } diff --git a/react-native.config.js b/react-native.config.js new file mode 100644 index 0000000..772fa66 --- /dev/null +++ b/react-native.config.js @@ -0,0 +1,9 @@ +module.exports = { + dependency: { + platforms: { + android: { + packageInstance: "new ExtraDimensionsPackage()" + } + } + } +}; From 940ffe2c76d59b6c7c66da04a956c044127949ba Mon Sep 17 00:00:00 2001 From: Marcus Date: Sun, 29 May 2022 17:37:01 +0100 Subject: [PATCH 45/45] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ab648dc..5be442f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ### Notice -Pull requests always welcome! +This project is dead. As a React Native developer, I do not use this package. It is not needed. ## ExtraDimensions