1 package net.osdn.gokigen.a01d.camera.olympus.cameraproperty;
4 import android.util.Log;
6 import net.osdn.gokigen.a01d.R;
7 import net.osdn.gokigen.a01d.camera.olympus.wrapper.IOlyCameraPropertyProvider;
9 import java.util.ArrayList;
10 import java.util.Collections;
11 import java.util.Comparator;
14 public class CameraPropertyLoader implements Runnable
16 private final String TAG = toString();
17 private final IOlyCameraPropertyProvider propertyInterface;
18 private final IPropertyLoaderCallback callback;
19 private ArrayList<CameraPropertyArrayItem> propertyItems = null;
21 public CameraPropertyLoader(IOlyCameraPropertyProvider propertyInterface, IPropertyLoaderCallback callback)
23 this.propertyInterface = propertyInterface;
24 this.callback = callback;
30 Log.v(TAG, "CameraPropertyLoader::run() START");
32 propertyItems = new ArrayList<>();
35 Set<String> names = propertyInterface.getCameraPropertyNames();
36 for (String name : names)
38 String title = propertyInterface.getCameraPropertyTitle(name);
39 String value = propertyInterface.getCameraPropertyValue(name);
40 String rawValue = propertyInterface.getCameraPropertyValueTitle(value);
41 int iconId = (propertyInterface.canSetCameraProperty(name)) ? R.drawable.ic_web_asset_black_24dp : R.drawable.ic_block_black_24dp;
43 propertyItems.add(new CameraPropertyArrayItem(name, title, rawValue, value, iconId));
46 // プロパティ名でソートしてしまおう。。。
47 Collections.sort(propertyItems, new Comparator<CameraPropertyArrayItem>() {
48 public int compare(CameraPropertyArrayItem o1, CameraPropertyArrayItem o2) {
49 return o1.getPropertyName().compareTo(o2.getPropertyName());
58 Log.v(TAG, "CameraPropertyLoader::run() END");
61 public void resetProperty()
63 Log.v(TAG, "CameraPropertyLoader::resetProperty() START");
65 for (CameraPropertyArrayItem item : propertyItems)
69 callback.resetProperty();
70 Log.v(TAG, "CameraPropertyLoader::resetProperty() END");
78 public ArrayList<CameraPropertyArrayItem> getItemList()
80 return (propertyItems);
83 public interface IPropertyLoaderCallback