diff --git a/.idea/misc.xml b/.idea/misc.xml index a6e1098..ce095e3 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/src/main/java/com/devspace/taskbeats/CategoryDao.kt b/app/src/main/java/com/devspace/taskbeats/CategoryDao.kt index faf1a12..490584a 100644 --- a/app/src/main/java/com/devspace/taskbeats/CategoryDao.kt +++ b/app/src/main/java/com/devspace/taskbeats/CategoryDao.kt @@ -1,6 +1,7 @@ package com.devspace.taskbeats import androidx.room.Dao +import androidx.room.Delete import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query @@ -11,11 +12,14 @@ interface CategoryDao { @Query("Select * From categoryentity") fun getAll(): List - @Insert(onConflict = OnConflictStrategy.REPLACE) + @Insert(onConflict = OnConflictStrategy.IGNORE) fun insetAll(categoryEntity: List) //removemos o vararg e usamos a lista //mesmo com a documentação dizendo pra usar vararg e nao usar lista. - @Insert(onConflict = OnConflictStrategy.REPLACE) + @Insert(onConflict = OnConflictStrategy.IGNORE) fun inset(categoryEntity: CategoryEntity) + @Delete + fun delete(categoryEntity: CategoryEntity) + } \ No newline at end of file diff --git a/app/src/main/java/com/devspace/taskbeats/CategoryListAdapter.kt b/app/src/main/java/com/devspace/taskbeats/CategoryListAdapter.kt index 782692a..ee7453c 100644 --- a/app/src/main/java/com/devspace/taskbeats/CategoryListAdapter.kt +++ b/app/src/main/java/com/devspace/taskbeats/CategoryListAdapter.kt @@ -12,11 +12,16 @@ class CategoryListAdapter : ListAdapter(CategoryListAdapter) { private var onClick: (CategoryUiData) -> Unit = {} //optei por inicializar SEMPRE, por padrão, como uma função VAZIA, pra nao dar crash caso eu nao inicialize + private lateinit var onLongClick: (CategoryUiData) -> Unit fun setOnClickListener(onClick: (CategoryUiData) -> Unit) { this.onClick = onClick } + fun setOnLongClickListener(onLongClick: (CategoryUiData) -> Unit){ + this.onLongClick = onLongClick + } + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CategoryViewHolder { val view = LayoutInflater.from(parent.context).inflate(R.layout.item_category, parent, false) @@ -25,19 +30,25 @@ class CategoryListAdapter : override fun onBindViewHolder(holder: CategoryViewHolder, position: Int) { val category = getItem(position) - holder.bind(category, onClick) + holder.bind(category, onClick, onLongClick) } class CategoryViewHolder(private val view: View) : RecyclerView.ViewHolder(view) { private val tvCategory = view.findViewById(R.id.tv_category) - fun bind(category: CategoryUiData, onClick: (CategoryUiData) -> Unit) { + fun bind(category: CategoryUiData, onClick: (CategoryUiData) -> Unit, onLongClick: (CategoryUiData) -> Unit) { tvCategory.text = category.name tvCategory.isSelected = category.isSelected view.setOnClickListener { onClick.invoke(category) } + + view.setOnLongClickListener { + onLongClick.invoke(category) + true + } + } } diff --git a/app/src/main/java/com/devspace/taskbeats/CreateOrUpdateTaskBottomSheet.kt b/app/src/main/java/com/devspace/taskbeats/CreateOrUpdateTaskBottomSheet.kt new file mode 100644 index 0000000..6949c9a --- /dev/null +++ b/app/src/main/java/com/devspace/taskbeats/CreateOrUpdateTaskBottomSheet.kt @@ -0,0 +1,114 @@ +package com.devspace.taskbeats + +import android.os.Bundle +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.AdapterView +import android.widget.ArrayAdapter +import android.widget.Button +import android.widget.Spinner +import android.widget.TextView +import androidx.core.view.isVisible +import com.google.android.material.bottomsheet.BottomSheetDialogFragment +import com.google.android.material.snackbar.Snackbar +import com.google.android.material.textfield.TextInputEditText + +class CreateOrUpdateTaskBottomSheet( + private val categoryList: List, + private val task: TaskUiData? = null, + private val onCreateClicked: (TaskUiData) -> Unit, + private val onUpdateClicked: (TaskUiData) -> Unit, + private val onDeleteClicked: (TaskUiData) -> Unit +) : BottomSheetDialogFragment() { + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + val view = inflater.inflate(R.layout.create_or_update_task_bottom_sheet, container, false) + val btnCreateOrUpdate = view.findViewById