|
|
|
package com.xypower.mppreview;
|
|
|
|
|
|
|
|
import static java.lang.System.loadLibrary;
|
|
|
|
|
|
|
|
import androidx.activity.result.ActivityResult;
|
|
|
|
import androidx.activity.result.ActivityResultCallback;
|
|
|
|
import androidx.activity.result.ActivityResultLauncher;
|
|
|
|
import androidx.activity.result.contract.ActivityResultContracts;
|
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
import androidx.core.app.ActivityCompat;
|
|
|
|
|
|
|
|
import android.Manifest;
|
|
|
|
import android.content.Intent;
|
|
|
|
import android.content.pm.PackageManager;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.view.View;
|
|
|
|
import android.widget.AdapterView;
|
|
|
|
import android.widget.Button;
|
|
|
|
|
|
|
|
import com.xypower.mppreview.bean.Contants;
|
|
|
|
import com.xypower.mppreview.databinding.ActivityMainBinding;
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
|
|
|
public class MainActivity extends AppCompatActivity implements View.OnClickListener, AdapterView.OnItemSelectedListener {
|
|
|
|
|
|
|
|
static {
|
|
|
|
loadLibrary("mppreview");
|
|
|
|
}
|
|
|
|
|
|
|
|
private static int MY_PERMISSIONS_REQUEST_FOREGROUND_SERVICE = 100;
|
|
|
|
|
|
|
|
public static int ExposureComp = 0;
|
|
|
|
private Button systakepic;
|
|
|
|
private Button hdrtakepic;
|
|
|
|
private ActivityResultLauncher<Intent> photoResultLauncher;
|
|
|
|
private int picsize = 0;
|
|
|
|
private com.xypower.mppreview.databinding.ActivityMainBinding viewBinding;
|
|
|
|
|
|
|
|
|
|
|
|
protected native void test();
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
viewBinding = ActivityMainBinding.inflate(getLayoutInflater());
|
|
|
|
setContentView(viewBinding.getRoot());
|
|
|
|
initView();
|
|
|
|
initActivityResult();
|
|
|
|
|
|
|
|
|
|
|
|
String[] accessPermissions = new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.FOREGROUND_SERVICE, Manifest.permission.READ_PHONE_STATE,
|
|
|
|
/*Manifest.permission.PACKAGE_USAGE_STATS,*/
|
|
|
|
/*Manifest.permission.SET_TIME,*/};
|
|
|
|
boolean needRequire = false;
|
|
|
|
for (String access : accessPermissions) {
|
|
|
|
int curPermission = ActivityCompat.checkSelfPermission(MainActivity.this, access);
|
|
|
|
if (curPermission != PackageManager.PERMISSION_GRANTED) {
|
|
|
|
needRequire = true;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (needRequire) {
|
|
|
|
ActivityCompat.requestPermissions(MainActivity.this, accessPermissions, MY_PERMISSIONS_REQUEST_FOREGROUND_SERVICE);
|
|
|
|
// return;
|
|
|
|
}
|
|
|
|
|
|
|
|
File file = this.getFilesDir();
|
|
|
|
|
|
|
|
String path = "/sdcard/com.xypower.mppreview/";
|
|
|
|
file = new File(path);
|
|
|
|
if (!file.exists()) {
|
|
|
|
file.mkdirs();
|
|
|
|
}
|
|
|
|
|
|
|
|
new Thread(new Runnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
test();
|
|
|
|
}
|
|
|
|
}).start();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void initView() {
|
|
|
|
viewBinding.hdrtakepic.setOnClickListener(this);
|
|
|
|
viewBinding.systakepic.setOnClickListener(this);
|
|
|
|
viewBinding.spinner.setOnItemSelectedListener(this);
|
|
|
|
viewBinding.channel1.setOnClickListener(this);
|
|
|
|
viewBinding.channel2.setOnClickListener(this);
|
|
|
|
viewBinding.channel3.setOnClickListener(this);
|
|
|
|
viewBinding.channel4.setOnClickListener(this);
|
|
|
|
viewBinding.channel5.setOnClickListener(this);
|
|
|
|
viewBinding.channel6.setOnClickListener(this);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void initActivityResult() {
|
|
|
|
photoResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
|
|
|
|
@Override
|
|
|
|
public void onActivityResult(ActivityResult result) {
|
|
|
|
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void onResume() {
|
|
|
|
super.onResume();
|
|
|
|
// if (OpenCVLoader.initDebug()) {
|
|
|
|
// Log.d("dfsdfd", "成功");
|
|
|
|
// } else {
|
|
|
|
// Log.d("dfsdfd", "失败");
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
|
|
|
|
private void restartFragment() {
|
|
|
|
getSupportFragmentManager().beginTransaction().replace(R.id.container, Camera2RawFragment.newInstance()).commit();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void doFocus() {
|
|
|
|
Camera2RawFragment fragment = (Camera2RawFragment) getSupportFragmentManager().findFragmentById(R.id.container);
|
|
|
|
fragment.doFocus();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void takePicture() {
|
|
|
|
Camera2RawFragment fragment = (Camera2RawFragment) getSupportFragmentManager().findFragmentById(R.id.container);
|
|
|
|
fragment.takePicture();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onClick(View view) {
|
|
|
|
int id = view.getId();
|
|
|
|
switch (id) {
|
|
|
|
case R.id.hdrtakepic:
|
|
|
|
Intent intent = new Intent(this, CameraActivity.class);
|
|
|
|
intent.putExtra(Contants.HDRNUM, picsize);
|
|
|
|
startActivity(intent);
|
|
|
|
break;
|
|
|
|
case R.id.systakepic:
|
|
|
|
PhotoUtil.openCamera(this, photoResultLauncher);
|
|
|
|
break;
|
|
|
|
case R.id.channel1:
|
|
|
|
openChannelActivity(0);
|
|
|
|
break;
|
|
|
|
case R.id.channel2:
|
|
|
|
openChannelActivity(1);
|
|
|
|
break;
|
|
|
|
case R.id.channel3:
|
|
|
|
openChannelActivity(2);
|
|
|
|
break;
|
|
|
|
case R.id.channel4:
|
|
|
|
openChannelActivity(3);
|
|
|
|
break;
|
|
|
|
case R.id.channel5:
|
|
|
|
openChannelActivity(4);
|
|
|
|
break;
|
|
|
|
case R.id.channel6:
|
|
|
|
openChannelActivity(5);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public void openChannelActivity(int channel) {
|
|
|
|
Intent intent = new Intent(this, CameraChannelActivity.class);
|
|
|
|
intent.putExtra(Contants.CAMERAID, channel);
|
|
|
|
startActivity(intent);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
|
|
|
picsize = position;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onNothingSelected(AdapterView<?> parent) {
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|