FP BP Belom Fix
FP BP Belom Fix
Disusun Oleh :
Nama Kelompok
Kelompok 9
Kelas 21S1SI02
S1 – SISTEM INFORMASI
FAKULTAS ILMU KOMPUTER
UNIVERSITAS AMIKOM YOGYAKARTA
2022/2023
ABSTRAK
Aplikasi manajemen tugas android adalah aplikasi yang membantu pengguna untuk mengatur
dan mengelola tugas yang harus mereka kerjakan. Fitur-fitur yang mungkin termasuk dalam
aplikasi ini meliputi pembuatan daftar tugas, pemberian kategori/prioritas, dan pengingat.
Aplikasi ini dapat membantu pengguna untuk meningkatkan efisiensi dan efektivitas dalam
menyelesaikan tugas-tugas mereka.
a) Menu home
Isi dari activity main adalah tampilan home.
Activity_main.xml
<?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=".MainActivity">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#284544"
app:title="Manajemen Tugas"
app:titleTextColor="@android:color/white" />
<androidx.recyclerview.widget.RecyclerView
android:layout_below="@+id/toolbar"
android:id="@+id/todoRv"
tools:itemCount="3"
android:padding="8dp"
tools:listitem="@layout/item_todo"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="32dp"
android:layout_marginTop="32dp"
android:layout_marginEnd="178dp"
android:layout_marginBottom="32dp"
android:onClick="openNewTask"
android:src="@drawable/ic_add_white_24dp"
app:backgroundTint="#4FD1B7" />
</RelativeLayout>
MainActivity.kt
Berikut adalah class dari menu home.
package com.example.todoapp
import android.content.Intent
import android.graphics.*
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.SearchView
import androidx.lifecycle.Observer
import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
val db by lazy {
AppDatabase.getDatabase(this)
}
initSwipe()
fun initSwipe() {
val simpleItemTouchCallback = object :
ItemTouchHelper.SimpleCallback(
0,
ItemTouchHelper.LEFT or ItemTouchHelper.RIGHT
) {
override fun onMove(
recyclerView: RecyclerView,
viewHolder: RecyclerView.ViewHolder,
target: RecyclerView.ViewHolder
): Boolean = false
if (direction == ItemTouchHelper.LEFT) {
GlobalScope.launch(Dispatchers.IO) {
db.todoDao().deleteTask(adapter.getItemId(position))
}
} else if (direction == ItemTouchHelper.RIGHT) {
GlobalScope.launch(Dispatchers.IO) {
db.todoDao().finishTask(adapter.getItemId(position))
// todoRv.apply {
// layoutManager =
LinearLayoutManager(this@MainActivity)
// adapter = [email protected]
// }
// setContentView(R.layout.activity_history)
// setSupportActionBar(toolbar)
// todoRv.apply {
// layoutManager =
LinearLayoutManager(this@MainActivity)
// adapter = [email protected]
// }
}
}
}
if (dX > 0) {
icon = BitmapFactory.decodeResource(resources,
R.mipmap.ic_check_white_png)
paint.color = Color.parseColor("#388E3C")
canvas.drawRect(
itemView.left.toFloat(),
itemView.top.toFloat(),
itemView.left.toFloat() + dX,
itemView.bottom.toFloat(), paint
)
canvas.drawBitmap(
icon,
itemView.left.toFloat(),
itemView.top.toFloat() +
(itemView.bottom.toFloat() - itemView.top.toFloat() -
icon.height.toFloat()) / 2,
paint
)
} else {
icon = BitmapFactory.decodeResource(resources,
R.mipmap.ic_delete_white_png)
paint.color = Color.parseColor("#D32F2F")
canvas.drawRect(
itemView.right.toFloat() + dX,
itemView.top.toFloat(),
itemView.right.toFloat(),
itemView.bottom.toFloat(), paint
)
canvas.drawBitmap(
icon,
itemView.right.toFloat() - icon.width,
itemView.top.toFloat() +
(itemView.bottom.toFloat() - itemView.top.toFloat() -
icon.height.toFloat()) / 2,
paint
)
}
viewHolder.itemView.translationX = dX
} else {
super.onChildDraw(
canvas,
recyclerView,
viewHolder,
dX,
dY,
actionState,
isCurrentlyActive
)
}
}
})
searchView.setOnQueryTextListener(object :
SearchView.OnQueryTextListener{
override fun onQueryTextSubmit(query: String?): Boolean {
return false
}
override fun onQueryTextChange(newText: String?): Boolean {
if(!newText.isNullOrEmpty()){
displayTodo(newText)
}
return true
}
})
return super.onCreateOptionsMenu(menu)
}
b) Menu about
di main_activity ada menu search dan menu about
main_menu.xml
<item android:id="@+id/about"
android:title="About App"
app:showAsAction="never"/>
<item
android:id="@+id/search"
android:enabled="true"
android:title="Search"
android:iconTint="@color/red"
android:visible="true"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="ifRoom|collapseActionView" />
</menu>
Activity_about.xml
Di menu about untuk menampilkan nama dan nim anggota kelompok.
<?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"
tools:context=".AboutActivity">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="402dp"
android:layout_height="679dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.444"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/toolbar"
app:layout_constraintVertical_bias="1.0">
<TextView
android:id="@+id/textView11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="36dp"
android:text="Khoiriyah 21.12.1921"
app:layout_constraintBottom_toTopOf="@+id/btn_kembali"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.501"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2"
app:layout_constraintVertical_bias="0.279" />
<TextView
android:id="@+id/textView10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="36dp"
android:text="Muhamad Hilmy Abdillah 21.12.1981"
app:layout_constraintBottom_toTopOf="@+id/btn_kembali"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.505"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2"
app:layout_constraintVertical_bias="0.538" />
<TextView
android:id="@+id/textView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="36dp"
android:text="Kiki Mutkinati 21.12.1950"
app:layout_constraintBottom_toTopOf="@+id/btn_kembali"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.505"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2"
app:layout_constraintVertical_bias="0.404" />
<Button
android:id="@+id/btn_kembali"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Kembali"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.8"
android:onClick="openMainActivity"
/>
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleX="2"
android:scaleY="2"
android:text="@string/app_name"
app:layout_constraintBottom_toTopOf="@+id/btn_kembali"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.093" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:text="Disusun oleh"
app:layout_constraintBottom_toTopOf="@+id/btn_kembali"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView"
app:layout_constraintVertical_bias="0.0" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="36dp"
android:text="David Yusuf De Waskito 21.12.1974"
app:layout_constraintBottom_toTopOf="@+id/btn_kembali"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2"
app:layout_constraintVertical_bias="0.0" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="36dp"
android:text="Roy Wenang Robbani 21.12.1936"
app:layout_constraintBottom_toTopOf="@+id/btn_kembali"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.502"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2"
app:layout_constraintVertical_bias="0.136" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="36dp"
android:text="Reinaldi Endrico 21.12.1970"
app:layout_constraintBottom_toTopOf="@+id/btn_kembali"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.505"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2"
app:layout_constraintVertical_bias="0.675" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#284544"
app:layout_constraintTop_toTopOf="parent"
app:title="About"
app:titleTextColor="@android:color/white" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="402dp"
android:layout_height="679dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.444"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/toolbar"
app:layout_constraintVertical_bias="1.0">
<TextView
android:id="@+id/textView11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="36dp"
android:text="Khoiriyah 21.12.1921"
app:layout_constraintBottom_toTopOf="@+id/btn_kembali"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.501"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2"
app:layout_constraintVertical_bias="0.279" />
<TextView
android:id="@+id/textView10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="36dp"
android:text="Muhamad Hilmy Abdillah 21.12.1981"
app:layout_constraintBottom_toTopOf="@+id/btn_kembali"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.505"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2"
app:layout_constraintVertical_bias="0.538" />
<TextView
android:id="@+id/textView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="36dp"
android:text="Kiki Mutkinati 21.12.1950"
app:layout_constraintBottom_toTopOf="@+id/btn_kembali"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.505"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2"
app:layout_constraintVertical_bias="0.404" />
<Button
android:id="@+id/btn_kembali"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Kembali"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.8"
android:onClick="openMainActivity"
/>
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleX="2"
android:scaleY="2"
android:text="@string/app_name"
app:layout_constraintBottom_toTopOf="@+id/btn_kembali"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.093" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:text="Disusun oleh"
app:layout_constraintBottom_toTopOf="@+id/btn_kembali"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView"
app:layout_constraintVertical_bias="0.0" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="36dp"
android:text="David Yusuf De Waskito 21.12.1974"
app:layout_constraintBottom_toTopOf="@+id/btn_kembali"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2"
app:layout_constraintVertical_bias="0.0" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="36dp"
android:text="Roy Wenang Robbani 21.12.1936"
app:layout_constraintBottom_toTopOf="@+id/btn_kembali"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.502"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2"
app:layout_constraintVertical_bias="0.136" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="36dp"
android:text="Reinaldi Endrico 21.12.1970"
app:layout_constraintBottom_toTopOf="@+id/btn_kembali"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.505"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2"
app:layout_constraintVertical_bias="0.675" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#284544"
app:layout_constraintTop_toTopOf="parent"
app:title="About"
app:titleTextColor="@android:color/white" />
</androidx.constraintlayout.widget.ConstraintLayout>
AboutActivity.kt
Berikut adalah class dari menu About
package com.example.todoapp
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
c) AppDatabase
package com.example.todoapp
import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
@Database(entities = [TodoModel::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun todoDao(): TodoDao
companion object {
// Singleton prevents multiple instances of database opening at the
// same time.
@Volatile
private var INSTANCE: AppDatabase? = null
d) Menu create
Ini adalah menu untuk menambah data.
Activity_task.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".TaskActivity">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbarAddTask"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#284544"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="Tugas Baru" />
</com.google.android.material.appbar.AppBarLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="4dp"
android:text="Nama Tugas"
android:textColor="@color/colorAccent"
android:textSize="16sp" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/titleInpLay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
app:boxStrokeColor="@color/colorAccent"
app:hintTextColor="@color/colorAccent">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Masukkan Nama Tugas"
android:inputType="textCapWords"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:textSize="18sp" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginBottom="4dp"
android:text="Apa yang Perlu diselesaikan ? "
android:textColor="@color/colorAccent"
android:textSize="16sp" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/taskInpLay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
app:boxStrokeColor="@color/colorAccent"
app:hintTextColor="@color/colorAccent">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="start"
android:hint="Masukkan Tugasmu"
android:lines="3"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:textSize="18sp" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginBottom="4dp"
android:text="Atur Tanggal dan Batas Waktu"
android:textColor="@color/colorAccent"
android:textSize="16sp" />
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
app:boxStrokeColor="@color/colorAccent"
app:hintTextColor="@color/colorAccent">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/dateEdt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:cursorVisible="false"
android:drawableEnd="@drawable/ic_date_range_black_24dp"
android:drawablePadding="8dp"
android:drawableTint="@color/colorAccent"
android:focusable="false"
android:hint="Atur Disini"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:textSize="18sp" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/timeInptLay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
android:visibility="gone"
app:boxStrokeColor="@color/colorAccent"
app:hintTextColor="@color/colorAccent">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/timeEdt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:cursorVisible="false"
android:drawableEnd="@drawable/ic_access_time_black_24dp"
android:drawablePadding="8dp"
android:drawableTint="@color/colorAccent"
android:focusable="false"
android:hint="Set Time"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:textSize="18sp" />
</com.google.android.material.textfield.TextInputLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:orientation="horizontal"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp">
<Spinner
android:id="@+id/spinnerCategory"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_weight="1"
tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck"
/>
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.button.MaterialButton
android:id="@+id/saveBtn"
android:layout_width="100dp"
android:layout_height="60dp"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="147dp"
android:layout_marginTop="32dp"
android:layout_marginEnd="147dp"
android:text="Simpan"
app:backgroundTint="@color/colorAccent"
app:cornerRadius="25dp" />
</RelativeLayout>
</LinearLayout>
TaskAktivity.kt
Class dari menu create
package com.example.todoapp
import android.app.DatePickerDialog
import android.app.TimePickerDialog
import android.os.Bundle
import android.view.View
import android.widget.ArrayAdapter
import android.widget.DatePicker
import android.widget.TimePicker
import androidx.appcompat.app.AppCompatActivity
import androidx.room.Room
import kotlinx.android.synthetic.main.activity_task.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import java.text.SimpleDateFormat
import java.util.*
const val DB_NAME = "todo.db"
var finalDate = 0L
var finalTime = 0L
val db by lazy {
AppDatabase.getDatabase(this)
}
dateEdt.setOnClickListener(this)
timeEdt.setOnClickListener(this)
saveBtn.setOnClickListener(this)
setUpSpinner()
}
labels.sort()
spinnerCategory.adapter = adapter
}
GlobalScope.launch(Dispatchers.Main) {
val id = withContext(Dispatchers.IO) {
return@withContext db.todoDao().insertTask(
TodoModel(
title,
description,
category,
finalDate,
finalTime
)
)
}
finish()
}
timeSetListener =
TimePickerDialog.OnTimeSetListener() { _: TimePicker,
hourOfDay: Int, min: Int ->
myCalendar.set(Calendar.HOUR_OF_DAY, hourOfDay)
myCalendar.set(Calendar.MINUTE, min)
updateTime()
}
dateSetListener =
DatePickerDialog.OnDateSetListener { _: DatePicker, year: Int,
month: Int, dayOfMonth: Int ->
myCalendar.set(Calendar.YEAR, year)
myCalendar.set(Calendar.MONTH, month)
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth)
updateDate()
timeInptLay.visibility = View.VISIBLE
e) Menu Read
Menu ini untuk melihat data
Item_todo.xml
<View
android:id="@+id/viewColorTag"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginStart="5dp"
android:background="@android:color/white"
android:paddingBottom="5dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
android:background="?android:attr/selectableItemBackground"
android:clickable="true"
android:padding="5dp">
<TextView
android:id="@+id/txtShowTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_marginEnd="5dp"
android:layout_toStartOf="@+id/txtShowCategory"
android:ellipsize="end"
android:maxLines="1"
tools:text="Nama Tugas"
android:textColor="#303030"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:id="@+id/txtShowTask"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/txtShowTitle"
android:layout_marginTop="4dp"
android:ellipsize="end"
android:maxLines="1"
tools:text="Tugas yang ingin diselesaikan"
android:textColor="@android:color/black"
android:textSize="16sp" />
<TextView
android:id="@+id/txtShowCategory"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:ellipsize="end"
android:maxLines="1"
android:maxWidth="80dp"
tools:text="Kategori"
android:textColor="@color/litherGray"
android:textSize="12sp" />
<TextView
android:id="@+id/textDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/txtShowTask"
android:layout_marginTop="15dp"
android:text="Tanggal"
android:textColor="@color/litherGray"
android:textSize="12sp"
android:visibility="visible" />
<TextView
android:id="@+id/txtShowDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/textDate"
tools:text="22-12-2022"
android:textColor="@android:color/black"
android:visibility="visible" />
<TextView
android:id="@+id/textTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_below="@+id/txtShowTask"
android:layout_marginTop="15dp"
android:text="Waktu"
android:textColor="@color/litherGray"
android:textSize="12sp"
android:visibility="visible" />
<TextView
android:id="@+id/txtShowTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_below="@+id/textTime"
tools:text="22:12 AM"
android:textColor="@android:color/black"
android:visibility="visible" />
</RelativeLayout>
</RelativeLayout>
</com.google.android.material.card.MaterialCardView>