diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/SettingPageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/SettingPageFragment.kt index fda2067..5cbd14b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/SettingPageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/SettingPageFragment.kt @@ -10,8 +10,8 @@ import android.view.ViewGroup import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide -import com.bumptech.glide.request.RequestOptions import com.casic.birmm.inspect.BuildConfig import com.casic.birmm.inspect.R import com.casic.birmm.inspect.callback.OnImageCompressListener @@ -34,6 +34,7 @@ import com.luck.picture.lib.entity.LocalMedia import com.luck.picture.lib.interfaces.OnResultCallbackListener import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.createRoundDrawable import com.pengxh.kt.lite.extensions.getStatusBarHeight import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -43,6 +44,9 @@ import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import java.io.File class SettingPageFragment : KotlinBaseFragment() { @@ -78,15 +82,9 @@ binding.userPhoneView.text = user.phone if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.ic_launcher) - .apply(RequestOptions.circleCropTransform()) - .into(binding.userAvatarView) + updateUserAvatar(R.mipmap.ic_launcher) } else { - Glide.with(requireContext()) - .load(user.avatar.combineImagePath()) - .apply(RequestOptions.circleCropTransform()) - .into(binding.userAvatarView) + updateUserAvatar(user.avatar.combineImagePath()) } } } @@ -118,10 +116,7 @@ user.roleList.reformat() ) - Glide.with(requireContext()) - .load(it.data.combineImagePath()) - .apply(RequestOptions.circleCropTransform()) - .into(binding.userAvatarView) + updateUserAvatar(it.data.combineImagePath()) } } @@ -136,6 +131,22 @@ vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator } + private fun updateUserAvatar(userAvatar: Any) { + lifecycleScope.launch(Dispatchers.Main) { + val bitmap = withContext(Dispatchers.IO) { + Glide.with(requireContext()) + .asBitmap() + .load(userAvatar) + .submit() + .get() + } + val roundDrawable = bitmap.createRoundDrawable( + requireContext(), 1f, Color.WHITE + ) + binding.userAvatarView.setImageBitmap(roundDrawable) + } + } + override fun observeRequestState() { uploadImageViewModel.loadState.observe(this) { when (it) { diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/SettingPageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/SettingPageFragment.kt index fda2067..5cbd14b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/SettingPageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/SettingPageFragment.kt @@ -10,8 +10,8 @@ import android.view.ViewGroup import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide -import com.bumptech.glide.request.RequestOptions import com.casic.birmm.inspect.BuildConfig import com.casic.birmm.inspect.R import com.casic.birmm.inspect.callback.OnImageCompressListener @@ -34,6 +34,7 @@ import com.luck.picture.lib.entity.LocalMedia import com.luck.picture.lib.interfaces.OnResultCallbackListener import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.createRoundDrawable import com.pengxh.kt.lite.extensions.getStatusBarHeight import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -43,6 +44,9 @@ import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import java.io.File class SettingPageFragment : KotlinBaseFragment() { @@ -78,15 +82,9 @@ binding.userPhoneView.text = user.phone if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.ic_launcher) - .apply(RequestOptions.circleCropTransform()) - .into(binding.userAvatarView) + updateUserAvatar(R.mipmap.ic_launcher) } else { - Glide.with(requireContext()) - .load(user.avatar.combineImagePath()) - .apply(RequestOptions.circleCropTransform()) - .into(binding.userAvatarView) + updateUserAvatar(user.avatar.combineImagePath()) } } } @@ -118,10 +116,7 @@ user.roleList.reformat() ) - Glide.with(requireContext()) - .load(it.data.combineImagePath()) - .apply(RequestOptions.circleCropTransform()) - .into(binding.userAvatarView) + updateUserAvatar(it.data.combineImagePath()) } } @@ -136,6 +131,22 @@ vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator } + private fun updateUserAvatar(userAvatar: Any) { + lifecycleScope.launch(Dispatchers.Main) { + val bitmap = withContext(Dispatchers.IO) { + Glide.with(requireContext()) + .asBitmap() + .load(userAvatar) + .submit() + .get() + } + val roundDrawable = bitmap.createRoundDrawable( + requireContext(), 1f, Color.WHITE + ) + binding.userAvatarView.setImageBitmap(roundDrawable) + } + } + override fun observeRequestState() { uploadImageViewModel.loadState.observe(this) { when (it) { diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/SettingPageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/SettingPageFragment.kt index 2eb2fb2..5f3baa5 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/SettingPageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/SettingPageFragment.kt @@ -2,14 +2,15 @@ import android.content.Context import android.content.Intent +import android.graphics.Color import android.net.Uri import android.os.Bundle import android.os.Vibrator import android.view.LayoutInflater import android.view.ViewGroup import android.widget.LinearLayout +import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide -import com.bumptech.glide.request.RequestOptions import com.casic.birmm.inspect.BuildConfig import com.casic.birmm.inspect.R import com.casic.birmm.inspect.databinding.SingleFragmentUserSettingsBinding @@ -18,12 +19,16 @@ import com.casic.birmm.inspect.view.HelpCenterActivity import com.casic.birmm.inspect.view.LoginActivity import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.createRoundDrawable import com.pengxh.kt.lite.extensions.getStatusBarHeight import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.ActivityStackManager import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.dialog.AlertControlDialog +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext class SettingPageFragment : KotlinBaseFragment() { @@ -49,10 +54,19 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - Glide.with(requireContext()) - .load(R.mipmap.ic_launcher) - .apply(RequestOptions.circleCropTransform()) - .into(binding.userAvatarView) + lifecycleScope.launch(Dispatchers.Main) { + val bitmap = withContext(Dispatchers.IO) { + Glide.with(requireContext()) + .asBitmap() + .load(R.mipmap.ic_launcher) + .submit() + .get() + } + val roundDrawable = bitmap.createRoundDrawable( + requireContext(), 1f, Color.WHITE + ) + binding.userAvatarView.setImageBitmap(roundDrawable) + } val isOpen = SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean binding.warningSwitch.isChecked = isOpen diff --git a/app/src/main/java/com/casic/birmm/inspect/fragment/SettingPageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/fragment/SettingPageFragment.kt index fda2067..5cbd14b 100644 --- a/app/src/main/java/com/casic/birmm/inspect/fragment/SettingPageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/fragment/SettingPageFragment.kt @@ -10,8 +10,8 @@ import android.view.ViewGroup import android.widget.LinearLayout import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide -import com.bumptech.glide.request.RequestOptions import com.casic.birmm.inspect.BuildConfig import com.casic.birmm.inspect.R import com.casic.birmm.inspect.callback.OnImageCompressListener @@ -34,6 +34,7 @@ import com.luck.picture.lib.entity.LocalMedia import com.luck.picture.lib.interfaces.OnResultCallbackListener import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.createRoundDrawable import com.pengxh.kt.lite.extensions.getStatusBarHeight import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -43,6 +44,9 @@ import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import java.io.File class SettingPageFragment : KotlinBaseFragment() { @@ -78,15 +82,9 @@ binding.userPhoneView.text = user.phone if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.ic_launcher) - .apply(RequestOptions.circleCropTransform()) - .into(binding.userAvatarView) + updateUserAvatar(R.mipmap.ic_launcher) } else { - Glide.with(requireContext()) - .load(user.avatar.combineImagePath()) - .apply(RequestOptions.circleCropTransform()) - .into(binding.userAvatarView) + updateUserAvatar(user.avatar.combineImagePath()) } } } @@ -118,10 +116,7 @@ user.roleList.reformat() ) - Glide.with(requireContext()) - .load(it.data.combineImagePath()) - .apply(RequestOptions.circleCropTransform()) - .into(binding.userAvatarView) + updateUserAvatar(it.data.combineImagePath()) } } @@ -136,6 +131,22 @@ vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator } + private fun updateUserAvatar(userAvatar: Any) { + lifecycleScope.launch(Dispatchers.Main) { + val bitmap = withContext(Dispatchers.IO) { + Glide.with(requireContext()) + .asBitmap() + .load(userAvatar) + .submit() + .get() + } + val roundDrawable = bitmap.createRoundDrawable( + requireContext(), 1f, Color.WHITE + ) + binding.userAvatarView.setImageBitmap(roundDrawable) + } + } + override fun observeRequestState() { uploadImageViewModel.loadState.observe(this) { when (it) { diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/SettingPageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/SettingPageFragment.kt index 2eb2fb2..5f3baa5 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/SettingPageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/SettingPageFragment.kt @@ -2,14 +2,15 @@ import android.content.Context import android.content.Intent +import android.graphics.Color import android.net.Uri import android.os.Bundle import android.os.Vibrator import android.view.LayoutInflater import android.view.ViewGroup import android.widget.LinearLayout +import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide -import com.bumptech.glide.request.RequestOptions import com.casic.birmm.inspect.BuildConfig import com.casic.birmm.inspect.R import com.casic.birmm.inspect.databinding.SingleFragmentUserSettingsBinding @@ -18,12 +19,16 @@ import com.casic.birmm.inspect.view.HelpCenterActivity import com.casic.birmm.inspect.view.LoginActivity import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.createRoundDrawable import com.pengxh.kt.lite.extensions.getStatusBarHeight import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.ActivityStackManager import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.dialog.AlertControlDialog +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext class SettingPageFragment : KotlinBaseFragment() { @@ -49,10 +54,19 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - Glide.with(requireContext()) - .load(R.mipmap.ic_launcher) - .apply(RequestOptions.circleCropTransform()) - .into(binding.userAvatarView) + lifecycleScope.launch(Dispatchers.Main) { + val bitmap = withContext(Dispatchers.IO) { + Glide.with(requireContext()) + .asBitmap() + .load(R.mipmap.ic_launcher) + .submit() + .get() + } + val roundDrawable = bitmap.createRoundDrawable( + requireContext(), 1f, Color.WHITE + ) + binding.userAvatarView.setImageBitmap(roundDrawable) + } val isOpen = SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean binding.warningSwitch.isChecked = isOpen diff --git a/app/src/main/res/layout/fragment_user_settings.xml b/app/src/main/res/layout/fragment_user_settings.xml index fd4b56b..e5908bd 100644 --- a/app/src/main/res/layout/fragment_user_settings.xml +++ b/app/src/main/res/layout/fragment_user_settings.xml @@ -24,20 +24,12 @@ android:layout_height="match_parent" android:orientation="horizontal"> - - - - + android:layout_marginHorizontal="@dimen/dp_15" /> () { @@ -78,15 +82,9 @@ binding.userPhoneView.text = user.phone if (user.avatar.isNullOrBlank()) { - Glide.with(requireContext()) - .load(R.mipmap.ic_launcher) - .apply(RequestOptions.circleCropTransform()) - .into(binding.userAvatarView) + updateUserAvatar(R.mipmap.ic_launcher) } else { - Glide.with(requireContext()) - .load(user.avatar.combineImagePath()) - .apply(RequestOptions.circleCropTransform()) - .into(binding.userAvatarView) + updateUserAvatar(user.avatar.combineImagePath()) } } } @@ -118,10 +116,7 @@ user.roleList.reformat() ) - Glide.with(requireContext()) - .load(it.data.combineImagePath()) - .apply(RequestOptions.circleCropTransform()) - .into(binding.userAvatarView) + updateUserAvatar(it.data.combineImagePath()) } } @@ -136,6 +131,22 @@ vibrator = requireContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator } + private fun updateUserAvatar(userAvatar: Any) { + lifecycleScope.launch(Dispatchers.Main) { + val bitmap = withContext(Dispatchers.IO) { + Glide.with(requireContext()) + .asBitmap() + .load(userAvatar) + .submit() + .get() + } + val roundDrawable = bitmap.createRoundDrawable( + requireContext(), 1f, Color.WHITE + ) + binding.userAvatarView.setImageBitmap(roundDrawable) + } + } + override fun observeRequestState() { uploadImageViewModel.loadState.observe(this) { when (it) { diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/SettingPageFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/SettingPageFragment.kt index 2eb2fb2..5f3baa5 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/SettingPageFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/SettingPageFragment.kt @@ -2,14 +2,15 @@ import android.content.Context import android.content.Intent +import android.graphics.Color import android.net.Uri import android.os.Bundle import android.os.Vibrator import android.view.LayoutInflater import android.view.ViewGroup import android.widget.LinearLayout +import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide -import com.bumptech.glide.request.RequestOptions import com.casic.birmm.inspect.BuildConfig import com.casic.birmm.inspect.R import com.casic.birmm.inspect.databinding.SingleFragmentUserSettingsBinding @@ -18,12 +19,16 @@ import com.casic.birmm.inspect.view.HelpCenterActivity import com.casic.birmm.inspect.view.LoginActivity import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.createRoundDrawable import com.pengxh.kt.lite.extensions.getStatusBarHeight import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.ActivityStackManager import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.dialog.AlertControlDialog +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext class SettingPageFragment : KotlinBaseFragment() { @@ -49,10 +54,19 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { - Glide.with(requireContext()) - .load(R.mipmap.ic_launcher) - .apply(RequestOptions.circleCropTransform()) - .into(binding.userAvatarView) + lifecycleScope.launch(Dispatchers.Main) { + val bitmap = withContext(Dispatchers.IO) { + Glide.with(requireContext()) + .asBitmap() + .load(R.mipmap.ic_launcher) + .submit() + .get() + } + val roundDrawable = bitmap.createRoundDrawable( + requireContext(), 1f, Color.WHITE + ) + binding.userAvatarView.setImageBitmap(roundDrawable) + } val isOpen = SaveKeyValues.getValue(LocaleConstant.SINGLE_OPEN_WARNING, false) as Boolean binding.warningSwitch.isChecked = isOpen diff --git a/app/src/main/res/layout/fragment_user_settings.xml b/app/src/main/res/layout/fragment_user_settings.xml index fd4b56b..e5908bd 100644 --- a/app/src/main/res/layout/fragment_user_settings.xml +++ b/app/src/main/res/layout/fragment_user_settings.xml @@ -24,20 +24,12 @@ android:layout_height="match_parent" android:orientation="horizontal"> - - - - + android:layout_marginHorizontal="@dimen/dp_15" /> - - - - + android:layout_marginHorizontal="@dimen/dp_15" />