Skip to content

Commit

Permalink
Added update feature
Browse files Browse the repository at this point in the history
  • Loading branch information
radikz committed Nov 4, 2020
1 parent 35142ad commit 35517ae
Show file tree
Hide file tree
Showing 34 changed files with 414 additions and 42 deletions.
17 changes: 13 additions & 4 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,14 +1,22 @@
/*
* SimpleNote
* build.gradle
* Created by Rangga Dikarinata on 2020/11/4
* email : dikarinata@gmail.com
*/

/*
* SimpleNote
* build.gradle
* Created by Rangga Dikarinata on 2020/11/3
* email : dikarinata@gmail.com
* Copyright © 2020 Rangga Dikarinata. All rights reserved.
*/

plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'androidx.navigation.safeargs'
}

android {
Expand Down Expand Up @@ -47,11 +55,12 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.1'
implementation 'androidx.navigation:navigation-ui-ktx:2.3.1'
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version"
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.cardview:cardview:1.0.0'
testImplementation 'junit:junit:4.+'
testImplementation 'junit:junit:4.13.1'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
/*
* SimpleNote
* ExampleInstrumentedTest.kt
* Created by Rangga Dikarinata on 2020/11/4
* email : dikarinata@gmail.com
*/

/*
* SimpleNote
* ExampleInstrumentedTest.kt
* Created by Rangga Dikarinata on 2020/11/3
* email : dikarinata@gmail.com
* Copyright © 2020 Rangga Dikarinata. All rights reserved.
*/

package id.radikz.simplenote
Expand Down
7 changes: 7 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ SimpleNote
~ AndroidManifest.xml
~ Created by Rangga Dikarinata on 2020/11/4
~ email : dikarinata@gmail.com
-->

<!--
~ SimpleNote
~ AndroidManifest.xml
Expand Down
7 changes: 7 additions & 0 deletions app/src/main/java/id/radikz/simplenote/CreateFragment.kt
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
/*
* SimpleNote
* CreateFragment.kt
* Created by Rangga Dikarinata on 2020/11/4
* email : dikarinata@gmail.com
*/

/*
* SimpleNote
* CreateFragment.kt
Expand Down
21 changes: 11 additions & 10 deletions app/src/main/java/id/radikz/simplenote/FirstFragment.kt
Original file line number Diff line number Diff line change
@@ -1,15 +1,20 @@
/*
* SimpleNote
* FirstFragment.kt
* Created by Rangga Dikarinata on 2020/11/4
* email : dikarinata@gmail.com
*/

/*
* SimpleNote
* FirstFragment.kt
* Created by Rangga Dikarinata on 2020/11/3
* email : dikarinata@gmail.com
* Copyright © 2020 Rangga Dikarinata. All rights reserved.
*/

package id.radikz.simplenote

import android.os.Bundle
import android.util.Log
import android.view.*
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
Expand Down Expand Up @@ -64,15 +69,11 @@ class FirstFragment : Fragment() {
}

override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
// Inflate the menu; this adds items to the action bar if it is present.
inflater.inflate(R.menu.menu_main, menu)
super.onCreateOptionsMenu(menu, inflater);
}

