1 package net.osdn.gokigen.cameratest;
3 import com.google.android.material.floatingactionbutton.FloatingActionButton;
5 import androidx.annotation.NonNull;
6 import androidx.appcompat.app.AppCompatActivity;
7 import androidx.appcompat.widget.Toolbar;
9 import androidx.core.app.ActivityCompat;
10 import androidx.core.content.ContextCompat;
11 import androidx.viewpager.widget.ViewPager;
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;
24 import net.osdn.gokigen.cameratest.camtest.CamTest;
25 import net.osdn.gokigen.cameratest.pages.SectionsPagerAdapter;
27 import org.opencv.android.BaseLoaderCallback;
28 import org.opencv.android.LoaderCallbackInterface;
30 public class MainActivity extends AppCompatActivity implements IApplicationControl
32 /////// OpenCV /////// : license https://opencv.org/license/
35 System.loadLibrary("opencv_java4");
38 private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this)
41 public void onManagerConnected(int status)
45 case LoaderCallbackInterface.SUCCESS:
47 Log.i(TAG, "OpenCV loaded successfully");
51 super.onManagerConnected(status);
57 private final String TAG = toString();
58 private SectionsPagerAdapter mSectionsPagerAdapter;
59 private ViewPager mViewPager;
60 private CamTest testTarget;
66 protected void onCreate(Bundle savedInstanceState)
68 super.onCreate(savedInstanceState);
69 setContentView(R.layout.activity_main);
71 testTarget = new CamTest(this);
73 Toolbar toolbar = findViewById(R.id.toolbar);
74 setSupportActionBar(toolbar);
76 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
78 // Create the adapter that will return a fragment for each of the three
79 // primary sections of the activity.
80 mSectionsPagerAdapter = new SectionsPagerAdapter(this, getSupportFragmentManager(), testTarget, this);
82 // Set up the ViewPager with the sections adapter.
83 mViewPager = findViewById(R.id.container);
84 mViewPager.setAdapter(mSectionsPagerAdapter);
86 FloatingActionButton fab = findViewById(R.id.fab);
87 fab.setOnClickListener(new View.OnClickListener()
90 public void onClick(View view)
97 final int REQUEST_NEED_PERMISSIONS = 1010;
98 if ((ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) ||
99 (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_NETWORK_STATE) != PackageManager.PERMISSION_GRANTED) ||
100 (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_WIFI_STATE) != PackageManager.PERMISSION_GRANTED) ||
101 (ContextCompat.checkSelfPermission(this, Manifest.permission.VIBRATE) != PackageManager.PERMISSION_GRANTED) ||
102 (ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED)) {
103 ActivityCompat.requestPermissions(this,
105 Manifest.permission.WRITE_EXTERNAL_STORAGE,
106 Manifest.permission.ACCESS_NETWORK_STATE,
107 Manifest.permission.ACCESS_WIFI_STATE,
108 Manifest.permission.VIBRATE,
109 Manifest.permission.INTERNET,
111 REQUEST_NEED_PERMISSIONS);
122 public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults)
124 super.onRequestPermissionsResult(requestCode, permissions, grantResults);
133 public boolean onCreateOptionsMenu(Menu menu)
135 // Inflate the menu; this adds items to the action bar if it is present.
136 getMenuInflater().inflate(R.menu.menu_main, menu);
144 public boolean onOptionsItemSelected(MenuItem item)
146 // Handle action bar item clicks here. The action bar will
147 // automatically handle clicks on the Home/Up button, so long
148 // as you specify a parent activity in AndroidManifest.xml.
149 int id = item.getItemId();
151 if (id == R.id.action_wifi_settings)
156 startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
165 if (id == R.id.action_exit)
171 if (id == R.id.action_disconnect)
173 testTarget.disconnect();
177 if (id == R.id.action_settings)
179 testTarget.settings();
182 if (id == R.id.action_reset)
184 testTarget.resetConnection();
187 //noinspection SimplifiableIfStatement
188 if (id == R.id.action_up_value)
190 testTarget.valueUp();
193 if (id == R.id.action_down_value)
195 testTarget.valueDown();
199 return super.onOptionsItemSelected(item);
203 * クラスの初期化 (instantiate)
205 private void initializeClass()
209 Log.v(TAG, "Initialize ...");
222 private void prepareClass()
226 Log.v(TAG, "Prepare ...");
237 private void onReadyClass()
241 Log.v(TAG, "on Ready ...");
253 public void exitApplication()
257 testTarget.disconnect();
270 protected void onResume()
274 Log.d(TAG, "OpenCV library found inside package. Using it!");
275 mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
282 protected void onPause()