package com.dji.sdk.sample.internal.utils;
import com.dji.sdk.sample.internal.controller.DJISampleApplication;
import dji.sdk.products.Aircraft;
import dji.sdk.products.HandHeld;
/**
* Created by dji on 16/1/6.
*/
public class ModuleVerificationUtil {
public static boolean isProductModuleAvailable() {
return (null != DJISampleApplication.getProductInstance());
}
public static boolean isAircraft() {
return DJISampleApplication.getProductInstance() instanceof Aircraft;
}
public static boolean isHandHeld() {
return DJISampleApplication.getProductInstance() instanceof HandHeld;
}
public static boolean isCameraModuleAvailable() {
return isProductModuleAvailable() && (null != DJISampleApplication.getProductInstance().getCamera());
}
public static boolean isPlaybackAvailable() {
return isCameraModuleAvailable() && (null != DJISampleApplication.getProductInstance()
.getCamera()
.getPlaybackManager());
}
public static boolean isMediaManagerAvailable() {
return isCameraModuleAvailable() && (null != DJISampleApplication.getProductInstance()
.getCamera()
.getMediaManager());
}
public static boolean isRemoteControllerAvailable() {
return isProductModuleAvailable() && isAircraft() && (null != DJISampleApplication.getAircraftInstance()
.getRemoteController());
}
public static boolean isFlightControllerAvailable() {
return isProductModuleAvailable() && isAircraft() && (null != DJISampleApplication.getAircraftInstance()
.getFlightController());
}
public static boolean isCompassAvailable() {
return isFlightControllerAvailable() && isAircraft() && (null != DJISampleApplication.getAircraftInstance()
.getFlightController()
.getCompass());
}
public static boolean isFlightLimitationAvailable() {
return isFlightControllerAvailable() && isAircraft();
}
public static boolean isGimbalModuleAvailable() {
return isProductModuleAvailable() && (null != DJISampleApplication.getProductInstance().getGimbal());
}
public static boolean isAirlinkAvailable() {
return isProductModuleAvailable() && (null != DJISampleApplication.getProductInstance().getAirLink());
}
public static boolean isWiFiLinkAvailable() {
return isAirlinkAvailable() && (null != DJISampleApplication.getProductInstance().getAirLink().getWiFiLink());
}
public static boolean isLightbridgeLinkAvailable() {
return isAirlinkAvailable() && (null != DJISampleApplication.getProductInstance()
.getAirLink()
.getLightbridgeLink());
}
}