override fun onOptionsItemSelected(item: MenuItem): Boolean {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
return when (item.itemId) {
R.id.action_delete -> {
alertDialog()
Expand All @@ -89,11 +90,12 @@ class FirstFragment : Fragment() {
if (data.moveToFirst()) {

do {
val id = data.getInt(data.getColumnIndex("_id"))
val title = data.getString(data.getColumnIndex("title"))
val description = data.getString(data.getColumnIndex("description"))
val date = data.getString(data.getColumnIndex("date"))

listNotes.add(Note(title, description, date))
listNotes.add(Note(id, title, description, date))

} while (data.moveToNext())

Expand All @@ -109,8 +111,7 @@ class FirstFragment : Fragment() {
val alertDialogBuilder = AlertDialog.Builder(requireContext())
alertDialogBuilder.setMessage("Are you sure do you want to delete all item?")
alertDialogBuilder.setPositiveButton("Yes"){ _,_ ->

val result: Boolean = databaseHelper.delete()
val result: Boolean = databaseHelper.deleteAll()
if (result){
deleteAllNote()
}
Expand All @@ -124,7 +125,7 @@ class FirstFragment : Fragment() {
}

private fun deleteAllNote(){
notesAdapter.deleteNotes()
notesAdapter.deleteAllNotes()
}

}
8 changes: 7 additions & 1 deletion app/src/main/java/id/radikz/simplenote/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
/*
* SimpleNote
* MainActivity.kt
* Created by Rangga Dikarinata on 2020/11/4
* email : dikarinata@gmail.com
*/

/*
* SimpleNote
* MainActivity.kt
* Created by Rangga Dikarinata on 2020/11/3
* email : dikarinata@gmail.com
* Copyright © 2020 Rangga Dikarinata. All rights reserved.
*/

package id.radikz.simplenote
Expand Down
85 changes: 85 additions & 0 deletions app/src/main/java/id/radikz/simplenote/UpdateFragment.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
/*
* SimpleNote
* UpdateFragment.kt
* Created by Rangga Dikarinata on 2020/11/4
* email : dikarinata@gmail.com
*/

package id.radikz.simplenote

import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.Navigation
import androidx.navigation.fragment.navArgs
import id.radikz.simplenote.db.DatabaseHelper
import id.radikz.simplenote.model.Note


/**
* A simple [Fragment] subclass as the default destination in the navigation.
*
*/

class UpdateFragment : Fragment() {

private lateinit var title: EditText
private lateinit var description: EditText
private lateinit var update: Button
private lateinit var databaseHelper: DatabaseHelper
private lateinit var note: Note
private val args: UpdateFragmentArgs by navArgs()

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_create, container, false)
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

(requireContext() as AppCompatActivity).supportActionBar!!.setTitle("Update")

title = view.findViewById(R.id.create_title)
description = view.findViewById(R.id.create_description)
update = view.findViewById(R.id.create_button)
databaseHelper = DatabaseHelper(requireContext())

note = args.note

update.setText(getString(R.string.update))
loadData()
update.setOnClickListener{
updateData(it)
}
}

private fun loadData(){
title.setText(note.title)
description.setText(note.description)
}

private fun updateData(view: View){
val strTitle = title.text.toString()
val strDesc = description.text.toString()
val strId: String = note.id.toString()
val result = databaseHelper.update(strId, strTitle, strDesc)

if (result) {
Toast.makeText(requireContext(), "Data updated", Toast.LENGTH_SHORT).show()
Navigation.findNavController(view).navigate(R.id.action_updateFragment_to_FirstFragment)
}
else{
Toast.makeText(requireContext(), "Failed to insert data", Toast.LENGTH_SHORT).show()
}
}
}
47 changes: 44 additions & 3 deletions app/src/main/java/id/radikz/simplenote/adapter/NotesAdapter.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
/*
* SimpleNote
* NotesAdapter.kt
* Created by Rangga Dikarinata on 2020/11/4
* email : dikarinata@gmail.com
*/

/*
* SimpleNote
* NotesAdapter.kt
* Created by Rangga Dikarinata on 2020/11/3
* email : dikarinata@gmail.com
* Copyright © 2020 Rangga Dikarinata. All rights reserved.
*/

package id.radikz.simplenote.adapter
Expand All @@ -14,10 +20,15 @@ import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.navigation.findNavController
import androidx.recyclerview.widget.RecyclerView
import androidx.transition.AutoTransition
import androidx.transition.TransitionManager
import id.radikz.simplenote.FirstFragmentDirections
import id.radikz.simplenote.R
import id.radikz.simplenote.db.DatabaseHelper
import id.radikz.simplenote.model.Note
Expand All @@ -39,10 +50,14 @@ class NotesAdapter(
notifyDataSetChanged()
}

fun deleteNotes(){
fun deleteAllNotes(){
notes.clear()
notifyDataSetChanged()
// notifyItemRemoved(id)
}

fun deleteNotes(id: Int){
notes.removeAt(id)
notifyItemRemoved(id)
}

override fun getItemCount(): Int = notes.size
Expand All @@ -66,6 +81,8 @@ class NotesAdapter(
private val releaseDate: TextView = itemView.findViewById(R.id.list_date)
private val title: TextView = itemView.findViewById(R.id.list_title)
private val description: TextView = itemView.findViewById(R.id.list_description)
private val icUpdate: ImageView = itemView.findViewById(R.id.list_ic_update)
private val icDelete: ImageView = itemView.findViewById(R.id.list_ic_delete_red)
private var expandable: Boolean = false
private lateinit var databaseHelper: DatabaseHelper

Expand All @@ -76,6 +93,30 @@ class NotesAdapter(

databaseHelper = DatabaseHelper(context)

icUpdate.setOnClickListener{
val direction = FirstFragmentDirections.actionFirstFragmentToUpdateFragment(note)
itemView.findNavController().navigate(direction)
}

icDelete.setOnClickListener{
Log.d("adapter", note.date)
val alertDialogBuilder = AlertDialog.Builder(context)
alertDialogBuilder.setMessage("Are you sure do you want to delete this?")
alertDialogBuilder.setPositiveButton("Yes"){ _,_ ->

val result: Boolean = databaseHelper.delete(note.id.toString())
if (result){
deleteNotes(getAdapterPosition())
}
else{
Toast.makeText(context, "Failed to delete", Toast.LENGTH_SHORT).show()
}
}
alertDialogBuilder.setNeutralButton("Cancel"){ _,_ -> }
val alertDialog = alertDialogBuilder.create()
alertDialog.show()
}

itemView.setOnClickListener {
Log.d("adapter", note.title)
TransitionManager.beginDelayedTransition(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
/*
* SimpleNote
* DatabaseContainer.kt
* Created by Rangga Dikarinata on 2020/11/4
* email : dikarinata@gmail.com
*/

/*
* SimpleNote
* DatabaseContainer.kt
* Created by Rangga Dikarinata on 2020/11/3
* email : dikarinata@gmail.com
* Copyright © 2020 Rangga Dikarinata. All rights reserved.
*/

package id.radikz.simplenote.db
Expand Down
Loading

0 comments on commit 35517ae

Please sign in to comment.