ShareQRCodeActivity.java 源代码
package liteos;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import base.HiActivity;
import bean.MyCamera;
import com.hichip.campro.R;
import com.hichip.sdk.HiChipSDK;
import com.kuaishou.weapon.p0.g;
import common.HiDataValue;
import common.TitleView;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.Date;
import java.util.Iterator;
import liteos.Zxing.CreateQRCode_LogoUtils;
import main.MainActivity;
import utils.HiTools;
import utils.MD5Utils;
import utils.MyToast;
public class ShareQRCodeActivity extends HiActivity implements View.OnClickListener {
public static final int PERMISSION_REQUEST_CODE_STORAGE = 10010;
private boolean isJumpSetting = false;
ImageView iv_qrcode;
private File mFileQrImage;
private MyCamera mMyCamera;
String tel;
TitleView title;
TextView tv_save_to_phone;
TextView tv_share;
@Override
protected int setLayoutId() {
return R.layout.activity_share_qrcode;
}
@Override
protected void init(Bundle bundle) {
getIntentData();
initView();
if (HiTools.HiPermission(this, this, 1, 10010, new View.OnClickListener() {
@Override
public void onClick(View view) {
ShareQRCodeActivity.this.finish();
}
})) {
return;
}
initData();
setListeners();
}
private void setListeners() {
this.tv_save_to_phone.setOnClickListener(this);
this.tv_share.setOnClickListener(this);
}
private void initData() {
String handContentData = handContentData();
Bitmap decodeResource = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
byte[] bytes = handContentData.getBytes();
byte[] bArr = new byte[(((int) Math.ceil(bytes.length / 3.0d)) * 4) + 32];
System.arraycopy(bytes, 0, bArr, 0, bytes.length);
HiChipSDK.Aes_Encrypt(bArr, bytes.length);
String str = getString(R.string.app_account) + new String(bArr).trim();
int dip2px = HiTools.dip2px(this, 285.0f);
int dip2px2 = HiTools.dip2px(this, 260.0f);
if (HiTools.isExternalStorageLegacy()) {
this.mFileQrImage = new File(Environment.getExternalStorageDirectory() + "/Share/", HiTools.getFileNameWithTime(0));
} else {
this.mFileQrImage = new File(getExternalFilesDir(HiDataValue.APP_NAME) + "/Share/", HiTools.getFileNameWithTime(0));
}
CreateQRCode_LogoUtils.create_Logo_QRImage(str, dip2px, dip2px2, getRoundCornerBitmap(decodeResource, 10), this.mFileQrImage.getAbsolutePath());
Bitmap decodeFile = BitmapFactory.decodeFile(this.mFileQrImage.getAbsolutePath());
this.iv_qrcode.setImageBitmap(decodeFile);
if (!this.mFileQrImage.getParentFile().exists()) {
this.mFileQrImage.getParentFile().mkdirs();
}
if (this.mFileQrImage.exists()) {
this.mFileQrImage.delete();
}
try {
decodeFile.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(this.mFileQrImage));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
private String handContentData() {
int i = (this.mMyCamera.getIs_4G() || this.mMyCamera.ismIsLE4G()) ? 0 : this.mMyCamera.mIsAPRunMode;
int i2 = (this.mMyCamera.getIs_4G() || this.mMyCamera.ismIsLE4G()) ? 1 : 0;
int i3 = (this.mMyCamera.getIsSupportCloud() || this.mMyCamera.getIsSupportLiteCloud()) ? 1 : 0;
int random = ((int) (Math.random() * 90.0d)) + 10;
long time = new Date().getTime() / 1000;
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("[");
stringBuffer.append("{\"A\":\"" + this.mMyCamera.getUsername() + random + "\",\"M\":\"" + this.mMyCamera.getMacAddress() + random + "\",\"C\":\"" + i3 + "\",\"T\":\"" + time + random + "\",\"P\":\"" + this.mMyCamera.getPassword() + random + "\",\"U\":\"" + this.mMyCamera.getUid() + random + "\",\"APRun\":\"" + i + "\",\"G\":\"" + i2 + "\",\"AU\":\"" + MD5Utils.md5(this.tel) + "\",\"L\":\"20\"}");
stringBuffer.append("]");
return stringBuffer.toString().trim();
}
private Bitmap getRoundCornerBitmap(Bitmap bitmap, int i) {
Bitmap createBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(createBitmap);
Paint paint = new Paint();
Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
RectF rectF = new RectF(rect);
float f = i;
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(-12434878);
canvas.drawRoundRect(rectF, f, f, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return createBitmap;
}
private void initView() {
this.title.setTitle(getString(R.string.tips_share_qrcode));
this.title.setButton(0);
this.title.setRightTxtBack(R.mipmap.x_bule);
this.title.setNavigationBarButtonListener(new TitleView.NavigationBarButtonListener() {
@Override
public void OnNavigationButtonClick(int i) {
if (i == 0) {
ShareQRCodeActivity.this.finish();
} else {
if (i != 2) {
return;
}
ShareQRCodeActivity.this.startActivity(new Intent(ShareQRCodeActivity.this, (Class<?>) MainActivity.class), true);
}
}
});
}
private void getIntentData() {
String stringExtra = getIntent().getStringExtra(HiDataValue.EXTRAS_KEY_UID);
this.tel = getIntent().getStringExtra("tel");
if (!TextUtils.isEmpty(stringExtra)) {
Iterator<MyCamera> it = HiDataValue.CameraList.iterator();
while (true) {
if (!it.hasNext()) {
break;
}
MyCamera next = it.next();
if (next.getUid().equalsIgnoreCase(stringExtra)) {
this.mMyCamera = next;
break;
}
}
}
if (HiTools.cameraWhetherNull(this.mMyCamera, this)) {
}
}
@Override
public void onClick(View view) {
File file;
int id = view.getId();
if (id != R.id.tv_save_to_phone) {
if (id == R.id.tv_share && (file = this.mFileQrImage) != null) {
HiTools.adaptiveShare(file.getAbsolutePath(), this);
return;
}
return;
}
if (this.mFileQrImage.exists() && this.mFileQrImage.isFile()) {
SaveToPhone(this.mFileQrImage.getPath(), this.mFileQrImage.getName());
MyToast.showToast(this, getString(R.string.success_to_album));
}
}
private void SaveToPhone(final String str, final String str2) {
new Thread(new Runnable() {
@Override
public void run() {
try {
MediaStore.Images.Media.insertImage(ShareQRCodeActivity.this.getContentResolver(), str, str2, (String) null);
} catch (Exception e) {
e.printStackTrace();
}
ShareQRCodeActivity.this.sendBroadcast(new Intent("android.intent.action.MEDIA_SCANNER_SCAN_FILE", Uri.parse("file://" + str)));
}
}).start();
}
@Override
public void onResume() {
super.onResume();
if (!HiTools.checkPermission(this, g.j) && this.isJumpSetting) {
finish();
} else if (HiTools.checkPermission(this, g.j) && this.isJumpSetting) {
initData();
setListeners();
}
}
@Override
public void onRequestPermissionsResult(int i, String[] strArr, int[] iArr) {
super.onRequestPermissionsResult(i, strArr, iArr);
if (i == 10010) {
if (iArr.length > 0 && iArr[0] == 0) {
initData();
setListeners();
} else {
HiTools.Hi_GoToSetting(strArr, this, this, new View.OnClickListener() {
@Override
public void onClick(View view) {
ShareQRCodeActivity.this.isJumpSetting = true;
}
}, new View.OnClickListener() {
@Override
public void onClick(View view) {
ShareQRCodeActivity.this.finish();
}
});
}
}
}
}