@fidme/react-native-device-brightness

1.3.1 • Public • Published

@fidme/react-native-device-brightness

npm version

Screen brightness adjustment tool for ReactNative iOS and Android.

Installation

npm install --save @fidme/react-native-device-brightness

Recommended via yarn

yarn add @fidme/react-native-device-brightness

Automatically link

With React Native 0.27+

react-native link @fidme/react-native-device-brightness

With older versions of React Native

You need rnpm (npm install -g rnpm)

rnpm link @fidme/react-native-device-brightness

Hey, bro! @fidme/react-native-device-brightness wasn't support older version of React Native yet.

Manually link

iOS (without Cocoa Pods)

In XCode, in the project navigator:

  • Right click Libraries
  • Add Files to [your project's name]
  • Go to node_modules/@fidme/react-native-device-brightness
  • Add the .xcodeproj file

In XCode, in the project navigator, select your project.

  • Add the libRNDeviceInfo.a from the deviceinfo project to your project's Build Phases ➜ Link Binary With Libraries
  • Click .xcodeproj file you added before in the project navigator and go the Build Settings tab. Make sure All is toggled on (instead of Basic).
  • Look for Header Search Paths and make sure it contains both $(SRCROOT)/../react-native/React and $(SRCROOT)/../../React
  • Mark both as recursive (should be OK by default).

Run your project (Cmd+R)

(Thanks to @brysgo for writing the instructions)

Android

  • in android/app/build.gradle:
dependencies {
    ...
    compile "com.facebook.react:react-native:+"  // From node_modules
+   compile project(':@fidme/react-native-device-brightness')
}
  • in android/settings.gradle:
...
include ':app'
+ include ':@fidme/react-native-device-brightness'
+ project(':@fidme/react-native-device-brightness').projectDir = new File(rootProject.projectDir, '../node_modules/@fidme/react-native-device-brightness/android')

With React Native 0.29+

  • in MainApplication.java:
+ import com.learnium.RNDeviceInfo.RNDeviceInfo;

  public class MainApplication extends Application implements ReactApplication {
    //......

    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
+         new RNDeviceInfo(),
          new MainReactPackage()
      );
    }

    ......
  }

With older versions of React Native:

  • in MainActivity.java:
+ import com.learnium.RNDeviceInfo.RNDeviceInfo;

  public class MainActivity extends ReactActivity {
    ......

    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
+       new RNDeviceInfo(),
        new MainReactPackage()
      );
    }
  }

(Thanks to @chirag04 for writing the instructions)

Usage

Important: Brightness Level only accept value 0 to 1.

  • Adjusting screen brightness will make iOS's Auto-Brightness function do nothing.
  • Adjusting screen brightness in Android only works in App and will reset to system setting exiting App.
// ES5
var DeviceBrightness = require("@fidme/react-native-device-brightness");
// or ES6
// import DeviceBrightness from '@fidme/react-native-device-brightness';

// It will throw a exception when value less than 0 or more than 1.
DeviceBrightness.setBrightnessLevel(luminous);
DeviceBrightness.getBrightnessLevel().then(function (luminous) {
  // Get current brightness level
  // 0 ~ 1
  console.log(luminous);
});
// Android only
DeviceBrightness.getSystemBrightnessLevel().then(function (luminous) {
  // Get current brightness level
  // 0 ~ 1
  console.log(luminous);
});

License

Copyright (c) Calvin Huang. This software is licensed under the MIT License.

Package Sidebar

Install

npm i @fidme/react-native-device-brightness

Weekly Downloads

3

Version

1.3.1

License

MIT

Unpacked Size

21.6 kB

Total Files

15

Last publish

Collaborators

  • dylanvicente
  • fidme_engineering