diff --git a/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java b/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java index ef4dbf8..9632b0d 100644 --- a/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java +++ b/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java @@ -1,6 +1,7 @@ package com.ouxuan.oxface; import android.content.Context; +import android.content.Intent; import android.content.pm.PackageManager; import android.graphics.Bitmap; import android.graphics.Canvas; @@ -37,6 +38,7 @@ import com.baidu.idl.face.main.finance.utils.FaceOnDrawTexturViewUtil; import com.baidu.idl.face.main.finance.utils.TestPopWindow; import com.baidu.idl.main.facesdk.FaceInfo; import com.baidu.idl.main.facesdk.model.BDFaceImageInstance; +import com.ouxuan.oxface.data.DeviceSelectDataManager; import com.ouxuan.oxface.utils.LogManager; import java.util.List; @@ -147,6 +149,13 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi private ImageView imgScanDoorQRCode; private Button btnVerificationCode; private Button btnScannerDoor; + + // 新增店铺名称相关变量 + private TextView tvStoreName; + private int storeNameClickCount = 0; + private long lastStoreNameClickTime = 0; + private static final int MAX_CLICK_COUNT = 5; + private static final long CLICK_INTERVAL = 1000; // 1秒内点击有效 @Override protected void onCreate(Bundle savedInstanceState) { @@ -205,9 +214,26 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi // mDrawDetectFaceView.setRotationY(0); } - // 返回 + // 店铺名称显示 + tvStoreName = findViewById(R.id.tv_store_name); + if (tvStoreName != null) { + // 设置点击事件监听器 + tvStoreName.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + handleStoreNameClick(); + } + }); + + // 获取并显示店铺名称 + loadAndDisplayStoreName(); + } + + // 返回按钮(隐藏但仍保留引用) ImageView mButReturn = findViewById(R.id.btn_back); - mButReturn.setOnClickListener(this); + if (mButReturn != null) { + mButReturn.setOnClickListener(this); + } // 初始化二维码区域控件 imgMiniProgramCode = findViewById(R.id.img_mini_program_code); @@ -1121,4 +1147,75 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi } }, 30000); } + + /** + * 获取并显示店铺名称 + */ + private void loadAndDisplayStoreName() { + try { + DeviceSelectDataManager deviceDataManager = DeviceSelectDataManager.getInstance(this); + String[] storeInfo = deviceDataManager.getStoreInfo(); + String storeName = storeInfo[0]; // 第一个元素是店铺名称 + + if (storeName != null && !storeName.isEmpty()) { + tvStoreName.setText(storeName); + LogManager.logInfo(TAG, "成功显示店铺名称: " + storeName); + } else { + tvStoreName.setText("未获取到店铺名称"); + LogManager.logWarning(TAG, "未获取到店铺名称"); + } + } catch (Exception e) { + tvStoreName.setText("店铺名称获取失败"); + LogManager.logError(TAG, "获取店铺名称失败", e); + } + } + + /** + * 处理店铺名称点击事件 + */ + private void handleStoreNameClick() { + long currentTime = System.currentTimeMillis(); + + // 如果距离上次点击时间超过1秒,重置计数器 + if (currentTime - lastStoreNameClickTime > CLICK_INTERVAL) { + storeNameClickCount = 0; + } + + storeNameClickCount++; + lastStoreNameClickTime = currentTime; + + LogManager.logDebug(TAG, "店铺名称被点击,当前计数: " + storeNameClickCount); + + // 如果连续点击达到5次 + if (storeNameClickCount >= MAX_CLICK_COUNT) { + LogManager.logInfo(TAG, "连续点击5次店铺名称,准备返回主界面"); + Toast.makeText(this, "即将返回主界面", Toast.LENGTH_SHORT).show(); + + // 重置计数器 + storeNameClickCount = 0; + + // 延迟一段时间后返回主界面 + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + returnToMainActivity(); + } + }, 500); // 延迟0.5秒后返回 + } else if (storeNameClickCount >= 3) { + // 当点击次数达到3次时,提示用户还需几次点击 + int remainingClicks = MAX_CLICK_COUNT - storeNameClickCount; + Toast.makeText(this, "再点击" + remainingClicks + "次返回主界面", Toast.LENGTH_SHORT).show(); + } + } + + /** + * 返回主界面 + */ + private void returnToMainActivity() { + LogManager.logInfo(TAG, "返回主界面"); + Intent intent = new Intent(this, MainActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(intent); + finish(); + } } \ No newline at end of file diff --git a/app/src/main/res/drawable/rounded_button_background.xml b/app/src/main/res/drawable/rounded_button_background.xml new file mode 100644 index 0000000..08b1576 --- /dev/null +++ b/app/src/main/res/drawable/rounded_button_background.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/rounded_store_name_background.xml b/app/src/main/res/drawable/rounded_store_name_background.xml new file mode 100644 index 0000000..e815116 --- /dev/null +++ b/app/src/main/res/drawable/rounded_store_name_background.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_oxface_online.xml b/app/src/main/res/layout/activity_oxface_online.xml index 2f2de56..211a221 100644 --- a/app/src/main/res/layout/activity_oxface_online.xml +++ b/app/src/main/res/layout/activity_oxface_online.xml @@ -183,7 +183,23 @@ android:id="@+id/finance_by_living_detection" android:visibility="gone" /> - + + + + + android:visibility="gone" /> @@ -297,7 +313,7 @@ android:layout_width="wrap_content" android:layout_height="28dp" android:layout_marginBottom="10dp" - android:background="#4CAF50" + android:background="@drawable/rounded_button_background" android:minHeight="40dp" android:text="验证码开门" android:textColor="#FFFFFF" @@ -307,7 +323,7 @@ android:id="@+id/btn_scanner_door" android:layout_width="wrap_content" android:layout_height="28dp" - android:background="#2196F3" + android:background="@drawable/rounded_button_background" android:minHeight="40dp" android:text="扫码器开门" android:textColor="#FFFFFF" @@ -357,13 +373,13 @@