Implementing Timeline for Attendees Activity in Organizer App
Open Event Organizer App offers the functionality to Checkin/checkout attendees but the Organizer was unable to view when a particular attendee was checkin or checkout. We decided to implement a feature to view the timeline of checkin/checkout for each attendee.
Let’s begin by adding the dependency in build.gradle.
implementation “com.github.vipulasri:timelineview:”1.0.6” |
In the recyclerview item layout add the TimeLineView layout. Following are some of the useful attributes.
- app:markerInCenter – This defines the position of the round marker within the layout. Setting it to true, position it in center.
- app:marker – Custom drawables can be set as marker.
<com.github.vipulasri.timelineview.TimelineView android:id=”@+id/time_marker” android:layout_width=”wrap_content” android:layout_height=”match_parent” app:marker=”@drawable/ic_marker_active” app:line=”#aaa4a4″ app:lineSize=”2dp” app:linePadding=”3dp” app:markerInCenter=”true” app:markerSize=”20dp” /> |
The ViewHolder class will extend the RecyclerView,ViewHolder class. In the constructor, we will add a parameter viewType and then set it to TimeLine Marker layout using method initLine.
public CheckInHistoryViewHolder(CheckInHistoryLayoutBinding binding, int viewType) { super(binding.getRoot()); this.binding = binding; binding.timeMarker.initLine(viewType); } |
In RecyclerViewAdapter, we will override the getItemViewType() method. Here we will use the getTimeLineViewType method which takes in position and total size of the recycler view list and returns a TimeLineView type object.
@Override public int getItemViewType(int position) { return TimelineView.getTimeLineViewType(position, getItemCount()); } |
References
- TimeLineView library by VipulAsri https://github.com/vipulasri/Timeline-View
- Android Documentation for RecyclerViewAdapter https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter
- Android Documentation for RecyclerViewView https://developer.android.com/reference/android/support/v7/widget/RecyclerView