import net.osdn.gokigen.a01d.camera.ICameraStatusReceiver;
import net.osdn.gokigen.a01d.camera.ICameraConnection;
import net.osdn.gokigen.a01d.camera.olympus.wrapper.connection.ble.ICameraPowerOn;
-import net.osdn.gokigen.a01d.camera.olympuspen.operation.OlympusPenSendCommandDialog;
+import net.osdn.gokigen.a01d.camera.utils.SimpleHttpSendCommandDialog;
import net.osdn.gokigen.a01d.camera.panasonic.operation.PanasonicSendCommandDialog;
import net.osdn.gokigen.a01d.camera.ricohgr2.operation.RicohGr2SendCommandDialog;
import net.osdn.gokigen.a01d.camera.sony.cameraproperty.SonyCameraApiListFragment;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceManager;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* A01d ;
*
{
try
{
- // Olympus Penの場合は、コマンド送信ダイアログを表示する
- OlympusPenSendCommandDialog.newInstance(interfaceProvider.getOlympusPenInterface()).show(getSupportFragmentManager(), "olympusPenSendCommandDialog");
+ Map<String, String> headerMap = new HashMap<>();
+ headerMap.put("User-Agent", "OlympusCameraKit"); // "OI.Share"
+ headerMap.put("X-Protocol", "OlympusCameraKit"); // "OI.Share"
+ // Olympus Penの場合は、コマンド送信ダイアログを表示する
+ SimpleHttpSendCommandDialog.newInstance("http://192.168.0.10/", interfaceProvider.getOlympusPenInterface().getLiveViewControl(), headerMap).show(getSupportFragmentManager(), "olympusPenSendCommandDialog");
}
catch (Exception e)
{
*
*
*/
+ public static String httpPutWithHeader(String url, String putData, Map<String, String> headerMap, String contentType, int timeoutMs)
+ {
+ return (httpCommand(url, "PUT", putData, headerMap, contentType, timeoutMs));
+ }
+
+
+ /**
+ *
+ *
+ *
+ */
public static String httpPut(String url, String postData, int timeoutMs)
{
return (httpCommand(url, "PUT", postData, null, null, timeoutMs));
-package net.osdn.gokigen.a01d.camera.olympuspen.operation;
+package net.osdn.gokigen.a01d.camera.utils;
import android.app.Activity;
import android.app.AlertDialog;
import android.widget.EditText;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
import net.osdn.gokigen.a01d.R;
import net.osdn.gokigen.a01d.camera.ILiveViewControl;
-import net.osdn.gokigen.a01d.camera.olympuspen.IOlympusPenInterfaceProvider;
-import net.osdn.gokigen.a01d.camera.utils.SimpleHttpClient;
-
-import java.util.HashMap;
import java.util.Map;
-public class OlympusPenSendCommandDialog extends DialogFragment implements View.OnClickListener
+public class SimpleHttpSendCommandDialog extends DialogFragment implements View.OnClickListener
{
private final String TAG = toString();
- private IOlympusPenInterfaceProvider interfaceProvider = null;
+ private ILiveViewControl liveViewControl = null;
private Dialog myDialog = null;
private EditText method = null;
private EditText service = null;
private EditText parameter = null;
private EditText command = null;
private TextView responseArea = null;
+ private String urlToSend = null;
private Map<String, String> headerMap;
private static final int TIMEOUT_MS = 6000;
- private static final String COMMUNICATE_URL = "http://192.168.0.10/";
+ private static final String COMMUNICATE_URL_DEFAULT = "http://192.168.0.10/";
/**
*
*
*/
- public static OlympusPenSendCommandDialog newInstance(@NonNull IOlympusPenInterfaceProvider interfaceProvider)
+ public static SimpleHttpSendCommandDialog newInstance(@Nullable String urlToSend, @NonNull ILiveViewControl liveViewControl, @Nullable Map<String, String> headerMap)
{
- OlympusPenSendCommandDialog instance = new OlympusPenSendCommandDialog();
- instance.prepare(interfaceProvider);
+ SimpleHttpSendCommandDialog instance = new SimpleHttpSendCommandDialog();
+ instance.prepare(urlToSend, liveViewControl, headerMap);
// パラメータはBundleにまとめておく
Bundle arguments = new Bundle();
*
*
*/
- private void prepare(@NonNull IOlympusPenInterfaceProvider interfaceProvider)
+ private void prepare(@Nullable String urlToSend, @NonNull ILiveViewControl liveViewControl, @Nullable Map<String, String> headerMap)
{
+ if ((urlToSend == null)||(!urlToSend.contains("http://")))
+ {
+ this.urlToSend = COMMUNICATE_URL_DEFAULT;
+ }
+ else
+ {
+ this.urlToSend = urlToSend;
+ }
+
//
- this.interfaceProvider = interfaceProvider;
+ this.liveViewControl = liveViewControl;
- headerMap = new HashMap<>();
- headerMap.put("User-Agent", "OlympusCameraKit"); // "OI.Share"
- headerMap.put("X-Protocol", "OlympusCameraKit"); // "OI.Share"
+ this.headerMap = headerMap;
+ //headerMap = new HashMap<>();
+ //headerMap.put("User-Agent", "OlympusCameraKit"); // "OI.Share"
+ //headerMap.put("X-Protocol", "OlympusCameraKit"); // "OI.Share"
}
@Override
// Get the layout inflater
LayoutInflater inflater = activity.getLayoutInflater();
- final View alertView = inflater.inflate(R.layout.olympuspen_request_layout, null, false);
+ final View alertView = inflater.inflate(R.layout.http_request_layout, null, false);
alertDialog.setView(alertView);
alertDialog.setIcon(R.drawable.ic_linked_camera_black_24dp);
- alertDialog.setTitle(activity.getString(R.string.dialog_olympuspen_command_title_command));
+ alertDialog.setTitle(activity.getString(R.string.dialog_http_command_title_command));
method = alertView.findViewById(R.id.edit_method);
service = alertView.findViewById(R.id.edit_service);
parameter = alertView.findViewById(R.id.edit_parameter);
alertDialog.setCancelable(true);
try
{
- if (service != null)
- {
- service.setText(activity.getText(R.string.olympuspen_service_string));
- }
if (method != null)
{
- method.setText(activity.getText(R.string.olympuspen_method_string));
+ method.setText(activity.getText(R.string.http_method_string));
}
}
catch (Exception e)
{
// ライブビューの停止と開始
Log.v(TAG, "changeRunMode() : " + isStartLiveView);
- ILiveViewControl liveViewControl = interfaceProvider.getLiveViewControl();
+ if (liveViewControl == null)
+ {
+ Log.v(TAG, "liveViewControl is NULL...");
+ return;
+ }
try
{
if (isStartLiveView)
methodStr = method.getText().toString().toLowerCase();
}
final boolean isPost = (methodStr.contains("post"));
+ final boolean isPut = (methodStr.contains("put"));
if (service != null)
{
// > POST : http://xxx.xxx.xxx.xxx/(serviceStr) + "?" (commandStr) , parameterStr ← BODY
if (commandStr.length() > 0)
{
- serviceStr = COMMUNICATE_URL + serviceStr + "?" + commandStr;
+ serviceStr = urlToSend + serviceStr + "?" + commandStr;
}
else
{
// commandStrにデータが記入されていない場合はServiceStrのみ
- serviceStr = COMMUNICATE_URL + serviceStr;
+ serviceStr = urlToSend + serviceStr;
}
final String url = serviceStr;
{
reply = SimpleHttpClient.httpPostWithHeader(url, param, headerMap, null, TIMEOUT_MS);
}
+ else if (isPut)
+ {
+ reply = SimpleHttpClient.httpPutWithHeader(url, param, headerMap, null, TIMEOUT_MS);
+ }
else
{
reply = SimpleHttpClient.httpGetWithHeader(url, headerMap, null, TIMEOUT_MS);
android:autoLink="all"
android:linksClickable="true"
android:inputType="text"
- android:hint="@string/olympuspen_dialog_method_hint"
+ android:hint="@string/http_dialog_method_hint"
/>
<EditText android:id="@+id/edit_service"
android:autoLink="all"
android:linksClickable="true"
android:inputType="text"
- android:hint="@string/olympuspen_dialog_service_hint"
+ android:hint="@string/http_dialog_service_hint"
/>
<EditText android:id="@+id/edit_command"
android:autoLink="all"
android:linksClickable="true"
android:inputType="text"
- android:hint="@string/olympuspen_dialog_command_hint"
+ android:hint="@string/http_dialog_command_hint"
/>
<EditText android:id="@+id/edit_parameter"
android:autoLink="all"
android:linksClickable="true"
android:inputType="text"
- android:hint="@string/olympuspen_dialog_parameter_hint"
+ android:hint="@string/http_dialog_parameter_hint"
/>
<Button
android:autoLink="all"
android:linksClickable="true"
android:inputType="text"
- android:hint="@string/olympuspen_dialog_method_hint"
+ android:hint="@string/http_dialog_method_hint"
/>
<EditText android:id="@+id/edit_service"
android:autoLink="all"
android:linksClickable="true"
android:inputType="text"
- android:hint="@string/olympuspen_dialog_service_hint"
+ android:hint="@string/http_dialog_service_hint"
/>
<EditText android:id="@+id/edit_command"
android:autoLink="all"
android:linksClickable="true"
android:inputType="text"
- android:hint="@string/olympuspen_dialog_command_hint"
+ android:hint="@string/http_dialog_command_hint"
/>
<EditText android:id="@+id/edit_parameter"
android:autoLink="all"
android:linksClickable="true"
android:inputType="text"
- android:hint="@string/olympuspen_dialog_parameter_hint"
+ android:hint="@string/http_dialog_parameter_hint"
/>
<Button
<string name="pref_use_pentax_autofocus_summary">PENTAX一眼カメラ用の命令を使って制御します。</string>
- <string name="dialog_olympuspen_command_title_command">メッセージ送信(Olympus)</string>
+ <string name="dialog_http_command_title_command">HTTPメッセージ送信</string>
<string name="dialog_ricoh_command_title_command">メッセージ送信(RICOH)</string>
<string name="dialog_panasonic_command_title_command">メッセージ送信(Panasonic)</string>
<string name="dialog_fujix_command_title_command">メッセージ送信(FUJI)</string>
<string name="dialog_command_hint">(command)</string>
<string name="dialog_service_hint">(service)</string>
<string name="panasonic_service_string">cam.cgi</string>
- <string name="olympuspen_dialog_service_hint">(service)</string>
- <string name="olympuspen_dialog_method_hint">GET/POST</string>
- <string name="olympuspen_method_string">GET</string>
- <string name="olympuspen_service_string">get_camprop.cgi</string>
- <string name="olympuspen_dialog_command_hint">(command)</string>
- <string name="olympuspen_dialog_parameter_hint">(paramenter)</string>
+ <string name="http_dialog_service_hint">(service)</string>
+ <string name="http_dialog_method_hint">GET/POST/PUT</string>
+ <string name="http_method_string">GET</string>
+ <string name="http_service_string">get_camprop.cgi</string>
+ <string name="http_dialog_command_hint">(command)</string>
+ <string name="http_dialog_parameter_hint">(paramenter)</string>
<string name="ricoh_service_string">GET</string>
<string name="ricoh_get_status_string">v1/status/camera</string>
<string name="pref_use_pentax_autofocus_summary">Uses PENTAX DSLR control commands.</string>
- <string name="dialog_olympuspen_command_title_command">Send Message(Olympus)</string>
+ <string name="dialog_http_command_title_command">HTTP Send Message</string>
<string name="dialog_ricoh_command_title_command">Send Message(RICOH)</string>
<string name="dialog_panasonic_command_title_command">Send Message(Panasonic)</string>
<string name="dialog_fujix_command_title_command">Send Message(FUJI)</string>
<string name="dialog_command_hint">(command)</string>
<string name="dialog_service_hint">(service)</string>
<string name="panasonic_service_string">cam.cgi</string>
- <string name="olympuspen_dialog_service_hint">(service)</string>
- <string name="olympuspen_dialog_method_hint">GET/POST</string>
- <string name="olympuspen_method_string">GET</string>
- <string name="olympuspen_service_string">get_camprop.cgi</string>
- <string name="olympuspen_dialog_command_hint">com=desc</string>
- <string name="olympuspen_dialog_parameter_hint">propname=desclist</string>
+ <string name="http_dialog_service_hint">(service)</string>
+ <string name="http_dialog_method_hint">GET/POST/PUT</string>
+ <string name="http_method_string">GET</string>
+ <string name="http_service_string">get_camprop.cgi</string>
+ <string name="http_dialog_command_hint">com=desc</string>
+ <string name="http_dialog_parameter_hint">propname=desclist</string>
<string name="ricoh_service_string">GET</string>
<string name="ricoh_get_status_string">v1/status/camera</string>