From 472ddf635b278a6aa7adcab22764b1cb11070c35 Mon Sep 17 00:00:00 2001 From: liveHarshit Date: Sun, 23 Sep 2018 18:51:26 +0530 Subject: [PATCH] fix: Load user details in Edit Profile section (#568) --- .../general/auth/EditProfileFragment.kt | 16 ++++++++++++++-- .../openevent/general/auth/LoginFragment.kt | 10 ++-------- .../fossasia/openevent/general/utils/Utils.kt | 7 ++++++- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/org/fossasia/openevent/general/auth/EditProfileFragment.kt b/app/src/main/java/org/fossasia/openevent/general/auth/EditProfileFragment.kt index e9caaf78f2..b3da4615d5 100644 --- a/app/src/main/java/org/fossasia/openevent/general/auth/EditProfileFragment.kt +++ b/app/src/main/java/org/fossasia/openevent/general/auth/EditProfileFragment.kt @@ -3,12 +3,10 @@ package org.fossasia.openevent.general.auth import android.Manifest import android.app.Activity import android.arch.lifecycle.Observer -import android.content.Context import android.content.Intent import android.content.pm.PackageManager import android.graphics.Bitmap import android.graphics.BitmapFactory -import android.graphics.drawable.Drawable import android.os.Bundle import android.support.v4.app.Fragment import android.support.v7.app.AppCompatActivity @@ -24,6 +22,8 @@ import kotlinx.android.synthetic.main.fragment_edit_profile.view.* import org.fossasia.openevent.general.CircleTransform import org.fossasia.openevent.general.R import org.fossasia.openevent.general.utils.Utils +import org.fossasia.openevent.general.utils.Utils.hideSoftKeyboard +import org.fossasia.openevent.general.utils.nullToEmpty import org.koin.android.architecture.ext.viewModel import timber.log.Timber import java.io.ByteArrayOutputStream @@ -33,6 +33,7 @@ import java.io.InputStream class EditProfileFragment : Fragment() { + private val profileFragmentViewModel by viewModel() private val editProfileViewModel by viewModel() private lateinit var rootView: View private var permissionGranted = false @@ -44,6 +45,16 @@ class EditProfileFragment : Fragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { rootView = inflater.inflate(R.layout.fragment_edit_profile, container, false) + profileFragmentViewModel.user.observe(this, Observer { + it?.let { + val userFirstName = it.firstName.nullToEmpty() + val userLastName = it.lastName.nullToEmpty() + rootView.firstName.setText(userFirstName) + rootView.lastName.setText(userLastName) + } + }) + profileFragmentViewModel.fetchProfile() + editProfileViewModel.progress.observe(this, Observer { it?.let { Utils.showProgressBar(rootView.progressBar, it) @@ -59,6 +70,7 @@ class EditProfileFragment : Fragment() { } rootView.buttonUpdate.setOnClickListener { + hideSoftKeyboard(context, rootView) editProfileViewModel.updateProfile(encodedImage, rootView.firstName.text.toString(), rootView.lastName.text.toString()) } diff --git a/app/src/main/java/org/fossasia/openevent/general/auth/LoginFragment.kt b/app/src/main/java/org/fossasia/openevent/general/auth/LoginFragment.kt index db1d9bfca9..4811f7f76e 100644 --- a/app/src/main/java/org/fossasia/openevent/general/auth/LoginFragment.kt +++ b/app/src/main/java/org/fossasia/openevent/general/auth/LoginFragment.kt @@ -1,7 +1,6 @@ package org.fossasia.openevent.general.auth import android.arch.lifecycle.Observer -import android.content.Context import android.content.Intent import android.os.Bundle import android.support.v4.app.Fragment @@ -10,7 +9,6 @@ import android.text.TextWatcher import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.view.inputmethod.InputMethodManager import android.widget.Toast import kotlinx.android.synthetic.main.fragment_login.* import kotlinx.android.synthetic.main.fragment_login.view.* @@ -20,6 +18,7 @@ import org.fossasia.openevent.general.order.LAUNCH_TICKETS import org.fossasia.openevent.general.ticket.EVENT_ID import org.fossasia.openevent.general.ticket.TICKET_ID_AND_QTY import org.fossasia.openevent.general.utils.Utils +import org.fossasia.openevent.general.utils.Utils.hideSoftKeyboard import org.koin.android.architecture.ext.viewModel const val LAUNCH_ATTENDEE: String = "LAUNCH_ATTENDEE" @@ -50,7 +49,7 @@ class LoginFragment : Fragment() { rootView.loginButton.setOnClickListener { loginActivityViewModel.login(email.text.toString(), password.text.toString()) - hideSoftKeyboard() + hideSoftKeyboard(context, rootView) } loginActivityViewModel.progress.observe(this, Observer { @@ -110,11 +109,6 @@ class LoginFragment : Fragment() { return rootView } - private fun hideSoftKeyboard() { - val inputManager: InputMethodManager = activity?.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager - inputManager.hideSoftInputFromWindow(view?.windowToken, InputMethodManager.SHOW_FORCED) - } - private fun redirectToMain(bundle: Bundle?) { val intent = Intent(activity, MainActivity::class.java) if (bundle != null) { diff --git a/app/src/main/java/org/fossasia/openevent/general/utils/Utils.kt b/app/src/main/java/org/fossasia/openevent/general/utils/Utils.kt index 87b12c9415..6aebd26cb7 100644 --- a/app/src/main/java/org/fossasia/openevent/general/utils/Utils.kt +++ b/app/src/main/java/org/fossasia/openevent/general/utils/Utils.kt @@ -1,6 +1,5 @@ package org.fossasia.openevent.general.utils -import android.app.Activity import android.app.AlertDialog import android.content.Context import android.graphics.BitmapFactory @@ -8,6 +7,7 @@ import android.net.Uri import android.support.customtabs.CustomTabsIntent import android.support.v4.content.ContextCompat import android.view.View +import android.view.inputmethod.InputMethodManager import android.widget.ProgressBar import org.fossasia.openevent.general.R @@ -38,4 +38,9 @@ object Utils { .setPositiveButton(context?.resources?.getString(R.string.ok)) { dialog, _ -> dialog.cancel() } builder.show() } + + fun hideSoftKeyboard(context: Context?, view: View) { + val inputManager: InputMethodManager = context?.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager + inputManager.hideSoftInputFromWindow(view.windowToken, InputMethodManager.SHOW_FORCED) + } }