From 719cb5846d3974137fddf90b7760a8efcdaae1bd Mon Sep 17 00:00:00 2001 From: mustafa Date: Thu, 20 Apr 2023 05:44:12 +0300 Subject: [PATCH 1/4] create function to get and filter the data for search --- .../ui/search/SearchFilterFragment.kt | 44 ++++----- .../todoy_app/ui/search/SearchFragment.kt | 90 +++++++++---------- .../ui/todo/personal/PersonalTodoFragment.kt | 21 ++++- .../ui/todo/team/TeamTodoFragment.kt | 36 ++++++-- 4 files changed, 116 insertions(+), 75 deletions(-) diff --git a/app/src/main/java/com/tahaproject/todoy_app/ui/search/SearchFilterFragment.kt b/app/src/main/java/com/tahaproject/todoy_app/ui/search/SearchFilterFragment.kt index bbe1d621..b6d8e321 100644 --- a/app/src/main/java/com/tahaproject/todoy_app/ui/search/SearchFilterFragment.kt +++ b/app/src/main/java/com/tahaproject/todoy_app/ui/search/SearchFilterFragment.kt @@ -1,22 +1,22 @@ -package com.tahaproject.todoy_app.ui.search - - -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import com.tahaproject.todoy_app.R -import com.tahaproject.todoy_app.databinding.FragmentSearchFilterBinding -import com.tahaproject.todoy_app.ui.base.BaseBottomSheetDialogFragment - - -class SearchFilterFragment : BaseBottomSheetDialogFragment() { - override val bindingInflate: (LayoutInflater, ViewGroup?, Boolean) -> FragmentSearchFilterBinding - get() = FragmentSearchFilterBinding::inflate - - override fun getLayoutResourceId(): Int = R.layout.fragment_search_filter - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - } -} \ No newline at end of file +//package com.tahaproject.todoy_app.ui.search +// +// +//import android.os.Bundle +//import android.view.LayoutInflater +//import android.view.View +//import android.view.ViewGroup +//import com.tahaproject.todoy_app.R +//import com.tahaproject.todoy_app.databinding.FragmentSearchFilterBinding +//import com.tahaproject.todoy_app.ui.base.BaseBottomSheetDialogFragment +// +// +//class SearchFilterFragment : BaseBottomSheetDialogFragment() { +// override val bindingInflate: (LayoutInflater, ViewGroup?, Boolean) -> FragmentSearchFilterBinding +// get() = FragmentSearchFilterBinding::inflate +// +// override fun getLayoutResourceId(): Int = R.layout.fragment_search_filter +// +// override fun onViewCreated(view: View, savedInstanceState: Bundle?) { +// super.onViewCreated(view, savedInstanceState) +// } +//} \ No newline at end of file diff --git a/app/src/main/java/com/tahaproject/todoy_app/ui/search/SearchFragment.kt b/app/src/main/java/com/tahaproject/todoy_app/ui/search/SearchFragment.kt index 4de700a7..ea2a8c3f 100644 --- a/app/src/main/java/com/tahaproject/todoy_app/ui/search/SearchFragment.kt +++ b/app/src/main/java/com/tahaproject/todoy_app/ui/search/SearchFragment.kt @@ -1,45 +1,45 @@ -package com.tahaproject.todoy_app.ui.search - -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import com.mindorks.editdrawabletext.DrawablePosition -import com.mindorks.editdrawabletext.onDrawableClickListener -import com.tahaproject.todoy_app.databinding.FragmentSearchBinding - -import com.tahaproject.todoy_app.ui.base.BaseFragment -import com.tahaproject.todoy_app.ui.search.presenter.ISearchContract -import com.tahaproject.todoy_app.ui.search.presenter.SearchPresenter -import java.io.IOException - - -class SearchFragment (override val presenter: SearchPresenter): BaseFragment(), - ISearchContract.ISearchView { - - override val bindingInflate: (LayoutInflater, ViewGroup?, Boolean) -> FragmentSearchBinding - get() = FragmentSearchBinding::inflate - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - binding.searchBar.setDrawableClickListener(object : onDrawableClickListener { - override fun onClick(target: DrawablePosition) { - if (target == DrawablePosition.RIGHT) { - SearchFilterFragment().show(parentFragmentManager, Const.FILTER_TAG) - } - } - }) - } - - object Const { - const val FILTER_TAG = "newFilterTag" - } - - override fun showData() { - - } - - override fun showError(error: IOException) { - - } -} \ No newline at end of file +//package com.tahaproject.todoy_app.ui.search +// +//import android.os.Bundle +//import android.view.LayoutInflater +//import android.view.View +//import android.view.ViewGroup +//import com.mindorks.editdrawabletext.DrawablePosition +//import com.mindorks.editdrawabletext.onDrawableClickListener +//import com.tahaproject.todoy_app.databinding.FragmentSearchBinding +// +//import com.tahaproject.todoy_app.ui.base.BaseFragment +//import com.tahaproject.todoy_app.ui.search.presenter.ISearchContract +//import com.tahaproject.todoy_app.ui.search.presenter.SearchPresenter +//import java.io.IOException +// +// +//class SearchFragment (override val presenter: SearchPresenter): BaseFragment(), +// ISearchContract.ISearchView { +// +// override val bindingInflate: (LayoutInflater, ViewGroup?, Boolean) -> FragmentSearchBinding +// get() = FragmentSearchBinding::inflate +// +// override fun onViewCreated(view: View, savedInstanceState: Bundle?) { +// super.onViewCreated(view, savedInstanceState) +// binding.searchBar.setDrawableClickListener(object : onDrawableClickListener { +// override fun onClick(target: DrawablePosition) { +// if (target == DrawablePosition.RIGHT) { +// SearchFilterFragment().show(parentFragmentManager, Const.FILTER_TAG) +// } +// } +// }) +// } +// +// object Const { +// const val FILTER_TAG = "newFilterTag" +// } +// +// override fun showData() { +// +// } +// +// override fun showError(error: IOException) { +// +// } +//} \ No newline at end of file diff --git a/app/src/main/java/com/tahaproject/todoy_app/ui/todo/personal/PersonalTodoFragment.kt b/app/src/main/java/com/tahaproject/todoy_app/ui/todo/personal/PersonalTodoFragment.kt index baff1a38..cd05b410 100644 --- a/app/src/main/java/com/tahaproject/todoy_app/ui/todo/personal/PersonalTodoFragment.kt +++ b/app/src/main/java/com/tahaproject/todoy_app/ui/todo/personal/PersonalTodoFragment.kt @@ -4,13 +4,16 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.widget.addTextChangedListener import com.tahaproject.todoy_app.data.models.responses.todosListResponse.ToDosResponse +import com.tahaproject.todoy_app.data.models.responses.todosListResponse.Todo import com.tahaproject.todoy_app.databinding.FragmentPersonalTodoBinding import com.tahaproject.todoy_app.ui.todo.ToDoFragment import com.tahaproject.todoy_app.ui.todo.personal.adapter.PersonalAdapter import com.tahaproject.todoy_app.ui.todo.personal.presenter.IPersonalTodoContract import com.tahaproject.todoy_app.ui.todo.personal.presenter.PersonalTodoPresenter import com.tahaproject.todoy_app.ui.todo.team.adapter.TeamAdapter +import com.tahaproject.todoy_app.util.Constants import com.tahaproject.todoy_app.util.SharedPreferenceUtil import com.tahaproject.todoy_app.util.showToast import java.io.IOException @@ -18,7 +21,7 @@ import java.io.IOException class PersonalTodoFragment : ToDoFragment(), IPersonalTodoContract.IView { - + private lateinit var toDosResponse: ToDosResponse private lateinit var sharedPreferenceUtil: SharedPreferenceUtil private lateinit var personalAdapter : PersonalAdapter override val bindingInflate: (LayoutInflater, ViewGroup?, Boolean) -> FragmentPersonalTodoBinding @@ -31,6 +34,22 @@ private lateinit var personalAdapter : PersonalAdapter override fun addCallBack() { + } + private fun search(){ + binding.searchBar.addTextChangedListener { + getTeamTodoData() + } + } + private fun getTeamTodoData(){ + val filterList: List = toDosResponse.value.filter { + it.title == Constants.Todo.TITLE + && + it.description == Constants.Todo.DESCRIPTION + && + it.assignee == Constants.Todo.ASSIGNEE + } + personalAdapter = PersonalAdapter(filterList) + } override val presenter: PersonalTodoPresenter diff --git a/app/src/main/java/com/tahaproject/todoy_app/ui/todo/team/TeamTodoFragment.kt b/app/src/main/java/com/tahaproject/todoy_app/ui/todo/team/TeamTodoFragment.kt index 3b660d8a..d6f38163 100644 --- a/app/src/main/java/com/tahaproject/todoy_app/ui/todo/team/TeamTodoFragment.kt +++ b/app/src/main/java/com/tahaproject/todoy_app/ui/todo/team/TeamTodoFragment.kt @@ -3,10 +3,13 @@ package com.tahaproject.todoy_app.ui.todo.team import android.view.LayoutInflater import android.view.ViewGroup import android.widget.Toast +import androidx.core.widget.addTextChangedListener import com.tahaproject.todoy_app.R import com.tahaproject.todoy_app.data.models.responses.todosListResponse.ToDosResponse + import com.tahaproject.todoy_app.data.models.responses.todosListResponse.Todo import com.tahaproject.todoy_app.databinding.FragmentTeamTodoBinding +import com.tahaproject.todoy_app.ui.addtask.AddNewTaskFragment import com.tahaproject.todoy_app.ui.home.HomeActivity import com.tahaproject.todoy_app.ui.todo.ToDoFragment import com.tahaproject.todoy_app.ui.todo.team.adapter.TeamAdapter @@ -17,17 +20,18 @@ import com.tahaproject.todoy_app.util.SharedPreferenceUtil import java.io.IOException - class TeamTodoFragment : ToDoFragment(), - ITeamTodoContract.IView{ + ITeamTodoContract.IView { + + \ override val presenter: TeamTodoPresenter get() = TeamTodoPresenter(this, SharedPreferenceUtil(activity as HomeActivity).getToken()) override val bindingInflate: (LayoutInflater, ViewGroup?, Boolean) -> FragmentTeamTodoBinding get() = FragmentTeamTodoBinding::inflate - private var selectedTaskChip: TaskChip = TaskChip.TODO + private var selectedTaskChip: AddNewTaskFragment.TaskChip = AddNewTaskFragment.TaskChip.TODO private lateinit var toDosResponse: ToDosResponse private lateinit var adapter: TeamAdapter @@ -36,18 +40,35 @@ class TeamTodoFragment : ToDoFragment = toDosResponse.value.filter { + it.title == Constants.Todo.TITLE + && + it.description == Constants.Todo.DESCRIPTION + && + it.assignee == Constants.Todo.ASSIGNEE + } + adapter = TeamAdapter(filterList) + binding.recyclerviewTeamTodo.adapter = adapter + } private fun chooseGroup() { binding.chipGroupTeamTodo.setOnCheckedStateChangeListener { _, checkedId -> selectedTaskChip = when (checkedId[0]) { - R.id.chip_todo -> TaskChip.TODO - R.id.chip_inProgress -> TaskChip.IN_PROGRESS - R.id.chip_done -> TaskChip.DONE - else -> TaskChip.TODO + R.id.chip_todo -> AddNewTaskFragment.TaskChip.TODO + R.id.chip_inProgress -> askChip.IN_PROGRESS + R.id.chip_done -> AddNewTaskFragment.TaskChip.DONE + else -> AddNewTaskFragment.TaskChip.TODO } } } @@ -94,6 +115,7 @@ class TeamTodoFragment : ToDoFragment Date: Thu, 20 Apr 2023 05:48:27 +0300 Subject: [PATCH 2/4] create function to get and filter the data for search in personal todo data --- .../todoy_app/ui/todo/personal/PersonalTodoFragment.kt | 10 +++++----- .../todoy_app/ui/todo/team/TeamTodoFragment.kt | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/tahaproject/todoy_app/ui/todo/personal/PersonalTodoFragment.kt b/app/src/main/java/com/tahaproject/todoy_app/ui/todo/personal/PersonalTodoFragment.kt index cd05b410..9cf51819 100644 --- a/app/src/main/java/com/tahaproject/todoy_app/ui/todo/personal/PersonalTodoFragment.kt +++ b/app/src/main/java/com/tahaproject/todoy_app/ui/todo/personal/PersonalTodoFragment.kt @@ -29,18 +29,18 @@ private lateinit var personalAdapter : PersonalAdapter override fun setup() { sharedPreferenceUtil = SharedPreferenceUtil(requireContext()) - + searchPersonal() } override fun addCallBack() { } - private fun search(){ + private fun searchPersonal(){ binding.searchBar.addTextChangedListener { - getTeamTodoData() + personalAdapterData() } } - private fun getTeamTodoData(){ + private fun personalAdapterData(){ val filterList: List = toDosResponse.value.filter { it.title == Constants.Todo.TITLE && @@ -49,7 +49,7 @@ private lateinit var personalAdapter : PersonalAdapter it.assignee == Constants.Todo.ASSIGNEE } personalAdapter = PersonalAdapter(filterList) - + binding.recyclerPersonalTodo.adapter = personalAdapter } override val presenter: PersonalTodoPresenter diff --git a/app/src/main/java/com/tahaproject/todoy_app/ui/todo/team/TeamTodoFragment.kt b/app/src/main/java/com/tahaproject/todoy_app/ui/todo/team/TeamTodoFragment.kt index d6f38163..60eff542 100644 --- a/app/src/main/java/com/tahaproject/todoy_app/ui/todo/team/TeamTodoFragment.kt +++ b/app/src/main/java/com/tahaproject/todoy_app/ui/todo/team/TeamTodoFragment.kt @@ -40,12 +40,12 @@ class TeamTodoFragment : ToDoFragment Date: Thu, 20 Apr 2023 05:56:57 +0300 Subject: [PATCH 3/4] fix some issues --- .../ui/todo/team/TeamTodoFragment.kt | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/tahaproject/todoy_app/ui/todo/team/TeamTodoFragment.kt b/app/src/main/java/com/tahaproject/todoy_app/ui/todo/team/TeamTodoFragment.kt index 60eff542..abf61398 100644 --- a/app/src/main/java/com/tahaproject/todoy_app/ui/todo/team/TeamTodoFragment.kt +++ b/app/src/main/java/com/tahaproject/todoy_app/ui/todo/team/TeamTodoFragment.kt @@ -6,7 +6,6 @@ import android.widget.Toast import androidx.core.widget.addTextChangedListener import com.tahaproject.todoy_app.R import com.tahaproject.todoy_app.data.models.responses.todosListResponse.ToDosResponse - import com.tahaproject.todoy_app.data.models.responses.todosListResponse.Todo import com.tahaproject.todoy_app.databinding.FragmentTeamTodoBinding import com.tahaproject.todoy_app.ui.addtask.AddNewTaskFragment @@ -24,14 +23,14 @@ class TeamTodoFragment : ToDoFragment FragmentTeamTodoBinding get() = FragmentTeamTodoBinding::inflate - private var selectedTaskChip: AddNewTaskFragment.TaskChip = AddNewTaskFragment.TaskChip.TODO + private var selectedTaskChip:TaskChip = TaskChip.TODO private lateinit var toDosResponse: ToDosResponse private lateinit var adapter: TeamAdapter @@ -65,10 +64,10 @@ class TeamTodoFragment : ToDoFragment selectedTaskChip = when (checkedId[0]) { - R.id.chip_todo -> AddNewTaskFragment.TaskChip.TODO - R.id.chip_inProgress -> askChip.IN_PROGRESS - R.id.chip_done -> AddNewTaskFragment.TaskChip.DONE - else -> AddNewTaskFragment.TaskChip.TODO + R.id.chip_todo -> TaskChip.TODO + R.id.chip_inProgress -> TaskChip.IN_PROGRESS + R.id.chip_done -> TaskChip.DONE + else -> TaskChip.TODO } } } @@ -113,10 +112,9 @@ class TeamTodoFragment : ToDoFragment Date: Thu, 20 Apr 2023 06:32:11 +0300 Subject: [PATCH 4/4] add function search personal to to personal todo fragment --- .../ui/todo/personal/PersonalTodoFragment.kt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/app/src/main/java/com/tahaproject/todoy_app/ui/todo/personal/PersonalTodoFragment.kt b/app/src/main/java/com/tahaproject/todoy_app/ui/todo/personal/PersonalTodoFragment.kt index c49060e8..c08929e9 100644 --- a/app/src/main/java/com/tahaproject/todoy_app/ui/todo/personal/PersonalTodoFragment.kt +++ b/app/src/main/java/com/tahaproject/todoy_app/ui/todo/personal/PersonalTodoFragment.kt @@ -4,6 +4,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.widget.addTextChangedListener import com.tahaproject.todoy_app.R import com.tahaproject.todoy_app.data.models.responses.todosListResponse.ToDosResponse import com.tahaproject.todoy_app.data.models.responses.todosListResponse.Todo @@ -13,6 +14,7 @@ import com.tahaproject.todoy_app.ui.todo.ToDoFragment import com.tahaproject.todoy_app.ui.todo.personal.adapter.PersonalAdapter import com.tahaproject.todoy_app.ui.todo.personal.presenter.IPersonalTodoContract import com.tahaproject.todoy_app.ui.todo.personal.presenter.PersonalTodoPresenter +import com.tahaproject.todoy_app.ui.todo.team.adapter.TeamAdapter import com.tahaproject.todoy_app.util.Constants import com.tahaproject.todoy_app.util.SharedPreferenceUtil import com.tahaproject.todoy_app.util.showToast @@ -42,12 +44,29 @@ class PersonalTodoFragment : ToDoFragment = toDosResponse.value.filter { + it.title == Constants.Todo.TITLE + && + it.description == Constants.Todo.DESCRIPTION + && + it.assignee == Constants.Todo.ASSIGNEE + } + adapter = PersonalAdapter(filterList) + binding.recyclerPersonalTodo.adapter = adapter + } private fun chooseGroup() { binding.chipGroupPersonalTodo.setOnCheckedStateChangeListener { _, checkedId ->