You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
MpPreview/app/src/main/java/com/xypower/mppreview/MainActivity.java

179 lines
5.8 KiB
Java

6 months ago
package com.xypower.mppreview;
6 months ago
6 months ago
import static java.lang.System.loadLibrary;
6 months ago
import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
6 months ago
import androidx.appcompat.app.AppCompatActivity;
6 months ago
import androidx.core.app.ActivityCompat;
6 months ago
6 months ago
import android.Manifest;
6 months ago
import android.content.Intent;
6 months ago
import android.content.pm.PackageManager;
6 months ago
import android.os.Bundle;
6 months ago
import android.view.View;
import android.widget.AdapterView;
6 months ago
import android.widget.Button;
import com.xypower.mppreview.bean.Contants;
import com.xypower.mppreview.databinding.ActivityMainBinding;
6 months ago
6 months ago
import java.io.File;
public class MainActivity extends AppCompatActivity implements View.OnClickListener, AdapterView.OnItemSelectedListener {
6 months ago
6 months ago
static {
loadLibrary("mppreview");
}
private static int MY_PERMISSIONS_REQUEST_FOREGROUND_SERVICE = 100;
6 months ago
public static int ExposureComp = 0;
6 months ago
private Button systakepic;
private Button hdrtakepic;
private ActivityResultLauncher<Intent> photoResultLauncher;
private int picsize = 0;
private com.xypower.mppreview.databinding.ActivityMainBinding viewBinding;
6 months ago
6 months ago
6 months ago
protected native void test();
6 months ago
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
viewBinding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(viewBinding.getRoot());
6 months ago
initView();
initActivityResult();
6 months ago
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();
6 months ago
}
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);
6 months ago
}
private void initActivityResult() {
photoResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult result) {
}
});
6 months ago
}
@Override
protected void onResume() {
super.onResume();
// if (OpenCVLoader.initDebug()) {
// Log.d("dfsdfd", "成功");
// } else {
// Log.d("dfsdfd", "失败");
// }
6 months ago
}
private void restartFragment() {
6 months ago
getSupportFragmentManager().beginTransaction().replace(R.id.container, Camera2RawFragment.newInstance()).commit();
6 months ago
}
private void doFocus() {
6 months ago
Camera2RawFragment fragment = (Camera2RawFragment) getSupportFragmentManager().findFragmentById(R.id.container);
6 months ago
fragment.doFocus();
}
private void takePicture() {
6 months ago
Camera2RawFragment fragment = (Camera2RawFragment) getSupportFragmentManager().findFragmentById(R.id.container);
6 months ago
fragment.takePicture();
}
6 months ago
@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);
6 months ago
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;
6 months ago
}
}
public void openChannelActivity(int channel) {
Intent intent = new Intent(this, CameraChannelActivity.class);
intent.putExtra(Contants.CAMERAID, channel);
startActivity(intent);
}
6 months ago
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
picsize = position;
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
6 months ago
}