void vibrate(final int vibratePattern);
void setEnabledOperation(boolean operation, boolean suppress);
+
+ void showFavoriteSettingsDialog();
}
import jp.sfjp.gokigen.a01c.liveview.OlyCameraLiveViewOnTouchListener;
import jp.sfjp.gokigen.a01c.olycamerawrapper.IOlyCameraCoordinator;
import jp.sfjp.gokigen.a01c.olycamerawrapper.OlyCameraCoordinator;
-import jp.sfjp.gokigen.a01c.preference.ICameraPropertyAccessor;
+import jp.sfjp.gokigen.a01c.preference.IPreferenceCameraPropertyAccessor;
/**
* メインのActivity
{
private final String TAG = toString();
static final int REQUEST_NEED_PERMISSIONS = 1010;
+ static final int COMMAND_MY_PROPERTY = 0x00000100;
private CameraLiveImageView liveView = null;
private IOlyCameraCoordinator coordinator = null;
{
int resId;
SharedPreferences preferences = android.support.v7.preference.PreferenceManager.getDefaultSharedPreferences(this);
- if (preferences.getBoolean(ICameraPropertyAccessor.SHOW_GRID_STATUS, true))
+ if (preferences.getBoolean(IPreferenceCameraPropertyAccessor.SHOW_GRID_STATUS, true))
{
// ボタンをGrid OFFアイコンにする
resId = R.drawable.btn_ic_grid_off;
coordinator.stopLiveView();
// パラメータを確認し、カメラの電源を切る
- if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean(ICameraPropertyAccessor.EXIT_APPLICATION_WITH_DISCONNECT, true))
+ if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean(IPreferenceCameraPropertyAccessor.EXIT_APPLICATION_WITH_DISCONNECT, true))
{
Log.v(TAG, "Shutdown camera...");
listener.setEnableOperation(operation, suppress);
}
}
+
+ /**
+ * 「お気に入り設定」表示画面を開く
+ *
+ */
+ @Override
+ public void showFavoriteSettingsDialog()
+ {
+/*
+ // お気に入り設定画面を開く...
+ LoadSaveMyCameraPropertyDialog dialog = new LoadSaveMyCameraPropertyDialog();
+ dialog.setTargetFragment(this, COMMAND_MY_PROPERTY);
+ dialog.setPropertyOperationsHolder(coordinator.getCameraPropertyLoadSaveOperations());
+ dialog.show(this, "my_dialog");
+*/
+/*
+ // コマンドの実行確認ダイアログ... 動かん。。
+ ConfirmationDialog dialog = new ConfirmationDialog(this);
+ dialog.show(R.string.title_my_settings, R.string.message_none, new ConfirmationDialog.Callback()
+ {
+ @Override
+ public void confirm()
+ {
+ vibrate(IShowInformation.VIBRATE_PATTERN_SIMPLE_LONGLONG);
+ }
+ });
+*/
+ }
+
+
}
import android.graphics.PointF;
import android.graphics.Rect;
import android.graphics.RectF;
-import android.graphics.Typeface;
import android.media.ExifInterface;
import android.os.Looper;
import android.preference.PreferenceManager;
import jp.sfjp.gokigen.a01c.liveview.gridframe.GridFrameFactory;
import jp.sfjp.gokigen.a01c.liveview.gridframe.IGridFrameDrawer;
import jp.sfjp.gokigen.a01c.olycamerawrapper.ILevelGauge;
-import jp.sfjp.gokigen.a01c.preference.ICameraPropertyAccessor;
+import jp.sfjp.gokigen.a01c.preference.IPreferenceCameraPropertyAccessor;
/**
* CameraLiveImageView :
imageScaleType = ImageView.ScaleType.FIT_CENTER;
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
- showGridFeature = preferences.getBoolean(ICameraPropertyAccessor.SHOW_GRID_STATUS, true);
- showLevelGaugeFeature = preferences.getBoolean(ICameraPropertyAccessor.SHOW_LEVEL_GAUGE_STATUS, false);
+ showGridFeature = preferences.getBoolean(IPreferenceCameraPropertyAccessor.SHOW_GRID_STATUS, true);
+ showLevelGaugeFeature = preferences.getBoolean(IPreferenceCameraPropertyAccessor.SHOW_LEVEL_GAUGE_STATUS, false);
- int framingGridStatus = Integer.parseInt(preferences.getString(ICameraPropertyAccessor.FRAME_GRID, ICameraPropertyAccessor.FRAME_GRID_DEFAULT_VALUE));
+ int framingGridStatus = Integer.parseInt(preferences.getString(IPreferenceCameraPropertyAccessor.FRAME_GRID, IPreferenceCameraPropertyAccessor.FRAME_GRID_DEFAULT_VALUE));
gridFrameDrawer = GridFrameFactory.getGridFrameDrawer(framingGridStatus);
// ダミーのビットマップデータ読み込み...画面表示のテスト用ロジック
showGridFeature = isShowGridFeature;
SharedPreferences preferences = android.support.v7.preference.PreferenceManager.getDefaultSharedPreferences(getContext());
SharedPreferences.Editor editor = preferences.edit();
- editor.putBoolean(ICameraPropertyAccessor.SHOW_GRID_STATUS, showGridFeature);
+ editor.putBoolean(IPreferenceCameraPropertyAccessor.SHOW_GRID_STATUS, showGridFeature);
editor.apply();
}
showLevelGaugeFeature = isShowLevelGaugeFeature;
SharedPreferences preferences = android.support.v7.preference.PreferenceManager.getDefaultSharedPreferences(getContext());
SharedPreferences.Editor editor = preferences.edit();
- editor.putBoolean(ICameraPropertyAccessor.SHOW_LEVEL_GAUGE_STATUS, showLevelGaugeFeature);
+ editor.putBoolean(IPreferenceCameraPropertyAccessor.SHOW_LEVEL_GAUGE_STATUS, showLevelGaugeFeature);
editor.apply();
ILevelGauge levelGauge = messageHolder.getLevelGauge();
if (levelGauge == null)
if (isLongClick)
{
preference_action_id = preference_action_id + ICameraFeatureDispatcher.ACTION_SECOND_CHOICE;
- //defaultAction = ICameraFeatureDispatcher.FEATURE_SHOW_FAVORITE_DIALOG;
+ defaultAction = ICameraFeatureDispatcher.FEATURE_SHOW_FAVORITE_DIALOG;
}
String takeMode = dispatcher.getTakeMode();
switch (takeMode)
import jp.sfjp.gokigen.a01c.ConfirmationDialog;
import jp.sfjp.gokigen.a01c.IChangeScene;
import jp.sfjp.gokigen.a01c.R;
-import jp.sfjp.gokigen.a01c.preference.ICameraPropertyAccessor;
+import jp.sfjp.gokigen.a01c.preference.IPreferenceCameraPropertyAccessor;
/**
* Preferenceがクリックされた時に処理するクラス
}
preferenceKey = preference.getKey();
- if (preferenceKey.contains(ICameraPropertyAccessor.EXIT_APPLICATION))
+ if (preferenceKey.contains(IPreferenceCameraPropertyAccessor.EXIT_APPLICATION))
{
// 確認ダイアログの生成と表示
@Override
public void confirm()
{
- if (preferenceKey.contains(ICameraPropertyAccessor.EXIT_APPLICATION))
+ if (preferenceKey.contains(IPreferenceCameraPropertyAccessor.EXIT_APPLICATION))
{
// カメラの電源をOFFにしたうえで、アプリケーションを終了する。
changeScene.exitApplication();
import jp.co.olympus.camerakit.OLYCameraStatusListener;
import jp.sfjp.gokigen.a01c.olycamerawrapper.property.ILoadSaveCameraProperties;
import jp.sfjp.gokigen.a01c.olycamerawrapper.property.IOlyCameraPropertyProvider;
+import jp.sfjp.gokigen.a01c.olycamerawrapper.property.ICameraPropertyLoadSaveOperations;
/**
*
// カメラプロパティアクセスインタフェース
IOlyCameraPropertyProvider getCameraPropertyProvider();
+ // カメラプロパティのロード・セーブインタフェース(読み込み中/保存中のダイアログ表示機能付き)
+ ICameraPropertyLoadSaveOperations getCameraPropertyLoadSaveOperations();
+
// カメラプロパティのロード・セーブインタフェース
ILoadSaveCameraProperties getLoadSaveCameraProperties();
import jp.sfjp.gokigen.a01c.olycamerawrapper.listeners.CameraPropertyListenerImpl;
import jp.sfjp.gokigen.a01c.olycamerawrapper.listeners.CameraRecordingListenerImpl;
import jp.sfjp.gokigen.a01c.olycamerawrapper.listeners.CameraStatusListenerImpl;
+import jp.sfjp.gokigen.a01c.olycamerawrapper.property.ICameraPropertyLoadSaveOperations;
import jp.sfjp.gokigen.a01c.olycamerawrapper.property.ILoadSaveCameraProperties;
import jp.sfjp.gokigen.a01c.olycamerawrapper.property.IOlyCameraProperty;
import jp.sfjp.gokigen.a01c.olycamerawrapper.property.IOlyCameraPropertyProvider;
import jp.sfjp.gokigen.a01c.olycamerawrapper.takepicture.BracketingShotControl;
import jp.sfjp.gokigen.a01c.olycamerawrapper.takepicture.MovieRecordingControl;
import jp.sfjp.gokigen.a01c.olycamerawrapper.takepicture.SingleShotControl;
-import jp.sfjp.gokigen.a01c.preference.ICameraPropertyAccessor;
+import jp.sfjp.gokigen.a01c.olycamerawrapper.property.CameraPropertyLoadSaveOperations;
+import jp.sfjp.gokigen.a01c.preference.IPreferenceCameraPropertyAccessor;
/**
* OlyCameraCoordinator : Olympus Air との接続、切断の間をとりもつクラス。
private final MovieRecordingControl movieControl;
private final BracketingShotControl bracketingShot;
private final OlyCameraPropertyProxy propertyProxy;
+ private final CameraPropertyLoadSaveOperations loadSaveOperations;
private final LoadSaveCameraProperties loadSaveCameraProperties;
private final OlyCameraConnection cameraConnection;
private final ICameraStatusDisplay cameraStatusDisplay;
private boolean isAutoFocusLocked = false;
//private boolean isExposureLocked = false;
+
/**
* コンストラクタ
*/
bracketingShot = new BracketingShotControl(camera, focusFrameDisplay, this, showInformation); // ブラケッティング&インターバル撮影
propertyProxy = new OlyCameraPropertyProxy(camera); // カメラプロパティ
cameraStatusDisplay = new CameraStatusDisplay(propertyProxy, showInformation); // 画面表示
- this.levelMeter = new LevelMeterHolder(showInformation, android.support.v7.preference.PreferenceManager.getDefaultSharedPreferences(context).getBoolean(ICameraPropertyAccessor.SHOW_LEVEL_GAUGE_STATUS, false)); // デジタル水準器
+ this.levelMeter = new LevelMeterHolder(showInformation, android.support.v7.preference.PreferenceManager.getDefaultSharedPreferences(context).getBoolean(IPreferenceCameraPropertyAccessor.SHOW_LEVEL_GAUGE_STATUS, false)); // デジタル水準器
camera.setCameraStatusListener(new CameraStatusListenerImpl(context, cameraStatusDisplay, levelMeter));
camera.setCameraPropertyListener(new CameraPropertyListenerImpl(cameraStatusDisplay));
camera.setRecordingListener(new CameraRecordingListenerImpl(context, showInformation));
loadSaveCameraProperties = new LoadSaveCameraProperties(context, propertyProxy, this);
+ loadSaveOperations = new CameraPropertyLoadSaveOperations(context, loadSaveCameraProperties, cameraStatusDisplay);
}
/**
}
@Override
+ public ICameraPropertyLoadSaveOperations getCameraPropertyLoadSaveOperations()
+ {
+ return (loadSaveOperations);
+ }
+
+ @Override
public ILoadSaveCameraProperties getLoadSaveCameraProperties()
{
return (loadSaveCameraProperties);
import jp.sfjp.gokigen.a01c.olycamerawrapper.IOlyCameraCoordinator;
import jp.sfjp.gokigen.a01c.olycamerawrapper.property.IOlyCameraProperty;
import jp.sfjp.gokigen.a01c.olycamerawrapper.property.IOlyCameraPropertyProvider;
-import jp.sfjp.gokigen.a01c.olycamerawrapper.takepicture.BracketingShotControl;
import jp.sfjp.gokigen.a01c.olycamerawrapper.takepicture.IBracketingShotStyle;
public class FeatureDispatcher implements ICameraFeatureDispatcher
{
private final String TAG = toString();
+
private final IShowInformation statusDrawer;
private final IOlyCameraCoordinator camera;
private final ILiveImageStatusNotify liveImageView;
*/
private void showFavoriteDialog()
{
- // TBD...
+ // お気に入り設定表示画面を開く
+ statusDrawer.showFavoriteSettingsDialog();
}
/**
-package jp.sfjp.gokigen.a01c.preference;
+package jp.sfjp.gokigen.a01c.olycamerawrapper.property;
import android.app.Activity;
import android.app.ProgressDialog;
import jp.sfjp.gokigen.a01c.R;
import jp.sfjp.gokigen.a01c.olycamerawrapper.indicator.ICameraStatusDisplay;
-import jp.sfjp.gokigen.a01c.olycamerawrapper.property.ILoadSaveCameraProperties;
/**
* カメラプロパティの保存、展開を実行する
-package jp.sfjp.gokigen.a01c.preference;
+package jp.sfjp.gokigen.a01c.olycamerawrapper.property;
-interface ICameraPropertyLoadSaveOperations
+public interface ICameraPropertyLoadSaveOperations
{
void saveProperties(final String idHeader, final String dataName);
void loadProperties(final String idHeader, final String dataName);
public interface ILoadSaveCameraProperties
{
+ int MAX_STORE_PROPERTIES = 256; // お気に入り設定の最大記憶数...
+ String TITLE_KEY = "CameraPropTitleKey";
+ String DATE_KEY = "CameraPropDateTime";
+
void loadCameraSettings(final String id);
void saveCameraSettings(final String id, final String name);
}
{
private final String TAG = toString();
- public static final int MAX_STORE_PROPERTIES = 256; // お気に入り設定の最大記憶数...
- public static final String TITLE_KEY = "CameraPropTitleKey";
- public static final String DATE_KEY = "CameraPropDateTime";
+
private static final String TAKEMODE = "TAKEMODE";
private final Context parent;
private final OLYCamera camera;
--- /dev/null
+package jp.sfjp.gokigen.a01c.olycamerawrapper.property.favorite;
+
+interface ILoadSaveMyCameraPropertyDialogDismiss
+{
+ void doDismissWithPropertyLoad(String id, String name);
+ void doDismissWithPropertySave(String id, String name);
+}
--- /dev/null
+package jp.sfjp.gokigen.a01c.olycamerawrapper.property.favorite;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.support.v4.app.ListFragment;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.ListView;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+import jp.sfjp.gokigen.a01c.R;
+import jp.sfjp.gokigen.a01c.olycamerawrapper.property.ILoadSaveCameraProperties;
+
+public class LoadMyCameraPropertyFragment extends ListFragment implements ListView.OnItemClickListener
+{
+ private final String TAG = toString();
+ private ILoadSaveMyCameraPropertyDialogDismiss dialogDismiss = null;
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
+ {
+ return (inflater.inflate(R.layout.list_camera_properties, container, false));
+ }
+
+ public void setDismissInterface(ILoadSaveMyCameraPropertyDialogDismiss dismiss)
+ {
+ this.dialogDismiss = dismiss;
+ }
+
+
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState)
+ {
+ super.onActivityCreated(savedInstanceState);
+
+ List<MyCameraPropertySetItems> listItems = new ArrayList<>();
+
+ SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getContext());
+ for (int index = 1; index <= ILoadSaveCameraProperties.MAX_STORE_PROPERTIES; index++)
+ {
+ String idHeader = String.format(Locale.ENGLISH, "%03d", index);
+ String prefDate = preferences.getString(idHeader + ILoadSaveCameraProperties.DATE_KEY, "");
+ if (prefDate.length() <= 0)
+ {
+ //listItems.add(new MyCameraPropertySetItems(0, idHeader, "", ""));
+ break;
+ }
+ String prefTitle = preferences.getString(idHeader + ILoadSaveCameraProperties.TITLE_KEY, "");
+ listItems.add(new MyCameraPropertySetItems(0, idHeader, prefTitle, prefDate));
+ }
+
+ //String prefDate = preferences.getString(LoadSaveCameraProperties.DATE_KEY, "");
+ //listItems.add(new MyCameraPropertySetItems(0, "000", getString(R.string.auto_save_props), prefDate));
+
+ MyCameraPropertyLoadArrayAdapter adapter = new MyCameraPropertyLoadArrayAdapter(getActivity(), R.layout.column_load, listItems);
+ setListAdapter(adapter);
+
+ getListView().setOnItemClickListener(this);
+ }
+
+ @Override
+ public void onItemClick(AdapterView<?> adapterView, View view, int position, long l)
+ {
+ final MyCameraPropertySetItems item = (MyCameraPropertySetItems) getListAdapter().getItem(position);
+ Log.v(TAG, "onItemClick() : " + position + " [" + item.getItemId() + "] " + item.getItemName() + " (" + item.getItemInfo() + ")");
+
+ // アイテムを選択して終わらせる
+ if (dialogDismiss != null)
+ {
+ dialogDismiss.doDismissWithPropertyLoad(item.getItemId(), item.getItemName());
+ }
+ }
+}
--- /dev/null
+package jp.sfjp.gokigen.a01c.olycamerawrapper.property.favorite;
+
+import android.os.Bundle;
+import android.support.v4.app.DialogFragment;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentTabHost;
+import android.support.v4.view.ViewPager;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TabHost;
+
+import jp.sfjp.gokigen.a01c.R;
+import jp.sfjp.gokigen.a01c.olycamerawrapper.property.ICameraPropertyLoadSaveOperations;
+
+
+public class LoadSaveMyCameraPropertyDialog extends DialogFragment implements TabHost.OnTabChangeListener, ViewPager.OnPageChangeListener, ILoadSaveMyCameraPropertyDialogDismiss
+{
+ private final String TAG = toString();
+ private ICameraPropertyLoadSaveOperations propertyOperations = null;
+ private FragmentTabHost tabHost = null;
+ private ViewPager viewPager = null;
+
+ public void setPropertyOperationsHolder(ICameraPropertyLoadSaveOperations holder)
+ {
+ propertyOperations = holder;
+ }
+
+ /**/
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
+ {
+ try
+ {
+ View view = inflater.inflate(R.layout.dialog_my_camera_properties, container);
+ tabHost = (FragmentTabHost) view.findViewById(R.id.tabHost01);
+ tabHost.setup(getActivity(), getChildFragmentManager());
+ tabHost.addTab(tabHost.newTabSpec("Load").setIndicator(getString(R.string.title_tab_title_load)), Fragment.class, null);
+ tabHost.addTab(tabHost.newTabSpec("Save").setIndicator(getString(R.string.title_tab_title_save)), Fragment.class, null);
+
+ tabHost.setOnTabChangedListener(this);
+
+ LoadSaveMyCameraPropertyPagerAdapter adapter = new LoadSaveMyCameraPropertyPagerAdapter(getChildFragmentManager(), this);
+ adapter.setTitles(new String[]{getString(R.string.title_tab_title_load), getString(R.string.title_tab_title_save)});
+
+ viewPager = (ViewPager) view.findViewById(R.id.pager);
+ viewPager.setAdapter(adapter);
+ //viewPager.setOnPageChangeListener(this);
+ viewPager.addOnPageChangeListener(this);
+
+ getDialog().setTitle(getString(R.string.title_my_settings));
+ return (view);
+
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ return (null);
+
+ }
+
+ @Override
+ public void onTabChanged(String tabId)
+ {
+ Log.v(TAG, "CHANGED TAB : " + tabId);
+
+ int i = tabHost.getCurrentTab();
+ viewPager.setCurrentItem(i);
+ }
+
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position)
+ {
+ Log.v(TAG, "CHANGED PAGER : " + position);
+ tabHost.setCurrentTab(position);
+
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state)
+ {
+
+ }
+
+ @Override
+ public void doDismissWithPropertyLoad(final String id, final String name)
+ {
+ dismiss();
+ if (propertyOperations != null)
+ {
+ propertyOperations.loadProperties(id, name);
+ }
+ }
+
+ @Override
+ public void doDismissWithPropertySave(final String id, final String name)
+ {
+ dismiss();
+ if (propertyOperations != null)
+ {
+ propertyOperations.saveProperties(id, name);
+ }
+ }
+}
--- /dev/null
+package jp.sfjp.gokigen.a01c.olycamerawrapper.property.favorite;
+
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentPagerAdapter;
+import android.util.Log;
+
+class LoadSaveMyCameraPropertyPagerAdapter extends FragmentPagerAdapter
+{
+ private final String TAG = toString();
+ private final ILoadSaveMyCameraPropertyDialogDismiss dismissInterface;
+
+ private String[] titles = null;
+ private LoadMyCameraPropertyFragment loadFragment = null;
+ private SaveMyCameraPropertyFragment saveFragment = null;
+
+ LoadSaveMyCameraPropertyPagerAdapter(FragmentManager fm, ILoadSaveMyCameraPropertyDialogDismiss dismissInterface)
+ {
+ super(fm);
+ this.dismissInterface = dismissInterface;
+ }
+
+ private void initialize()
+ {
+ loadFragment = null;
+ loadFragment = new LoadMyCameraPropertyFragment();
+ loadFragment.setDismissInterface(dismissInterface);
+
+ saveFragment = null;
+ saveFragment = new SaveMyCameraPropertyFragment();
+ saveFragment.setDismissInterface(dismissInterface);
+ }
+
+ @Override
+ public Fragment getItem(int position)
+ {
+ Log.v(TAG, "getItem :" + position);
+ if ((loadFragment == null)||(saveFragment == null))
+ {
+ initialize();
+ }
+ Fragment returnFragment;
+ if (position == 0)
+ {
+ // loadFragment
+ returnFragment = loadFragment;
+ }
+ else //
+ {
+ // saveFragment
+ returnFragment = saveFragment;
+ }
+ return (returnFragment);
+ }
+
+ @Override
+ public int getCount()
+ {
+ return 2;
+ }
+
+ @Override
+ public CharSequence getPageTitle(int position)
+ {
+ return titles[position];
+ }
+
+ void setTitles(String[] titles)
+ {
+ this.titles = titles;
+ }
+}
--- /dev/null
+package jp.sfjp.gokigen.a01c.olycamerawrapper.property.favorite;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.TextView;
+
+import java.util.List;
+
+class MyCameraPropertyLoadArrayAdapter extends ArrayAdapter<MyCameraPropertySetItems>
+{
+ private LayoutInflater inflater = null;
+ private final int textViewResourceId;
+ private List<MyCameraPropertySetItems> listItems = null;
+
+ MyCameraPropertyLoadArrayAdapter(Context context, int resource, List<MyCameraPropertySetItems> objects)
+ {
+ super(context, resource, objects);
+ textViewResourceId = resource;
+ listItems = objects;
+
+ inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ }
+
+ /**
+ *
+ */
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent)
+ {
+ View view;
+ if(convertView != null)
+ {
+ view = convertView;
+ }
+ else
+ {
+ view = inflater.inflate(textViewResourceId, parent, false);
+ }
+ MyCameraPropertySetItems item = listItems.get(position);
+ try
+ {
+ TextView idView = (TextView) view.findViewWithTag("id");
+ idView.setText(item.getItemId());
+
+ TextView titleView = (TextView)view.findViewWithTag("title");
+ titleView.setText(item.getItemName());
+
+ TextView infoView = (TextView) view.findViewWithTag("info");
+ infoView.setText(item.getItemInfo());
+
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ return (view);
+ }
+}
--- /dev/null
+package jp.sfjp.gokigen.a01c.olycamerawrapper.property.favorite;
+
+import android.content.Context;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import java.util.List;
+
+import jp.sfjp.gokigen.a01c.R;
+
+class MyCameraPropertySetArrayAdapter extends ArrayAdapter<MyCameraPropertySetItems>
+{
+ private final String TAG = toString();
+ private final Context context;
+ private LayoutInflater inflater = null;
+ private final int textViewResourceId;
+ private List<MyCameraPropertySetItems> listItems = null;
+ private final ILoadSaveMyCameraPropertyDialogDismiss dialogDismiss;
+
+
+ MyCameraPropertySetArrayAdapter(Context context, int resource, List<MyCameraPropertySetItems> objects, ILoadSaveMyCameraPropertyDialogDismiss dialogDismiss)
+ {
+ super(context, resource, objects);
+ this.context = context;
+ textViewResourceId = resource;
+ listItems = objects;
+ this.dialogDismiss = dialogDismiss;
+
+ inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ }
+
+ /**
+ *
+ */
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent)
+ {
+ View view;
+ if(convertView != null)
+ {
+ view = convertView;
+ }
+ else
+ {
+ view = inflater.inflate(textViewResourceId, parent, false);
+ }
+ try
+ {
+ final MyCameraPropertySetItems item = listItems.get(position);
+
+ TextView idView = (TextView) view.findViewWithTag("id");
+ idView.setText(item.getItemId());
+
+ final EditText titleView = (EditText)view.findViewWithTag("title");
+ titleView.setText(item.getItemName());
+
+ TextView infoView = (TextView) view.findViewWithTag("info");
+ infoView.setText(item.getItemInfo());
+
+ Button button = (Button) view.findViewWithTag("button");
+ button.setOnClickListener(new Button.OnClickListener()
+ {
+ @Override
+ public void onClick(View view)
+ {
+
+ String idHeader = item.getItemId();
+ String title = titleView.getText().toString();
+ String itemInfo = item.getItemInfo();
+
+ Log.v(TAG, "CLICKED : " + idHeader + " " + title + " (" + item.getItemName() + " " + itemInfo + ")" );
+ if (dialogDismiss != null)
+ {
+ dialogDismiss.doDismissWithPropertySave(idHeader, title);
+ }
+ Log.v(TAG, "PROPERTY STORED : " + idHeader + " " + title);
+
+ // Toastで保管したことを通知する
+ String restoredMessage = context.getString(R.string.saved_my_props) + title;
+ Toast.makeText(context, restoredMessage, Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ return (view);
+ }
+}
--- /dev/null
+package jp.sfjp.gokigen.a01c.olycamerawrapper.property.favorite;
+
+class MyCameraPropertySetItems
+{
+ private final String itemId;
+ private String itemName = "";
+ private String itemInfo = "";
+ private int iconResource = 0;
+
+ MyCameraPropertySetItems(int iconResource, String itemId, String itemName, String itemInfo)
+ {
+ this.iconResource = iconResource;
+ this.itemId = itemId;
+ this.itemName = itemName;
+ this.itemInfo = itemInfo;
+ }
+
+ String getItemId()
+ {
+ return itemId;
+ }
+
+ String getItemName()
+ {
+ return itemName;
+ }
+
+ String getItemInfo()
+ {
+ return itemInfo;
+ }
+
+ int getIconResource()
+ {
+ return iconResource;
+ }
+}
--- /dev/null
+package jp.sfjp.gokigen.a01c.olycamerawrapper.property.favorite;
+
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.support.v4.app.ListFragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+import jp.sfjp.gokigen.a01c.R;
+import jp.sfjp.gokigen.a01c.olycamerawrapper.property.ILoadSaveCameraProperties;
+
+
+public class SaveMyCameraPropertyFragment extends ListFragment
+{
+ private ILoadSaveMyCameraPropertyDialogDismiss dialogDismiss = null;
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
+ {
+ return (inflater.inflate(R.layout.list_camera_properties, container, false));
+ }
+
+ public void setDismissInterface(ILoadSaveMyCameraPropertyDialogDismiss dismiss)
+ {
+ this.dialogDismiss = dismiss;
+ }
+
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState)
+ {
+ super.onActivityCreated(savedInstanceState);
+
+ List<MyCameraPropertySetItems> listItems = new ArrayList<>();
+
+ SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getContext());
+ for (int index = 1; index <= ILoadSaveCameraProperties.MAX_STORE_PROPERTIES; index++)
+ {
+ String idHeader = String.format(Locale.ENGLISH, "%03d", index);
+ String prefDate = preferences.getString(idHeader + ILoadSaveCameraProperties.DATE_KEY, "");
+ if (prefDate.length() <= 0)
+ {
+ listItems.add(new MyCameraPropertySetItems(0, idHeader, "", ""));
+ break;
+ }
+ String prefTitle = preferences.getString(idHeader + ILoadSaveCameraProperties.TITLE_KEY, "");
+ listItems.add(new MyCameraPropertySetItems(0, idHeader, prefTitle, prefDate));
+ }
+ MyCameraPropertySetArrayAdapter adapter = new MyCameraPropertySetArrayAdapter(getActivity(), R.layout.column_save, listItems, dialogDismiss);
+ setListAdapter(adapter);
+ }
+}
*
*
*/
-public interface ICameraPropertyAccessor
+public interface IPreferenceCameraPropertyAccessor
{
String FRAME_GRID = "frame_grid";
String FRAME_GRID_DEFAULT_VALUE = "0";
<string name="video_recording">●REC</string>
<string name="video_failure">失敗です…</string>
<string name="message_none">---</string>
+
+ <string name="title_my_settings">設定</string>
+ <string name="title_tab_title_load">読込</string>
+ <string name="title_tab_title_save">保存</string>
+ <string name="save_props">Save</string>
+ <string name="hint_save_props">Name</string>
</resources>
<string name="video_recording">●REC</string>
<string name="video_failure">FAILED!</string>
<string name="message_none">---</string>
+
+ <string name="title_my_settings">Favorite</string>
+ <string name="title_tab_title_load">Load</string>
+ <string name="title_tab_title_save">Save</string>
+ <string name="save_props">Save</string>
+ <string name="hint_save_props">Name</string>
</resources>