package com.dji.sdk.sample.demo.camera; import android.content.Context; import android.os.Environment; import com.dji.sdk.sample.R; import com.dji.sdk.sample.internal.controller.DJISampleApplication; import com.dji.sdk.sample.internal.utils.ModuleVerificationUtil; import com.dji.sdk.sample.internal.utils.ToastUtils; import com.dji.sdk.sample.internal.view.BaseThreeBtnView; import dji.common.camera.SettingsDefinitions; import dji.common.error.DJIError; import dji.common.util.CommonCallbacks; import dji.sdk.camera.Camera; import dji.sdk.camera.PlaybackManager; import java.io.File; /** * Created by dji on 16/1/6. */ public class PlaybackDownloadView extends BaseThreeBtnView { private PlaybackManager playbackManager; public PlaybackDownloadView(Context context) { super(context); } /** * Before the playback commands are sent to the aircraft, the camera work mode should be set * to playback mode. */ @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); if (ModuleVerificationUtil.isCameraModuleAvailable()) { Camera camera = DJISampleApplication.getAircraftInstance().getCamera(); camera.setMode(SettingsDefinitions.CameraMode.PLAYBACK, new CommonCallbacks.CompletionCallback() { @Override public void onResult(DJIError djiError) { } }); if (ModuleVerificationUtil.isPlaybackAvailable()) { playbackManager = camera.getPlaybackManager(); playbackManager.setPlaybackStateCallback(new PlaybackManager.PlaybackState.CallBack() { @Override public void onUpdate(PlaybackManager.PlaybackState djiCameraPlaybackState) { if (djiCameraPlaybackState.getPlaybackMode() .equals(SettingsDefinitions.PlaybackMode.SINGLE_PHOTO_PREVIEW)) { playbackManager.enterMultiplePreviewMode(); } if (djiCameraPlaybackState.getPlaybackMode() .equals(SettingsDefinitions.PlaybackMode.MULTIPLE_MEDIA_FILE_PREVIEW)) { playbackManager.enterMultipleEditMode(); } } }); } else { ToastUtils.setResultToToast("Not support"); } } } @Override protected int getMiddleBtnTextResourceId() { return R.string.playback_download_select_0; } @Override protected int getLeftBtnTextResourceId() { return R.string.playback_download_select_1; } @Override protected int getRightBtnTextResourceId() { return R.string.playback_download_download; } @Override protected int getDescriptionResourceId() { if (!ModuleVerificationUtil.isPlaybackAvailable()) { return R.string.not_support_playback; } else { return R.string.support_playback; } } @Override protected void handleMiddleBtnClick() { if (ModuleVerificationUtil.isPlaybackAvailable()) { playbackManager = DJISampleApplication.getProductInstance().getCamera().getPlaybackManager(); playbackManager.toggleFileSelectionAtIndex(0); } } @Override protected void handleLeftBtnClick() { if (ModuleVerificationUtil.isPlaybackAvailable()) { playbackManager = DJISampleApplication.getProductInstance().getCamera().getPlaybackManager(); playbackManager.toggleFileSelectionAtIndex(1); } } @Override protected void handleRightBtnClick() { // Download Button if (ModuleVerificationUtil.isPlaybackAvailable()) { playbackManager = DJISampleApplication.getProductInstance().getCamera().getPlaybackManager(); File destDir = new File(Environment.getExternalStorageDirectory(). getPath() + "/Dji_Sdk_Test/"); playbackManager.downloadSelectedFiles(destDir, new PlaybackManager.FileDownloadCallback() { @Override public void onStart() { changeDescription("Start"); } @Override public void onEnd() { } @Override public void onError(Exception e) { changeDescription(e.toString()); } @Override public void onProgressUpdate(int progress) { changeDescription("Progress: " + progress); } }); } } @Override public int getDescription() { return R.string.camera_listview_playback_download; } }