Do It Code
Do It Code
Main Activity.java:
package com.example.doit;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.example.doit.Adapters.ToDoAdapter;
import com.example.doit.Model.ToDoModel;
import com.example.doit.Utils.DatabaseHandler;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
28
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Objects.requireNonNull(getSupportActionBar()).hide();
db = new DatabaseHandler(this);
db.openDatabase();
tasksRecyclerView = findViewById(R.id.tasksRecyclerView);
tasksRecyclerView.setLayoutManager(new LinearLayoutManager(this));
tasksRecyclerView.setAdapter(tasksAdapter);
ItemTouchHelper(new RecyclerItemTouchHelper(tasksAdapter));
itemTouchHelper.attachToRecyclerView(tasksRecyclerView);
fab = findViewById(R.id.fab);
taskList = db.getAllTasks();
Collections.reverse(taskList);
tasksAdapter.setTasks(taskList);
fab.setOnClickListener(new View.OnClickListener() {
@Override
AddNewTask.newInstance().show(getSupportFragmentManager(),
AddNewTask.TAG);
});
29
@Override
taskList = db.getAllTasks();
Collections.reverse(taskList);
tasksAdapter.setTasks(taskList);
tasksAdapter.notifyDataSetChanged();
package com.example.doit;
import android.app.Activity;
import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
30
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.example.doit.Model.ToDoModel;
import com.example.doit.Utils.DatabaseHandler;
import com.example.doit.R;
import java.util.Objects;
@Override
super.onCreate(savedInstanceState);
setStyle(STYLE_NORMAL, R.style.DialogStyle);
}
@Nullable
@Override
container,
getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_A
DJUST_RESIZE);
31
return view;
@Override
super.onViewCreated(view, savedInstanceState);
newTaskText = Objects.requireNonNull(getView()).findViewById(R.id.newTaskText);
newTaskSaveButton = getView().findViewById(R.id.newTaskButton);
if(bundle != null){
isUpdate = true;
newTaskText.setText(task);
if(task.length()>0)
newTaskSaveButton.setTextColor(ContextCompat.getColor(Objects.requireNonNull(getContext
()), R.color.colorPrimaryDark));
db = new DatabaseHandler(getActivity());
db.openDatabase();
newTaskText.addTextChangedListener(new TextWatcher() {
@Override
@Override
32
if(s.toString().equals("")){
newTaskSaveButton.setEnabled(false);
newTaskSaveButton.setTextColor(Color.GRAY);
else{
newTaskSaveButton.setEnabled(true);
newTaskSaveButton.setTextColor(ContextCompat.getColor(Objects.requireNonNull(getContext
()), R.color.colorPrimaryDark));
@Override
});
newTaskSaveButton.setOnClickListener(new View.OnClickListener() {
@Override
if(finalIsUpdate){
db.updateTask(bundle.getInt("id"), text);
else {
task.setTask(text);
33
task.setStatus(0);
db.insertTask(task);
dismiss();
});
@Override
((DialogCloseListener)activity).handleDialogClose(dialog);
Recycleritem TouchHelper.java:
package com.example.doit;
import android.content.DialogInterface;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
34
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.RecyclerView;
import com.example.doit.Adapters.ToDoAdapter;
import com.example.doit.R;
public class RecyclerItemTouchHelper extends ItemTouchHelper.SimpleCallback {
this.adapter = adapter;
@Override
return false;
@Override
if (direction == ItemTouchHelper.LEFT) {
builder.setTitle("Delete Task");
builder.setPositiveButton("Confirm",
new DialogInterface.OnClickListener() {
35
@Override
adapter.deleteItem(position);
});
builder.setNegativeButton(android.R.string.cancel, new
DialogInterface.OnClickListener() {
@Override
});
dialog.show();
} else {
adapter.editItem(position);
@Override
@NonNull RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean
isCurrentlyActive);
Drawable icon;
ColorDrawable background;
36
if (dX > 0) {
R.color.colorPrimaryDark));
} else {
icon = ContextCompat.getDrawable(adapter.getContext(),
R.drawable.ic_baseline_delete);
background.setBounds(itemView.getLeft(), itemView.getTop(),
37
background.setBounds(0, 0, 0, 0);
background.draw(c);
icon.draw(c);
assertEquals("net.penguincoders.doit", appContext.getPackageName());