1 package net.osdn.gokigen.pkremote;
3 import android.Manifest;
4 import android.content.SharedPreferences;
5 import android.content.pm.PackageManager;
6 import android.os.Bundle;
8 import androidx.annotation.NonNull;
10 import com.google.android.material.bottomnavigation.BottomNavigationView;
12 import androidx.appcompat.app.ActionBar;
13 import androidx.appcompat.app.AppCompatActivity;
14 import androidx.core.app.ActivityCompat;
15 import androidx.core.content.ContextCompat;
16 import androidx.fragment.app.FragmentTransaction;
17 import androidx.preference.PreferenceManager;
19 import android.util.Log;
20 import android.view.MenuItem;
21 import android.view.WindowManager;
22 import android.widget.TextView;
24 import net.osdn.gokigen.pkremote.camera.CameraInterfaceProvider;
25 import net.osdn.gokigen.pkremote.camera.interfaces.IInterfaceProvider;
26 import net.osdn.gokigen.pkremote.preference.IPreferencePropertyAccessor;
27 import net.osdn.gokigen.pkremote.scene.CameraSceneUpdater;
29 public class MainActivity extends AppCompatActivity
31 private final String TAG = toString();
32 private IInterfaceProvider interfaceProvider = null;
33 private CameraSceneUpdater scenceUpdater = null;
36 private TextView mTextMessage;
37 private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
38 = new BottomNavigationView.OnNavigationItemSelectedListener() {
41 public boolean onNavigationItemSelected(@NonNull MenuItem item) {
42 switch (item.getItemId()) {
43 case R.id.navigation_home:
44 mTextMessage.setText(R.string.title_home);
46 case R.id.navigation_photo_library:
47 mTextMessage.setText(R.string.title_photo_library);
49 case R.id.navigation_dashboard:
50 mTextMessage.setText(R.string.title_dashboard);
52 case R.id.navigation_notifications:
53 mTextMessage.setText(R.string.title_notifications);
55 case R.id.navigation_settings:
56 mTextMessage.setText(R.string.title_settings);
64 protected void onCreate(Bundle savedInstanceState)
66 super.onCreate(savedInstanceState);
67 setContentView(R.layout.activity_main);
70 ActionBar bar = getSupportActionBar();
81 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
83 mTextMessage = findViewById(R.id.message);
84 BottomNavigationView navigation = findViewById(R.id.navigation);
85 navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
88 final int REQUEST_NEED_PERMISSIONS = 1010;
89 if ((ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) ||
90 (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_NETWORK_STATE) != PackageManager.PERMISSION_GRANTED) ||
91 (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_WIFI_STATE) != PackageManager.PERMISSION_GRANTED) ||
92 (ContextCompat.checkSelfPermission(this, Manifest.permission.VIBRATE) != PackageManager.PERMISSION_GRANTED) ||
93 (ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED)) {
94 ActivityCompat.requestPermissions(this,
96 Manifest.permission.WRITE_EXTERNAL_STORAGE,
97 Manifest.permission.ACCESS_NETWORK_STATE,
98 Manifest.permission.ACCESS_WIFI_STATE,
99 Manifest.permission.VIBRATE,
100 Manifest.permission.INTERNET,
102 REQUEST_NEED_PERMISSIONS);
113 public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults)
115 super.onRequestPermissionsResult(requestCode, permissions, grantResults);
120 * クラスの初期化 (instantiate)
123 private void initializeClass()
127 scenceUpdater = CameraSceneUpdater.newInstance(this);
128 interfaceProvider = CameraInterfaceProvider.newInstance(this, scenceUpdater);
129 scenceUpdater.changeFirstFragment(interfaceProvider);
139 * 初期化終了時の処理 (カメラへの自動接続)
141 private void onReadyClass()
146 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
147 boolean isAutoConnectCamera = preferences.getBoolean(IPreferencePropertyAccessor.AUTO_CONNECT_TO_CAMERA, true);
148 Log.v(TAG, "isAutoConnectCamera() : " + isAutoConnectCamera);
151 if (isAutoConnectCamera)
154 scenceUpdater.changeCameraConnection();