Browse Source

feat(主页)
- 移除快捷入口Activity
- 将快捷入口功能合并到主Activity

refactor(主页)
- 调整用户信息入口逻辑,直接替换导航图到用户信息图

周文健 3 months ago
parent
commit
75448ad69f

+ 0 - 4
app/src/main/AndroidManifest.xml

@@ -55,10 +55,6 @@
             android:name=".features.main.activity.MainActivity"
             android:exported="true"
             android:windowSoftInputMode="stateHidden|adjustPan" />
-        <activity
-            android:name=".features.main.activity.QuickEntryActivity"
-            android:exported="true"
-            android:windowSoftInputMode="stateHidden|adjustPan" />
         <activity
             android:name=".features.init.activity.SetRemoteServerActivity"
             android:exported="true"

+ 1 - 16
app/src/main/java/com/grkj/iscs/features/main/activity/MainActivity.kt

@@ -126,15 +126,7 @@ class MainActivity() : BaseActivity<ActivityMainBinding>() {
             }
         }
         binding.userInfoLayout.setDebouncedClickListener {
-            if (MainDomainData.permissions.contains(RoleFunctionalPermissionsEnum.USER_INFO_HOME.functionalPermission)) {
-                if (navController.graph.id == userInfoNavGraph) {
-                    navController.popBackStack(R.id.userInfoHomeFragment, false)
-                    binding.navBar.isVisible = true
-                } else {
-                    replaceNavGraph(R.navigation.nav_user_info)
-                    userInfoNavGraph = navController.graph.id
-                }
-            }
+            replaceNavGraph(R.navigation.nav_user_info)
         }
         navController.addOnDestinationChangedListener { _, destination, _ ->
             // 如果是我们定义的底栏图表对应的 NavGraph,就 show,否则 hide
@@ -147,13 +139,6 @@ class MainActivity() : BaseActivity<ActivityMainBinding>() {
         }
     }
 
