1 package net.osdn.gokigen.gr2control;
3 import android.Manifest;
4 import android.content.SharedPreferences;
5 import android.content.pm.PackageManager;
6 import android.support.annotation.NonNull;
7 import android.support.v4.app.ActivityCompat;
8 import android.support.v4.app.FragmentTransaction;
9 import android.support.v4.content.ContextCompat;
10 import android.support.v7.app.ActionBar;
11 import android.support.v7.app.AppCompatActivity;
12 import android.os.Bundle;
13 import android.support.v7.preference.PreferenceManager;
14 import android.util.Log;
15 import android.view.WindowManager;
17 import net.osdn.gokigen.gr2control.camera.CameraInterfaceProvider;
18 import net.osdn.gokigen.gr2control.camera.ICameraConnection;
19 import net.osdn.gokigen.gr2control.camera.IInterfaceProvider;
20 import net.osdn.gokigen.gr2control.liveview.LiveViewFragment;
21 import net.osdn.gokigen.gr2control.preference.IPreferencePropertyAccessor;
22 import net.osdn.gokigen.gr2control.scene.CameraSceneUpdater;
28 public class Gr2ControlMain extends AppCompatActivity
30 private final String TAG = toString();
31 private IInterfaceProvider interfaceProvider = null;
32 private CameraSceneUpdater scenceUpdater = null;
35 protected void onCreate(Bundle savedInstanceState)
37 super.onCreate(savedInstanceState);
40 setContentView(R.layout.activity_gr2_control_main);
43 ActionBar bar = getSupportActionBar();
54 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
57 final int REQUEST_NEED_PERMISSIONS = 1010;
58 if ((ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) ||
59 (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_NETWORK_STATE) != PackageManager.PERMISSION_GRANTED) ||
60 (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_WIFI_STATE) != PackageManager.PERMISSION_GRANTED) ||
61 (ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED)) {
62 ActivityCompat.requestPermissions(this,
64 Manifest.permission.WRITE_EXTERNAL_STORAGE,
65 Manifest.permission.ACCESS_NETWORK_STATE,
66 Manifest.permission.ACCESS_WIFI_STATE,
67 Manifest.permission.INTERNET,
69 REQUEST_NEED_PERMISSIONS);
81 public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults)
83 super.onRequestPermissionsResult(requestCode, permissions, grantResults);
91 protected void onPause()
96 ICameraConnection connection = interfaceProvider.getCameraConnection();
97 if (connection != null)
99 connection.stopWatchWifiStatus(this);
109 * クラスの初期化 (instantiate)
112 private void initializeClass()
116 scenceUpdater = CameraSceneUpdater.newInstance(this);
117 interfaceProvider = CameraInterfaceProvider.newInstance(this, scenceUpdater);
119 LiveViewFragment fragment = LiveViewFragment.newInstance(scenceUpdater, interfaceProvider);
120 scenceUpdater.registerInterface(fragment, interfaceProvider);
122 fragment.setRetainInstance(true);
123 FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
124 transaction.replace(R.id.fragment1, fragment);
125 transaction.commitAllowingStateLoss();
134 * 初期化終了時の処理 (カメラへの自動接続)
136 private void onReadyClass()
141 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
142 boolean isAutoConnectCamera = preferences.getBoolean(IPreferencePropertyAccessor.AUTO_CONNECT_TO_CAMERA, true);
143 Log.v(TAG, "isAutoConnectCamera() : " + isAutoConnectCamera);
146 if (isAutoConnectCamera)
149 scenceUpdater.changeCameraConnection();