diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ae4f024..53232c8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -16,15 +16,18 @@ android:theme="@style/Theme.Woka" tools:targetApi="31"> + android:windowSoftInputMode="adjustPan" /> + diff --git a/app/src/main/java/com/woka/home/HomeActivity.kt b/app/src/main/java/com/woka/home/HomeActivity.kt new file mode 100644 index 0000000..87417fc --- /dev/null +++ b/app/src/main/java/com/woka/home/HomeActivity.kt @@ -0,0 +1,21 @@ +package com.woka.home + +import android.os.Bundle +import androidx.activity.enableEdgeToEdge +import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import com.woka.R + +class HomeActivity : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + setContentView(R.layout.activity_home) + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> + val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) + insets + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/woka/onboard/OnboardActivity.kt b/app/src/main/java/com/woka/onboard/OnboardActivity.kt index aee0a55..bb31bd5 100644 --- a/app/src/main/java/com/woka/onboard/OnboardActivity.kt +++ b/app/src/main/java/com/woka/onboard/OnboardActivity.kt @@ -4,8 +4,9 @@ import android.media.MediaPlayer import android.os.Bundle import androidx.activity.enableEdgeToEdge import androidx.core.view.ViewCompat -import androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsCompat +import androidx.navigation.NavOptions +import androidx.navigation.fragment.NavHostFragment import com.woka.R import com.woka.utils.WokaBaseActivity @@ -23,6 +24,13 @@ class OnboardActivity : WokaBaseActivity() { insets } +// val hostFragment = supportFragmentManager.findFragmentById(R.id.fc_onboard) as NavHostFragment +// hostFragment.navController.navigate(R.id.action_onboardFragment_to_signInFragment, +// null, +// NavOptions.Builder() +// .setPopUpTo(R.id.onboardFragment, true) +// .build()) + player = MediaPlayer.create(this, R.raw.audiotwo) player?.isLooping = true } diff --git a/app/src/main/java/com/woka/onboard/fragments/GetCodeFragment.kt b/app/src/main/java/com/woka/onboard/fragments/GetCodeFragment.kt index d988a5e..a99066e 100644 --- a/app/src/main/java/com/woka/onboard/fragments/GetCodeFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/GetCodeFragment.kt @@ -25,6 +25,7 @@ import com.woka.utils.CHILD_TYPE import com.woka.utils.PARENT_TYPE import com.woka.utils.ProgressView import com.woka.utils.closeKeyboard +import com.woka.utils.toast import kotlinx.coroutines.launch /* @@ -87,7 +88,7 @@ class GetCodeFragment : Fragment() { when (it) { is ApiResult.Error -> { progressView.hide() - Toast.makeText(activity, "${it.errorMessage}", Toast.LENGTH_SHORT).show() + toast(it.errorMessage) } is ApiResult.Loading -> { @@ -96,10 +97,7 @@ class GetCodeFragment : Fragment() { is ApiResult.Success -> { viewModel.startOTPTimeCountDown() - Toast.makeText( - activity, - "${it.message}", Toast.LENGTH_SHORT - ).show() + toast(it.message) progressView.hide() uniqueString = it.data?.unique_string ?: "" @@ -115,7 +113,7 @@ class GetCodeFragment : Fragment() { when (it) { is ApiResult.Error -> { progressView.hide() - Toast.makeText(activity, "${it.errorMessage}", Toast.LENGTH_SHORT).show() + activity?.toast(it.errorMessage) } is ApiResult.Loading -> { @@ -124,7 +122,7 @@ class GetCodeFragment : Fragment() { is ApiResult.Success -> { viewModel.startOTPTimeCountDown() - Toast.makeText(activity, "${it.message}", Toast.LENGTH_SHORT).show() + activity?.toast(it.message) progressView.hide() viewModel.clearForgotPwdSendOTPData() @@ -138,7 +136,7 @@ class GetCodeFragment : Fragment() { when (it) { is ApiResult.Error -> { progressView.hide() - Toast.makeText(activity, "${it.errorMessage}", Toast.LENGTH_SHORT).show() + toast(it.errorMessage) } is ApiResult.Loading -> { @@ -154,8 +152,7 @@ class GetCodeFragment : Fragment() { val listOfChild = viewModel.getChildList(email) progressView.hide() - Toast.makeText(activity, "${it.message}", Toast.LENGTH_SHORT) - .show() + toast(it.message) if (listOfChild is ApiResult.Error) { if (listOfChild.error is NoSuccessError) { @@ -163,11 +160,7 @@ class GetCodeFragment : Fragment() { gotoSignUpFragment() } else { // some other error happened - Toast.makeText( - activity, - "${listOfChild.errorMessage}", - Toast.LENGTH_SHORT - ).show() + toast(listOfChild.errorMessage) } } else if (listOfChild is ApiResult.Success && listOfChild.data?.result != null) { // child list is available @@ -188,8 +181,7 @@ class GetCodeFragment : Fragment() { } else { // child type progressView.hide() - Toast.makeText(activity, "${it.message}", Toast.LENGTH_SHORT) - .show() + toast(it.message) gotoSignUpFragment() } @@ -203,7 +195,7 @@ class GetCodeFragment : Fragment() { when (it) { is ApiResult.Error -> { progressView.hide() - Toast.makeText(activity, "${it.errorMessage}", Toast.LENGTH_SHORT).show() + toast(it.errorMessage) } is ApiResult.Loading -> { @@ -212,11 +204,7 @@ class GetCodeFragment : Fragment() { is ApiResult.Success -> { progressView.hide() - Toast.makeText( - activity, - "${it.message}", Toast.LENGTH_SHORT - ) - .show() + toast(it.message) findNavController().navigate(R.id.action_getCodeFragment_to_newPasswordFragment2, Bundle().apply @@ -344,10 +332,7 @@ class GetCodeFragment : Fragment() { private fun getOTP(): String? { binding.apply { if (et1.text.isEmpty() || et2.text.isEmpty() || et3.text.isEmpty() || et4.text.isEmpty()) { - Toast.makeText( - activity, - getString(R.string.please_enter_otp_code), Toast.LENGTH_SHORT - ).show() + toast(getString(R.string.please_enter_otp_code)) return null } return "${et1.text}${et2.text}${et3.text}${et4.text}" diff --git a/app/src/main/java/com/woka/onboard/fragments/GetEmailFragment.kt b/app/src/main/java/com/woka/onboard/fragments/GetEmailFragment.kt index 3e644e9..37c31fd 100644 --- a/app/src/main/java/com/woka/onboard/fragments/GetEmailFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/GetEmailFragment.kt @@ -19,6 +19,7 @@ import com.woka.onboard.mvvm.OnboardViewModel import com.woka.utils.CHILD_TYPE import com.woka.utils.PARENT_TYPE import com.woka.utils.ProgressView +import com.woka.utils.toast /* This fragment is to get the email user input @@ -75,7 +76,7 @@ class GetEmailFragment : Fragment() { when (it) { is ApiResult.Error -> { progressView.hide() - Toast.makeText(activity, "${it.errorMessage}", Toast.LENGTH_SHORT).show() + toast(it.errorMessage) } is ApiResult.Loading -> { @@ -99,7 +100,7 @@ class GetEmailFragment : Fragment() { when (it) { is ApiResult.Error -> { progressView.hide() - Toast.makeText(activity, "${it.errorMessage}", Toast.LENGTH_SHORT).show() + toast(it.errorMessage) } is ApiResult.Loading -> { @@ -129,7 +130,7 @@ class GetEmailFragment : Fragment() { when (it) { is ApiResult.Error -> { progressView.hide() - Toast.makeText(activity, "${it.errorMessage}", Toast.LENGTH_SHORT).show() + toast(it.errorMessage) } is ApiResult.Loading -> { diff --git a/app/src/main/java/com/woka/onboard/fragments/GetMoreInfoFragment.kt b/app/src/main/java/com/woka/onboard/fragments/GetMoreInfoFragment.kt index 8d0f1ce..0106031 100644 --- a/app/src/main/java/com/woka/onboard/fragments/GetMoreInfoFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/GetMoreInfoFragment.kt @@ -21,6 +21,7 @@ import com.woka.onboard.fragments.GetEmailFragment.Companion.IS_UNDER_16 import com.woka.onboard.models.Interest import com.woka.onboard.mvvm.OnboardViewModel import com.woka.utils.Gender +import com.woka.utils.toast import java.util.Calendar class GetMoreInfoFragment : Fragment() { @@ -88,12 +89,11 @@ class GetMoreInfoFragment : Fragment() { next.setOnClickListener { if (viewModel.selectedGender == Gender.NONE) { - Toast.makeText(activity, getString(R.string.select_a_gender), Toast.LENGTH_SHORT).show() + toast(getString(R.string.select_a_gender)) return@setOnClickListener } if (isUnder16 && viewModel.interestTopics.isEmpty()){ - Toast.makeText(activity, - getString(R.string.please_select_your_interests), Toast.LENGTH_SHORT).show() + toast(getString(R.string.please_select_your_interests)) return@setOnClickListener } diff --git a/app/src/main/java/com/woka/onboard/fragments/NewPasswordFragment.kt b/app/src/main/java/com/woka/onboard/fragments/NewPasswordFragment.kt index 3dee8c1..5c529f1 100644 --- a/app/src/main/java/com/woka/onboard/fragments/NewPasswordFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/NewPasswordFragment.kt @@ -14,6 +14,7 @@ import com.woka.networking.ApiResult import com.woka.onboard.fragments.GetCodeFragment.Companion.EMAIL_ARG import com.woka.onboard.mvvm.OnboardViewModel import com.woka.utils.ProgressView +import com.woka.utils.toast class NewPasswordFragment : Fragment() { @@ -52,14 +53,14 @@ class NewPasswordFragment : Fragment() { when(it){ is ApiResult.Error -> { progressView.hide() - Toast.makeText(activity, "${it.errorMessage}", Toast.LENGTH_SHORT).show() + toast(it.errorMessage) } is ApiResult.Loading -> { progressView.show() } is ApiResult.Success -> { progressView.hide() - Toast.makeText(activity, "${it.message}", Toast.LENGTH_SHORT).show() + toast(it.message) findNavController().popBackStack(R.id.signInFragment, false) } null -> {} @@ -97,15 +98,13 @@ class NewPasswordFragment : Fragment() { password.text?.let { pwdTxt -> if (pwdTxt.length < 6){ allOkay = false - Toast.makeText(activity, - getString(R.string.must_be_at_least_6_characters), Toast.LENGTH_SHORT).show() + toast(getString(R.string.must_be_at_least_6_characters)) }else { // password is valid confirmPassword.text?.let {confirmPwdTxt -> if (confirmPwdTxt.toString() != pwdTxt.toString()){ allOkay = false - Toast.makeText(activity, - getString(R.string.password_does_not_match), Toast.LENGTH_SHORT).show() + toast(getString(R.string.password_does_not_match)) } } } diff --git a/app/src/main/java/com/woka/onboard/fragments/SelectAvatarFragment.kt b/app/src/main/java/com/woka/onboard/fragments/SelectAvatarFragment.kt index e3062f7..3fca38f 100644 --- a/app/src/main/java/com/woka/onboard/fragments/SelectAvatarFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/SelectAvatarFragment.kt @@ -1,5 +1,6 @@ package com.woka.onboard.fragments +import android.content.Intent import android.os.Bundle import android.util.Log import androidx.fragment.app.Fragment @@ -11,6 +12,7 @@ import androidx.lifecycle.ViewModelProvider import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.databinding.FragmentSelectAvatarBinding +import com.woka.home.HomeActivity import com.woka.networking.ApiResult import com.woka.onboard.AvatarAdapter import com.woka.onboard.fragments.GetEmailFragment.Companion.IS_UNDER_16 @@ -19,6 +21,7 @@ import com.woka.onboard.models.RegisterRequestData import com.woka.onboard.mvvm.OnboardViewModel import com.woka.utils.Gender import com.woka.utils.ProgressView +import com.woka.utils.toast import java.text.SimpleDateFormat import java.util.Locale @@ -62,8 +65,7 @@ class SelectAvatarFragment : Fragment() { next.setOnClickListener { if (viewModel.selectedAvatarPos == null) { - Toast.makeText(activity, - getString(R.string.please_select_an_avatar), Toast.LENGTH_SHORT).show() + toast(getString(R.string.please_select_an_avatar)) return@setOnClickListener } @@ -84,7 +86,6 @@ class SelectAvatarFragment : Fragment() { ) } - Log.d("aditya_testing", "clickEvents: $registerRequestData") viewModel.registerUser(registerRequestData) } } @@ -96,7 +97,7 @@ class SelectAvatarFragment : Fragment() { when (it) { is ApiResult.Error -> { progressView.hide() - Toast.makeText(activity, "${it.errorMessage}", Toast.LENGTH_SHORT).show() + toast(it.errorMessage) } is ApiResult.Loading -> { @@ -125,16 +126,19 @@ class SelectAvatarFragment : Fragment() { when (it) { is ApiResult.Error -> { progressView.hide() - Toast.makeText(activity, "${it.errorMessage}", Toast.LENGTH_SHORT).show() + toast(it.errorMessage) } is ApiResult.Loading -> { progressView.show(getString(R.string.please_wait)) } is ApiResult.Success -> { progressView.hide() - Log.d("aditya_testing", "onViewCreated: ${it.data}") - Toast.makeText(activity, "${it.message}", Toast.LENGTH_SHORT) - .show() + activity?.let {activity -> + toast(it.message) + + startActivity(Intent(activity, HomeActivity::class.java)) + activity.finish() + } } null -> {} } diff --git a/app/src/main/java/com/woka/onboard/fragments/SignInFragment.kt b/app/src/main/java/com/woka/onboard/fragments/SignInFragment.kt index f525bf7..b6032a5 100644 --- a/app/src/main/java/com/woka/onboard/fragments/SignInFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/SignInFragment.kt @@ -17,6 +17,7 @@ import com.woka.onboard.fragments.GetEmailFragment.Companion.IS_RESET_PASSWORD_I import com.woka.onboard.mvvm.OnboardViewModel import com.woka.utils.DecisionDialog import com.woka.utils.ProgressView +import com.woka.utils.toast class SignInFragment : Fragment() { @@ -67,7 +68,7 @@ class SignInFragment : Fragment() { when(it){ is ApiResult.Error -> { progressView.hide() - Toast.makeText(activity, "${it.errorMessage}", Toast.LENGTH_SHORT).show() + toast(it.errorMessage) } is ApiResult.Loading -> { progressView.show() @@ -78,7 +79,7 @@ class SignInFragment : Fragment() { if (data.already_logged_in){ dialog.show() }else{ - Toast.makeText(activity, "${it.message}", Toast.LENGTH_SHORT).show() + toast(it.message) } } } @@ -90,14 +91,15 @@ class SignInFragment : Fragment() { when(it){ is ApiResult.Error -> { progressView.hide() - Toast.makeText(activity, "${it.errorMessage}", Toast.LENGTH_SHORT).show() + toast(it.errorMessage) + } is ApiResult.Loading -> { progressView.show() } is ApiResult.Success -> { progressView.hide() - Toast.makeText(activity, "${it.message}", Toast.LENGTH_SHORT).show() + toast(it.message) } null -> {} } @@ -134,13 +136,12 @@ class SignInFragment : Fragment() { password.text?.let { password -> if (password.length < 6){ - Toast.makeText(activity, - getString(R.string.password_must_be_at_least_6_characters), Toast.LENGTH_SHORT).show() + toast(getString(R.string.password_must_be_at_least_6_characters)) return@setOnClickListener } viewModel.login(username.text.toString(), password.toString()) - }?:Toast.makeText(activity, getString(R.string.something_went_wrong), Toast.LENGTH_SHORT).show() + }?:toast(getString(R.string.something_went_wrong)) } } } diff --git a/app/src/main/java/com/woka/onboard/fragments/SignUpFragment.kt b/app/src/main/java/com/woka/onboard/fragments/SignUpFragment.kt index 647c3bc..a7430ce 100644 --- a/app/src/main/java/com/woka/onboard/fragments/SignUpFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/SignUpFragment.kt @@ -18,6 +18,7 @@ import com.woka.onboard.mvvm.OnboardViewModel import com.woka.utils.CHILD_TYPE import com.woka.utils.PARENT_TYPE import com.woka.utils.ProgressView +import com.woka.utils.toast class SignUpFragment : Fragment() { @@ -62,7 +63,7 @@ class SignUpFragment : Fragment() { when (it) { is ApiResult.Error -> { progressView.hide() - Toast.makeText(activity, "${it.errorMessage}", Toast.LENGTH_SHORT).show() + toast(it.errorMessage) } is ApiResult.Loading -> { @@ -121,9 +122,7 @@ class SignUpFragment : Fragment() { email?.let { val userType = if (isUnder16) CHILD_TYPE else PARENT_TYPE viewModel.checkUserNameExist(it, username.text.toString(), userType) - } ?: Toast.makeText(activity, - getString(R.string.something_went_wrong), Toast.LENGTH_SHORT) - .show() + } ?: toast(getString(R.string.something_went_wrong)) } } } @@ -145,11 +144,7 @@ class SignUpFragment : Fragment() { if (password.text != null && password.text!!.length < 6) { allOkay = false - Toast.makeText( - activity, - getString(R.string.password_must_be_at_least_6_characters), - Toast.LENGTH_SHORT - ).show() + toast(getString(R.string.password_must_be_at_least_6_characters)) } } diff --git a/app/src/main/java/com/woka/utils/Extensions.kt b/app/src/main/java/com/woka/utils/Extensions.kt index 63ce23f..d09c7b1 100644 --- a/app/src/main/java/com/woka/utils/Extensions.kt +++ b/app/src/main/java/com/woka/utils/Extensions.kt @@ -7,6 +7,8 @@ import android.view.View import android.view.View.GONE import android.view.View.VISIBLE import android.view.inputmethod.InputMethodManager +import android.widget.Toast +import androidx.fragment.app.Fragment import com.woka.WokaApp.Companion.userPrefs import java.util.Locale @@ -39,4 +41,12 @@ fun Activity.closeKeyboard(){ (this.getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager) .hideSoftInputFromWindow(it.windowToken, 0) } +} + +fun Context.toast(text: String?, length: Int = Toast.LENGTH_SHORT){ + Toast.makeText(this, "$text", length).show() +} + +fun Fragment.toast(text: String?, length: Int = Toast.LENGTH_SHORT){ + activity?.toast(text, length) } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml new file mode 100644 index 0000000..d27c75c --- /dev/null +++ b/app/src/main/res/layout/activity_home.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file