0.1.0 • Published 3 years ago

react-native-home-power-detection v0.1.0

Weekly downloads
1
License
MIT
Repository
-
Last release
3 years ago

React Native Home Power Detection

Installation

via npm

Run npm install react-native-home-power-detection --save

Linking

Automatic

react-native link react-native-home-power-detection

(or using rnpm for versions of React Native < 0.27)

rnpm link react-native-home-power-detection

For iOS users using Pods You still need to run pod install after running the above link command inside your IOS folder.

Manual

Add the following lines to your build targets in your Podfile

pod 'React', :path => '../node_modules/react-native'

# Explicitly include Yoga if you are using RN >= 0.42.0
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'

pod 'RNHPListener', :path => '../node_modules/react-native-home-power-detection'
  
# React-Native is not great about React double-including from the Podfile
post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.name == "React"
      target.remove_from_project
    end

    # It removes React & Yoga from the Pods project, as it is already included in the main project.
    targets_to_ignore = %w(React yoga)
    if targets_to_ignore.include? target.name
      target.remove_from_project
    end
  end
end

Then run pod install

  • optional in android/build.gradle:

  • in android/app/build.gradle:

dependencies {
    ...
    implementation "com.facebook.react:react-native:+"  // From node_modules
+   implementation project(':react-native-home-power-detection')
}
  • in android/settings.gradle:
...
include ':app'
+ include ':react-native-home-power-detection'
+ project(':react-native-home-power-detection').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-home-power-detection/android')

With React Native 0.29+

  • in MainApplication.java:
+ import com.laku6.RNHPListener.RNHPListenerPackage;

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

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

    ......
  }

With older versions of React Native:

  • in MainActivity.java:
+ import com.laku6.RNHPListener.RNHPListenerPackage;

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

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

Usage

Whenever you want to use it within React Native code now you can:

import RNHPEvent from 'react-native-home-power-detection';

  componentDidMount() {
    // if you want to react to keyHome
    RNHPEvent.onKeyHomeListener(() => {
      console.log(`onKeyHome detected`);
      RNHPEvent.removeKeyHomeListener();
    });

    // if you want to react to keyPower
    RNHPEvent.onKeyPowerListener(() => {
      console.log(`onKeyPower detected`);
      RNHPEvent.removeKeyPowerListener();
    });
  }

  componentWillUnmount() {
    if(Platform.OS === "android") RNHPEvent.stopListener();
  }