From 3ec7de773bff5582411c6f1f659d35cf8fb1734a Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期二, 16 七月 2024 15:13:51 +0800 Subject: [PATCH] Merge branch 'feature/v1.4.1' --- app/src/main/java/com/hdl/photovoltaic/ui/device/ScanActivity.java | 165 +++++++++++++++++++++++++++++++----------------------- 1 files changed, 95 insertions(+), 70 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/device/FastScanActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/device/ScanActivity.java similarity index 73% rename from app/src/main/java/com/hdl/photovoltaic/ui/device/FastScanActivity.java rename to app/src/main/java/com/hdl/photovoltaic/ui/device/ScanActivity.java index ba49e66..96a9bb3 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/device/FastScanActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/device/ScanActivity.java @@ -1,29 +1,36 @@ package com.hdl.photovoltaic.ui.device; -import androidx.appcompat.content.res.AppCompatResources; -import androidx.core.app.ActivityCompat; -import androidx.core.content.ContextCompat; - -import android.Manifest; +import android.app.Activity; +import android.content.Context; import android.content.Intent; -import android.content.pm.PackageManager; +import android.content.res.Configuration; +import android.content.res.Resources; import android.database.Cursor; import android.graphics.Rect; import android.hardware.Camera; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.provider.MediaStore; import android.text.TextUtils; +import android.util.DisplayMetrics; import android.util.Log; +import android.view.LayoutInflater; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.View; +import android.view.Window; +import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.TranslateAnimation; import android.widget.ImageView; import android.widget.RelativeLayout; +import android.widget.TextView; import android.widget.Toast; + + +import androidx.appcompat.content.res.AppCompatResources; import com.google.zxing.BinaryBitmap; import com.google.zxing.ChecksumException; @@ -35,7 +42,11 @@ import com.google.zxing.qrcode.QRCodeReader; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.CustomBaseActivity; -import com.hdl.photovoltaic.databinding.ActivityFastScanBinding; +import com.hdl.photovoltaic.config.UserConfigManage; +import com.hdl.photovoltaic.other.HdlCommonLogic; +import com.hdl.photovoltaic.uni.HDLUniMP; +import com.hdl.photovoltaic.utils.LocalManageUtil; +import com.jaeger.library.StatusBarUtil; import com.zxing.IZxingActivity; import com.zxing.camera.CameraManager; import com.zxing.decode.DecodeThread; @@ -48,9 +59,13 @@ import java.io.IOException; import java.lang.reflect.Field; import java.util.Hashtable; +import java.util.Locale; -public class FastScanActivity extends CustomBaseActivity implements IZxingActivity, SurfaceHolder.Callback { - private static final String TAG = "FastScanActivity"; +/** + * 鎵竴鎵� + */ +public class ScanActivity extends Activity implements IZxingActivity, SurfaceHolder.Callback { + private static final String TAG = ScanActivity.class.getSimpleName(); private final int REQUEST_CODE = 33; private CameraManager cameraManager; private CaptureActivityHandler handler; @@ -59,9 +74,10 @@ private SurfaceView scanPreview = null; private RelativeLayout scanContainer; private RelativeLayout scanCropView; + private TextView tvCancel; private Rect mCropRect = null; private boolean isHasSurface = false; - private ActivityFastScanBinding viewBinding; + @Override public Handler getHandler() { @@ -78,33 +94,51 @@ return cameraManager; } - @Override - public Object getContentView() { - viewBinding = ActivityFastScanBinding.inflate(getLayoutInflater()); - return viewBinding.getRoot(); + public int getRootLayoutId() { + return R.layout.activity_scan; } @Override - public void onBindView(Bundle savedInstanceState) { -// Window window = getWindow(); -// window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); -// //璁剧疆鏍硅鍥� -// View mContentView = LayoutInflater.from(this).inflate(R.layout.activity_new_capture, null); -// setContentView(mContentView); - //鍒濆鍖� - initView(savedInstanceState); - //鍒濆鍖栫晫闈㈢洃鍚櫒 - initEvent(); + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + Resources resources = this.getResources(); + Configuration configuration = resources.getConfiguration(); + Locale locale = LocalManageUtil.getLocale(UserConfigManage.getInstance().getCurrentAppLanguage()); + // app locale 榛樿绠�浣撲腑鏂� + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + configuration.setLocale(locale); + } else { + configuration.locale = locale; + } + DisplayMetrics dm = resources.getDisplayMetrics(); + resources.updateConfiguration(configuration, dm); + + StatusBarUtil.setTranslucentForImageViewInFragment(this, + 0, null); + StatusBarUtil.setLightMode(this); + + Window window = getWindow(); + window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + //璁剧疆鏍硅鍥� + View mContentView = LayoutInflater.from(this).inflate(getRootLayoutId(), null); + setContentView(mContentView); + afterViewBind(mContentView, savedInstanceState); + } - - private void initView(Bundle savedInstanceState) { - - - scanPreview = findViewById(R.id.new_capture_preview); - scanContainer = findViewById(R.id.new_capture_rl); - scanCropView = findViewById(R.id.new_capture_crop_view); - ImageView scanLine = findViewById(R.id.new_capture_scan_line); + public void afterViewBind(View rootView, Bundle savedInstanceState) { + tvCancel = findViewById(R.id.tv_text_cancel); + tvCancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); +// enterGallery(); + } + }); + scanPreview = findViewById(R.id.capture_preview); + scanContainer = findViewById(R.id.capture_container); + scanCropView = findViewById(R.id.capture_crop_view); + ImageView scanLine = findViewById(R.id.capture_scan_line); inactivityTimer = new InactivityTimer(this); beepManager = new BeepManager(this); @@ -115,31 +149,16 @@ animation.setRepeatCount(-1); animation.setRepeatMode(Animation.RESTART); scanLine.startAnimation(animation); - } - - private void initEvent() { - viewBinding.newTopBackBtn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - - viewBinding.newTopMoreBtn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - //璺冲埌鍏ョ綉 - } - }); - - viewBinding.newLightIv.setOnClickListener(new View.OnClickListener() { + ImageView imageView = findViewById(R.id.light_iv); + //寮�鍚棯鍏夌伅鎸夐挳浜嬩欢 + imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { v.setSelected(!v.isSelected()); if (v.isSelected()) { - viewBinding.newLightIv.setImageDrawable(AppCompatResources.getDrawable(FastScanActivity.this, com.zxing.R.drawable.fast_scan_light_open)); + imageView.setImageDrawable(AppCompatResources.getDrawable(ScanActivity.this, com.zxing.R.drawable.fast_scan_light_open)); } else { - viewBinding.newLightIv.setImageDrawable(AppCompatResources.getDrawable(FastScanActivity.this, com.zxing.R.drawable.fast_scan_light_close)); + imageView.setImageDrawable(AppCompatResources.getDrawable(ScanActivity.this, com.zxing.R.drawable.fast_scan_light_close)); } flashLightOnOrOff(); @@ -147,14 +166,13 @@ }); } - public void enterGallery() { // 杩涘叆鍥惧簱 - Intent intent = new Intent(Intent.ACTION_GET_CONTENT); - intent.addCategory(Intent.CATEGORY_OPENABLE); - intent.setType("image/*"); - intent.putExtra("return-data", true); - startActivityForResult(intent, REQUEST_CODE); + Intent pickIntent = new Intent(Intent.ACTION_PICK, + MediaStore.Images.Media.EXTERNAL_CONTENT_URI);//鍚姩绯荤粺鐩稿唽 + pickIntent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); + startActivityForResult(pickIntent, REQUEST_CODE); + } @Override @@ -247,11 +265,11 @@ initCrop(); } catch (IOException ioe) { Log.w(TAG, ioe); - Toast.makeText(this, com.zxing.R.string.capture_no_camera, Toast.LENGTH_SHORT).show(); + Toast.makeText(this, R.string.capture_no_camera, Toast.LENGTH_SHORT).show(); finish(); } catch (RuntimeException e) { Log.w(TAG, "Unexpected error initializing camera", e); - Toast.makeText(this, com.zxing.R.string.capture_no_camera, Toast.LENGTH_SHORT).show(); + Toast.makeText(this, R.string.capture_no_camera, Toast.LENGTH_SHORT).show(); finish(); } } @@ -316,19 +334,28 @@ } private void doProcess(String result) { - Log.d("panlili", "scanResult: " + result); /*if (!DeviceHelper.getNetworkState()) { Toast.makeText(this, R.string.capture_no_network, Toast.LENGTH_SHORT).show(); return; }*/ if (TextUtils.isEmpty(result)) { - Toast.makeText(this, com.zxing.R.string.capture_no_result, Toast.LENGTH_SHORT).show(); + Toast.makeText(this, R.string.capture_no_result, Toast.LENGTH_SHORT).show(); } else { - Intent intent = new Intent(); - intent.putExtra("data", result); - setResult(RESULT_OK, intent); - finish(); + if (result.startsWith("https://") || result.startsWith("http://")) { + Intent intent = new Intent(); + intent.putExtra("data", result); + setResult(RESULT_OK, intent); + finish(); + //EventBus浜嬩欢鍒嗗彂 + HdlCommonLogic.getInstance().postEventBusSticky( + HDLUniMP.UNI_EVENT_REPLY_HOME_ADD, + HDLUniMP.UNI_EVENT_REPLY_HOME_ADD, + result); + } else { + Toast.makeText(this, R.string.not_delivery_qr_code, Toast.LENGTH_SHORT).show(); + } + } } @@ -351,7 +378,7 @@ if (!TextUtils.isEmpty(path)) { handleQRCodeFormPhoto(path); } else { - Toast.makeText(this, "鍥剧墖宸叉崯鍧忥紝璇烽噸鏂伴�夋嫨锛�", Toast.LENGTH_SHORT).show(); +// Toast.makeText(this, R.string.pic_error, Toast.LENGTH_SHORT).show(); } } } @@ -396,14 +423,13 @@ @Override public void run() { if (progressInfo == null) { - Toast.makeText(FastScanActivity.this, com.zxing.R.string.capture_no_result2, Toast.LENGTH_SHORT).show(); + Toast.makeText(ScanActivity.this, R.string.capture_no_result2, Toast.LENGTH_SHORT).show(); } else { doProcess(progressInfo.toString()); } } }); } - /** * 闂厜鐏紑鍚垨鑰呭叧闂� @@ -432,6 +458,5 @@ parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); camera.setParameters(parameters); } - } -- Gitblit v1.8.0