OSDN Git Service

ファイル一覧情報をとるところまで。(SONY)
[gokigen/PKRemote.git] / app / src / main / java / net / osdn / gokigen / pkremote / camera / vendor / sony / wrapper / playback / SonyPlaybackControl.java
1 package net.osdn.gokigen.pkremote.camera.vendor.sony.wrapper.playback;
2
3 import android.util.Log;
4
5 import androidx.annotation.NonNull;
6
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;
15
16 import org.json.JSONArray;
17 import org.json.JSONObject;
18
19 public class SonyPlaybackControl implements IPlaybackControl
20 {
21     private final String TAG = toString();
22     private ISonyCameraApi cameraApi = null;
23
24     public SonyPlaybackControl()
25     {
26         Log.v(TAG, "SonyPlaybackControl()");
27
28     }
29
30     public void setCameraApi(@NonNull ISonyCameraApi sonyCameraApi)
31     {
32         cameraApi = sonyCameraApi;
33     }
34
35     @Override
36     public String getRawFileSuffix()
37     {
38         return "ARW";
39     }
40
41     @Override
42     public void downloadContentList(IDownloadContentListCallback callback)
43     {
44         Log.v(TAG, "downloadContentList()");
45
46     }
47
48     @Override
49     public void getContentInfo(String path, String name, IContentInfoCallback callback)
50     {
51         Log.v(TAG, "getContentInfo()");
52
53     }
54
55     @Override
56     public void updateCameraFileInfo(ICameraFileInfo info)
57     {
58         Log.v(TAG, "updateCameraFileInfo()");
59
60     }
61
62     @Override
63     public void downloadContentScreennail(String path, IDownloadThumbnailImageCallback callback)
64     {
65         Log.v(TAG, "downloadContentScreennail()");
66
67     }
68
69     @Override
70     public void downloadContentThumbnail(String path, IDownloadThumbnailImageCallback callback)
71     {
72         Log.v(TAG, "downloadContentThumbnail()");
73
74     }
75
76     @Override
77     public void downloadContent(String path, boolean isSmallSize, IDownloadContentCallback callback)
78     {
79         Log.v(TAG, "downloadContent()");
80
81     }
82
83     @Override
84     public void getCameraContentList(ICameraContentListCallback callback)
85     {
86         Log.v(TAG, "getCameraContentList()");
87         try
88         {
89             if (cameraApi == null)
90             {
91                 Log.v(TAG, "CAMERA API is NULL.");
92                 return;
93             }
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);
103
104             int index = 0;
105             // データを解析してリストを作る
106             while ((index >= 0) && (index < objectCount))
107             {
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");
115                 try
116                 {
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++)
121                     {
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");
131
132                         Log.v(TAG,  " [" + pos + "] " + "  " + fileName + " " + " " + createdTime + " " + folderNo + " " + thumbnailUrl);
133                     }
134                     index = index + nofContents;
135                     Log.v(TAG, "  COUNT : " + index);
136                 }
137                 catch (Exception e)
138                 {
139                     e.printStackTrace();
140                     break;
141                 }
142             }
143         }
144         catch (Exception e)
145         {
146             e.printStackTrace();
147         }
148     }
149 }