导航菜单

页面标题

页面副标题

Mantra Counter v25.01 - GenerateQR.java 源代码

正在查看: Mantra Counter v25.01 应用的 GenerateQR.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.sweetedge.mantracounter.group;

import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.FileProvider;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter;
import com.journeyapps.barcodescanner.BarcodeEncoder;
import com.sweetedge.mantracounter.Authentication.UserDataPref;
import com.sweetedge.mantracounter.R;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import save_data.Const;

public class GenerateQR extends AppCompatActivity {
    ImageView Share;
    Bitmap qrBitmap;
    TextView qrDescrption;
    ImageView qrImageView;
    RelativeLayout shareLayout;

    public Bitmap generateQRCode(String str, int i) {
        try {
            return new BarcodeEncoder().createBitmap(new MultiFormatWriter().encode(str, BarcodeFormat.QR_CODE, i, i, null));
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.my_qr);
        this.qrImageView = (ImageView) findViewById(R.id.qrImageView);
        this.shareLayout = (RelativeLayout) findViewById(R.id.shareQR);
        this.Share = (ImageView) findViewById(R.id.share);
        String trim = UserDataPref.get(this, Const.GMAIL).trim();
        Bitmap generateQRCode = generateQRCode(trim, 500);
        this.qrBitmap = generateQRCode;
        if (generateQRCode != null) {
            this.qrImageView.setImageBitmap(generateQRCode);
        } else {
            Toast.makeText((Context) this, (CharSequence) "QR Code generation failed", 0).show();
        }
        TextView textView = (TextView) findViewById(R.id.qrDescrption);
        this.qrDescrption = textView;
        textView.setText(trim);
        this.Share.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                GenerateQR generateQR = GenerateQR.this;
                generateQR.shareBitmap(generateQR.shareLayout);
            }
        });
    }

    private Bitmap getBitmapFromView(View view) {
        Bitmap createBitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
        view.draw(new Canvas(createBitmap));
        return createBitmap;
    }

    public void shareBitmap(View view) {
        try {
            Bitmap bitmapFromView = getBitmapFromView(view);
            File file = new File(getCacheDir(), "shared_view");
            file.mkdirs();
            File file2 = new File(file, "shared_layout.png");
            FileOutputStream fileOutputStream = new FileOutputStream(file2);
            bitmapFromView.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream);
            fileOutputStream.close();
            Uri uriForFile = FileProvider.getUriForFile(this, getPackageName() + ".fileprovider", file2);
            Intent intent = new Intent("android.intent.action.SEND");
            intent.setType("image/png");
            intent.putExtra("android.intent.extra.STREAM", uriForFile);
            intent.addFlags(1);
            startActivity(Intent.createChooser(intent, "Share QR Code"));
        } catch (IOException e) {
            e.printStackTrace();
            Toast.makeText((Context) this, (CharSequence) "Failed to share", 0).show();
        }
    }
}