}
socket = null;
sequenceNumber = SEQUENCE_START_NUMBER;
+ isStart = false;
+ commandQueue.clear();
System.gc();
}
{
try
{
+ if (dos == null)
+ {
+ Log.v(TAG, " DataOutputStream is null.");
+ return;
+ }
+
//dos = new DataOutputStream(socket.getOutputStream()); // ここにいたらいけない?
// メッセージボディを加工: 最初に4バイトのレングス長をつける
@Override
public int receiveDelayMs()
{
- return (50);
+ return (80);
}
@Override
import androidx.annotation.NonNull;
import net.osdn.gokigen.pkremote.camera.vendor.nikon.INikonInterfaceProvider;
+import net.osdn.gokigen.pkremote.camera.vendor.nikon.wrapper.status.NikonStatusChecker;
import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.command.IPtpIpCommunication;
private final IPtpIpCommunication command;
private final IPtpIpCommunication async;
private final IPtpIpCommunication liveview;
+ private final NikonStatusChecker statusChecker;
- NikonCameraDisconnectSequence(Activity activity, @NonNull INikonInterfaceProvider interfaceProvider)
+ NikonCameraDisconnectSequence(Activity activity, @NonNull INikonInterfaceProvider interfaceProvider, @NonNull NikonStatusChecker statusChecker)
{
this.activity = activity;
this.command = interfaceProvider.getCommandCommunication();
this.async = interfaceProvider.getAsyncEventCommunication();
this.liveview = interfaceProvider.getLiveviewCommunication();
+ this.statusChecker = statusChecker;
}
@Override
{
try
{
+ statusChecker.stopStatusWatch();
liveview.disconnect();
async.disconnect();
command.disconnect();
private final INikonInterfaceProvider interfaceProvider;
private final BroadcastReceiver connectionReceiver;
private final Executor cameraExecutor = Executors.newFixedThreadPool(1);
- private final NikonStatusChecker statusChecker;
+
private CameraConnectionStatus connectionStatus = CameraConnectionStatus.UNKNOWN;
+ private final NikonCameraConnectSequenceForPlayback connectSequence;
+ private final NikonCameraDisconnectSequence disconnectSequence;
+
public NikonConnection(@NonNull final Activity context, @NonNull final ICameraStatusReceiver statusReceiver, @NonNull INikonInterfaceProvider interfaceProvider, @NonNull NikonStatusChecker statusChecker)
{
Log.v(TAG, "NikonConnection()");
this.context = context;
this.statusReceiver = statusReceiver;
this.interfaceProvider = interfaceProvider;
- this.statusChecker = statusChecker;
connectionReceiver = new BroadcastReceiver()
{
@Override
onReceiveBroadcastOfConnection(context, intent);
}
};
+ connectSequence = new NikonCameraConnectSequenceForPlayback(context, statusReceiver, this, interfaceProvider, statusChecker);
+ disconnectSequence = new NikonCameraDisconnectSequence(context, interfaceProvider, statusChecker);
}
/**
Log.v(TAG, " disconnectFromCamera()");
try
{
- cameraExecutor.execute(new NikonCameraDisconnectSequence(context, interfaceProvider));
+ cameraExecutor.execute(disconnectSequence);
}
catch (Exception e)
{
connectionStatus = CameraConnectionStatus.CONNECTING;
try
{
- cameraExecutor.execute(new NikonCameraConnectSequenceForPlayback(context, statusReceiver, this, interfaceProvider, statusChecker));
+ cameraExecutor.execute(connectSequence);
}
catch (Exception e)
{
}
}
+ public void clearImageCache()
+ {
+ try
+ {
+ imageCache.evictAll();
+ Log.v(TAG, " clearImageCache()");
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
public void setFilterLabel(String filterLabel)
{
try
{
ICameraContentsRecognizer recognizer = interfaceProvider.getCameraContentsRecognizer();
- if (recognizer != null) {
+ if (recognizer != null)
+ {
// カメラ内のコンテンツ一覧を作成するように指示する
recognizer.getRemoteCameraContentsList(true, this);
}
- } catch (Exception e) {
+ if (gridViewFragment != null)
+ {
+ // サムネイル画像のキャッシュをクリアする
+ gridViewFragment.clearImageCache();
+ }
+ }
+ catch (Exception e)
+ {
e.printStackTrace();
}
}
<string name="time_picker_end_separator"> </string>
<string name="information_month_picker">年・月を指定</string>
- <string name="get_camera_contents_wait">画像確認中…お待ちください</string>
+ <string name="get_camera_contents_wait">画像確認…お待ちください</string>
<string name="get_camera_contents_error">画像確認… エラー</string>
<string name="get_camera_contents_finished">画像数 </string>
<string name="get_camera_contents_error_retry">再実行しますか?</string>