Skip to content
Open
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
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import android.support.v7.widget.LinearLayoutManager
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import com.blockeq.stellarwallet.R
import com.blockeq.stellarwallet.adapters.MyOffersAdapter
import com.blockeq.stellarwallet.interfaces.OnDeleteRequest
Expand All @@ -31,7 +30,8 @@ class MyOffersTabFragment : Fragment(), OnDeleteRequest, SwipeRefreshLayout.OnRe
private lateinit var appContext : Context
private var myOffers = mutableListOf<MyOffer>()
private var offerResponses = mutableListOf<OfferResponse>()

private var intentOfferDeletion : MyOffer? = null
private var intentDeletionIndex : Int? = null
private lateinit var myOffersAdapter: MyOffersAdapter

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
Expand Down Expand Up @@ -109,10 +109,15 @@ class MyOffersTabFragment : Fragment(), OnDeleteRequest, SwipeRefreshLayout.OnRe
}
}

private fun deleteOffer(offerId: Int) {
private fun deleteOffer(offerId: Int, isRetry : Boolean = false) {
val index = myOffers.indexOf(myOffers.find { offer -> offer.id == offerId })
myOffers.removeAt(index)
myOffersAdapter.notifyItemRemoved(index)
// if it is retry the view was already deleted
if (!isRetry) {
intentOfferDeletion = myOffers[index]
intentDeletionIndex = index
myOffers.removeAt(index)
myOffersAdapter.notifyItemRemoved(index)
}

if (myOffers.size == 0) {
empty_view.visibility = View.VISIBLE
Expand All @@ -126,16 +131,19 @@ class MyOffersTabFragment : Fragment(), OnDeleteRequest, SwipeRefreshLayout.OnRe
if (offer != null) {
Horizon.deleteOffer(offer.id, secretSeed, offer.selling, offer.buying, offer.price, object: Horizon.OnMarketOfferListener {
override fun onExecuted() {
Timber.d("offer has been deleted")
val snackbar = Snackbar.make(activity!!.findViewById(R.id.content_container),
"the offer has been deleted", Snackbar.LENGTH_SHORT)
snackbar.show()
}

override fun onFailed(errorMessage: String) {
Toast.makeText(appContext, "Failed to delete offer: $errorMessage", Toast.LENGTH_SHORT).show()
myOffers.add(intentDeletionIndex!!, intentOfferDeletion!!)
myOffersAdapter.notifyItemInserted(intentDeletionIndex!!)

val snackbar = Snackbar.make(activity!!.findViewById(R.id.content_container),
"failed to delete the offer", Snackbar.LENGTH_INDEFINITE)
snackbar.setAction("retry") {
deleteOffer(offerId)
deleteOffer(offerId, true)
}
snackbar.show()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,13 @@ object Horizon : HorizonTasks {
if (response.isSuccess) {
listener.onExecuted()
} else {
listener.onFailed(response.extras.resultCodes.operationsResultCodes[0].toString())
if(response.extras.resultCodes.operationsResultCodes != null) {
listener.onFailed(response.extras.resultCodes.operationsResultCodes[0].toString())
} else if(response.extras.resultCodes.transactionResultCode != null) {
listener.onFailed(response.extras.resultCodes.transactionResultCode.toString())
} else {
listener.onFailed("Unknown error")
}
}
}
} catch (error : java.lang.Exception) {
Expand Down