Skip to content

Screen brightness adjustment tool for ReactNative iOS and Android.

License

Notifications You must be signed in to change notification settings

FidMe/react-native-device-brightness

 
 

Repository files navigation

@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.

About

Screen brightness adjustment tool for ReactNative iOS and Android.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 53.6%
  • Objective-C 19.1%
  • JavaScript 15.6%
  • Ruby 11.7%