diff --git a/.gitignore b/.gitignore index 1487c3a..ff18621 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ local.properties docs/mibapi/tmp docs/bmlapi/tmp docs/fahipayapi/tmp +docs/mfaisaapi/tmp tmp app/key.jks .kotlin/* diff --git a/app/src/main/java/sh/sar/basedbank/ui/login/BankSelectionFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/login/BankSelectionFragment.kt index c3ea386..a7ddea8 100644 --- a/app/src/main/java/sh/sar/basedbank/ui/login/BankSelectionFragment.kt +++ b/app/src/main/java/sh/sar/basedbank/ui/login/BankSelectionFragment.kt @@ -31,6 +31,10 @@ class BankSelectionFragment : Fragment() { val args = android.os.Bundle().apply { putString("bankType", "FAHIPAY") } findNavController().navigate(R.id.action_bankSelection_to_credentials_fahipay, args) } + binding.cardOoredoo.setOnClickListener { + val args = android.os.Bundle().apply { putString("bankType", "OOREDOO") } + findNavController().navigate(R.id.action_bankSelection_to_credentials_ooredoo, args) + } } override fun onDestroyView() { diff --git a/app/src/main/java/sh/sar/basedbank/ui/login/CredentialsFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/login/CredentialsFragment.kt index e1d1fd9..fa6f885 100644 --- a/app/src/main/java/sh/sar/basedbank/ui/login/CredentialsFragment.kt +++ b/app/src/main/java/sh/sar/basedbank/ui/login/CredentialsFragment.kt @@ -102,6 +102,19 @@ class CredentialsFragment : Fragment() { binding.etOtpSeed.isEnabled = false binding.etOtpSeed.isFocusable = false } + "OOREDOO" -> { + binding.ivBankLogo.setImageResource(R.drawable.ooredoo_logo_long) + binding.tvSignInDesc.setText(R.string.ooredoo_sign_in_desc) + binding.tilUsername.hint = getString(R.string.ooredoo_phone) + binding.etUsername.inputType = android.text.InputType.TYPE_CLASS_PHONE + binding.etPassword.inputType = + android.text.InputType.TYPE_CLASS_NUMBER or android.text.InputType.TYPE_NUMBER_VARIATION_PASSWORD + binding.etPassword.filters = arrayOf(android.text.InputFilter.LengthFilter(4)) + binding.tilPassword.hint = getString(R.string.ooredoo_pin) + binding.rowOtpSeed.visibility = android.view.View.GONE + binding.etOtpSeed.isEnabled = false + binding.etOtpSeed.isFocusable = false + } } binding.btnLogin.isEnabled = false @@ -133,7 +146,7 @@ class CredentialsFragment : Fragment() { override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {} }) - if (bankType != "FAHIPAY") { + if (bankType != "FAHIPAY" && bankType != "OOREDOO") { binding.etOtpSeed.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable?) { updateOtpDisplay() @@ -147,7 +160,7 @@ class CredentialsFragment : Fragment() { override fun onResume() { super.onResume() - if (bankType != "FAHIPAY") otpHandler.post(otpRunnable) + if (bankType != "FAHIPAY" && bankType != "OOREDOO") otpHandler.post(otpRunnable) } override fun onPause() { @@ -170,6 +183,7 @@ class CredentialsFragment : Fragment() { val otpSeed = resolveOtpSeed(otpSeedRaw) binding.btnLogin.isEnabled = when (bankType) { "FAHIPAY" -> username.isNotEmpty() && password.isNotEmpty() + "OOREDOO" -> username.isNotEmpty() && password.length == 4 else -> username.isNotEmpty() && password.isNotEmpty() && otpSeed.isNotEmpty() && password != otpSeedRaw } } @@ -204,6 +218,10 @@ class CredentialsFragment : Fragment() { when (bankType) { "BML" -> { attemptBmlLogin(); return } "FAHIPAY" -> { attemptFahipayLogin(); return } + "OOREDOO" -> { + Toast.makeText(requireContext(), R.string.work_in_progress, Toast.LENGTH_SHORT).show() + return + } } val username = binding.etUsername.text.toString().trim() diff --git a/app/src/main/res/drawable/ooredoo_logo.xml b/app/src/main/res/drawable/ooredoo_logo.xml new file mode 100644 index 0000000..30fa998 --- /dev/null +++ b/app/src/main/res/drawable/ooredoo_logo.xml @@ -0,0 +1,16 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ooredoo_logo_long.xml b/app/src/main/res/drawable/ooredoo_logo_long.xml new file mode 100644 index 0000000..08674f3 --- /dev/null +++ b/app/src/main/res/drawable/ooredoo_logo_long.xml @@ -0,0 +1,15 @@ + + + + + + + diff --git a/app/src/main/res/layout/fragment_bank_selection.xml b/app/src/main/res/layout/fragment_bank_selection.xml index b842035..d5133c3 100644 --- a/app/src/main/res/layout/fragment_bank_selection.xml +++ b/app/src/main/res/layout/fragment_bank_selection.xml @@ -117,6 +117,50 @@ + + + + + + + + + + + + + + + + + + Authenticator Code (6 digits) Enter the code from your authenticator app Verify + Ooredoo M-Faisa + Mobile Wallet + Enter your mobile number and 4-digit PIN. + Mobile Number + PIN Sign In Enter your Maldives Islamic Bank credentials. Enter your Bank of Maldives credentials.