瀏覽代碼

完成设置页和退出登录功能

Frankensteinly 9 月之前
父節點
當前提交
76c0d5da18

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

@@ -43,6 +43,7 @@
             android:exported="false" />
         <activity
             android:name=".view.activity.LoginActivity"
+            android:launchMode="singleTask"
             android:exported="false" />
         <activity
             android:name=".view.activity.CreateTicketActivity"

+ 8 - 2
app/src/main/java/com/grkj/iscs/view/activity/HomeActivity.kt

@@ -8,6 +8,7 @@ import com.grkj.iscs.view.base.BaseFragment
 import com.grkj.iscs.view.base.BaseMvpActivity
 import com.grkj.iscs.view.fragment.JobManagementFragment
 import com.grkj.iscs.view.fragment.MaterialManagementFragment
+import com.grkj.iscs.view.fragment.SettingFragment
 import com.grkj.iscs.view.iview.IHomeView
 import com.grkj.iscs.view.presenter.HomePresenter
 import com.zhy.adapter.recyclerview.CommonAdapter
@@ -25,12 +26,15 @@ class HomeActivity : BaseMvpActivity<IHomeView, HomePresenter, ActivityHomeBindi
         mBinding?.itemSetting?.ivIcon?.setImageResource(R.mipmap.settings)
         mBinding?.itemSetting?.tvName?.text = getString(R.string.settings)
         mBinding?.itemSetting?.root?.setOnClickListener {
-
+            mBinding?.vp?.currentItem = 2
+            mBinding?.itemSetting?.root?.setBackgroundColor(getColor(R.color.common_bg_white_30))
+            mBinding?.rvMenu?.adapter?.notifyDataSetChanged()
         }
 
         val mMenuList = mutableListOf(
             Menu(getString(R.string.job_management), R.mipmap.job_management, JobManagementFragment()),
-            Menu(getString(R.string.material_management), R.mipmap.material_management, MaterialManagementFragment())
+            Menu(getString(R.string.material_management), R.mipmap.material_management, MaterialManagementFragment()),
+            Menu(getString(R.string.settings), R.mipmap.settings, SettingFragment())
         )
 
         mBinding?.vp?.isUserInputEnabled = false
@@ -39,9 +43,11 @@ class HomeActivity : BaseMvpActivity<IHomeView, HomePresenter, ActivityHomeBindi
 
         mBinding?.rvMenu?.adapter = object : CommonAdapter<Menu>(this, R.layout.item_rv_menu, mMenuList) {
             override fun convert(holder: ViewHolder, data: Menu, position: Int) {
+                holder.setVisible(R.id.root, data.title != getString(R.string.settings))
                 holder.setText(R.id.tv_name, data.title)
                 holder.getView<ImageView>(R.id.iv_icon).setImageResource(data.icon!!)
                 holder.setOnClickListener(R.id.root) {
+                    mBinding?.itemSetting?.root?.setBackgroundColor(0)
                     mBinding?.vp?.currentItem = position
                     notifyDataSetChanged()
                 }

+ 24 - 0
app/src/main/java/com/grkj/iscs/view/fragment/SettingFragment.kt

@@ -0,0 +1,24 @@
+package com.grkj.iscs.view.fragment
+
+import android.content.Intent
+import com.grkj.iscs.databinding.FragmentSettingBinding
+import com.grkj.iscs.util.ActivityUtils
+import com.grkj.iscs.util.NetApi
+import com.grkj.iscs.view.activity.LoginActivity
+import com.grkj.iscs.view.base.BaseFragment
+
+/**
+ * 设置页
+ */
+class SettingFragment : BaseFragment<FragmentSettingBinding>() {
+
+    override val viewBinding: FragmentSettingBinding
+        get() = FragmentSettingBinding.inflate(layoutInflater)
+
+    override fun initView() {
+        mBinding?.cbLogout?.setOnClickListener {
+            NetApi.logout()
+            startActivity(Intent(context, LoginActivity::class.java))
+        }
+    }
+}

+ 0 - 1
app/src/main/java/com/grkj/iscs/view/fragment/WorkerFragment.kt

@@ -54,7 +54,6 @@ class WorkerFragment(val goBack: () -> Unit, val changePage: (PageChangeBO) -> U
                         mBinding?.rvColockerSelected?.adapter?.notifyDataSetChanged()
                         mBinding?.rvColockerInside?.adapter?.notifyDataSetChanged()
                         mBinding?.rvColockerOutside?.adapter?.notifyDataSetChanged()
-
                     }
                 }
             }

+ 8 - 2
app/src/main/java/com/grkj/iscs/view/widget/CommonBtn.kt

@@ -26,6 +26,7 @@ class CommonBtn(private val ctx: Context, attrs: AttributeSet) : LinearLayout(ct
 
         val btnIcon = attrSet.getResourceId(R.styleable.CommonBtn_btn_icon, 0)
         if (btnIcon != 0) {
+            mBinding.iv.visibility = View.VISIBLE
             mBinding.iv.setImageResource(btnIcon)
         }
 
@@ -41,7 +42,12 @@ class CommonBtn(private val ctx: Context, attrs: AttributeSet) : LinearLayout(ct
         mBinding.tvName.text = text
     }
 
-    fun setIcon(icon: Int) {
-        mBinding.iv.setImageResource(icon)
+    fun setIcon(icon: Int?) {
+        icon?.let {
+            mBinding.iv.visibility = View.VISIBLE
+            mBinding.iv.setImageResource(it)
+        } ?: run {
+            mBinding.iv.visibility = View.GONE
+        }
     }
 }

+ 2 - 2
app/src/main/res/layout/activity_home.xml

@@ -55,8 +55,8 @@
         <include
             android:id="@+id/item_setting"
             layout="@layout/item_rv_menu"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
+            android:layout_width="@dimen/item_rv_menu_size"
+            android:layout_height="@dimen/item_rv_menu_size"
             android:layout_above="@id/v_divider_time" />
 
         <androidx.recyclerview.widget.RecyclerView

+ 16 - 0
app/src/main/res/layout/fragment_setting.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout 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"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".view.fragment.SettingFragment">
+
+    <com.grkj.iscs.view.widget.CommonBtn
+        android:id="@+id/cb_logout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerInParent="true"
+        app:btn_bg="@drawable/common_btn_red_bg"
+        app:btn_name="@string/logout" />
+</RelativeLayout>

+ 4 - 3
app/src/main/res/layout/layout_common_btn.xml

@@ -9,11 +9,12 @@
     <ImageView
         android:id="@+id/iv"
         android:layout_width="14dp"
-        android:layout_height="14dp" />
+        android:layout_height="14dp"
+        android:layout_marginRight="5dp"
+        android:visibility="gone" />
 
     <TextView
         android:id="@+id/tv_name"
         style="@style/CommonTextView"
-        android:layout_width="match_parent"
-        android:layout_marginLeft="5dp" />
+        android:layout_width="match_parent" />
 </LinearLayout>

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -167,4 +167,5 @@
     <string name="action_confirm_check_before_unlocking">确定要执行取锁前检查吗?</string>
     <string name="action_confirm_restore">确定要执行拆锁恢复开关吗?</string>
     <string name="action_confirm_finish_ticket">还有隔离开关被其他作业票锁定,确定要结束作业吗?</string>
+    <string name="logout">退出登录</string>
 </resources>