Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pyaterochka.app.helpers;
- import android.app.Activity;
- import android.graphics.Bitmap;
- import android.graphics.Bitmap.Config;
- import android.graphics.Point;
- import android.support.v4.view.ViewCompat;
- import android.view.Display;
- import com.google.zxing.BarcodeFormat;
- import com.google.zxing.EncodeHintType;
- import com.google.zxing.MultiFormatWriter;
- import com.google.zxing.common.BitMatrix;
- import java.util.EnumMap;
- import java.util.Map;
- import org.apache.commons.codec.binary.Base32;
- import org.jboss.aerogear.security.otp.Totp;
- import org.jboss.aerogear.security.otp.api.Clock;
- public enum TotpPinGenerator {
- INSTANCE;
- private static byte[] hexToBytes(String str) {
- int length = str.length();
- byte[] bArr = new byte[(length / 2)];
- for (int i = 0; i < length; i += 2) {
- if (i >= length) {
- break;
- }
- bArr[i / 2] = (byte) ((Character.digit(str.charAt(i), 16) << 4) + Character.digit(str.charAt(i + 1), 16));
- }
- return bArr;
- }
- public Bitmap generateBarCode(Activity activity, String str, BarcodeFormat barcodeFormat) {
- Display defaultDisplay = activity.getWindowManager().getDefaultDisplay();
- Point point = new Point();
- defaultDisplay.getSize(point);
- return generateBarCode(str, barcodeFormat, point.x, (int) (((float) point.x) / 2.0f));
- }
- public Bitmap generateBarCode(String str, BarcodeFormat barcodeFormat, int i, int i2) {
- Map enumMap = new EnumMap(EncodeHintType.class);
- enumMap.put(EncodeHintType.MARGIN, Integer.valueOf(0));
- try {
- BitMatrix encode = new MultiFormatWriter().encode(str, barcodeFormat, i, i2, enumMap);
- int width = encode.getWidth();
- int height = encode.getHeight();
- int[] iArr = new int[(width * height)];
- for (int i3 = 0; i3 < height; i3++) {
- int i4 = i3 * width;
- for (int i5 = 0; i5 < width; i5++) {
- iArr[i4 + i5] = encode.get(i5, i3) ? ViewCompat.MEASURED_STATE_MASK : -1;
- }
- }
- Bitmap createBitmap = Bitmap.createBitmap(width, height, Config.ARGB_4444);
- createBitmap.setPixels(iArr, 0, width, 0, 0, width, height);
- return createBitmap;
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
- public Bitmap generateQrCode(Activity activity, String str, BarcodeFormat barcodeFormat) {
- Display defaultDisplay = activity.getWindowManager().getDefaultDisplay();
- Point point = new Point();
- defaultDisplay.getSize(point);
- return generateBarCode(str, barcodeFormat, point.y, point.y);
- }
- public String generateTotpPin(String str, long j, int i) {
- return new Totp(new Base32().encodeToString(hexToBytes(str)), new Clock(0)).notNow(j / ((long) i));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement