package io.github.javiewer.activity;
import android.Manifest;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import com.karumi.dexter.Dexter;
import com.karumi.dexter.PermissionToken;
import com.karumi.dexter.listener.PermissionDeniedResponse;
import com.karumi.dexter.listener.PermissionGrantedResponse;
import com.karumi.dexter.listener.PermissionRequest;
import com.karumi.dexter.listener.single.PermissionListener;
import java.io.File;
import java.io.IOException;
import io.github.javiewer.Configurations;
import io.github.javiewer.JAViewer;
import io.github.javiewer.R;
public class StartActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
checkPermissions();
}
private void checkPermissions() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && this.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
Dexter.withActivity(this)
.withPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
.withListener(new PermissionListener() {
@Override
public void onPermissionGranted(PermissionGrantedResponse response) {
checkPermissions();
}
@Override
public void onPermissionDenied(PermissionDeniedResponse response) {
new AlertDialog.Builder(StartActivity.this)
.setTitle("权限申请")
.setCancelable(false)
.setMessage("JAViewer 需要储存空间权限,储存用户配置。请您允许。")
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
checkPermissions();
}
})
.show();
}
@Override
public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token) {
token.continuePermissionRequest();
}
})
.onSameThread()
.check();
return;
}
File oldConfig = new File(StartActivity.this.getExternalFilesDir(null), "configurations.json");
File config = new File(JAViewer.getStorageDir(), "configurations.json");
if (oldConfig.exists()) {
oldConfig.renameTo(config);
}
File noMedia = new File(JAViewer.getStorageDir(), ".nomedia");
try {
noMedia.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
JAViewer.CONFIGURATIONS = Configurations.load(config);
startActivity(new Intent(StartActivity.this, MainActivity.class));
finish();
}
}