8000 NT-1422 && NT-1402 && NT-1383 && NT-1385 && NT-1382: Fix rejected by Arkariang · Pull Request #946 · kickstarter/android-oss · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

NT-1422 && NT-1402 && NT-1383 && NT-1385 && NT-1382: Fix rejected #946

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Aug 6, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 49 additions & 7 deletions app/src/main/assets/json/server-config.json

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public static boolean isExpired(final @NonNull Reward reward) {
* Returns `true` if the reward has items, `false` otherwise.
*/
public static boolean isItemized(final @NonNull Reward reward) {
final List<RewardsItem> rewardsItems = reward.rewardsItems();
final List<RewardsItem> rewardsItems = reward.isAddOn()? reward.addOnsItems() : reward.rewardsItems();
return rewardsItems != null && !rewardsItems.isEmpty();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,22 @@ private RewardFactory() {}
.build();
}

public static @NonNull Reward itemizedAddOn() {
final long rewardId = IdFactory.id();

return reward().toBuilder()
.id(rewardId)
.isAddOn(true)
.addOnsItems(
Arrays.asList(
RewardsItemFactory.rewardsItem().toBuilder()
.rewardId(rewardId)
.build()
)
)
.build();
}

public static @NonNull Reward limited() {
return reward().toBuilder()
.limit(10)
Expand Down
17 changes: 16 additions & 1 deletion app/src/main/java/com/kickstarter/services/KSApolloClient.kt
Original file line number Diff line number Diff line change
Expand Up @@ -727,7 +727,7 @@ private fun rewardTransformer(rewardGr: fragment.Reward): Reward {
val desc = rewardGr.description()
val title = rewardGr.name()
val estimatedDelivery = DateTime(rewardGr.estimatedDeliveryOn())
val limit = rewardGr.limitPerBacker()
val limit = chooseLimit(rewardGr.limit(), rewardGr.limitPerBacker())
val remaining = rewardGr.remainingQuantity()
val endsAt = DateTime(rewardGr.endsAt())
val rewardId = decodeRelayId(rewardGr.id()) ?: -1
Expand Down Expand Up @@ -764,6 +764,21 @@ private fun rewardTransformer(rewardGr: fragment.Reward): Reward {
.build()
}

/**
* Choose the available limit being the smallest one, we can have limit by backer available just in add-ons
* or limit by reward, available in V1 and Graphql and for both add-ons and Rewards
* @return limit
*/
fun chooseLimit(limitReward: Int?, limitPerBacker: Int?): Int {
val limit = limitReward?.let { it } ?: 0
val limitBacker = limitPerBacker?.let { it } ?: 0

return when (limit <= limitBacker) {
true -> limit
else -> limitBacker
}
}

/**
* Transform the fragment.ShippingRule GraphQL data structure into our own ShippingRules data model
* @param fragment.ShippingRule
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,24 +150,10 @@ class BackingAddOnViewHolder(private val view: View, viewListener: ViewListener)
.compose(Transformers.observeForUI())
.subscribe { addButtonIsGone ->
if (addButtonIsGone) {
this.view.initial_state_add_on.animate().alpha(0f).withEndAction {
this.view.initial_state_add_on.visibility = View.GONE
}
this.view.stepper_container_add_on.animate().alpha(1f).withEndAction {
this.view.stepper_container_add_on.visibility = View.VISIBLE
}
this.view.initial_state_add_on.isEnabled = false
this.view.increase_quantity_add_on.isEnabled = true
showStepper()
}
else {
this.view.initial_state_add_on.animate().alpha(1f).withEndAction {
this.view.initial_state_add_on.visibility = View.VISIBLE
}
this.view.stepper_container_add_on.animate().alpha(0f).withEndAction {
this.view.stepper_container_add_on.visibility = View.GONE
}
this.view.initial_state_add_on.isEnabled = true
this.view.increase_quantity_add_on.isEnabled = false
hideStepper()
}
}

Expand All @@ -189,9 +175,24 @@ class BackingAddOnViewHolder(private val view: View, viewListener: ViewListener)
}
}

private fun hideStepper() {
this.view.initial_state_add_on.visibility = View.VISIBLE
this.view.stepper_container_add_on.visibility = View.GONE
this.view.initial_state_add_on.isEnabled = true
this.view.increase_quantity_add_on.isEnabled = false
}

private fun showStepper() {
this.view.initial_state_add_on.visibility = View.GONE
this.view.stepper_container_add_on.visibility = View.VISIBLE
this.view.initial_state_add_on.isEnabled = false
this.view.increase_quantity_add_on.isEnabled = true
}

private fun setListenerForAddButton() {
this.view.initial_state_add_on.setOnClickListener {
this.viewModel.inputs.addButtonPressed()
viewListener.quantityHasChanged(+1)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class ExpandableHeaderViewHolder(private val view: View) : KSViewHolder(view) {
this.viewModel.outputs.titleForSummary()
.compose(bindToLifecycle())
.compose(observeForUI())
.subscribe{
.subscribe {
this.view.pledge_header_item_title.text = it
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ interface AddOnViewHolderViewModel {

reward
.filter { RewardUtils.isItemized(it) }
.map { it.rewardsItems() }
.map { if (it.isAddOn) it.addOnsItems() else it.rewardsItems() }
.compose(bindToLifecycle())
.subscribe(this.rewardItems)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ class BackingAddOnViewHolderViewModel {
.subscribe(this.rewardItemsAreGone)

addOn.filter { RewardUtils.isItemized(it) }
.map { it.rewardsItems() }
.map { if (it.isAddOn) it.addOnsItems() else it.rewardsItems() }
.compose(bindToLifecycle())
.subscribe(this.rewardItems)

Expand Down Expand Up @@ -220,6 +220,7 @@ class BackingAddOnViewHolderViewModel {

this.quantity
.compose<Int>(takeWhen(this.addButtonPressed))
.map { increase(it) }
.subscribe(this.quantity)

this.quantity
Expand All @@ -241,7 +242,7 @@ class BackingAddOnViewHolderViewModel {

this.quantity
.compose<Pair<Int, Reward>>(combineLatestPair(addOn))
.map { (it.first == LIMIT) || (it.first == it.second.remaining()) }
.map { (it.first == it.second.remaining()) || (it.first == it.second.limit())}
.compose(bindToLifecycle())
.subscribe(this.disableIncreaseButton)

Expand All @@ -254,7 +255,7 @@ class BackingAddOnViewHolderViewModel {
}

private fun decrease(amount: Int) = amount - 1
private fun increase(amount: Int) = if(amount < LIMIT )amount + 1 else amount
private fun increase(amount: Int) = amount + 1

private fun getShippingCost(shippingRules: List<ShippingRule>?, project: Project, selectedShippingRule: ShippingRule) =
if (shippingRules.isNullOrEmpty()) ""
Expand Down Expand Up @@ -316,9 +317,5 @@ class BackingAddOnViewHolderViewModel {
override fun quantityPerId(): PublishSubject<Pair<Int, Long>> = this.quantityPerId

override fun disableIncreaseButton(): Observable<Boolean> = this.disableIncreaseButton

companion object {
const val LIMIT = 10
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import android.util.Pair
import androidx.annotation.NonNull
import com.kickstarter.libs.ActivityViewModel
import com.kickstarter.libs.Environment
import com.kickstarter.libs.utils.ObjectUtils
import com.kickstarter.models.Project
import com.kickstarter.models.Reward
import com.kickstarter.ui.viewholders.ExpandableHeaderViewHolder
Expand Down Expand Up @@ -44,7 +45,15 @@ interface ExpandableHeaderViewHolderViewModel {

val project = projectAndReward
.map { it.first }

reward
.filter { it.isAddOn && ObjectUtils.isNotNull(it.quantity()) && it.quantity()?.let { q -> q > 0 } ?: false }
.map { it.quantity().toString() + " X " + it.title()}
.compose(bindToLifecycle())
.subscribe(this.titleForSummary)

reward
.filter { !it.isAddOn }
.map { it.title()}
.compose(bindToLifecycle())
.subscribe(this.titleForSummary)
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/fragment_backing_addons.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
android:layout_marginEnd="@dimen/grid_3"
android:layout_marginStart="@dimen/grid_3"
android:layout_marginTop="@dimen/grid_2"
android:text="@string/customize_your_reward"
android:text="@string/Customize_your_reward_with_optional_addons"
style="@style/Headline"
android:textSize="@dimen/title_2"
app:layout_constraintEnd_toEndOf="parent"
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/item_reward.xml
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@
style="@style/RewardPill"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Add_ons_available"
android:text="@string/Add_ons"
tools:text="Add-ons available" />

</com.google.android.flexbox.FlexboxLayout>
Expand Down
7 changes: 7 additions & 0 deletions app/src/main/res/values-de/strings_i18n.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
<string name="Add" formatted="false">Hinzufügen</string>
<string name="Add_attachments" formatted="false">Anhänge hinzufügen ...</string>
<string name="Add_new_card" formatted="false">Kreditkarte hinzufügen</string>
<string name="Add_ons" formatted="false">Add-ons</string>
<string name="Add_ons_unavailable" formatted="false">Add-ons nicht verfügbar</string>
<string name="Alert" formatted="false">Hinweis</string>
<string name="All_Art_Projects" formatted="false">Alle Projekte der Kategorie Kunst</string>
<string name="All_Comics_Projects" formatted="false">Alle Projekte der Kategorie Comics</string>
Expand Down Expand Up @@ -87,6 +89,7 @@ Unterstützer</string>
<string name="Change_email" formatted="false">E-Mail-Adresse ändern</string>
<string name="Change_password" formatted="false">Passwort ändern</string>
<string name="Change_payment_method" formatted="false">Zahlungsmethode ändern</string>
<string name="Change_your_shipping_location_or_skip_add_ons_to_continue" formatted="false">Um fortzufahren, ändere dein Versandziel oder überspringe Add-ons.</string>
<string name="Chat" formatted="false">Chat</string>
<string name="Check_back_later_for_an_update_on_your_export" formatted="false">Der Fortschritt des Exports wird in Kürze verfügbar sein- schau später noch einmal vorbei.</string>
<string name="Check_out_these_handpicked_projects" formatted="false">Sieh dir dieses speziell für dich ausgesuchten Projekte an.</string>
Expand Down Expand Up @@ -120,6 +123,7 @@ Bitte antippen und erneut versuchen.</string>
<string name="Continue_with_quantity_add_ons_other" formatted="false">Weiter mit %{quantity} Add-ons</string>
<string name="Continue_with_quantity_add_ons_two" formatted="false">Weiter mit %{quantity} Add-ons</string>
<string name="Continue_with_quantity_add_ons_zero" formatted="false">Weiter mit %{quantity} Add-ons</string>
<string name="Continue_with_this_reward_It_doesnt_offer_these_add_ons" formatted="false">Weiter mit dieser Belohnung? Die folgenden Add-Ons werden dafür nicht angeboten:</string>
<string name="Couldnt_add_attachment" formatted="false">Anhang konnte nicht hinzugefügt werden</string>
<string name="Couldnt_open_live_stream_Try_again_later" formatted="false">Live-Stream konnte nicht geöffnet werden. Bitte versuche es später noch einmal.</string>
<string name="Couldnt_remove_attachment" formatted="false">Anhang konnte nicht entfernt werden</string>
Expand Down Expand Up @@ -542,6 +546,7 @@ Bitte antippen und erneut versuchen.</string>
<string name="Something_catch_your_eye" formatted="false">Etwas interessantes gefunden?</string>
<string name="Something_went_wrong_and_we_were_unable_to_remove_your_payment_method_please_try_again" formatted="false">Hier ist etwas schiefgelaufen, deine Zahlungsweise konnte leider nicht entfernt werden. Bitte versuche es noch einmal.</string>
<string name="Something_went_wrong_please_try_again" formatted="false">Da hat etwas nicht geklappt. Bitte versuche es später noch einmal.</string>
<string name="Something_went_wrong_pull_to_refresh" formatted="false">Da hat etwas nicht geklappt, bitte nach unten streichen.</string>
<string name="Start_the_request" formatted="false">Daten zusammenstellen</string>
<string name="Starting_soon" formatted="false">Beginnt in Kürze</string>
<string name="Status" formatted="false">Status:</string>
Expand Down Expand Up @@ -662,9 +667,11 @@ Bitte versuche es später noch einmal.</string>
<string name="Yes_cancel_it" formatted="false">Ja, abbrechen</string>
<string name="Yes_cancel_my_pledge" formatted="false">Ja, ich möchte meinen Beitrag zurückziehen</string>
<string name="Yes_change_currency" formatted="false">Ja, Währung ändern</string>
<string name="Yes_continue" formatted="false">Ja, weiter</string>
<string name="Yes_remove" formatted="false">Ja, entfernen</string>
<string name="Yes_turn_off" formatted="false">Ja, deaktivieren</string>
<string name="You_Launched" formatted="false">Dein Projekt ist live!</string>
<string name="You_backed" formatted="false">Deine unterstützten Projekte</string>
<string name="You_backed_this_project" formatted="false">Du hast dieses Projekt unterstützt.</string>
<string name="You_canceled_this_project_so_the_backers_payment_method_was_never_charged" formatted="false">Du hast dieses Projekt abgebrochen. Daher wurde die Zahlungsmethode des Unterstützers nicht belastet.</string>
<string name="You_canceled_your_pledge_for_this_project" formatted="false">Du hast den Finanzierungsbeitrag für dieses Projekt zurückgezogen.</string>
Expand Down
7 changes: 7 additions & 0 deletions app/src/main/res/values-es/strings_i18n.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
<string name="Add" formatted="false">Añadir</string>
<string name="Add_attachments" formatted="false">Agregar anexos …</string>
<string name="Add_new_card" formatted="false">Añadir una nueva tarjeta</string>
<string name="Add_ons" formatted="false">Complementos</string>
<string name="Add_ons_unavailable" formatted="false">Complementos no disponibles</string>
<string name="Alert" formatted="false">Alerta</string>
<string name="All_Art_Projects" formatted="false">Todos los proyectos</string>
<string name="All_Comics_Projects" formatted="false">Todos los proyectos</string>
Expand Down Expand Up @@ -87,6 +89,7 @@ patrocinadores</string>
<string name="Change_email" formatted="false">Cambiar correo electrónico</string>
<string name="Change_password" formatted="false">Cambiar contraseña</string>
<string name="Change_payment_method" formatted="false">Cambiar método de pago</string>
<string name="Change_your_shipping_location_or_skip_add_ons_to_continue" formatted="false">Cambia tu ubicación de envío u omite los complementos para continuar.</string>
<string name="Chat" formatted="false">Chat</string>
<string name="Check_back_later_for_an_update_on_your_export" formatted="false">Vuelve más tarde para obtener una actualización sobre tu progreso de exportación.</string>
<string name="Check_out_these_handpicked_projects" formatted="false">Echa un vistazo a estos proyectos seleccionados exclusivamente para ti.</string>
Expand Down Expand Up @@ -120,6 +123,7 @@ Haz clic para volver a intentarlo.</string>
<string name="Continue_with_quantity_add_ons_other" formatted="false">Continuar con %{quantity} complementos</string>
<string name="Continue_with_quantity_add_ons_two" formatted="false">Continuar con %{quantity} complementos</string>
<string name="Continue_with_quantity_add_ons_zero" formatted="false">Continuar con %{quantity} complementos</string>
<string name="Continue_with_this_reward_It_doesnt_offer_these_add_ons" formatted="false">¿Continuar con esta recompensa? No ofrece estos complementos:</string>
<string name="Couldnt_add_attachment" formatted="false">No se pudo añadir el anexo</string>
<string name="Couldnt_open_live_stream_Try_again_later" formatted="false">No se pudo abrir este live stream, por favor inténtalo de nuevo más tarde.</string>
<string name="Couldnt_remove_attachment" formatted="false">No se pudo remover el anexo</string>
Expand Down Expand Up @@ -543,6 +547,7 @@ Haz clic para volver a intentarlo.</string>
<string name="Something_catch_your_eye" formatted="false">¿Algo que te haya llamado la atención?</string>
<string name="Something_went_wrong_and_we_were_unable_to_remove_your_payment_method_please_try_again" formatted="false">Hubo un error y no pudimos eliminar tu método de pago. Inténtalo de nuevo.</string>
<string name="Something_went_wrong_please_try_again" formatted="false">Ocurrió un error. Inténtalo nuevamente más tarde.</string>
<string name="Something_went_wrong_pull_to_refresh" formatted="false">Ocurrió un error. Desliza para actualizar.</string>
<string name="Start_the_request" formatted="false">Comenzar la recopilación de datos</string>
<string name="Starting_soon" formatted="false">Comienza en breve</string>
<string name="Status" formatted="false">Estado:</string>
Expand Down Expand Up @@ -663,9 +668,11 @@ Por favor inténtalo de nuevo más tarde.</string>
<string name="Yes_cancel_it" formatted="false">Sí, cancelar</string>
<string name="Yes_cancel_my_pledge" formatted="false">Sí, cancelar mi contribución</string>
<string name="Yes_change_currency" formatted="false">Sí, cambiar la moneda</string>
<string name="Yes_continue" formatted="false">Sí, continuar</string>
<string name="Yes_remove" formatted="false">Sí, eliminar</string>
<string name="Yes_turn_off" formatted="false">Sí, desactivar</string>
<string name="You_Launched" formatted="false">¡Tu proyecto fue publicado!</string>
<string name="You_backed" formatted="false">Patrocinaste</string>
<string name="You_backed_this_project" formatted="false">Patrocinaste este proyecto.</string>
<string name="You_canceled_this_project_so_the_backers_payment_method_was_never_charged" formatted="false">Has cancelado este proyecto, así que no se realizó ningún cargo al método de pago del patrocinador.</string>
<string name="You_canceled_your_pledge_for_this_project" formatted="false">Has cancelado tu contribución a este proyecto.</string>
Expand Down
Loading
0