Files
react-native/RNTester/js/utils/RNTesterList.android.js
T
Héctor Ramos 17862a78db Add Appearance module
Summary:
Android implementation of the Appearance native module. Exposes the user's preferred color scheme: "dark" for Night theme ON, "light" for Night theme OFF.

Emits a `appearanceChanged` event when the current uiMode configuration changes.

To make your app handle Night mode changes, make sure to do the following:

* Declare your Activity can handle uiMode configuration changes (https://developer.android.com/preview/features/darktheme#java):
```
android:configChanges="uiMode"
```
* Make sure to pass the configuration changed activity lifecycle callback from your ReactActivity:
```
Override
protected void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged();

    if (mReactInstanceManager != null) {
        mReactInstanceManager.onConfigurationChanged(newConfig);
    }
}
```

### RNTester

Adds the AppearanceExample to RNTester on Android.

Changelog:

[Android][Added] - New Appearance module exposes the user's current Night theme preference

Reviewed By: makovkastar

Differential Revision: D16942161

fbshipit-source-id: d24a8ff800a1c5f70f4efdec6891396c2078067e
2019-08-31 11:22:44 -07:00

246 lines
6.0 KiB
JavaScript

/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
* @flow
*/
'use strict';
import type {RNTesterExample} from '../types/RNTesterTypes';
const ComponentExamples: Array<RNTesterExample> = [
{
key: 'ActivityIndicatorExample',
module: require('../examples/ActivityIndicator/ActivityIndicatorExample'),
},
{
key: 'ButtonExample',
module: require('../examples/Button/ButtonExample'),
},
{
key: 'CheckBoxExample',
module: require('../examples/CheckBox/CheckBoxExample'),
},
{
key: 'FlatListExample',
module: require('../examples/FlatList/FlatListExample'),
},
{
key: 'ImageExample',
module: require('../examples/Image/ImageExample'),
},
{
key: 'JSResponderHandlerExample',
module: require('../examples/JSResponderHandlerExample/JSResponderHandlerExample'),
},
{
key: 'KeyboardAvoidingViewExample',
module: require('../examples/KeyboardAvoidingView/KeyboardAvoidingViewExample'),
},
{
key: 'ModalExample',
module: require('../examples/Modal/ModalExample'),
},
{
key: 'MultiColumnExample',
module: require('../examples/MultiColumn/MultiColumnExample'),
},
{
key: 'NewAppScreenExample',
module: require('../examples/NewAppScreen/NewAppScreenExample'),
},
{
key: 'PickerExample',
module: require('../examples/Picker/PickerExample'),
},
{
key: 'ProgressBarAndroidExample',
module: require('../examples/ProgressBarAndroid/ProgressBarAndroidExample'),
},
{
key: 'RefreshControlExample',
module: require('../examples/RefreshControl/RefreshControlExample'),
},
{
key: 'ScrollViewExample',
module: require('../examples/ScrollView/ScrollViewExample'),
},
{
key: 'ScrollViewSimpleExample',
module: require('../examples/ScrollView/ScrollViewSimpleExample'),
},
{
key: 'ScrollViewAnimatedExample',
module: require('../examples/ScrollView/ScrollViewAnimatedExample'),
},
{
key: 'SectionListExample',
module: require('../examples/SectionList/SectionListExample'),
},
{
key: 'SliderExample',
module: require('../examples/Slider/SliderExample'),
},
{
key: 'StatusBarExample',
module: require('../examples/StatusBar/StatusBarExample'),
},
{
key: 'SwitchExample',
module: require('../examples/Switch/SwitchExample'),
},
{
key: 'TextExample',
module: require('../examples/Text/TextExample'),
},
{
key: 'TextInputExample',
module: require('../examples/TextInput/TextInputExample'),
},
{
key: 'TouchableExample',
module: require('../examples/Touchable/TouchableExample'),
},
{
key: 'ViewExample',
module: require('../examples/View/ViewExample'),
},
];
const APIExamples: Array<RNTesterExample> = [
{
key: 'AccessibilityExample',
module: require('../examples/Accessibility/AccessibilityExample'),
},
{
key: 'AccessibilityAndroidExample',
module: require('../examples/Accessibility/AccessibilityAndroidExample'),
},
{
key: 'AlertExample',
module: require('../examples/Alert/AlertExample').AlertExample,
},
{
key: 'AnimatedExample',
module: require('../examples/Animated/AnimatedExample'),
},
{
key: 'AppearanceExample',
module: require('../examples/Appearance/AppearanceExample'),
},
{
key: 'AppStateExample',
module: require('../examples/AppState/AppStateExample'),
},
{
key: 'BorderExample',
module: require('../examples/Border/BorderExample'),
},
{
key: 'ClipboardExample',
module: require('../examples/Clipboard/ClipboardExample'),
},
{
key: 'CrashExample',
module: require('../examples/Crash/CrashExample'),
},
{
key: 'DatePickerAndroidExample',
module: require('../examples/DatePicker/DatePickerAndroidExample'),
},
{
key: 'Dimensions',
module: require('../examples/Dimensions/DimensionsExample'),
},
{
key: 'LayoutEventsExample',
module: require('../examples/Layout/LayoutEventsExample'),
},
{
key: 'LinkingExample',
module: require('../examples/Linking/LinkingExample'),
},
{
key: 'LayoutAnimationExample',
module: require('../examples/Layout/LayoutAnimationExample'),
},
{
key: 'LayoutExample',
module: require('../examples/Layout/LayoutExample'),
},
{
key: 'NativeAnimationsExample',
module: require('../examples/NativeAnimation/NativeAnimationsExample'),
},
{
key: 'OrientationChangeExample',
module: require('../examples/OrientationChange/OrientationChangeExample'),
},
{
key: 'PanResponderExample',
module: require('../examples/PanResponder/PanResponderExample'),
},
{
key: 'PermissionsExampleAndroid',
module: require('../examples/PermissionsAndroid/PermissionsExample'),
},
{
key: 'PointerEventsExample',
module: require('../examples/PointerEvents/PointerEventsExample'),
},
{
key: 'RTLExample',
module: require('../examples/RTL/RTLExample'),
},
{
key: 'ShareExample',
module: require('../examples/Share/ShareExample'),
},
{
key: 'TimePickerAndroidExample',
module: require('../examples/TimePicker/TimePickerAndroidExample'),
},
{
key: 'TimerExample',
module: require('../examples/Timer/TimerExample'),
},
{
key: 'ToastAndroidExample',
module: require('../examples/ToastAndroid/ToastAndroidExample'),
},
{
key: 'TransformExample',
module: require('../examples/Transform/TransformExample'),
},
{
key: 'VibrationExample',
module: require('../examples/Vibration/VibrationExample'),
},
{
key: 'WebSocketExample',
module: require('../examples/WebSocket/WebSocketExample'),
},
{
key: 'XHRExample',
module: require('../examples/XHR/XHRExample'),
},
];
const Modules: any = {};
APIExamples.concat(ComponentExamples).forEach(Example => {
Modules[Example.key] = Example.module;
});
const RNTesterList = {
APIExamples,
ComponentExamples,
Modules,
};
module.exports = RNTesterList;