mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-03 22:48:25 +08:00
Summary: Similar to iOS, send device orientation changes events. This does not have the `getCurrentOrientation` method, because it's not used. If necessary, we'll add it separately. This also adds a simple example for testing. We listen to orientation changes in `onGlobalLayout`, and check if the rotation of the device has changed. If it has, we emit the event. But: - `onGlobalLayout` (and `onConfigurationChanged` - which is the method usually used for checking for device orientation changes) is *not* called when the device goes from landscape to reverse landscape (same with portrait), as that is not a relayout / configuration change. We could detect if this happens with the help of an `OrientationEventListener`. However, this listener notifies you if the degree of the phone changes by a single degree, which means that you need to know by how many degrees the phone needs to change in order for the orientation to change. I haven't looked into how accurate this could be, but I suspect that in practice it would cause a lot of bugs. A simple `abgs` and google search reveals that everybody uses a different margin for detecting a rotation change (from 30 to 45 degrees), so I suspect that this won't work as expected in practice. Therefore, we're not using this here, and we're sticking to what android provides via `onConfigurationChanged`. If we find that we have issues because users need to know when the user goes from landscape to reverse landscape, then we'll have to revisit this. Reviewed By: foghina Differential Revision: D3797521 fbshipit-source-id: 62508efd342a9a4b41b42b6138c73553cfdefebc
45 lines
1.7 KiB
XML
45 lines
1.7 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<manifest
|
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
package="com.facebook.react.uiapp"
|
|
android:versionCode="1"
|
|
android:versionName="1.0">
|
|
|
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
|
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
|
|
<uses-permission android:name="android.permission.VIBRATE"/>
|
|
|
|
<uses-sdk
|
|
android:minSdkVersion="16"
|
|
android:targetSdkVersion="23" />
|
|
|
|
<application
|
|
android:name=".UIExplorerApplication"
|
|
android:allowBackup="true"
|
|
android:icon="@drawable/launcher_icon"
|
|
android:label="@string/app_name"
|
|
android:theme="@style/Theme.ReactNative.AppCompat.Light" >
|
|
<activity
|
|
android:name=".UIExplorerActivity"
|
|
android:label="@string/app_name"
|
|
android:screenOrientation="fullSensor"
|
|
android:configChanges="orientation|screenSize" >
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN" />
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
<!-- Accepts URIs that begin with "rnuiexplorer://example” -->
|
|
<data android:scheme="rnuiexplorer" android:host="example" />
|
|
</intent-filter>
|
|
</activity>
|
|
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
|
|
</application>
|
|
|
|
</manifest>
|