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();
                    }
                });
            }
        }
    }
}