package com.castlabs.reactnative.player;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.LifecycleEventObserver;
import com.facebook.react.bridge.ReactContext;

/**
 * Simplify access to a lifecycle object.
 */
public class LifecycleProxy {
  private final @NonNull ReactContext reactContext;

  public LifecycleProxy(@NonNull ReactContext reactContext) {
    this.reactContext = reactContext;
  }

  /**
   * Adds the lifecycle listener.
   *
   * @param listener lifecycle listener
   */
  public void addListener(LifecycleEventObserver listener) {
    AppCompatActivity activity = (AppCompatActivity) this.reactContext.getCurrentActivity();
    if (activity != null) {
      activity.getLifecycle().addObserver(listener);
    }
  }

  /**
   * Removes the lifecycle listener.
   *
   * @param listener lifecycle listener
   */
  public void removeListener(LifecycleEventObserver listener) {
    AppCompatActivity activity = (AppCompatActivity) this.reactContext.getCurrentActivity();
    if (activity != null) {
      activity.getLifecycle().removeObserver(listener);
    }
  }
}
