完善android10以下的备份和回复流程
This commit is contained in:
parent
537302a0ef
commit
08698a666b
@ -73,6 +73,8 @@ import androidx.core.app.ActivityOptionsCompat;
|
||||
import pub.devrel.easypermissions.AfterPermissionGranted;
|
||||
import pub.devrel.easypermissions.EasyPermissions;
|
||||
|
||||
import static com.cege.games.release.dialog.QRCodeActivity.RC_SAVE_QR;
|
||||
|
||||
|
||||
public class MainActivity extends Activity
|
||||
implements Cocos2dxHelper.Cocos2dxHelperListener, EasyPermissions.PermissionCallbacks {
|
||||
@ -414,6 +416,19 @@ public class MainActivity extends Activity
|
||||
RC_LOAD_KEY, perms);
|
||||
}
|
||||
}
|
||||
@AfterPermissionGranted(RC_SAVE_QR)
|
||||
private void checkSavePermissions(){
|
||||
String[] perms = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
|
||||
if (EasyPermissions.hasPermissions(this, perms)) {
|
||||
if (qrCodeActivity != null) {
|
||||
qrCodeActivity.saveAndClose();
|
||||
}
|
||||
} else {
|
||||
// Do not have permissions, request them now
|
||||
EasyPermissions.requestPermissions(MainActivity.app, "We need Write WRITE_EXTERNAL_STORAGE for backup Wallet Restore Key",
|
||||
RC_SAVE_QR, perms);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* scan qrcode
|
||||
|
@ -1,8 +1,10 @@
|
||||
package com.cege.games.release.dialog;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
@ -14,7 +16,13 @@ import com.cege.games.release.R;
|
||||
import com.jc.jcfw.util.FileUtils;
|
||||
import com.king.zxing.util.CodeUtils;
|
||||
|
||||
public class QRCodeActivity extends Dialog {
|
||||
import java.util.List;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import pub.devrel.easypermissions.AfterPermissionGranted;
|
||||
import pub.devrel.easypermissions.EasyPermissions;
|
||||
|
||||
public class QRCodeActivity extends Dialog implements EasyPermissions.PermissionCallbacks{
|
||||
|
||||
private final Context baseContent;
|
||||
private TextView titleLabel;
|
||||
@ -23,6 +31,7 @@ public class QRCodeActivity extends Dialog {
|
||||
private Bitmap bitmap;
|
||||
private Button localBtn;
|
||||
private boolean imgSaved = false;
|
||||
public static final int RC_SAVE_QR = 0X111;
|
||||
|
||||
|
||||
public QRCodeActivity(Context context) {
|
||||
@ -56,6 +65,7 @@ public class QRCodeActivity extends Dialog {
|
||||
titleLabel.setText(title);
|
||||
ivCode.setImageBitmap(bitmap);
|
||||
});
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
String uri = FileUtils.saveBitmap(baseContent, oid, bitmap);
|
||||
MainActivity.app.runOnUiThread(()->{
|
||||
if (uri != null && !"".equals(uri)) {
|
||||
@ -67,14 +77,11 @@ public class QRCodeActivity extends Dialog {
|
||||
MainActivity.app.showToast("Wallet restore key save fail");
|
||||
}
|
||||
});
|
||||
}).start();
|
||||
}
|
||||
|
||||
protected void onClickSaveImg(){
|
||||
if (imgSaved) {
|
||||
dismiss();
|
||||
return;
|
||||
}).start();
|
||||
}
|
||||
public void saveAndClose() {
|
||||
new Thread(() -> {
|
||||
String uri = FileUtils.saveBitmap(baseContent, oid, bitmap);
|
||||
MainActivity.app.runOnUiThread(()->{
|
||||
@ -87,4 +94,42 @@ public class QRCodeActivity extends Dialog {
|
||||
});
|
||||
}).start();
|
||||
}
|
||||
protected void onClickSaveImg(){
|
||||
if (imgSaved) {
|
||||
dismiss();
|
||||
return;
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
saveAndClose();
|
||||
} else {
|
||||
checkCameraPermissions();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPermissionsGranted(int requestCode, @NonNull List<String> perms) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPermissionsDenied(int requestCode, @NonNull List<String> perms) {
|
||||
MainActivity.app.showToast("We need Write WRITE_EXTERNAL_STORAGE for backup Wallet Restore Key");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
|
||||
}
|
||||
|
||||
@AfterPermissionGranted(RC_SAVE_QR)
|
||||
private void checkCameraPermissions(){
|
||||
String[] perms = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
|
||||
if (EasyPermissions.hasPermissions(this.baseContent, perms)) {
|
||||
saveAndClose();
|
||||
} else {
|
||||
// Do not have permissions, request them now
|
||||
EasyPermissions.requestPermissions(MainActivity.app, "We need Write WRITE_EXTERNAL_STORAGE for backup Wallet Restore Key",
|
||||
RC_SAVE_QR, perms);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -66,7 +66,8 @@ public class FileUtils {
|
||||
return fileName;
|
||||
}
|
||||
|
||||
public static String insertImageIntoGallery(ContentResolver cr, Bitmap source, String filename, String title) {
|
||||
public static String insertImageIntoGallery(Context activity, Bitmap source, String filename, String title) {
|
||||
ContentResolver cr = activity.getContentResolver();
|
||||
ContentValues values = new ContentValues();
|
||||
values.put(MediaStore.Images.Media.TITLE, title);
|
||||
values.put(MediaStore.Images.Media.DISPLAY_NAME, title);
|
||||
@ -98,15 +99,15 @@ public class FileUtils {
|
||||
}
|
||||
} else {
|
||||
cr.delete(url, null, null);
|
||||
return storeToAlternateSd(source, filename);
|
||||
return storeToAlternateSd(activity, source, filename);
|
||||
// url = null;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
if (url != null) {
|
||||
cr.delete(url, null, null);
|
||||
return storeToAlternateSd(source, filename);
|
||||
// url = null;
|
||||
}
|
||||
return storeToAlternateSd(activity, source, filename);
|
||||
}
|
||||
if (url != null) {
|
||||
stringUrl = url.toString();
|
||||
@ -123,14 +124,11 @@ public class FileUtils {
|
||||
* @param src
|
||||
* @return - the file's path
|
||||
*/
|
||||
private static String storeToAlternateSd(Bitmap src, String filename){
|
||||
private static String storeToAlternateSd(Context activity, Bitmap src, String filename){
|
||||
if(src == null)
|
||||
return null;
|
||||
|
||||
File sdCardDirectory = new File(Environment.getExternalStorageDirectory() + File.separator + "My Cards");
|
||||
if(!sdCardDirectory.exists())
|
||||
sdCardDirectory.mkdir();
|
||||
|
||||
String sdCardDirectory = getPath(activity);
|
||||
File image = new File(sdCardDirectory, filename + ".jpg");
|
||||
try {
|
||||
FileOutputStream imageOut = new FileOutputStream(image);
|
||||
@ -148,7 +146,7 @@ public class FileUtils {
|
||||
public static String saveBitmap(Context activity, String oid, Bitmap bitmap) {
|
||||
String title = "wallet_key_" + oid;
|
||||
String imageName = "wallet_key_" + oid;
|
||||
String uri = insertImageIntoGallery(activity.getContentResolver(), bitmap, imageName, title);
|
||||
String uri = insertImageIntoGallery(activity, bitmap, imageName, title);
|
||||
Log.i(TAG, "save image success: " + uri);
|
||||
return uri;
|
||||
}
|
||||
@ -160,13 +158,13 @@ public class FileUtils {
|
||||
try {
|
||||
data = MediaStore.Images.Media.getBitmap(activity.getContentResolver(),uri);
|
||||
} catch (IOException e) {
|
||||
data = readImageFromExt(oid);
|
||||
data = readImageFromExt(activity, oid);
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
public static Bitmap readImageFromExt(String oid) {
|
||||
File sdCardDirectory = new File(Environment.getExternalStorageDirectory() + File.separator + "My Cards");
|
||||
public static Bitmap readImageFromExt(Context activity, String oid) {
|
||||
String sdCardDirectory = getPath(activity);
|
||||
String imageName = "wallet_key_" + oid;
|
||||
File file = new File(sdCardDirectory, imageName + ".jpg");
|
||||
if (!file.exists()) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user