diff --git a/app/src/main/java/com/example/citrusclient/views/CalendarFragment.java b/app/src/main/java/com/example/citrusclient/views/CalendarFragment.java new file mode 100644 index 0000000..8030c80 --- /dev/null +++ b/app/src/main/java/com/example/citrusclient/views/CalendarFragment.java @@ -0,0 +1,144 @@ +package com.example.citrusclient.views; + +import android.os.Bundle; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TableLayout; +import android.widget.TableRow; +import android.widget.TextView; + +import com.example.citrusclient.R; +import com.example.citrusclient.models.Schedule; +import com.example.citrusclient.viewmodels.ScheduleViewModel; + +import java.util.ArrayList; +import java.util.List; + +/** + * A simple {@link Fragment} subclass. + * Use the {@link CalendarFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class CalendarFragment extends Fragment { + + // TODO: Rename parameter arguments, choose names that match + // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER + private static final String ARG_PARAM1 = "param1"; + private static final String ARG_PARAM2 = "param2"; + + // TODO: Rename and change types of parameters + private String mParam1; + private String mParam2; + + + private TableLayout tableLayout; + private TableRow[] tableRows = new TableRow[6]; + + public CalendarFragment() { + // Required empty public constructor + } + + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment ScheduleFragment. + */ + // TODO: Rename and change types and number of parameters + public static CalendarFragment newInstance(String param1, String param2) { + CalendarFragment fragment = new CalendarFragment(); + Bundle args = new Bundle(); + args.putString(ARG_PARAM1, param1); + args.putString(ARG_PARAM2, param2); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + mParam1 = getArguments().getString(ARG_PARAM1); + mParam2 = getArguments().getString(ARG_PARAM2); + } + + + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_calendar, container, false); + } + + private List scheduleList; + ScheduleViewModel scheduleViewModel; + + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + tableLayout = view.findViewById(R.id.calendarlayout); + for(int i = 0; i < 6; i++) { + tableRows[i] = (TableRow) tableLayout.getChildAt(i); + for(int j = 0; j < 7; j++) { + RecyclerView recyclerView = new RecyclerView(getActivity());//RecyclerView.LayoutParams.MATCH_PARENT + recyclerView.setLayoutParams(new RecyclerView.LayoutParams(0, 0)); + recyclerView.setLayoutManager(new LinearLayoutManager(view.getContext())); + List schedules = new ArrayList<>(); + schedules.add(new Schedule("abc", "3232", "yyyy", 0, 1)); + + recyclerView.setAdapter(new MyScheduleAdapter(schedules)); + tableRows[i].addView(recyclerView); + } + } + } +} + +class MyScheduleAdapter extends RecyclerView.Adapter { + + private List scheduleList; + + MyScheduleAdapter(List schedules) { this.scheduleList = schedules; } + + public void setSchedules(List schedules) { + scheduleList = schedules; + notifyDataSetChanged(); + } + @NonNull + @Override + public MyScheduleAdapter.MyScheduleViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.a_calendar_schedule, parent, false); + return new MyScheduleViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull MyScheduleAdapter.MyScheduleViewHolder holder, int position) { + Schedule scheduleData = this.scheduleList.get(position); + holder.scheduleText.setText(scheduleData.getTitle()); + } + + @Override + public int getItemCount() { + return scheduleList.size(); + } + + static class MyScheduleViewHolder extends RecyclerView.ViewHolder { + TextView scheduleText; + public MyScheduleViewHolder(@NonNull View itemView) { + super(itemView); + scheduleText = itemView.findViewById(R.id.schedule_text); + } + } +} +