Skip to content

Commit

Permalink
Nonnull annotations for native modules (#23353)
Browse files Browse the repository at this point in the history
Summary:
This adds Nonnull annotations for interfaces and classes used for native modules for Android, to improve Kotlin developer experience, but also code quality checks.

[Android] [Changed] - Nonnull annotations for native module interfaces
Pull Request resolved: #23353

Differential Revision: D14018181

Pulled By: mdvacca

fbshipit-source-id: 09a583860a6075e1d6f6df8f479369ae96497133
  • Loading branch information
dulmandakh authored and facebook-github-bot committed Feb 9, 2019
1 parent d9f34bd commit c93cbdf
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
import com.facebook.react.uimanager.ViewManager;
import java.util.List;

import javax.annotation.Nonnull;

/**
* Main interface for providing additional capabilities to the catalyst framework by couple of
* different means:
Expand All @@ -32,10 +34,10 @@ public interface ReactPackage {
* @param reactContext react application context that can be used to create modules
* @return list of native modules to register with the newly created catalyst instance
*/
List<NativeModule> createNativeModules(ReactApplicationContext reactContext);
List<NativeModule> createNativeModules(@Nonnull ReactApplicationContext reactContext);

/**
* @return a list of view managers that should be registered with {@link UIManagerModule}
*/
List<ViewManager> createViewManagers(ReactApplicationContext reactContext);
List<ViewManager> createViewManagers(@Nonnull ReactApplicationContext reactContext);
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@

import com.facebook.proguard.annotations.DoNotStrip;

import javax.annotation.Nonnull;


/**
* A native module whose API can be provided to JS catalyst instances. {@link NativeModule}s whose
Expand All @@ -28,7 +30,7 @@ interface NativeMethod {
* @return the name of this module. This will be the name used to {@code require()} this module
* from javascript.
*/
String getName();
@Nonnull String getName();

/**
* This is called at the end of {@link CatalystApplicationFragment#createCatalystInstance()}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

package com.facebook.react.bridge;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;

import android.app.Activity;
Expand All @@ -19,7 +20,7 @@ public abstract class ReactContextBaseJavaModule extends BaseJavaModule {

private final ReactApplicationContext mReactApplicationContext;

public ReactContextBaseJavaModule(ReactApplicationContext reactContext) {
public ReactContextBaseJavaModule(@Nonnull ReactApplicationContext reactContext) {
mReactApplicationContext = reactContext;
}

Expand Down

0 comments on commit c93cbdf

Please sign in to comment.