1 package net.osdn.gokigen.a01d.camera.sony.wrapper.connection;
3 import android.app.Activity;
4 import android.content.Context;
5 import android.support.annotation.NonNull;
6 import android.util.Log;
8 import net.osdn.gokigen.a01d.R;
9 import net.osdn.gokigen.a01d.camera.ICameraConnection;
10 import net.osdn.gokigen.a01d.camera.ICameraStatusReceiver;
11 import net.osdn.gokigen.a01d.camera.sony.wrapper.ISonyCamera;
12 import net.osdn.gokigen.a01d.camera.sony.wrapper.ISonyCameraHolder;
13 import net.osdn.gokigen.a01d.camera.sony.wrapper.eventlistener.CameraChangeListerTemplate;
20 public class SonyCameraConnectSequence implements Runnable, SonySsdpClient.ISearchResultCallback
22 private final String TAG = this.toString();
23 private final Activity context;
24 private final ICameraConnection cameraConnection;
25 private final ISonyCameraHolder cameraHolder;
26 private final ICameraStatusReceiver cameraStatusReceiver;
27 private final SonySsdpClient client;
29 SonyCameraConnectSequence(Activity context, ICameraStatusReceiver statusReceiver, final ICameraConnection cameraConnection, final @NonNull ISonyCameraHolder cameraHolder)
31 Log.v(TAG, "SonyCameraConnectSequence");
32 this.context = context;
33 this.cameraConnection = cameraConnection;
34 this.cameraStatusReceiver = statusReceiver;
35 this.cameraHolder = cameraHolder;
36 client = new SonySsdpClient(context, this, statusReceiver, -1);
42 Log.v(TAG, "search()");
45 cameraStatusReceiver.onStatusNotify(context.getString(R.string.connect_start));
55 public void onDeviceFound(ISonyCamera cameraDevice)
59 cameraStatusReceiver.onStatusNotify(context.getString(R.string.camera_detected) + " " + cameraDevice.getFriendlyName());
60 cameraHolder.detectedCamera(cameraDevice);
69 public void onFinished()
71 Log.v(TAG, "SonyCameraConnectSequence.onFinished()");
74 Thread thread = new Thread(new Runnable()
81 cameraHolder.prepare();
82 cameraHolder.startEventWatch(new CameraChangeListerTemplate());
88 Log.v(TAG, "CameraConnectSequence:: connected.");
100 private void onConnectNotify()
104 final Thread thread = new Thread(new Runnable()
110 cameraStatusReceiver.onStatusNotify(context.getString(R.string.connect_connected));
111 cameraStatusReceiver.onCameraConnected();
112 Log.v(TAG, "onConnectNotify()");
123 private void waitForAMoment(long mills)
128 Log.v(TAG, " WAIT " + mills + "ms");
130 } catch (Exception e) {
138 public void onErrorFinished(String reason)
140 cameraConnection.alertConnectingFailed(reason);