Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
R
react-native-extra-dimensions-android
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
放牛的园子
react-native-extra-dimensions-android
Commits
eb6eb17e
Commit
eb6eb17e
authored
Jul 07, 2016
by
BelinChung
Committed by
Sunhat
Nov 23, 2016
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Working for RN0.29.0
parent
579f7390
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
37 additions
and
24 deletions
+37
-24
README.md
README.md
+4
-4
ExtraDimensionsModule.java
...java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java
+30
-9
ExtraDimensionsPackage.java
...ava/ca/jaysoo/extradimensions/ExtraDimensionsPackage.java
+3
-11
No files found.
README.md
View file @
eb6eb17e
...
@@ -4,7 +4,7 @@ I have no time to maintain this project, but if anyone is interested in taking o
...
@@ -4,7 +4,7 @@ I have no time to maintain this project, but if anyone is interested in taking o
## ExtraDimensions
## ExtraDimensions
This module allows you to access additional display metrics on Android devices.
This module allows you to access additional display metrics on Android devices.
(RN 0.29.0+)
-
Actual width and height of the screen (including elements such as soft menu bar)
-
Actual width and height of the screen (including elements such as soft menu bar)
-
Soft menu height
-
Soft menu height
...
@@ -39,17 +39,17 @@ view needs to fill up the real screen size.
...
@@ -39,17 +39,17 @@ view needs to fill up the real screen size.
}
}
```
```
3.
Register module (in MainA
ctivity
.java)
3.
Register module (in MainA
pplication
.java)
```
```
import ca.jaysoo.extradimensions.ExtraDimensionsPackage; // <--- import
import ca.jaysoo.extradimensions.ExtraDimensionsPackage; // <--- import
public class MainA
ctivity extends ReactActivity
{
public class MainA
pplication extends Application implements ReactApplication
{
......
......
protected List<ReactPackage> getPackages() {
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new MainReactPackage(),
new ExtraDimensionsPackage(
this
) // <--- add here
new ExtraDimensionsPackage() // <--- add here
);
);
}
}
......
......
...
...
android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsModule.java
View file @
eb6eb17e
...
@@ -3,15 +3,17 @@ package ca.jaysoo.extradimensions;
...
@@ -3,15 +3,17 @@ package ca.jaysoo.extradimensions;
import
java.lang.Math
;
import
java.lang.Math
;
import
java.lang.reflect.InvocationTargetException
;
import
java.lang.reflect.InvocationTargetException
;
import
android.app.Activity
;
import
android.content.Context
;
import
android.content.Context
;
import
android.os.Build
;
import
android.os.Build
;
import
android.util.DisplayMetrics
;
import
android.util.DisplayMetrics
;
import
android.view.Display
;
import
android.view.Display
;
import
android.provider.Settings
;
import
android.provider.Settings
;
import
android.content.res.Resources
;
import
android.content.res.Resources
;
import
android.view.WindowManager
;
import
com.facebook.react.bridge.ReactApplicationContext
;
import
com.facebook.react.bridge.ReactApplicationContext
;
import
com.facebook.react.bridge.LifecycleEventListener
;
import
com.facebook.react.bridge.ReactContext
;
import
com.facebook.react.bridge.ReactContextBaseJavaModule
;
import
com.facebook.react.bridge.ReactContextBaseJavaModule
;
import
java.util.HashMap
;
import
java.util.HashMap
;
...
@@ -19,12 +21,14 @@ import java.util.Map;
...
@@ -19,12 +21,14 @@ import java.util.Map;
import
java.lang.reflect.Field
;
import
java.lang.reflect.Field
;
public
class
ExtraDimensionsModule
extends
ReactContextBaseJavaModule
{
public
class
ExtraDimensionsModule
extends
ReactContextBaseJavaModule
implements
LifecycleEventListener
{
private
Activity
mCurrentActivity
;
public
ExtraDimensionsModule
(
ReactApplicationContext
reactContext
,
Activity
activity
)
{
private
ReactContext
mReactContext
;
public
ExtraDimensionsModule
(
ReactApplicationContext
reactContext
)
{
super
(
reactContext
);
super
(
reactContext
);
mCurrentActivity
=
activity
;
mReactContext
=
reactContext
;
mReactContext
.
addLifecycleEventListener
(
this
);
}
}
@Override
@Override
...
@@ -32,6 +36,21 @@ public class ExtraDimensionsModule extends ReactContextBaseJavaModule {
...
@@ -32,6 +36,21 @@ public class ExtraDimensionsModule extends ReactContextBaseJavaModule {
return
"ExtraDimensions"
;
return
"ExtraDimensions"
;
}
}
@Override
public
void
onHostDestroy
()
{
}
@Override
public
void
onHostPause
()
{
}
@Override
public
void
onHostResume
()
{
}
@Override
@Override
public
Map
<
String
,
Object
>
getConstants
()
{
public
Map
<
String
,
Object
>
getConstants
()
{
final
Map
<
String
,
Object
>
constants
=
new
HashMap
<>();
final
Map
<
String
,
Object
>
constants
=
new
HashMap
<>();
...
@@ -44,7 +63,8 @@ public class ExtraDimensionsModule extends ReactContextBaseJavaModule {
...
@@ -44,7 +63,8 @@ public class ExtraDimensionsModule extends ReactContextBaseJavaModule {
//
//
// See: http://developer.android.com/reference/android/view/Display.html#getRealMetrics(android.util.DisplayMetrics)
// See: http://developer.android.com/reference/android/view/Display.html#getRealMetrics(android.util.DisplayMetrics)
if
(
Build
.
VERSION
.
SDK_INT
>=
17
)
{
if
(
Build
.
VERSION
.
SDK_INT
>=
17
)
{
Display
display
=
mCurrentActivity
.
getWindowManager
().
getDefaultDisplay
();
Display
display
=
((
WindowManager
)
mReactContext
.
getSystemService
(
Context
.
WINDOW_SERVICE
))
.
getDefaultDisplay
();
try
{
try
{
Display
.
class
.
getMethod
(
"getRealMetrics"
,
DisplayMetrics
.
class
).
invoke
(
display
,
metrics
);
Display
.
class
.
getMethod
(
"getRealMetrics"
,
DisplayMetrics
.
class
).
invoke
(
display
,
metrics
);
}
catch
(
InvocationTargetException
e
)
{
}
catch
(
InvocationTargetException
e
)
{
...
@@ -76,7 +96,8 @@ public class ExtraDimensionsModule extends ReactContextBaseJavaModule {
...
@@ -76,7 +96,8 @@ public class ExtraDimensionsModule extends ReactContextBaseJavaModule {
final
Context
ctx
=
getReactApplicationContext
();
final
Context
ctx
=
getReactApplicationContext
();
final
DisplayMetrics
usableMetrics
=
ctx
.
getResources
().
getDisplayMetrics
();
final
DisplayMetrics
usableMetrics
=
ctx
.
getResources
().
getDisplayMetrics
();
mCurrentActivity
.
getWindowManager
().
getDefaultDisplay
().
getMetrics
(
metrics
);
((
WindowManager
)
mReactContext
.
getSystemService
(
Context
.
WINDOW_SERVICE
))
.
getDefaultDisplay
().
getMetrics
(
metrics
);
final
int
usableHeight
=
usableMetrics
.
heightPixels
;
final
int
usableHeight
=
usableMetrics
.
heightPixels
;
return
Math
.
max
(
0
,
realHeight
-
usableHeight
/
metrics
.
density
);
return
Math
.
max
(
0
,
realHeight
-
usableHeight
/
metrics
.
density
);
...
@@ -136,5 +157,4 @@ public class ExtraDimensionsModule extends ReactContextBaseJavaModule {
...
@@ -136,5 +157,4 @@ public class ExtraDimensionsModule extends ReactContextBaseJavaModule {
}
}
return
0
;
return
0
;
}
}
}
}
\ No newline at end of file
android/src/main/java/ca/jaysoo/extradimensions/ExtraDimensionsPackage.java
View file @
eb6eb17e
package
ca
.
jaysoo
.
extradimensions
;
package
ca
.
jaysoo
.
extradimensions
;
import
android.app.Activity
;
import
com.facebook.react.ReactPackage
;
import
com.facebook.react.ReactPackage
;
import
com.facebook.react.bridge.JavaScriptModule
;
import
com.facebook.react.bridge.JavaScriptModule
;
import
com.facebook.react.bridge.NativeModule
;
import
com.facebook.react.bridge.NativeModule
;
...
@@ -13,16 +11,11 @@ import java.util.Collections;
...
@@ -13,16 +11,11 @@ import java.util.Collections;
import
java.util.List
;
import
java.util.List
;
public
class
ExtraDimensionsPackage
implements
ReactPackage
{
public
class
ExtraDimensionsPackage
implements
ReactPackage
{
private
Activity
mCurrentActivity
;
public
ExtraDimensionsPackage
(
Activity
activity
)
{
mCurrentActivity
=
activity
;
}
@Override
@Override
public
List
<
NativeModule
>
createNativeModules
(
ReactApplicationContext
reactContext
)
{
public
List
<
NativeModule
>
createNativeModules
(
ReactApplicationContext
reactContext
)
{
return
Arrays
.<
NativeModule
>
asList
(
return
Arrays
.<
NativeModule
>
asList
(
new
ExtraDimensionsModule
(
reactContext
,
mCurrentActivity
)
new
ExtraDimensionsModule
(
reactContext
)
);
);
}
}
...
@@ -35,6 +28,4 @@ public class ExtraDimensionsPackage implements ReactPackage {
...
@@ -35,6 +28,4 @@ public class ExtraDimensionsPackage implements ReactPackage {
public
List
<
ViewManager
>
createViewManagers
(
ReactApplicationContext
reactContext
)
{
public
List
<
ViewManager
>
createViewManagers
(
ReactApplicationContext
reactContext
)
{
return
Arrays
.
asList
();
return
Arrays
.
asList
();
}
}
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment