public static void enableFollowMe(
      DroneManager droneMgr,
      Handler droneHandler,
      FollowType followType,
      ICommandListener listener) {
    if (droneMgr == null) return;

    final FollowAlgorithm.FollowModes selectedMode =
        CommonApiUtils.followTypeToMode(droneMgr.getDrone(), followType);

    if (selectedMode != null) {
      final Follow followMe = droneMgr.getFollowMe();
      if (followMe == null) return;

      if (!followMe.isEnabled()) followMe.toggleFollowMeState();

      FollowAlgorithm currentAlg = followMe.getFollowAlgorithm();
      if (currentAlg.getType() != selectedMode) {
        if (selectedMode == FollowAlgorithm.FollowModes.SOLO_SHOT
            && !SoloApiUtils.isSoloLinkFeatureAvailable(droneMgr, listener)) return;

        followMe.setAlgorithm(selectedMode.getAlgorithmType(droneMgr, droneHandler));
        postSuccessEvent(listener);
      }
    }
  }