diff --git a/app/src/main/java/com/example/bsm_notatnik/MainActivity.java b/app/src/main/java/com/example/bsm_notatnik/MainActivity.java index cc5fdf8..d5f64f6 100644 --- a/app/src/main/java/com/example/bsm_notatnik/MainActivity.java +++ b/app/src/main/java/com/example/bsm_notatnik/MainActivity.java @@ -1,4 +1,5 @@ package com.example.bsm_notatnik; +import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; @@ -28,8 +29,6 @@ public class MainActivity extends AppCompatActivity { private static final String SHARED_NAME_CREDENTIALS = "Credentials"; private static final String SHARED_NOTES_NAME = "Notes"; - private static final String KEY_NOTE_COUNT = "NoteCount"; - private static String HASHED_EMAIL = ""; private List noteList; @@ -50,31 +49,20 @@ public class MainActivity extends AppCompatActivity { loadNotesFromPreferences(); displayNotes(); - - - - buttonLogout = findViewById(R.id.btn_logout); buttonChangePassword = findViewById(R.id.btn_change_password); buttonAddNewNote = findViewById(R.id.btn_add_note); + buttonLogout.setOnClickListener(view -> logOut()); buttonChangePassword.setOnClickListener(view -> showPasswordChangeDialog(current_username_hashed)); - buttonAddNewNote.setOnClickListener(view -> { - showAddNewNoteDialog(); - }); + buttonAddNewNote.setOnClickListener(view -> showAddNewNoteDialog()); } - - - - - - private void logOut(){ Toast.makeText(getApplicationContext(), "Logout Successful!", Toast.LENGTH_SHORT).show(); @@ -84,8 +72,6 @@ public class MainActivity extends AppCompatActivity { } - - private void showPasswordChangeDialog(String hashedEmail){ // Inflate the dialog layout LayoutInflater inflater = getLayoutInflater(); @@ -158,9 +144,10 @@ public class MainActivity extends AppCompatActivity { note.setTitle(title); note.setContent(content); + noteList.add(note); - saveNotesToPreferences(); + saveNotesToPreferences("add"); createNoteView(note); } @@ -174,6 +161,43 @@ public class MainActivity extends AppCompatActivity { } + private void showEditNoteDialog(Note note){ + LayoutInflater inflater = getLayoutInflater(); + View dialogView = inflater.inflate(R.layout.create_note_dialog, null); + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setView(dialogView); + builder.setTitle("Edit note"); + + builder.setPositiveButton("Save", (dialogInterface, i) -> { + EditText noteTitleEditText = dialogView.findViewById(R.id.noteTitleEditText); + EditText noteContentEditText = dialogView.findViewById(R.id.noteContentEditText); + + String title = noteTitleEditText.getText().toString(); + String content = noteContentEditText.getText().toString(); + + if (!title.isEmpty() && !content.isEmpty()){ + deleteNoteAndRefresh(note); + + note.setTitle(title); + note.setContent(content); + + + noteList.add(note); + + saveNotesToPreferences("add"); + createNoteView(note); + } + + Toast.makeText(MainActivity.this, "Note Edited!", Toast.LENGTH_SHORT).show(); + }); + + builder.setNegativeButton("Cancel", (dialogInterface, i) -> dialogInterface.dismiss()); + + AlertDialog alertDialog = builder.create(); + alertDialog.show(); + } + + @@ -220,28 +244,14 @@ public class MainActivity extends AppCompatActivity { return sharedPreferences.getString("user_" + hashedEmail, "err"); } - private void saveNote(){ - EditText noteTitleEditText = findViewById(R.id.noteTitleEditText); - EditText noteContentEditText = findViewById(R.id.noteContentEditText); - String title = noteTitleEditText.getText().toString(); - String content = noteContentEditText.getText().toString(); - - if (!title.isEmpty() && !content.isEmpty()){ - Note note = new Note(); - note.setTitle(title); - note.setContent(content); - - noteList.add(note); - saveNotesToPreferences(); - - //createNoteView(note); - } - } - - private void saveNotesToPreferences(){ + private void saveNotesToPreferences(String mode){ SharedPreferences sharedPreferences = getSharedPreferences(SHARED_NOTES_NAME, MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); + if (mode.equals("del")){ + editor.clear(); + } + editor.putInt("notecount_" + HASHED_EMAIL, noteList.size()); for(int i=0; i { + showDeleteDialog(note); + }); + + noteView.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View view) { + + showEditNoteDialog(note); + + return true; + } + }); + notesContainer.addView(noteView); + + + } + + private void showDeleteDialog(final Note note){ + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle("Delete this note"); + builder.setMessage("Are you sure you want to delete it?"); + builder.setPositiveButton("Delete", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + deleteNoteAndRefresh(note); + } + }); + builder.setNegativeButton("Cancel", null); + builder.show(); + } + + private void deleteNoteAndRefresh(Note note){ + noteList.remove(note); + saveNotesToPreferences("del"); + refreshNotesView(); } private void refreshNotesView(){ @@ -291,7 +340,5 @@ public class MainActivity extends AppCompatActivity { } } - - } diff --git a/app/src/main/java/com/example/bsm_notatnik/Note.java b/app/src/main/java/com/example/bsm_notatnik/Note.java index 7905a79..9e1c922 100644 --- a/app/src/main/java/com/example/bsm_notatnik/Note.java +++ b/app/src/main/java/com/example/bsm_notatnik/Note.java @@ -4,11 +4,13 @@ public class Note { private String title; private String content; + private int id; + public Note(){ } - public Note(String title, String content){ + public Note(String title, String content, int id){ this.title = title; this.content = content; } @@ -28,4 +30,5 @@ public class Note { public void setContent(String content) { this.content = content; } + } diff --git a/app/src/main/res/layout/note_item.xml b/app/src/main/res/layout/note_item.xml index dd5fec6..09fe786 100644 --- a/app/src/main/res/layout/note_item.xml +++ b/app/src/main/res/layout/note_item.xml @@ -2,24 +2,40 @@ - + android:layout_weight="1" + android:orientation="vertical"> - + + + + + +