Skip to content

Commit

Permalink
refactor #1463: migrated payments package from java to kotlin
Browse files Browse the repository at this point in the history
  • Loading branch information
PratyushSingh07 committed Jan 8, 2024
1 parent f34cb50 commit fc77c06
Show file tree
Hide file tree
Showing 6 changed files with 507 additions and 516 deletions.

This file was deleted.

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)
}
})
}
}

This file was deleted.

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)
}
}
Loading

0 comments on commit fc77c06

Please sign in to comment.