diff --git a/app/src/main/java/com/example/palto/ui/menu/MenuAdapter.kt b/app/src/main/java/com/example/palto/ui/menu/MenuAdapter.kt index 79db931..d56a5ed 100644 --- a/app/src/main/java/com/example/palto/ui/menu/MenuAdapter.kt +++ b/app/src/main/java/com/example/palto/ui/menu/MenuAdapter.kt @@ -15,19 +15,6 @@ import com.example.palto.domain.Session class MenuAdapter : ListAdapter(SessionDiffCallback) { - /* - class ViewHolder(binding: FragmentSessionItemBinding) : - RecyclerView.ViewHolder(binding.root) { - - val idView: TextView = binding.itemNumber - val contentView: TextView = binding.content - - override fun toString(): String { - return super.toString() + " '" + contentView.text + "'" - } - } - */ - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { return ViewHolder( FragmentMenuItemBinding.inflate( @@ -40,22 +27,20 @@ class MenuAdapter : override fun onBindViewHolder(holder: ViewHolder, position: Int) { val item = getItem(position) - holder.idView.text = position.toString() - holder.contentView.text = item.id + holder.sessionId.text = item.id } - //override fun getItemCount(): Int = values.size - inner class ViewHolder( binding: FragmentMenuItemBinding ) : RecyclerView.ViewHolder(binding.root) { - val idView: TextView = binding.itemNumber - val contentView: TextView = binding.content + val sessionId: TextView = binding.sessionId override fun toString(): String { - return super.toString() + " '" + idView.text + contentView.text + "'" + return super.toString() + " '" + sessionId.text + "'" } } + + //override fun getItemCount(): Int = values.size } object SessionDiffCallback : DiffUtil.ItemCallback() { diff --git a/app/src/main/java/com/example/palto/ui/menu/MenuFragment.kt b/app/src/main/java/com/example/palto/ui/menu/MenuFragment.kt index 4de1c00..f71b3ea 100644 --- a/app/src/main/java/com/example/palto/ui/menu/MenuFragment.kt +++ b/app/src/main/java/com/example/palto/ui/menu/MenuFragment.kt @@ -1,21 +1,22 @@ package com.example.palto.ui.menu import android.os.Bundle -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment -import androidx.fragment.app.viewModels +import androidx.navigation.fragment.findNavController +import androidx.navigation.navGraphViewModels +import com.example.palto.R import com.example.palto.databinding.FragmentMenuListBinding -import com.example.palto.databinding.FragmentSessionListBinding /** * A fragment representing a list of Sessions. */ class MenuFragment : Fragment() { - private val menuViewModel: MenuViewModel by viewModels() + private val menuViewModel: MenuViewModel by + navGraphViewModels(R.id.nav_graph) private var _binding: FragmentMenuListBinding? = null // This property is only valid between onCreateView and onDestroyView @@ -29,17 +30,16 @@ class MenuFragment : Fragment() { _binding = FragmentMenuListBinding.inflate(inflater, container, false) val adapter = MenuAdapter() - binding.menuList.adapter = MenuAdapter() + binding.menuList.adapter = adapter menuViewModel.sessions.observe(viewLifecycleOwner) { - Log.d("PALTO", "A session has been created") adapter.submitList(it) } + binding.createSession.setOnClickListener { + menuViewModel.createSession() + findNavController().navigate(R.id.action_menuFragment_to_sessionFragment) + } + return binding.root } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - menuViewModel.createSession() - } } \ No newline at end of file diff --git a/app/src/main/java/com/example/palto/ui/menu/MenuViewModel.kt b/app/src/main/java/com/example/palto/ui/menu/MenuViewModel.kt index e953081..859198b 100644 --- a/app/src/main/java/com/example/palto/ui/menu/MenuViewModel.kt +++ b/app/src/main/java/com/example/palto/ui/menu/MenuViewModel.kt @@ -4,18 +4,18 @@ import android.util.Log import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel -import com.example.palto.data.repository.LoginRepository import com.example.palto.domain.Session class MenuViewModel() : ViewModel() { private var _sessions = MutableLiveData>(emptyList()) - val sessions: LiveData> = _sessions + val sessions = _sessions as LiveData> fun createSession() { val session = Session( id = "aahh" ) _sessions.value = (_sessions.value ?: emptyList()) + session + Log.d("PALTO", "MenuViewModel: a session has been added into the list.") } } \ No newline at end of file diff --git a/app/src/main/java/com/example/palto/ui/session/SessionAdapter.kt b/app/src/main/java/com/example/palto/ui/session/SessionAdapter.kt index 00a43ef..6a11a69 100644 --- a/app/src/main/java/com/example/palto/ui/session/SessionAdapter.kt +++ b/app/src/main/java/com/example/palto/ui/session/SessionAdapter.kt @@ -29,7 +29,6 @@ class SessionAdapter : override fun onBindViewHolder(holder: ViewHolder, position: Int) { val item = getItem(position) holder.cardId.text = item.uid.toHexString() - //holder.contentView.text = item.content } inner class ViewHolder( diff --git a/app/src/main/java/com/example/palto/ui/session/SessionFragment.kt b/app/src/main/java/com/example/palto/ui/session/SessionFragment.kt index d4fd9a1..1f19919 100644 --- a/app/src/main/java/com/example/palto/ui/session/SessionFragment.kt +++ b/app/src/main/java/com/example/palto/ui/session/SessionFragment.kt @@ -41,16 +41,19 @@ class SessionFragment : Fragment() { val adapter = SessionAdapter() binding.sessionList.adapter = adapter sessionViewModel.cards.observe(viewLifecycleOwner) { - Log.d("NFC", "A card has been had to the list") adapter.submitList(it) } // Set the listener for a new NFC tag. nfcViewModel.tag.observe(viewLifecycleOwner) { - Log.d("NFC", "tag observer has been notified") + Log.d("NFC", "The tag observers has been notified.") sessionViewModel.insertCard(it) } + binding.createCard.setOnClickListener { + //sessionViewModel. + } + return binding.root } } \ No newline at end of file diff --git a/app/src/main/java/com/example/palto/ui/session/SessionViewModel.kt b/app/src/main/java/com/example/palto/ui/session/SessionViewModel.kt index a64dbc8..f9e4c61 100644 --- a/app/src/main/java/com/example/palto/ui/session/SessionViewModel.kt +++ b/app/src/main/java/com/example/palto/ui/session/SessionViewModel.kt @@ -16,7 +16,7 @@ class SessionViewModel( private val attendanceRepository: AttendanceRepository ) : ViewModel() { - private val _cards: MutableLiveData> = MutableLiveData(emptyList()) + private val _cards = MutableLiveData>(emptyList()) val cards = _cards as LiveData> fun insertCard(tag: Tag) { @@ -27,7 +27,7 @@ class SessionViewModel( "tmp" ) _cards.value = (_cards.value ?: emptyList()) + card - Log.d("NFC", "view model: A card has been had to the list") + Log.d("PALTO", "SessionViewModel: a card has been added into the list.") } /** diff --git a/app/src/main/res/layout/fragment_menu_item.xml b/app/src/main/res/layout/fragment_menu_item.xml index 1877568..dd0594e 100644 --- a/app/src/main/res/layout/fragment_menu_item.xml +++ b/app/src/main/res/layout/fragment_menu_item.xml @@ -5,16 +5,10 @@ android:orientation="horizontal"> - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_menu_list.xml b/app/src/main/res/layout/fragment_menu_list.xml index e5bf724..992f5ff 100644 --- a/app/src/main/res/layout/fragment_menu_list.xml +++ b/app/src/main/res/layout/fragment_menu_list.xml @@ -1,13 +1,28 @@ - \ No newline at end of file + android:layout_height="match_parent"> + + + + + + diff --git a/app/src/main/res/layout/fragment_session_list.xml b/app/src/main/res/layout/fragment_session_list.xml index 1816dad..9e5aeae 100644 --- a/app/src/main/res/layout/fragment_session_list.xml +++ b/app/src/main/res/layout/fragment_session_list.xml @@ -1,13 +1,28 @@ - \ No newline at end of file + android:layout_height="match_parent"> + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 51b4ac6..70d74d8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -12,4 +12,6 @@ Mot de passe invalide "Erreur de connexion !" Identifiants Invalides + Créer une session + Créer une présence \ No newline at end of file