I have been searching for quite some time to duplicate the items in recyclerview but all I see is the opposite of this problem. I am creating a notepad app and I want to duplicate the note the user created when they choose "Make a copy" option.
this is my NotesAdapter class:
package com.example.notepad.adapter;
import android.content.Context;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable;
import android.os.Looper;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.example.notepad.R;
import com.example.notepad.activities.CreateNote;
import com.example.notepad.activities.MainActivity;
import com.example.notepad.activities.Utils;
import com.example.notepad.entities.Note;
import com.example.notepad.listeners.NoteListener;
import com.makeramen.roundedimageview.RoundedImageView;
import java.net.CacheRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import android.os.Handler;
public class NotesAdapter extends RecyclerView.Adapter<NotesAdapter.noteViewHolder> {
private NoteListener noteListener;
private List<Note> notes, notesSource;
private Timer timer;
private int theme;
private Context context;
public NotesAdapter(List<Note> notes, NoteListener noteListener, int theme, Context context){
this.notes = notes;
this.noteListener = noteListener;
notesSource = notes;
this.theme = theme;
this.context = context;
}
@NonNull
@Override
public noteViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new noteViewHolder(
LayoutInflater.from(parent.getContext()).inflate(
R.layout.item_container_note, parent, false)
);
}
@Override
public void onBindViewHolder(@NonNull noteViewHolder holder, int position) {
holder.setNote(notes.get(position), context.getResources().getString(getColorCodeFromColorIndex(notes.get(position).getColorIndex())));
holder.layoutNote.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
noteListener.onNoteClicked(notes.get(position), position);
}
});
}
@Override
public int getItemCount() {
return notes.size();
}
@Override
public int getItemViewType(int position) {
return position;
}
static class noteViewHolder extends RecyclerView.ViewHolder{
TextView textTitle, textNote, textDateTime;
LinearLayout layoutNote;
RoundedImageView imageNote;
public noteViewHolder(@NonNull View itemView) {
super(itemView);
textTitle = itemView.findViewById(R.id.textTitle);
textNote = itemView.findViewById(R.id.textNote);
textDateTime = itemView.findViewById(R.id.textdatetime);
layoutNote = itemView.findViewById(R.id.LayoutNote);
imageNote = itemView.findViewById(R.id.imagenote);
}
void setNote(Note note, String color ){
textTitle.setText(note.getTitle());
if(note.getNote().trim().isEmpty()){
textNote.setVisibility(View.GONE);
}
else {
textNote.setText(note.getNote());
}
textDateTime.setText(note.getDatetime());
GradientDrawable gradientDrawable = (GradientDrawable) layoutNote.getBackground();
gradientDrawable.setColor(Color.parseColor(color));
if(note.getImage_path() != null){
imageNote.setImageBitmap(BitmapFactory.decodeFile(note.getImage_path()));
imageNote.setVisibility(View.VISIBLE);
}else{
imageNote.setVisibility(View.GONE);
}
}
}
public void SearchNotes(final String searchKeyboard){
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
if(searchKeyboard.trim().isEmpty()){
notes = notesSource;
}else{
ArrayList<Note> temp = new ArrayList<>();
for (Note note : notesSource){
if(note.getTitle().toLowerCase().contains(searchKeyboard.toLowerCase())
|| note.getNote().toLowerCase().contains(searchKeyboard.toLowerCase())){
temp.add(note);
}
}
notes = temp;
}
new Handler(Looper.getMainLooper()).post(new Runnable(){
@Override
public void run() {
notifyDataSetChanged();
}
});
}
}, 500);
}
public void cancelTimer(){
if(timer != null){
timer.cancel();
}
}
int getColorCodeFromColorIndex(int index) {
switch (index) {
case 0:
return theme == 2 ? R.color.DefaultNoteColorDay : R.color.DefaultNoteColor;
case 1:
return theme == 2 ? R.color.noteColor2Day : R.color.noteColor2;
case 2:
return theme == 2 ? R.color.noteColor3Day : R.color.noteColor3;
case 3:
return theme == 2 ? R.color.noteColor4Day : R.color.noteColor4;
case 4:
return theme == 2 ? R.color.noteColor5Day : R.color.noteColor5;
default:
return theme == 2 ? R.color.DefaultNoteColorDay : R.color.DefaultNoteColor;
}
}
}
I can't include my CreateNote class as it exceeds the word limit.
CodePudding user response:
CreateNote class (Second Half)
private void initMisc() {
layoutMisc = findViewById(R.id.layoutMisc);
bottomSheetBehavior = BottomSheetBehavior.from(layoutMisc);
layoutMisc.findViewById(R.id.textMisc).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (bottomSheetBehavior.getState() != BottomSheetBehavior.STATE_EXPANDED) {
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
} else {
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}
}
});
final ImageView imageColor1 = layoutMisc.findViewById(R.id.imageColor1);
final ImageView imageColor2 = layoutMisc.findViewById(R.id.imageColor2);
final ImageView imageColor3 = layoutMisc.findViewById(R.id.imageColor3);
final ImageView imageColor4 = layoutMisc.findViewById(R.id.imageColor4);
final ImageView imageColor5 = layoutMisc.findViewById(R.id.imageColor5);
theme = Utils.getTheme(this);
switch (theme){
case 2:
layoutMisc.findViewById(R.id.color1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#FFFFFF";
selectedColorIndex = 0;
imageColor1.setImageResource(R.drawable.ic_done_create);
imageColor2.setImageResource(0);
imageColor3.setImageResource(0);
imageColor4.setImageResource(0);
imageColor5.setImageResource(0);
setLayoutBGColor();
}
});
layoutMisc.findViewById(R.id.color2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#CCF49E";
selectedColorIndex = 1;
imageColor1.setImageResource(0);
imageColor2.setImageResource(R.drawable.ic_done_create);
imageColor3.setImageResource(0);
imageColor4.setImageResource(0);
imageColor5.setImageResource(0);
setLayoutBGColor();
}
});
layoutMisc.findViewById(R.id.color3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#F8A39D";
selectedColorIndex = 2;
imageColor1.setImageResource(0);
imageColor2.setImageResource(0);
imageColor3.setImageResource(R.drawable.ic_done_create);
imageColor4.setImageResource(0);
imageColor5.setImageResource(0);
setLayoutBGColor();
}
});
layoutMisc.findViewById(R.id.color4).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#93CCC6";
selectedColorIndex = 3;
imageColor1.setImageResource(0);
imageColor2.setImageResource(0);
imageColor3.setImageResource(0);
imageColor4.setImageResource(R.drawable.ic_done_create);
imageColor5.setImageResource(0);
setLayoutBGColor();
}
});
layoutMisc.findViewById(R.id.color5).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#EFD074";
selectedColorIndex = 4;
imageColor1.setImageResource(0);
imageColor2.setImageResource(0);
imageColor3.setImageResource(0);
imageColor4.setImageResource(0);
imageColor5.setImageResource(R.drawable.ic_done_create);
setLayoutBGColor();
}
});
if(availableNote != null && availableNote.getColor() != null && !availableNote.getColor().trim().isEmpty()) {
switch (availableNote.getColor()) {
case "#FFFFFF":
layoutMisc.findViewById(R.id.color1).performClick();
break;
case "#CCF49E":
layoutMisc.findViewById(R.id.color2).performClick();
break;
case "#F8A39D":
layoutMisc.findViewById(R.id.color3).performClick();
break;
case "#93CCC6":
layoutMisc.findViewById(R.id.color4).performClick();
break;
case "#EFD074":
layoutMisc.findViewById(R.id.color5).performClick();
break;
}
}
break;
default:
layoutMisc.findViewById(R.id.color1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#333333";
selectedColorIndex = 0;
imageColor1.setImageResource(R.drawable.ic_done_create);
imageColor2.setImageResource(0);
imageColor3.setImageResource(0);
imageColor4.setImageResource(0);
imageColor5.setImageResource(0);
setLayoutBGColor();
}
});
layoutMisc.findViewById(R.id.color2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#354A36";
selectedColorIndex = 1;
imageColor1.setImageResource(0);
imageColor2.setImageResource(R.drawable.ic_done_create);
imageColor3.setImageResource(0);
imageColor4.setImageResource(0);
imageColor5.setImageResource(0);
setLayoutBGColor();
}
});
layoutMisc.findViewById(R.id.color3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#3E2C47";
selectedColorIndex = 2;
imageColor1.setImageResource(0);
imageColor2.setImageResource(0);
imageColor3.setImageResource(R.drawable.ic_done_create);
imageColor4.setImageResource(0);
imageColor5.setImageResource(0);
setLayoutBGColor();
}
});
layoutMisc.findViewById(R.id.color4).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#26534F";
selectedColorIndex = 3;
imageColor1.setImageResource(0);
imageColor2.setImageResource(0);
imageColor3.setImageResource(0);
imageColor4.setImageResource(R.drawable.ic_done_create);
imageColor5.setImageResource(0);
setLayoutBGColor();
}
});
layoutMisc.findViewById(R.id.color5).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectedNoteColor = "#000000";
selectedColorIndex = 4;
imageColor1.setImageResource(0);
imageColor2.setImageResource(0);
imageColor3.setImageResource(0);
imageColor4.setImageResource(0);
imageColor5.setImageResource(R.drawable.ic_done_create);
setLayoutBGColor();
}
});
if(availableNote != null && availableNote.getColor() != null && !availableNote.getColor().trim().isEmpty()) {
switch (availableNote.getColor()) {
case "#333333":
layoutMisc.findViewById(R.id.color1).performClick();
break;
case "#354A36":
layoutMisc.findViewById(R.id.color2).performClick();
break;
case "#3E2C47":
layoutMisc.findViewById(R.id.color3).performClick();
break;
case "#26534F":
layoutMisc.findViewById(R.id.color4).performClick();
break;
case "#000000":
layoutMisc.findViewById(R.id.color5).performClick();
break;
}
}
break;
}
layoutMisc.findViewById(R.id.layoutAddImage).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
if (ContextCompat.checkSelfPermission(
getApplicationContext(), Manifest.permission.READ_EXTERNAL_STORAGE
) != PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(
CreateNote.this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
REQUEST_CODE_STORAGE_POSITION
);
}else{
selectImage();
}
}
});
layoutMisc.findViewById(R.id.layoutURL).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
showAddURLDialog();
}
});
if(availableNote != null){
layoutMisc.findViewById(R.id.layoutDelete).setVisibility(View.VISIBLE);
layoutMisc.findViewById(R.id.layoutDelete).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
showDeleteNoteLDialog();
}
});
}
}
private void setLayoutBGColor(){
coordinatorLayout.setBackgroundColor(Color.parseColor(getResources().getString(getColorCodeFromColorIndex(selectedColorIndex))));
}
private void selectImage(){
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
if(intent.resolveActivity(getPackageManager()) != null){
startActivityForResult(intent, REQUEST_CODE_SELECT_IMAGE);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(requestCode == REQUEST_CODE_STORAGE_POSITION && grantResults.length > 0){
if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
selectImage();
} else{
Toast.makeText(this, "Permission Denied", Toast.LENGTH_SHORT).show();
}
}
}
@RequiresApi(api = Build.VERSION_CODES.O)
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_SELECT_IMAGE && resultCode == RESULT_OK) {
if (data != null) {
Uri selectedImageUri = data.getData();
if (selectedImageUri != null) {
try {
InputStream inputStream = getContentResolver().openInputStream(selectedImageUri);
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
imageNote.setImageBitmap(bitmap);
imageNote.setVisibility(View.VISIBLE);
findViewById(R.id.imageRemoveImage).setVisibility(View.VISIBLE);
selectedImagePath = getPathFromUri(selectedImageUri);
} catch (Exception exception) {
Toast.makeText(this, exception.getMessage(), Toast.LENGTH_SHORT).show();
}
}
}
}
}
@RequiresApi(api = Build.VERSION_CODES.O)
private String getPathFromUri(Uri contentUri){
String filepath;
Cursor cursor = getContentResolver().query(contentUri, null, null, null);
if(cursor == null){
filepath = contentUri.getPath();
}else{
cursor.moveToFirst();
int index = cursor.getColumnIndex("_data");
filepath = cursor.getString(index);
cursor.close();
}
return filepath;
}
private void showAddURLDialog(){
if(dialogaddUrl == null){
AlertDialog.Builder builder = new AlertDialog.Builder(CreateNote.this);
View view = LayoutInflater.from(this).inflate(R.layout.layout_add_url, findViewById(R.id.layoutaddURLcontainer));
builder.setView(view);
dialogaddUrl = builder.create();
if(dialogaddUrl.getWindow() != null){
dialogaddUrl.getWindow().setBackgroundDrawable(new ColorDrawable(0));
}
final EditText inputURL = view.findViewById(R.id.inputURL);
inputURL.requestFocus();
view.findViewById(R.id.textAdd).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(inputURL.getText().toString().trim().isEmpty()){
Toast.makeText(CreateNote.this, "Enter URL", Toast.LENGTH_SHORT).show();
}
else if(!Patterns.WEB_URL.matcher(inputURL.getText().toString()).matches()){
Toast.makeText(CreateNote.this, "Enter valid URL", Toast.LENGTH_SHORT).show();
}
else{
textWebURL.setText(inputURL.getText().toString());
layoutWebURL.setVisibility(View.VISIBLE);
dialogaddUrl.dismiss();
}
}
});
view.findViewById(R.id.textCancel).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialogaddUrl.dismiss();
}
});
}
dialogaddUrl.show();
}
private void showDeleteNoteLDialog(){
if(dialogDeleteNote == null){
AlertDialog.Builder builder = new AlertDialog.Builder(CreateNote.this);
View view = LayoutInflater.from(this).inflate(R.layout.layout_delete_note, findViewById(R.id.layoutDeleteNoteContainer));
builder.setView(view);
dialogDeleteNote = builder.create();
if(dialogDeleteNote.getWindow() != null){
dialogDeleteNote.getWindow().setBackgroundDrawable(new ColorDrawable(0));
}
view.findViewById(R.id.deleteNoteOption).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
class DeleteNoteTask extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... voids) {
NotesDatabase.getDatabase(getApplicationContext()).notedao().deleteNote(availableNote);
return null;
}
@Override
protected void onPostExecute(Void unused) {
super.onPostExecute(unused);
Intent intent = new Intent();
intent.putExtra("isNoteDeleted", true);
setResult(RESULT_OK, intent);
finish();
}
}
new DeleteNoteTask().execute();
}
});
view.findViewById(R.id.cancelOption).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialogDeleteNote.dismiss();
}
});
}
dialogDeleteNote.show();
}
int getColorCodeFromColorIndex(int index) {
switch (index) {
case 0:
return theme == 2 ? R.color.DefaultNoteColorDay : R.color.DefaultNoteColor;
case 1:
return theme == 2 ? R.color.noteColor2Day : R.color.noteColor2;
case 2:
return theme == 2 ? R.color.noteColor3Day : R.color.noteColor3;
case 3:
return theme == 2 ? R.color.noteColor4Day : R.color.noteColor4;
case 4:
return theme == 2 ? R.color.noteColor5Day : R.color.noteColor5;
default:
return theme == 2 ? R.color.DefaultNoteColorDay : R.color.DefaultNoteColor;
}
}
@Override
public boolean dispatchTouchEvent(MotionEvent event){
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (bottomSheetBehavior.getState()==BottomSheetBehavior.STATE_EXPANDED) {
Rect outRect = new Rect();
layoutMisc.getGlobalVisibleRect(outRect);
if(!outRect.contains((int)event.getRawX(), (int)event.getRawY()))
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}
}
return super.dispatchTouchEvent(event);
}
}
CodePudding user response:
CreateNote (First Half)
package com.example.notepad.activities;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AlertDialog;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.Rect;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Patterns;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.example.notepad.R;
import com.example.notepad.database.NotesDatabase;
import com.example.notepad.entities.Note;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class CreateNote extends BaseActivity {
private EditText inputTitle, inputNote;
private TextView textDateTime, textWebURL;
private CoordinatorLayout coordinatorLayout;
private ImageView imageNote, deletetextURL;
private LinearLayout layoutWebURL, layoutCopyNote;
private FloatingActionButton doneFAB;
private BottomSheetBehavior bottomSheetBehavior;
private LinearLayout layoutMisc;
private String selectedNoteColor;
private int selectedColorIndex;
private String selectedImagePath;
// private String selectedBgImagePath;
private static final int REQUEST_CODE_STORAGE_POSITION = 1;
private static final int REQUEST_CODE_SELECT_IMAGE = 2;
private AlertDialog dialogaddUrl;
private AlertDialog dialogDeleteNote;
private Note availableNote;
int theme;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_create_note);
inputTitle = findViewById(R.id.noteTitle);
inputNote = findViewById(R.id.noteInput);
textDateTime = findViewById(R.id.textDateTime);
ImageView imageSave = findViewById(R.id.doneButton);
coordinatorLayout = findViewById(R.id.layoutBGcolor);
imageNote = findViewById(R.id.addImage);
layoutWebURL = findViewById(R.id.layoutWebURL);
textWebURL = findViewById(R.id.textURL);
doneFAB = findViewById(R.id.doneFAB);
layoutCopyNote = findViewById(R.id.copyNote);
theme = Utils.getTheme(this);
textDateTime.setText(
new SimpleDateFormat("EEEE, dd MMMM yyyy HH:mm a", Locale.getDefault())
.format(new Date())
);
doneFAB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
saveNote();
}
});
imageSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
saveNote();
}
});
ImageView imageBack = findViewById(R.id.backButton);
imageBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onBackPressed();
}
});
if(theme == 1) {
selectedNoteColor = "#333333";
}
else{
selectedNoteColor = "#FFFFFF";
}
selectedColorIndex = 0;
selectedImagePath = "";
// selectedBgImagePath = "";
if(getIntent().getBooleanExtra("isViewUpdate", false)){
availableNote = (Note) getIntent().getSerializableExtra("note");
setViewOrUpdateNote();
}
textWebURL.findViewById(R.id.textURL).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
textWebURL.setText(null);
layoutWebURL.setVisibility(View.GONE);
// NotesDatabase.getDatabase(getApplicationContext()).notedao().deleteURL(availableNote);
}
});
findViewById(R.id.imageRemoveImage).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
imageNote.setImageBitmap(null);
imageNote.setVisibility(View.GONE);
findViewById(R.id.imageRemoveImage).setVisibility(View.GONE);
selectedImagePath="";
}
});
if(getIntent().getBooleanExtra("isFromQuickActions", false)){
String type = getIntent().getStringExtra("quickActionType");
if(type != null){
if(type.equals("image")){
selectedImagePath = getIntent().getStringExtra("imagePath");
imageNote.setImageBitmap(BitmapFactory.decodeFile(selectedImagePath));
imageNote.setVisibility(View.VISIBLE);
findViewById(R.id.imageRemoveImage).setVisibility(View.VISIBLE);
} else if(type.equals("URL")){
textWebURL.setText(getIntent().getStringExtra("URL"));
layoutWebURL.setVisibility(View.VISIBLE);
}
}
}
initMisc();
setLayoutBGColor();
}
private void setViewOrUpdateNote(){
inputTitle.setText(availableNote.getTitle());
inputNote.setText(availableNote.getNote());
textDateTime.setText(availableNote.getDatetime());
textWebURL.setText(availableNote.getWeblink());
if(availableNote.getImage_path() != null && !availableNote.getImage_path().trim().isEmpty()){
imageNote.setImageBitmap(BitmapFactory.decodeFile(availableNote.getImage_path()));
imageNote.setVisibility(View.VISIBLE);
findViewById(R.id.imageRemoveImage).setVisibility(View.VISIBLE);
selectedImagePath = availableNote.getImage_path();
}
if(availableNote.getWeblink() != null && !availableNote.getWeblink().trim().isEmpty()){
textWebURL.setText(availableNote.getWeblink());
layoutWebURL.setVisibility(View.VISIBLE);
}
selectedColorIndex = availableNote.getColorIndex();
selectedNoteColor = availableNote.getColor();
}
private void saveNote(){
if(inputTitle.getText().toString().trim().isEmpty()){
Toast.makeText(this, "Note Title can't be empty", Toast.LENGTH_SHORT).show();
return;
}
else if(inputTitle.getText().toString().trim().isEmpty() &&
inputNote.getText().toString().trim().isEmpty()){
Toast.makeText(this, "Note can't be empty", Toast.LENGTH_SHORT).show();
return;
}
final Note note = new Note();
note.setTitle(inputTitle.getText().toString());
note.setNote(inputNote.getText().toString());
note.setDatetime(textDateTime.getText().toString());
note.setColor(selectedNoteColor);
note.setColorIndex(selectedColorIndex);
note.setImage_path(selectedImagePath);
// note.setBg_image_path(selectedBgImagePath);
if(layoutWebURL.getVisibility() == View.VISIBLE){
note.setWeblink(textWebURL.getText().toString());
}
if(availableNote != null){
note.setId(availableNote.getId());
}
@SuppressLint("StaticFieldLeak")
class SaveNoteTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
NotesDatabase.getDatabase(getApplicationContext()).notedao().insertNote(note);
return null;
}
@Override
protected void onPostExecute(Void unused) {
super.onPostExecute(unused);
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
}
}
new SaveNoteTask().execute();
}
