|
|
@ -1,6 +1,9 @@
|
|
|
|
package asdv.lisset.criminalintent;
|
|
|
|
package asdv.lisset.criminalintent;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import android.content.Context;
|
|
|
|
|
|
|
|
import android.content.DialogInterface;
|
|
|
|
import android.content.Intent;
|
|
|
|
import android.content.Intent;
|
|
|
|
|
|
|
|
import android.graphics.drawable.ColorDrawable;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.text.Layout;
|
|
|
|
import android.text.Layout;
|
|
|
|
import android.view.LayoutInflater;
|
|
|
|
import android.view.LayoutInflater;
|
|
|
@ -14,17 +17,38 @@ import android.widget.TextView;
|
|
|
|
import android.widget.Toast;
|
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
|
|
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
|
|
|
|
import androidx.appcompat.app.ActionBar;
|
|
|
|
|
|
|
|
import androidx.appcompat.app.AlertDialog;
|
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
|
|
|
|
import androidx.core.content.ContextCompat;
|
|
|
|
import androidx.fragment.app.Fragment;
|
|
|
|
import androidx.fragment.app.Fragment;
|
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
|
|
|
|
|
|
|
public class CrimeListFragment extends Fragment {
|
|
|
|
public class CrimeListFragment extends Fragment {
|
|
|
|
private RecyclerView crimeRecyclerView;
|
|
|
|
private RecyclerView crimeRecyclerView;
|
|
|
|
private CrimeAdapter adapter;
|
|
|
|
private CrimeAdapter adapter;
|
|
|
|
private boolean subtitleVisible;
|
|
|
|
private boolean subtitleVisible = true;
|
|
|
|
|
|
|
|
private Context context;
|
|
|
|
|
|
|
|
private boolean inDeleteMode;
|
|
|
|
|
|
|
|
private void showConfirmationDialog(Crime crime) {
|
|
|
|
|
|
|
|
AlertDialog confirmDialog = new AlertDialog.Builder(requireContext())
|
|
|
|
|
|
|
|
.setTitle("Title")
|
|
|
|
|
|
|
|
.setMessage("Do you really want to delete this crime?")
|
|
|
|
|
|
|
|
.setIcon(android.R.drawable.ic_dialog_alert)
|
|
|
|
|
|
|
|
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
|
|
|
|
|
|
|
|
public void onClick(DialogInterface dialog, int whichButton) {
|
|
|
|
|
|
|
|
// Delete the crime
|
|
|
|
|
|
|
|
CrimeLab.get(requireContext()).deleteCrime(crime);
|
|
|
|
|
|
|
|
updateUI(); // Update the UI after deletion
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
.setNegativeButton(android.R.string.no, null)
|
|
|
|
|
|
|
|
.show();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private static final String SAVED_SUBTITLE_VISIBLE = "subtitle";
|
|
|
|
private static final String SAVED_SUBTITLE_VISIBLE = "subtitle";
|
|
|
|
|
|
|
|
|
|
|
@ -66,6 +90,7 @@ public class CrimeListFragment extends Fragment {
|
|
|
|
View view =
|
|
|
|
View view =
|
|
|
|
inflater.inflate(R.layout.fragment_crime_list,
|
|
|
|
inflater.inflate(R.layout.fragment_crime_list,
|
|
|
|
container, false);
|
|
|
|
container, false);
|
|
|
|
|
|
|
|
context = requireContext();
|
|
|
|
crimeRecyclerView = (RecyclerView) view
|
|
|
|
crimeRecyclerView = (RecyclerView) view
|
|
|
|
.findViewById(R.id.crime_recycler_view);
|
|
|
|
.findViewById(R.id.crime_recycler_view);
|
|
|
|
crimeRecyclerView.setLayoutManager(
|
|
|
|
crimeRecyclerView.setLayoutManager(
|
|
|
@ -100,6 +125,8 @@ public class CrimeListFragment extends Fragment {
|
|
|
|
private TextView titleTextView;
|
|
|
|
private TextView titleTextView;
|
|
|
|
private TextView dateTextView;
|
|
|
|
private TextView dateTextView;
|
|
|
|
private ImageView solvedImageView;
|
|
|
|
private ImageView solvedImageView;
|
|
|
|
|
|
|
|
private Context context;
|
|
|
|
|
|
|
|
|
|
|
|
public void bind(Crime crime){
|
|
|
|
public void bind(Crime crime){
|
|
|
|
this.crime = crime;
|
|
|
|
this.crime = crime;
|
|
|
|
titleTextView.setText(this.crime.getTitle());
|
|
|
|
titleTextView.setText(this.crime.getTitle());
|
|
|
@ -113,28 +140,27 @@ public class CrimeListFragment extends Fragment {
|
|
|
|
dateTextView = itemView.findViewById(R.id.crime_date);
|
|
|
|
dateTextView = itemView.findViewById(R.id.crime_date);
|
|
|
|
solvedImageView =itemView.findViewById(R.id.imageView_green_cross);
|
|
|
|
solvedImageView =itemView.findViewById(R.id.imageView_green_cross);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onClick(View v) {
|
|
|
|
public void onClick(View v) {
|
|
|
|
//CHAPTER10
|
|
|
|
if (inDeleteMode) {
|
|
|
|
// Intent intent = CrimeActivity.newIntent(getActivity(),
|
|
|
|
// Invoke confirmation dialog
|
|
|
|
// crime.getId());
|
|
|
|
showConfirmationDialog(crime);
|
|
|
|
|
|
|
|
inDeleteMode = false;
|
|
|
|
|
|
|
|
ActionBar actionBar = ((AppCompatActivity) requireActivity()).getSupportActionBar();
|
|
|
|
|
|
|
|
actionBar.setTitle("Select an crime to remove.");
|
|
|
|
|
|
|
|
if (actionBar != null) {
|
|
|
|
|
|
|
|
actionBar.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(requireContext(), R.color.black)));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
actionBar.setTitle("CriminalIntent");
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
Intent intent =
|
|
|
|
|
|
|
|
CrimePagerActivity.newIntent(getActivity(),
|
|
|
|
|
|
|
|
crime.getId());
|
|
|
|
|
|
|
|
startActivity(intent);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//CHAPTER11
|
|
|
|
|
|
|
|
Intent intent =
|
|
|
|
|
|
|
|
CrimePagerActivity.newIntent(getActivity(),
|
|
|
|
|
|
|
|
crime.getId());
|
|
|
|
|
|
|
|
startActivity(intent);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//CHAPTER8
|
|
|
|
|
|
|
|
// Intent intent = new Intent(getActivity(), CrimeActivity.class);
|
|
|
|
|
|
|
|
// startActivity(intent);
|
|
|
|
|
|
|
|
// Toast.makeText(getActivity(),
|
|
|
|
|
|
|
|
// this.crime.getTitle() + " clicked!",
|
|
|
|
|
|
|
|
// Toast.LENGTH_SHORT)
|
|
|
|
|
|
|
|
// .show();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//ADAPTER
|
|
|
|
//ADAPTER
|
|
|
|
private class CrimeAdapter extends RecyclerView.Adapter<CrimeHolder>{
|
|
|
|
private class CrimeAdapter extends RecyclerView.Adapter<CrimeHolder>{
|
|
|
@ -174,6 +200,8 @@ public class CrimeListFragment extends Fragment {
|
|
|
|
inflater.inflate(R.menu.fragment_crime_list,menu);
|
|
|
|
inflater.inflate(R.menu.fragment_crime_list,menu);
|
|
|
|
MenuItem subtitleItem =
|
|
|
|
MenuItem subtitleItem =
|
|
|
|
menu.findItem(R.id.show_subtitle);
|
|
|
|
menu.findItem(R.id.show_subtitle);
|
|
|
|
|
|
|
|
ActionBar actionBar = ((AppCompatActivity) requireActivity()).getSupportActionBar();
|
|
|
|
|
|
|
|
actionBar.setTitle("CriminalIntent");
|
|
|
|
if (subtitleVisible) {
|
|
|
|
if (subtitleVisible) {
|
|
|
|
subtitleItem.setTitle(R.string.hide_subtitle);
|
|
|
|
subtitleItem.setTitle(R.string.hide_subtitle);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
@ -193,6 +221,15 @@ public class CrimeListFragment extends Fragment {
|
|
|
|
startActivity(intent);
|
|
|
|
startActivity(intent);
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (item.getItemId() == R.id.remove_crime) {
|
|
|
|
|
|
|
|
ActionBar actionBar = ((AppCompatActivity) requireActivity()).getSupportActionBar();
|
|
|
|
|
|
|
|
actionBar.setTitle("Select a crime to remove.");
|
|
|
|
|
|
|
|
if (actionBar != null) {
|
|
|
|
|
|
|
|
actionBar.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(requireContext(), R.color.red)));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
inDeleteMode = true;
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
}
|
|
|
|
else if(item.getItemId() == R.id.show_subtitle)
|
|
|
|
else if(item.getItemId() == R.id.show_subtitle)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
subtitleVisible = !subtitleVisible;
|
|
|
|
subtitleVisible = !subtitleVisible;
|
|
|
|