From 012527b81cf55f57d663ff5d81e39049360e0017 Mon Sep 17 00:00:00 2001 From: changbetty Date: Wed, 23 Mar 2022 09:43:39 +0000 Subject: [PATCH] Move the QrCodeGenerator from Settings to SettingsLib for Wifi and BT Bug: 214338905 Test: Manual test Test: make RunSettingsRoboTests ROBOTEST_FILTER=QrCameraTest Change-Id: I1ca3e9e0b2cdc9fd3f32da8c5329c0e887ee3427 Merged-In: I1ca3e9e0b2cdc9fd3f32da8c5329c0e887ee3427 --- .../dpp/WifiDppQrCodeGeneratorFragment.java | 2 +- .../settings/wifi/qrcode/QrCodeGenerator.java | 63 ------------------- .../settings/wifi/qrcode/QrCameraTest.java | 2 + 3 files changed, 3 insertions(+), 64 deletions(-) delete mode 100644 src/com/android/settings/wifi/qrcode/QrCodeGenerator.java diff --git a/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java b/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java index 2ec960eac81..d3a4be76985 100644 --- a/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java +++ b/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java @@ -43,7 +43,7 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.app.chooser.DisplayResolveInfo; import com.android.internal.app.chooser.TargetInfo; import com.android.settings.R; -import com.android.settings.wifi.qrcode.QrCodeGenerator; +import com.android.settingslib.qrcode.QrCodeGenerator; import com.google.zxing.WriterException; diff --git a/src/com/android/settings/wifi/qrcode/QrCodeGenerator.java b/src/com/android/settings/wifi/qrcode/QrCodeGenerator.java deleted file mode 100644 index d9682d2421c..00000000000 --- a/src/com/android/settings/wifi/qrcode/QrCodeGenerator.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.settings.wifi.qrcode; - -import android.graphics.Bitmap; -import android.graphics.Color; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.EncodeHintType; -import com.google.zxing.MultiFormatWriter; -import com.google.zxing.WriterException; -import com.google.zxing.common.BitMatrix; - -import java.nio.charset.CharsetEncoder; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; - -public final class QrCodeGenerator { - /** - * Generates a barcode image with {@code contents}. - * - * @param contents The contents to encode in the barcode - * @param size The preferred image size in pixels - * @return Barcode bitmap - */ - public static Bitmap encodeQrCode(String contents, int size) - throws WriterException, IllegalArgumentException { - final Map hints = new HashMap<>(); - if (!isIso88591(contents)) { - hints.put(EncodeHintType.CHARACTER_SET, StandardCharsets.UTF_8.name()); - } - - final BitMatrix qrBits = new MultiFormatWriter().encode(contents, BarcodeFormat.QR_CODE, - size, size, hints); - final Bitmap bitmap = Bitmap.createBitmap(size, size, Bitmap.Config.RGB_565); - for (int x = 0; x < size; x++) { - for (int y = 0; y < size; y++) { - bitmap.setPixel(x, y, qrBits.get(x, y) ? Color.BLACK : Color.WHITE); - } - } - return bitmap; - } - - private static boolean isIso88591(String contents) { - CharsetEncoder encoder = StandardCharsets.ISO_8859_1.newEncoder(); - return encoder.canEncode(contents); - } -} diff --git a/tests/robotests/src/com/android/settings/wifi/qrcode/QrCameraTest.java b/tests/robotests/src/com/android/settings/wifi/qrcode/QrCameraTest.java index de0df732990..3ad846d3679 100644 --- a/tests/robotests/src/com/android/settings/wifi/qrcode/QrCameraTest.java +++ b/tests/robotests/src/com/android/settings/wifi/qrcode/QrCameraTest.java @@ -32,6 +32,8 @@ import android.hardware.Camera; import android.hardware.Camera.Parameters; import android.hardware.Camera.Size; +import com.android.settingslib.qrcode.QrCodeGenerator; + import com.google.zxing.BinaryBitmap; import com.google.zxing.LuminanceSource; import com.google.zxing.RGBLuminanceSource;