-
Notifications
You must be signed in to change notification settings - Fork 460
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor #1463: migrated payments package from java to kotlin
- Loading branch information
1 parent
f34cb50
commit fc77c06
Showing
6 changed files
with
507 additions
and
516 deletions.
There are no files selected for viewing
78 changes: 0 additions & 78 deletions
78
...y/src/main/java/org/mifos/mobilewallet/mifospay/payments/presenter/TransferPresenter.java
This file was deleted.
Oops, something went wrong.
64 changes: 64 additions & 0 deletions
64
...pay/src/main/java/org/mifos/mobilewallet/mifospay/payments/presenter/TransferPresenter.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
package org.mifos.mobilewallet.mifospay.payments.presenter | ||
|
||
import org.mifos.mobilewallet.core.base.UseCase.UseCaseCallback | ||
import org.mifos.mobilewallet.core.base.UseCaseHandler | ||
import org.mifos.mobilewallet.core.domain.usecase.account.FetchAccount | ||
import org.mifos.mobilewallet.core.domain.usecase.client.FetchClientData | ||
import org.mifos.mobilewallet.mifospay.base.BaseView | ||
import org.mifos.mobilewallet.mifospay.data.local.LocalRepository | ||
import org.mifos.mobilewallet.mifospay.home.BaseHomeContract | ||
import org.mifos.mobilewallet.mifospay.utils.Constants | ||
import javax.inject.Inject | ||
|
||
/** | ||
* Created by naman on 30/8/17. | ||
*/ | ||
class TransferPresenter @Inject constructor( | ||
private val mUsecaseHandler: UseCaseHandler, | ||
private val localRepository: LocalRepository | ||
) : BaseHomeContract.TransferPresenter { | ||
@JvmField | ||
@Inject | ||
var fetchClientData: FetchClientData? = null | ||
|
||
@JvmField | ||
@Inject | ||
var mFetchAccount: FetchAccount? = null | ||
private var mTransferView: BaseHomeContract.TransferView? = null | ||
override fun attachView(baseView: BaseView<*>?) { | ||
mTransferView = baseView as BaseHomeContract.TransferView? | ||
mTransferView!!.setPresenter(this) | ||
} | ||
|
||
override fun fetchVpa() { | ||
mTransferView!!.showVpa(localRepository.clientDetails.externalId) | ||
} | ||
|
||
override fun fetchMobile() { | ||
mTransferView!!.showMobile(localRepository.preferencesHelper.mobile) | ||
} | ||
|
||
override fun checkSelfTransfer(externalId: String?): Boolean { | ||
return externalId == localRepository.clientDetails.externalId | ||
} | ||
|
||
override fun checkBalanceAvailability(externalId: String?, transferAmount: Double) { | ||
mUsecaseHandler.execute(mFetchAccount, | ||
FetchAccount.RequestValues(localRepository.clientDetails.clientId), | ||
object : UseCaseCallback<FetchAccount.ResponseValue?> { | ||
override fun onSuccess(response: FetchAccount.ResponseValue?) { | ||
mTransferView!!.hideSwipeProgress() | ||
if (transferAmount > response?.account?.balance!!) { | ||
mTransferView!!.showSnackbar(Constants.INSUFFICIENT_BALANCE) | ||
} else { | ||
mTransferView!!.showClientDetails(externalId, transferAmount) | ||
} | ||
} | ||
|
||
override fun onError(message: String) { | ||
mTransferView!!.hideSwipeProgress() | ||
mTransferView!!.showToast(Constants.ERROR_FETCHING_BALANCE) | ||
} | ||
}) | ||
} | ||
} |
112 changes: 0 additions & 112 deletions
112
mifospay/src/main/java/org/mifos/mobilewallet/mifospay/payments/ui/RequestFragment.java
This file was deleted.
Oops, something went wrong.
95 changes: 95 additions & 0 deletions
95
mifospay/src/main/java/org/mifos/mobilewallet/mifospay/payments/ui/RequestFragment.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
package org.mifos.mobilewallet.mifospay.payments.ui | ||
|
||
import android.content.Intent | ||
import android.os.Bundle | ||
import android.view.LayoutInflater | ||
import android.view.View | ||
import android.view.ViewGroup | ||
import android.widget.TextView | ||
import butterknife.BindView | ||
import butterknife.ButterKnife | ||
import butterknife.OnClick | ||
import dagger.hilt.android.AndroidEntryPoint | ||
import io.michaelrocks.libphonenumber.android.NumberParseException | ||
import io.michaelrocks.libphonenumber.android.PhoneNumberUtil | ||
import org.mifos.mobilewallet.mifospay.R | ||
import org.mifos.mobilewallet.mifospay.base.BaseFragment | ||
import org.mifos.mobilewallet.mifospay.home.BaseHomeContract | ||
import org.mifos.mobilewallet.mifospay.payments.presenter.TransferPresenter | ||
import org.mifos.mobilewallet.mifospay.qr.ui.ShowQrActivity | ||
import org.mifos.mobilewallet.mifospay.utils.Constants | ||
import org.mifos.mobilewallet.mifospay.utils.Toaster | ||
import java.util.Locale | ||
import javax.inject.Inject | ||
|
||
@AndroidEntryPoint | ||
class RequestFragment : BaseFragment(), BaseHomeContract.TransferView { | ||
@JvmField | ||
@Inject | ||
var mPresenter: TransferPresenter? = null | ||
var mTransferPresenter: BaseHomeContract.TransferPresenter? = null | ||
|
||
@JvmField | ||
@BindView(R.id.tv_client_mobile) | ||
var mTvClientMobile: TextView? = null | ||
|
||
@JvmField | ||
@BindView(R.id.tv_client_vpa) | ||
var tvClientVpa: TextView? = null | ||
|
||
@JvmField | ||
@BindView(R.id.btn_show_qr) | ||
var btnShowQr: TextView? = null | ||
private var vpa: String? = null | ||
override fun onCreateView( | ||
inflater: LayoutInflater, container: ViewGroup?, | ||
savedInstanceState: Bundle? | ||
): View? { | ||
val root = inflater.inflate(R.layout.fragment_request, container, false) | ||
ButterKnife.bind(this, root) | ||
mPresenter!!.attachView(this) | ||
mPresenter!!.fetchVpa() | ||
mPresenter!!.fetchMobile() | ||
return root | ||
} | ||
|
||
@OnClick(R.id.btn_show_qr) | ||
fun showQrClicked() { | ||
val intent = Intent(activity, ShowQrActivity::class.java) | ||
intent.putExtra(Constants.QR_DATA, vpa) | ||
startActivity(intent) | ||
} | ||
|
||
override fun showVpa(vpa: String?) { | ||
this.vpa = vpa | ||
tvClientVpa!!.text = vpa | ||
btnShowQr!!.isClickable = true | ||
} | ||
|
||
override fun showMobile(mobileNo: String?) { | ||
val phoneNumberUtil = PhoneNumberUtil.createInstance(mTvClientMobile!!.context) | ||
try { | ||
val phoneNumber = phoneNumberUtil.parse(mobileNo, Locale.getDefault().country) | ||
mTvClientMobile!!.text = phoneNumberUtil.format( | ||
phoneNumber, | ||
PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL | ||
) | ||
} catch (e: NumberParseException) { | ||
mTvClientMobile!!.text = mobileNo // If mobile number is not parsed properly | ||
} | ||
} | ||
|
||
override fun showClientDetails(externalId: String?, amount: Double) {} | ||
|
||
override fun setPresenter(presenter: BaseHomeContract.TransferPresenter?) { | ||
mTransferPresenter = presenter | ||
} | ||
|
||
override fun showToast(message: String?) { | ||
Toaster.showToast(context, message) | ||
} | ||
|
||
override fun showSnackbar(message: String?) { | ||
Toaster.show(view, message) | ||
} | ||
} |
Oops, something went wrong.