diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/SubjectActivity.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/SubjectActivity.java index 9b4acc7f2987b29557acf9096ed4ea15055d486d..385482f6cc371968d72d0333b2ee8c2202b2c6de 100644 --- a/app/src/main/java/com/ireallydontcare/viet/posseidon/SubjectActivity.java +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/SubjectActivity.java @@ -1,32 +1,44 @@ package com.ireallydontcare.viet.posseidon; import android.app.DatePickerDialog; +import android.os.AsyncTask; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.view.View; +import com.ireallydontcare.viet.posseidon.adapter.EventAdapter; import com.ireallydontcare.viet.posseidon.fragments.NewDialogEventFragment; import com.ireallydontcare.viet.posseidon.fragments.NewDialogSubjectFragment; +import com.ireallydontcare.viet.posseidon.model.Event; import com.ireallydontcare.viet.posseidon.model.Subject; import java.util.Calendar; -public class SubjectActivity extends AppCompatActivity { +public class SubjectActivity extends AppCompatActivity + implements NewDialogEventFragment.NewEventDialogListener { - public static final String SUBJECT_OBJECT_ID= "SUBJECT.ID"; + public static final String SUBJECT_OBJECT_ID = "SUBJECT.ID"; + public Long subjectId; + private RecyclerView eventRecyclerView; + private EventAdapter eventAdapter; + private RecyclerView.LayoutManager eventLayoutManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_subject); + subjectId = getIntent().getExtras().getLong("SUBJECT_OBJECT_ID"); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fabevent); fab.setOnClickListener(new View.OnClickListener() { @Override @@ -35,6 +47,32 @@ public class SubjectActivity extends AppCompatActivity { } }); + eventRecyclerView = (RecyclerView) findViewById(R.id.EventRecyclerView); + eventRecyclerView.setHasFixedSize(true); + eventLayoutManager = new LinearLayoutManager(this); + + + eventRecyclerView.setLayoutManager(eventLayoutManager); + + eventAdapter = new EventAdapter(); + eventRecyclerView.setAdapter(eventAdapter); + } + @Override + public void onEventItemCreated(final Event eventitem) { + new AsyncTask<Void, Void, Event>() { + + @Override + protected Event doInBackground(Void... voids) { + //newItem.id = database.SubjectDao().insert(newItem); + return eventitem; + } + + @Override + protected void onPostExecute(Event event) { + eventAdapter.addItem(event); + } + }.execute(); + }; } diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/adapter/EventAdapter.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/adapter/EventAdapter.java new file mode 100644 index 0000000000000000000000000000000000000000..7c4a5df41ff9c0c9fa8ad9a4ff9240134991fa81 --- /dev/null +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/adapter/EventAdapter.java @@ -0,0 +1,65 @@ +package com.ireallydontcare.viet.posseidon.adapter; + +import android.support.annotation.NonNull; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.ireallydontcare.viet.posseidon.R; +import com.ireallydontcare.viet.posseidon.model.Event; + +import java.util.ArrayList; +import java.util.List; + +public class EventAdapter extends RecyclerView.Adapter<EventAdapter.EventViewHolder> { + private final List<Event> events; + + public EventAdapter() { + this.events = new ArrayList<>(); + } + + @Override + public EventAdapter.EventViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + // create a new view + View itemView = LayoutInflater + .from(parent.getContext()) + .inflate(R.layout.item_subject, parent, false); + + EventViewHolder vh = new EventViewHolder(itemView); + return vh; + } + // Replace the contents of a view (invoked by the layout manager) + @Override + public void onBindViewHolder(final EventViewHolder holder, int position) { + // - get element from your dataset at this position + // - replace the contents of the view with that element + final Event event = events.get(position); + holder.event = event; + } + + public class EventViewHolder extends RecyclerView.ViewHolder { + Event event; + + public EventViewHolder(View itemView) { + super(itemView); + + itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + } + }); + } + } + + public int getItemCount() { + return events.size(); + } + + public void addItem(Event Event){ + + events.add(Event); + notifyItemInserted(events.size() - 1); + } +} diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/adapter/SubjectAdapter.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/adapter/SubjectAdapter.java index 3db2b6c1ccedee7eaaf2e524eb6f32a685f7ebf7..0c68732d36888e4b1d8abfd04e29138607c20179 100644 --- a/app/src/main/java/com/ireallydontcare/viet/posseidon/adapter/SubjectAdapter.java +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/adapter/SubjectAdapter.java @@ -47,8 +47,6 @@ public class SubjectAdapter extends RecyclerView.Adapter<SubjectAdapter.SubjectV holder.name.setText(subject.name); holder.code.setText(subject.code); holder.subject = subject; - - } public void update(List<Subject> subjects){ diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/fragments/NewDialogEventFragment.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/fragments/NewDialogEventFragment.java index 661cb9c58f41e270cfd8426e63997206e628c833..76c09d56a85d772952f700e84ee0f0c4ccb90320 100644 --- a/app/src/main/java/com/ireallydontcare/viet/posseidon/fragments/NewDialogEventFragment.java +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/fragments/NewDialogEventFragment.java @@ -3,11 +3,14 @@ package com.ireallydontcare.viet.posseidon.fragments; import android.app.DatePickerDialog; import android.app.Dialog; import android.app.TimePickerDialog; +import android.content.DialogInterface; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.DialogFragment; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentActivity; import android.support.v7.app.AlertDialog; import android.util.Log; import android.view.LayoutInflater; @@ -19,9 +22,14 @@ import android.widget.TimePicker; import com.ireallydontcare.viet.posseidon.R; import com.ireallydontcare.viet.posseidon.SubjectActivity; +import com.ireallydontcare.viet.posseidon.model.Event; +import com.ireallydontcare.viet.posseidon.model.Subject; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.Calendar; +import java.util.Date; public class NewDialogEventFragment extends DialogFragment { @@ -29,18 +37,24 @@ public class NewDialogEventFragment extends DialogFragment { private Button dateButton; private Button timeButton; + private EditText TypeName; - public int asd; + + public interface NewEventDialogListener { + void onEventItemCreated(Event event); + } + + private NewEventDialogListener listener; + + public long subjectId; @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); -// if (activity instanceof NewDialogSubjectFragment.NewSubjectDialogListener) { -// listener = (NewDialogSubjectFragment.NewSubjectDialogListener) activity; -// } else { -// throw new RuntimeException("Activity must implement the NewShoppingItemDialogListener interface!"); -// } - + FragmentActivity activity = getActivity(); + SubjectActivity temp= (SubjectActivity) getActivity(); + subjectId = temp.subjectId; + listener = (NewEventDialogListener) activity; } @@ -60,6 +74,7 @@ public class NewDialogEventFragment extends DialogFragment { onTimeSelected(); } }); + TypeName = (EditText) contentView.findViewById(R.id.TypeName); return contentView; } @@ -70,6 +85,12 @@ public class NewDialogEventFragment extends DialogFragment { return new AlertDialog.Builder(requireContext()) .setTitle(R.string.new_event_item) .setView(getContentView()) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + listener.onEventItemCreated(getEvent(generateEventTime(),TypeName.getText().toString(),subjectId)); + } + }) .create(); } @@ -80,14 +101,14 @@ public class NewDialogEventFragment extends DialogFragment { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { - // TODO Auto-generated method stub - //updateLabel(); setDate(year, monthOfYear, dayOfMonth); } }; + + public void onDateSelected(){ new DatePickerDialog(getActivity(), date, myCalendar .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), @@ -112,12 +133,42 @@ public class NewDialogEventFragment extends DialogFragment { mTimePicker.show(); } + int year; int monthOfYear;int dayOfMonth; + int selectedHour; int selectedMinute; public void setDate(int year, int monthOfYear, int dayOfMonth){ dateButton.setText("Set"); + this.year = year; + this.monthOfYear = monthOfYear; + this.dayOfMonth = dayOfMonth; } public void setTime(int selectedHour, int selectedMinute){ timeButton.setText("Set"); + this.selectedHour = selectedHour; + this.selectedMinute = selectedMinute; + + } + + public long generateEventTime(){ + DateFormat format = new SimpleDateFormat( "yyyy-MM-dd/HH:mm"); + String dateString = String.valueOf(year)+"-"+String.valueOf(monthOfYear) + +"-"+String.valueOf(dayOfMonth)+"/"+String.valueOf(selectedHour) + +":"+String.valueOf(selectedMinute); + Date date; + try{ + date = format.parse(dateString); + return date.getTime(); + }catch ( Exception e ) {} + + return 0; + } + + public Event getEvent(Long time, String type, Long SubjectId){ + Event event = new Event(); + event.SubjectId = SubjectId; + event.datetime = time; + event.type = type; + return event; } } diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Event.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Event.java index 5c7c5a294c7b5474f59d73cf6970cc06e33a567c..7328e871c3c5f48bb7e7191a8e00ceb365514ae4 100644 --- a/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Event.java +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Event.java @@ -9,7 +9,7 @@ import android.arch.persistence.room.PrimaryKey; public class Event { @ColumnInfo(name = "datetime") - public String datetime; + public Long datetime; @ColumnInfo(name = "subjectid") public Long SubjectId;