Logout Feature

This commit is contained in:
smileomi18@gmail.com
2023-07-07 16:18:39 +05:30
parent 69518034be
commit 909fd4dc17
5 changed files with 66 additions and 15 deletions

View File

@@ -27,7 +27,7 @@ data class UserData(
var isUnderTransfusion: Boolean? = false,
var sickleCellHistory: String? = "",
var userImageURL: String = "",
var createdBy: String? = "",
var registeredBy: String? = "",
var createdAt: String? = "",
var registrationCenterName: String? = "",
){

View File

@@ -3,6 +3,7 @@ package com.example.hposregistration.ui.fragments
import android.app.AlertDialog
import android.content.Context
import android.content.DialogInterface
import android.content.SharedPreferences
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@@ -12,6 +13,7 @@ import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import com.example.hposregistration.adapters.UserListOfflineAdapter
import com.example.hposregistration.adapters.UserListOnlineAdapter
import com.example.hposregistration.data.Constant
import com.example.hposregistration.data.user.UserData
import com.example.hposregistration.ui.viewmodels.RegistrationViewModel
import com.firebase.ui.firestore.FirestoreRecyclerOptions
@@ -31,10 +33,13 @@ class UserListFragment : BaseFragment() {
private var isOnline = false
private lateinit var sharedPreference: SharedPreferences
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
): View {
_binding = FragmentUserListBinding.inflate(inflater, container, false)
sharedPreference = requireContext().getSharedPreferences("PREFERENCE_NAME", Context.MODE_PRIVATE)
setupViews()
return binding.root
}
@@ -53,6 +58,9 @@ class UserListFragment : BaseFragment() {
binding.btnRegisterUser.setOnClickListener {
findNavController().navigate(R.id.action_userListFragment_to_registrationFragment)
}
binding.btnLogout.setOnClickListener {
logoutUser(requireContext())
}
}
private fun init() {
@@ -72,6 +80,33 @@ class UserListFragment : BaseFragment() {
}
}
private fun logoutUser(context: Context) {
val builder = AlertDialog.Builder(context)
builder.setTitle("Log Out")
builder.setMessage("Do you want to LogOut the Application?")
// Positive button
builder.setPositiveButton("Yes") { dialog, _ ->
saveUserId("")
findNavController().navigate(R.id.action_userListFragment_to_loginFragment)
dialog.dismiss()
}
// Negative button
builder.setNegativeButton("No") { dialog, _ ->
dialog.dismiss()
}
val dialog = builder.create()
dialog.show()
}
private fun saveUserId(userId: String) {
with(sharedPreference.edit()) {
putString(Constant.USER_ID, userId)
apply()
}
}
private fun showUploadDialog(context: Context) {
val builder = AlertDialog.Builder(context)
builder.setTitle("Upload DB Registration")

View File

@@ -98,7 +98,7 @@ class ReviewDetailsRegistrationFragment : BaseFragment() {
userData.createdAt = SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss", Locale.getDefault()
).format(Calendar.getInstance().time)
userData.createdBy = sharedPreference.getString(Constant.USER_ID, "")
userData.registeredBy = sharedPreference.getString(Constant.USER_ID, "")
viewModel.addUserToDatabase(userData)
viewModel.deleteById(args.userId)
}

View File

@@ -0,0 +1,5 @@
<vector android:autoMirrored="true" android:height="24dp"
android:tint="@color/red" android:viewportHeight="24"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/red" android:pathData="M17,7l-1.41,1.41L18.17,11H8v2h10.17l-2.58,2.58L17,17l5,-5zM4,5h8V3H4c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h8v-2H4V5z"/>
</vector>

View File

@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".ui.fragments.UserListFragment"
android:padding="24dp">
android:padding="24dp"
tools:context="com.example.hposregistration.ui.fragments.UserListFragment">
<TextView
android:id="@+id/tv_title"
@@ -20,12 +20,12 @@
<TextView
android:id="@+id/noList"
style="@style/title1"
android:visibility="gone"
android:gravity="center"
android:text="@string/internet_is_not_available_and_there_is_no_data_available_in_local_db"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/internet_is_not_available_and_there_is_no_data_available_in_local_db"
android:textColor="@color/red"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -33,14 +33,25 @@
<ImageView
android:id="@+id/uploadData"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_margin="5dp"
android:src="@drawable/upload_data"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/tv_title"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/tv_title" />
<ImageView
android:id="@+id/btnLogout"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginEnd="10dp"
android:src="@drawable/ic_logout"
app:layout_constraintBottom_toBottomOf="@+id/tv_title"
app:layout_constraintEnd_toStartOf="@+id/uploadData"
app:layout_constraintTop_toTopOf="@+id/tv_title" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_order"
android:layout_width="0dp"
@@ -50,18 +61,18 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_title"
tools:listitem="@layout/user_item_view"/>
tools:listitem="@layout/user_item_view" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/btnRegisterUser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:elevation="1dp"
android:layout_margin="8dp"
android:src="@drawable/ic_add"
android:backgroundTint="@color/primary"
android:contentDescription="@string/register_user"
android:src="@drawable/ic_add"
app:elevation="1dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:contentDescription="@string/register_user" />
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>