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); } } }