Nauseating Pumpkin Mush

    react-native-keyguard

    0.1.4 • Public • Published

    Keyguard for React Native (Android only)

    A react native module to control the Keyguard.

    Setup

    npm install react-native-interactable --save
    
    • Link the native library to your project
    react-native link react-native-interactable
    
    • Rebuild app from your project root directory
      react-native run-android
    

    Usage

    import Keyguard from 'react-native-keyguard'
     
    /* 
    Keyguard returns a promise when the lockscreen is opened.
     
    Android does not provide Keyguard control before 21. 
    The promise will be resolved by default in such cases */
     
    Keyguard
      .unlock(title, desctiption)
      .then(() => console.log("Success"))
      .catch(error => console.log("Error",error))
     

    Manual Installation

    1. update android/settings.gradle
    2. update android/app/build.gradle
    3. Register module in MainActivity.java or MainApplication.java (depending on your RN version)
    4. Rebuild and restart package manager
    • android/settings.gradle
    ...
    include ':react-native-keyguard'
    project(':react-native-keyguard').projectDir = new File(settingsDir, '../node_modules/react-native-keyguard/android')
    • android/app/build.gradle
    ...
    dependencies {
        ...
        compile project(':react-native-keyguard')
    }
    • register module on React Native >= 0.30 (in MainApplication.java)
    import com.facebook.react.ReactActivity;
    import com.facebook.react.ReactPackage;
    import com.facebook.react.shell.MainReactPackage;
     
    import java.util.Arrays;
    import java.util.List;
     
    import me.neo.keyguard.KeyguardPackage; // <--- import 
     
    public class MainApplication extends Application implements ReactApplication {
     
        [...]
     
        private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
        
         @Override
         protected boolean getUseDeveloperSupport() {
             return BuildConfig.DEBUG;
         }
     
         @Override
         protected List<ReactPackage> getPackages() {
           return Arrays.<ReactPackage>asList(
             new MainReactPackage(),
             new KeyguardPackage() // <------- add package 
           );
         }
        }
    }
    • register module on React Native >= 0.19 and RN < 0.30 (in MainActivity.java)
    import com.facebook.react.ReactActivity;
    import com.facebook.react.ReactPackage;
    import com.facebook.react.shell.MainReactPackage;
     
    import java.util.Arrays;
    import java.util.List;
     
    import me.neo.keyguard.KeyguardPackage; // <--- import 
     
    public class MainActivity extends ReactActivity {
     
        /**
         * Returns the name of the main component registered from JavaScript.
         * This is used to schedule rendering of the component.
         */
        @Override
        protected String getMainComponentName() {
            return "SampleAppReact";
        }
     
        /**
         * Returns whether dev mode should be enabled.
         * This enables e.g. the dev menu.
         */
        @Override
        protected boolean getUseDeveloperSupport() {
            return BuildConfig.DEBUG;
        }
     
       /**
       * A list of packages used by the app. If the app uses additional views
       * or modules besides the default ones, add more packages here.
       */
        @Override
        protected List<ReactPackage> getPackages() {
          return Arrays.<ReactPackage>asList(
            new MainReactPackage(),
            new KeyguardPackage() // <------- add package 
          );
        }
    }
    • register module on React Native < 0.19 (in MainActivity.java)
    import me.neo.keyguard.KeyguardPackage;  // <--- import 
     
    public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler {
     
      ......
      private static Activity mActivity = null;
     
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mReactRootView = new ReactRootView(this);
     
        mActivity = this;
        mReactInstanceManager = ReactInstanceManager.builder()
          .setApplication(getApplication())
          .setBundleAssetName("index.android.bundle")
          .setJSMainModuleName("index.android")
          .addPackage(new MainReactPackage())
          .addPackage(new KeyguardPackage())      // <------- add package 
          .setUseDeveloperSupport(BuildConfig.DEBUG)
          .setInitialLifecycleState(LifecycleState.RESUMED)
          .build();
     
        mReactRootView.startReactApplication(mReactInstanceManager, "ExampleRN", null);
     
        setContentView(mReactRootView);
      }
     
      ......
     
    }
    • Run react-native run-android from your project root directory

    Install

    npm i react-native-keyguard

    DownloadsWeekly Downloads

    4

    Version

    0.1.4

    License

    MIT

    Unpacked Size

    72 kB

    Total Files

    13

    Last publish

    Collaborators

    • nishanthshankar