1 package net.osdn.gokigen.pkremote.camera.vendor.sony.wrapper.playback;
3 import android.util.Log;
5 import androidx.annotation.NonNull;
7 import net.osdn.gokigen.pkremote.camera.interfaces.playback.ICameraContentListCallback;
8 import net.osdn.gokigen.pkremote.camera.interfaces.playback.ICameraFileInfo;
9 import net.osdn.gokigen.pkremote.camera.interfaces.playback.IContentInfoCallback;
10 import net.osdn.gokigen.pkremote.camera.interfaces.playback.IDownloadContentCallback;
11 import net.osdn.gokigen.pkremote.camera.interfaces.playback.IDownloadContentListCallback;
12 import net.osdn.gokigen.pkremote.camera.interfaces.playback.IDownloadThumbnailImageCallback;
13 import net.osdn.gokigen.pkremote.camera.interfaces.playback.IPlaybackControl;
14 import net.osdn.gokigen.pkremote.camera.vendor.sony.wrapper.ISonyCameraApi;
16 import org.json.JSONArray;
17 import org.json.JSONObject;
19 public class SonyPlaybackControl implements IPlaybackControl
21 private final String TAG = toString();
22 private ISonyCameraApi cameraApi = null;
24 public SonyPlaybackControl()
26 Log.v(TAG, "SonyPlaybackControl()");
30 public void setCameraApi(@NonNull ISonyCameraApi sonyCameraApi)
32 cameraApi = sonyCameraApi;
36 public String getRawFileSuffix()
42 public void downloadContentList(IDownloadContentListCallback callback)
44 Log.v(TAG, "downloadContentList()");
49 public void getContentInfo(String path, String name, IContentInfoCallback callback)
51 Log.v(TAG, "getContentInfo()");
56 public void updateCameraFileInfo(ICameraFileInfo info)
58 Log.v(TAG, "updateCameraFileInfo()");
63 public void downloadContentScreennail(String path, IDownloadThumbnailImageCallback callback)
65 Log.v(TAG, "downloadContentScreennail()");
70 public void downloadContentThumbnail(String path, IDownloadThumbnailImageCallback callback)
72 Log.v(TAG, "downloadContentThumbnail()");
77 public void downloadContent(String path, boolean isSmallSize, IDownloadContentCallback callback)
79 Log.v(TAG, "downloadContent()");
84 public void getCameraContentList(ICameraContentListCallback callback)
86 Log.v(TAG, "getCameraContentList()");
89 if (cameraApi == null)
91 Log.v(TAG, "CAMERA API is NULL.");
94 JSONObject storageInformationObj = cameraApi.getStorageInformation();
95 JSONObject schemeListObj = cameraApi.getSchemeList();
96 //JSONArray schemeArray = schemeListObj.getJSONArray("result");
97 JSONObject sourceObj = cameraApi.getSourceList("storage");
98 //JSONArray sourceArray = sourceObj.getJSONArray("result");
99 JSONObject countObject = cameraApi.getContentCountFlatAll("storage:memoryCard1");
100 JSONArray resultArray = countObject.getJSONArray("result");
101 int objectCount = resultArray.getJSONObject(0).getInt("count");
102 Log.v(TAG, " OBJECT COUNT : " + objectCount);
106 while ((index >= 0) && (index < objectCount))
108 int remainCount = objectCount - index;
109 JSONObject paramsObj = new JSONObject();
110 paramsObj.put("uri", "storage:memoryCard1");
111 paramsObj.put("stIdx", index);
112 paramsObj.put("cnt", (remainCount > 100 ? 100 : remainCount));
113 paramsObj.put("view", "flat");
114 paramsObj.put("sort", "descending");
117 JSONObject responseObject = cameraApi.getContentList(new JSONArray().put(paramsObj));
118 JSONArray resultsArray = responseObject.getJSONArray("result").getJSONArray(0);
119 int nofContents = resultsArray.length();
120 for (int pos = 0; pos < nofContents; pos++)
122 JSONObject contentObject = resultsArray.getJSONObject(pos);
123 JSONObject contents = contentObject.getJSONObject("content");
124 JSONArray original = contents.getJSONArray("original");
125 String fileNo = contentObject.getString("fileNo");
126 String createdTime = contentObject.getString("createdTime");
127 String contentKind = contentObject.getString("contentKind");
128 String folderNo = contentObject.getString("folderNo");
129 String thumbnailUrl = contents.getString("thumbnailUrl");
130 String fileName = original.getJSONObject(0).getString("fileName");
132 Log.v(TAG, " [" + pos + "] " + " " + fileName + " " + " " + createdTime + " " + folderNo + " " + thumbnailUrl);
134 index = index + nofContents;
135 Log.v(TAG, " COUNT : " + index);