-    override fun replaceNavGraph(graphId: Int) {
-        super.replaceNavGraph(graphId)
-        if (navController.graph.id != userInfoNavGraph) {
-            userInfoNavGraph = 0
-        }
-    }
-
     override fun onEvent(event: EventBean<Any>) {
         super.onEvent(event)
         when (event.code) {

+ 0 - 126
app/src/main/java/com/grkj/iscs/features/main/activity/QuickEntryActivity.kt

@@ -1,126 +0,0 @@
-package com.grkj.iscs.features.main.activity
-
-import android.content.Intent
-import android.view.InputDevice
-import android.view.KeyEvent
-import android.view.Menu
-import android.view.View
-import androidx.activity.viewModels
-import androidx.core.view.get
-import androidx.core.view.isNotEmpty
-import androidx.core.view.isVisible
-import coil.load
-import com.grkj.data.data.EventConstants
-import com.grkj.data.data.MainDomainData
-import com.grkj.data.enums.RoleFunctionalPermissionsEnum
-import com.grkj.data.model.local.TabConfig
-import com.grkj.iscs.R
-import com.grkj.iscs.databinding.ActivityMainBinding
-import com.grkj.iscs.databinding.ActivityQuickEntryBinding
-import com.grkj.iscs.features.login.activity.LoginActivity
-import com.grkj.iscs.features.main.viewmodel.MainViewModel
-import com.grkj.shared.model.EventBean
-import com.grkj.ui_base.base.BaseActivity
-import com.grkj.ui_base.utils.event.BottomNavVisibilityEvent
-import com.grkj.shared.utils.extension.toByteArrays
-import com.grkj.shared.utils.extension.toHexStrings
-import com.grkj.ui_base.utils.event.FlashTipEvent
-import com.grkj.ui_base.utils.event.RFIDCardReadEvent
-import com.sik.sikandroid.activity.ActivityTracker
-import com.sik.sikandroid.activity.ActivityUtil
-import com.sik.sikcore.extension.file
-import com.sik.sikimage.ImageConvertUtils
-import dagger.hilt.android.AndroidEntryPoint
-
-/**
- * 首页
- */
-@AndroidEntryPoint
-class QuickEntryActivity() : BaseActivity<ActivityQuickEntryBinding>() {
-    private val viewModel: MainViewModel by viewModels()
-    private var cardNo: String = ""
-    private var initialDestId: Int = 0
-
-    override fun navHostFragmentId() = R.id.nav_host_fragment
-
-    override fun getLayoutId(): Int {
-        return R.layout.activity_quick_entry
-    }
-
-    override fun initView() {
-        // 获取传入的数据
-        val navGraphId = intent.getIntExtra("nav_graph_id", 0)
-        initialDestId = intent.getIntExtra("dest_id", 0)
-        if (navGraphId == 0 || initialDestId == 0) {
-            finish()
-            return
-        }
-        replaceNavGraph(navGraphId)
-        navController.navigate(initialDestId)
-        binding.nickname.text = MainDomainData.userInfo?.nickName ?: ""
-        (MainDomainData.userInfo?.avatar
-            ?: MainDomainData.userBiometricDataVo.find { it.type == "2" }?.content)?.let {
-            if (it.isNotEmpty()) {
-                val faceData = it.file().readText()
-                val avatar = ImageConvertUtils.base64ToBitmap(faceData)
-                binding.avatar.load(avatar)
-            }
-        }
-
-        binding.userInfoLayout.setOnClickListener {
-            if (MainDomainData.permissions.contains(RoleFunctionalPermissionsEnum.USER_INFO_HOME.functionalPermission)) {
-                replaceNavGraph(R.navigation.nav_user_info)
-            }
-        }
-    }
-
-    override fun onEvent(event: EventBean<Any>) {
-        super.onEvent(event)
-        when (event.code) {
-            EventConstants.EVENT_LOGOUT -> {
-                logout()
-            }
-
-            EventConstants.EVENT_FLASH_TIP_CODE -> {
-                (event.data as FlashTipEvent).apply {
-                    binding.flashTipTv.isVisible = isShow
-                    binding.flashTipTv.text = msg
-                }
-            }
-        }
-    }
-
-    override fun initData() {
-        super.initData()
-        viewModel.bleIndicate()
-        viewModel.registerStatusListener()
-    }
-
-    override fun dispatchKeyEvent(event: KeyEvent): Boolean {
-        if (event.action == KeyEvent.ACTION_UP && event.source == InputDevice.SOURCE_KEYBOARD) {
-            // 检测到回车开始处理
-            if (event.keyCode == 66) {
-                try {
-                    cardNo = cardNo.toLong().toByteArrays().toHexStrings(false)
-                    logger.info("Swipe card login: $cardNo")
-                    RFIDCardReadEvent.sendRFIDCardReadEvent(cardNo)
-                    // 重置cardNo
-                    cardNo = ""
-                } catch (e: Exception) {
-                    cardNo = ""
-                    logger.info("读卡失败: ${e.toString()}")
-                }
-                return super.dispatchKeyEvent(event)
-            }
-            cardNo += event.keyCharacterMap.getDisplayLabel(event.keyCode)
-        }
-        return super.dispatchKeyEvent(event)
-    }
-
-    /**
-     * 退出登录
-     */
-    private fun logout() {
-        finish()
-    }
-}

+ 0 - 100
app/src/main/res/layout-land/activity_quick_entry.xml

@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools">
-
-    <RelativeLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="@mipmap/bg_main"
-        android:fitsSystemWindows="true"
-        android:orientation="vertical">
-
-        <FrameLayout
-            android:id="@+id/header_layout"
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/header_height"
-            android:paddingHorizontal="@dimen/common_spacing_small">
-
-            <ImageView
-                android:layout_width="@dimen/header_logo_width"
-                android:layout_height="@dimen/header_logo_height"
-                android:layout_gravity="center_vertical"
-                android:src="@mipmap/icon_logo" />
-
-            <LinearLayout
-                android:layout_width="wrap_content"
-                android:layout_height="match_parent"
-                android:layout_gravity="right"
-                android:orientation="horizontal">
-
-                <TextClock
-                    android:layout_width="wrap_content"
-                    android:layout_height="match_parent"
-                    android:format12Hour="yyyy-MM-dd HH:mm:ss"
-                    android:format24Hour="yyyy-MM-dd HH:mm:ss"
-                    android:gravity="center_vertical"
-                    android:paddingHorizontal="@dimen/header_time_padding"
-                    android:textColor="@color/white"
-                    android:textSize="@dimen/header_time_text_size" />
-
-                <LinearLayout
-                    android:id="@+id/user_info_layout"
-                    android:layout_width="wrap_content"
-                    android:layout_height="match_parent"
-                    android:orientation="horizontal">
-
-                    <ImageView
-                        android:id="@+id/avatar"
-                        android:layout_width="@dimen/avatar_size"
-                        android:layout_height="@dimen/avatar_size"
-                        android:layout_gravity="center_vertical"
-                        android:layout_marginLeft="@dimen/common_spacing"
-                        android:padding="@dimen/common_spacing"
-                        android:src="@mipmap/icon_avatar" />
-
-                    <TextView
-                        android:id="@+id/nickname"
-                        android:layout_width="wrap_content"
-                        android:layout_height="match_parent"
-                        android:layout_marginLeft="@dimen/home_nickname_margin"
-                        android:gravity="center"
-                        android:textColor="@color/white"
-                        android:textSize="@dimen/home_nickname_text_size" />
-                </LinearLayout>
-            </LinearLayout>
-
-
-            <com.grkj.ui_base.widget.FlashingTipTextView
-                android:id="@+id/flash_tip_tv"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:background="@drawable/bg_main_color_tip"
-                android:drawableLeft="@mipmap/tip"
-                android:drawablePadding="@dimen/common_spacing"
-                android:gravity="center_vertical"
-                android:paddingHorizontal="@dimen/common_spacing"
-                android:textColor="@color/white"
-                android:textSize="@dimen/common_btn_text_size"
-                android:visibility="gone" />
-        </FrameLayout>
-
-        <View
-            android:id="@+id/header_line"
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/line_height"
-            android:layout_below="@+id/header_layout"
-            android:background="@color/white30" />
-
-        <androidx.fragment.app.FragmentContainerView
-            android:id="@+id/nav_host_fragment"
-            android:name="androidx.navigation.fragment.NavHostFragment"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_below="@+id/header_line"
-            android:layout_toRightOf="@+id/nav_bar"
-            app:defaultNavHost="true"
-            app:navGraph="@navigation/nav_home" />
-
-    </RelativeLayout>
-</layout>

+ 0 - 102
app/src/main/res/layout/activity_quick_entry.xml

@@ -1,102 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools">
-
-    <RelativeLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="@mipmap/bg_main"
-        android:fitsSystemWindows="true"
-        android:orientation="vertical">
-
-        <FrameLayout
-            android:id="@+id/header_layout"
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/header_height"
-            android:paddingHorizontal="@dimen/header_padding">
-
-            <ImageView
-                android:layout_width="@dimen/header_logo_width"
-                android:layout_height="@dimen/header_logo_height"
-                android:layout_gravity="center_vertical"
-                android:src="@mipmap/icon_logo" />
-
-
-            <LinearLayout
-                android:layout_width="wrap_content"
-                android:layout_height="match_parent"
-                android:layout_gravity="right"
-                android:orientation="horizontal">
-
-                <TextClock
-                    android:layout_width="wrap_content"
-                    android:layout_height="match_parent"
-                    android:format12Hour="yyyy-MM-dd HH:mm:ss"
-                    android:format24Hour="yyyy-MM-dd HH:mm:ss"
-                    android:gravity="center_vertical"
-                    android:paddingHorizontal="@dimen/header_time_padding"
-                    android:textColor="@color/white"
-                    android:textSize="@dimen/header_time_text_size" />
-
-                <LinearLayout
-                    android:id="@+id/user_info_layout"
-                    android:layout_width="wrap_content"
-                    android:layout_height="match_parent"
-                    android:orientation="horizontal">
-
-                    <ImageView
-                        android:id="@+id/avatar"
-                        android:layout_width="@dimen/avatar_size"
-                        android:layout_height="@dimen/avatar_size"
-                        android:layout_gravity="center_vertical"
-                        android:layout_marginLeft="@dimen/common_spacing"
-                        android:padding="@dimen/common_spacing"
-                        android:adjustViewBounds="false"
-                        android:src="@mipmap/icon_avatar" />
-
-                    <TextView
-                        android:id="@+id/nickname"
-                        android:layout_width="wrap_content"
-                        android:layout_height="match_parent"
-                        android:layout_marginLeft="@dimen/home_nickname_margin"
-                        android:gravity="center"
-                        android:textColor="@color/white"
-                        android:textSize="@dimen/home_nickname_text_size" />
-                </LinearLayout>
-            </LinearLayout>
-
-            <com.grkj.ui_base.widget.FlashingTipTextView
-                android:id="@+id/flash_tip_tv"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:background="@drawable/bg_main_color_tip"
-                android:drawableLeft="@mipmap/tip"
-                android:drawablePadding="@dimen/common_spacing"
-                android:gravity="center_vertical"
-                android:paddingHorizontal="@dimen/common_spacing"
-                android:textColor="@color/white"
-                android:textSize="@dimen/common_btn_text_size"
-                android:visibility="gone" />
-
-        </FrameLayout>
-
-        <View
-            android:id="@+id/header_line"
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/line_height"
-            android:layout_below="@+id/header_layout"
-            android:background="@color/white30" />
-
-        <androidx.fragment.app.FragmentContainerView
-            android:id="@+id/nav_host_fragment"
-            android:name="androidx.navigation.fragment.NavHostFragment"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_above="@+id/nav_bar"
-            android:layout_below="@+id/header_line"
-            app:defaultNavHost="true"
-            app:navGraph="@navigation/nav_home" />
-
-    </RelativeLayout>
-</layout>