OSDN Git Service

ライブビューデータを拾うために検討中。
[gokigen/FujiCam.git] / app / src / main / java / net / osdn / gokigen / cameratest / MainActivity.java
1 package net.osdn.gokigen.cameratest;
2
3 import com.google.android.material.floatingactionbutton.FloatingActionButton;
4
5 import androidx.annotation.NonNull;
6 import androidx.appcompat.app.AppCompatActivity;
7 import androidx.appcompat.widget.Toolbar;
8
9 import androidx.core.app.ActivityCompat;
10 import androidx.core.content.ContextCompat;
11 import androidx.viewpager.widget.ViewPager;
12
13 import android.Manifest;
14 import android.content.Intent;
15 import android.content.pm.PackageManager;
16 import android.os.Bundle;
17 import android.provider.Settings;
18 import android.util.Log;
19 import android.view.Menu;
20 import android.view.MenuItem;
21 import android.view.View;
22 import android.view.WindowManager;
23
24 import net.osdn.gokigen.cameratest.camtest.CamTest;
25 import net.osdn.gokigen.cameratest.pages.SectionsPagerAdapter;
26
27 public class MainActivity extends AppCompatActivity
28 {
29     private final String TAG = toString();
30     private SectionsPagerAdapter mSectionsPagerAdapter;
31     private ViewPager mViewPager;
32     private CamTest testTarget;
33
34     @Override
35     protected void onCreate(Bundle savedInstanceState)
36     {
37         super.onCreate(savedInstanceState);
38         setContentView(R.layout.activity_main);
39
40         testTarget = new CamTest(this);
41
42         Toolbar toolbar = findViewById(R.id.toolbar);
43         setSupportActionBar(toolbar);
44
45         getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
46
47         // Create the adapter that will return a fragment for each of the three
48         // primary sections of the activity.
49         mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager(), testTarget);
50
51         // Set up the ViewPager with the sections adapter.
52         mViewPager = findViewById(R.id.container);
53         mViewPager.setAdapter(mSectionsPagerAdapter);
54
55         FloatingActionButton fab = findViewById(R.id.fab);
56         fab.setOnClickListener(new View.OnClickListener()
57         {
58             @Override
59             public void onClick(View view)
60             {
61                 testTarget.connect();
62             }
63         });
64
65         // パーミッション群のオプトイン
66         final int REQUEST_NEED_PERMISSIONS = 1010;
67         if ((ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) ||
68                 (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_NETWORK_STATE) != PackageManager.PERMISSION_GRANTED) ||
69                 (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_WIFI_STATE) != PackageManager.PERMISSION_GRANTED) ||
70                 (ContextCompat.checkSelfPermission(this, Manifest.permission.VIBRATE) != PackageManager.PERMISSION_GRANTED) ||
71                 (ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED)) {
72             ActivityCompat.requestPermissions(this,
73                     new String[]{
74                             Manifest.permission.WRITE_EXTERNAL_STORAGE,
75                             Manifest.permission.ACCESS_NETWORK_STATE,
76                             Manifest.permission.ACCESS_WIFI_STATE,
77                             Manifest.permission.VIBRATE,
78                             Manifest.permission.INTERNET,
79                     },
80                     REQUEST_NEED_PERMISSIONS);
81         }
82         initializeClass();
83         prepareClass();
84         onReadyClass();
85
86     }
87
88     @Override
89     public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults)
90     {
91         super.onRequestPermissionsResult(requestCode, permissions, grantResults);
92         prepareClass();
93         onReadyClass();
94     }
95
96     @Override
97     public boolean onCreateOptionsMenu(Menu menu)
98     {
99         // Inflate the menu; this adds items to the action bar if it is present.
100         getMenuInflater().inflate(R.menu.menu_main, menu);
101         return true;
102     }
103
104     @Override
105     public boolean onOptionsItemSelected(MenuItem item)
106     {
107         // Handle action bar item clicks here. The action bar will
108         // automatically handle clicks on the Home/Up button, so long
109         // as you specify a parent activity in AndroidManifest.xml.
110         int id = item.getItemId();
111
112         //noinspection SimplifiableIfStatement
113         if (id == R.id.action_settings)
114         {
115             testTarget.settings();
116             return (true);
117         }
118         if (id == R.id.action_wifi_settings)
119         {
120             try
121             {
122                 // Wifi 設定画面を表示する
123                 startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
124                 return (true);
125             }
126             catch (Exception e)
127             {
128                 e.printStackTrace();
129             }
130             return (true);
131         }
132         return super.onOptionsItemSelected(item);
133     }
134
135     /**
136      * クラスの初期化 (instantiate)
137      */
138     private void initializeClass()
139     {
140         try
141         {
142             Log.v(TAG, "Initialize ...");
143
144
145         }
146         catch (Exception e)
147         {
148             e.printStackTrace();
149         }
150     }
151
152     /**
153      * クラスの準備 (prepare)
154      */
155     private void prepareClass()
156     {
157         try
158         {
159             Log.v(TAG, "Prepare ...");
160         }
161         catch (Exception e)
162         {
163             e.printStackTrace();
164         }
165     }
166
167     /**
168      * クラスの準備完了 (onReady)
169      */
170     private void onReadyClass()
171     {
172         try
173         {
174             Log.v(TAG, "on Ready ...");
175         }
176         catch (Exception e)
177         {
178             e.printStackTrace();
179         }
180     }
181
182 }