package com.hartmamt.DropboxAndroid;

import com.facebook.react.bridge.ActivityEventListener;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.Callback;

import android.app.Activity;
import android.content.Intent;
import android.util.Log;

import com.dropbox.chooser.android.DbxChooser;

public class RNReactNativeDropboxAndroidModule extends ReactContextBaseJavaModule implements ActivityEventListener {

  private final ReactApplicationContext reactContext;

  private Callback successCallback = null;

  static final int DBX_CHOOSER_REQUEST = 1;
  private DbxChooser mChooser;
  private String dropboxAppId = "";
  private String linkType = "";
  private Boolean previewLink;

  public RNReactNativeDropboxAndroidModule(ReactApplicationContext reactContext) {
    super(reactContext);
    reactContext.addActivityEventListener(this);
    this.reactContext = reactContext;
  }

  @Override
  public String getName() {
    return "RNReactNativeDropboxAndroid";
  }

  @ReactMethod
  public void openChooser() {
    Activity currentActivity = getCurrentActivity();
    try{
      mChooser = new DbxChooser("");
      mChooser.forResultType(DbxChooser.ResultType.PREVIEW_LINK)
                    .launch(currentActivity, DBX_CHOOSER_REQUEST);
    }catch(Exception e){
      Log.v("test","nope", e);
    }
  }

  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == DBX_CHOOSER_REQUEST) {
      if (resultCode == Activity.RESULT_OK) {
          DbxChooser.Result result = new DbxChooser.Result(data);
          Log.d("main", "Link to selected file: " + result.getLink());

          // Handle the result
      } else {
          // Failed or was cancelled by the user.
      }
    }
  }


}
