Skip to content

Commit

Permalink
feat: Display tag for already registered tickets (#1940)
Browse files Browse the repository at this point in the history
  • Loading branch information
liveHarshit authored and iamareebjamal committed Jun 12, 2019
1 parent f73a6ff commit 8745b81
Show file tree
Hide file tree
Showing 6 changed files with 96 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ val viewModelModule = module {
viewModel { EventsViewModel(get(), get(), get(), get()) }
viewModel { ProfileViewModel(get(), get()) }
viewModel { SignUpViewModel(get(), get(), get()) }
viewModel { EventDetailsViewModel(get(), get(), get(), get(), get(), get(), get(), get(), get()) }
viewModel { EventDetailsViewModel(get(), get(), get(), get(), get(), get(), get(), get(), get(), get()) }
viewModel { SessionViewModel(get(), get(), get()) }
viewModel { SearchViewModel(get(), get(), get(), get()) }
viewModel { AttendeeViewModel(get(), get(), get(), get(), get(), get(), get()) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ import kotlinx.android.synthetic.main.content_event.view.socialLinksRecycler
import kotlinx.android.synthetic.main.content_event.view.socialLinkContainer
import kotlinx.android.synthetic.main.content_event.view.similarEventsRecycler
import kotlinx.android.synthetic.main.content_event.view.similarEventsContainer
import kotlinx.android.synthetic.main.content_event.view.alreadyRegisteredLayout
import kotlinx.android.synthetic.main.fragment_event.view.buttonTickets
import kotlinx.android.synthetic.main.fragment_event.view.eventErrorCard
import kotlinx.android.synthetic.main.fragment_event.view.container
Expand Down Expand Up @@ -159,6 +160,30 @@ class EventDetailsFragment : Fragment() {
loadTicketFragment()
}

if (eventViewModel.orders.value == null)
eventViewModel.loadOrders()
eventViewModel.orders
.nonNull()
.observe(viewLifecycleOwner, Observer {
it.forEach { order ->
if (order.event?.id == safeArgs.eventId) {
rootView.alreadyRegisteredLayout.visibility = View.VISIBLE
rootView.alreadyRegisteredLayout.setOnClickListener {
order.identifier?.let { identifier ->
EventDetailsFragmentDirections.actionEventDetailsToOrderDetail(
eventId = safeArgs.eventId,
orderId = order.id,
orderIdentifier = identifier
)
}?.let { navigation ->
findNavController(rootView).navigate(navigation)
}
}
return@forEach
}
}
})

eventViewModel.popMessage
.nonNull()
.observe(viewLifecycleOwner, Observer {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ import org.fossasia.openevent.general.connectivity.MutableConnectionLiveData
import org.fossasia.openevent.general.data.Resource
import org.fossasia.openevent.general.feedback.Feedback
import org.fossasia.openevent.general.feedback.FeedbackService
import org.fossasia.openevent.general.order.Order
import org.fossasia.openevent.general.order.OrderService
import org.fossasia.openevent.general.sessions.Session
import org.fossasia.openevent.general.sessions.SessionService
import org.fossasia.openevent.general.social.SocialLinksService
Expand All @@ -36,6 +38,7 @@ class EventDetailsViewModel(
private val socialLinksService: SocialLinksService,
private val feedbackService: FeedbackService,
private val resource: Resource,
private val orderService: OrderService,
private val mutableConnectionLiveData: MutableConnectionLiveData
) : ViewModel() {

Expand Down Expand Up @@ -64,6 +67,8 @@ class EventDetailsViewModel(
val socialLinks: LiveData<List<SocialLink>> = mutableSocialLinks
private val mutableSimilarEvents = MutableLiveData<Set<Event>>()
val similarEvents: LiveData<Set<Event>> = mutableSimilarEvents
private val mutableOrders = MutableLiveData<List<Order>>()
val orders: LiveData<List<Order>> = mutableOrders

fun isLoggedIn() = authHolder.isLoggedIn()

Expand Down Expand Up @@ -241,6 +246,18 @@ class EventDetailsViewModel(
})
}

fun loadOrders() {
if (!isLoggedIn())
return
compositeDisposable += orderService.getOrdersOfUser(getId())
.withDefaultSchedulers()
.subscribe({
mutableOrders.value = it
}, {
Timber.e(it, "Error fetching orders")
})
}

fun loadMap(event: Event): String {
// location handling
val BASE_URL = "https://api.mapbox.com/v4/mapbox.emerald/pin-l-marker+673ab7"
Expand Down
45 changes: 44 additions & 1 deletion app/src/main/res/layout/content_event.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,49 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">

<LinearLayout
android:id="@+id/alreadyRegisteredLayout"
android:orientation="horizontal"
android:background="@color/colorAccent"
android:layout_width="match_parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_height="@dimen/avatar_small"
android:visibility="gone"
tools:visibility="visible">

<ImageView
android:layout_width="wrap_content"
android:layout_weight="0"
android:layout_height="wrap_content"
android:src="@drawable/ic_outline_ticket"
app:tint="@android:color/white"
android:layout_marginStart="@dimen/layout_margin_large"
android:layout_gravity="center_vertical"/>

<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:textSize="@dimen/text_size_medium"
android:layout_marginStart="@dimen/layout_margin_large"
android:text="@string/already_registered_message"
android:layout_gravity="center_vertical"/>

<TextView
android:layout_width="wrap_content"
android:layout_weight="0"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/layout_margin_large"
android:textSize="@dimen/text_size_large"
android:textColor="@android:color/white"
android:text="@string/see_your_ticket"
android:layout_gravity="center_vertical" />

</LinearLayout>


<ImageView
android:id="@+id/eventImage"
Expand All @@ -32,7 +75,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toBottomOf="@id/alreadyRegisteredLayout" />

<TextView
android:id="@+id/eventName"
Expand Down
7 changes: 7 additions & 0 deletions app/src/main/res/navigation/navigation_graph.xml
Original file line number Diff line number Diff line change
Expand Up @@ -552,6 +552,13 @@
app:popExitAnim="@anim/slide_out_right"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"/>
<action
android:id="@+id/action_event_details_to_order_detail"
app:destination="@id/orderDetailsFragment"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"/>

<argument
android:name="eventId"
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@
<string name="skip">Skip</string>
<string name="choose_your_location">Choose your location</string>
<string name="choose_preferred_location_message">Please choose your preferred location</string>
<string name="already_registered_message">You\'re in it to win it</string>
<string name="see_your_ticket">See your ticket</string>

<!--Search event details-->
<string name="search">Search</string>
Expand Down

0 comments on commit 8745b81

Please sign in to comment.