feat : 新增 用户地区接口
@@ -27,6 +27,7 @@ import androidx.fragment.app.Fragment;
|
|||||||
|
|
||||||
import com.bumptech.glide.request.RequestOptions;
|
import com.bumptech.glide.request.RequestOptions;
|
||||||
import com.chwl.app.R;
|
import com.chwl.app.R;
|
||||||
|
import com.chwl.app.ui.utils.ImageLoadUtils;
|
||||||
import com.chwl.app.ui.utils.ImageLoadUtilsV2;
|
import com.chwl.app.ui.utils.ImageLoadUtilsV2;
|
||||||
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil;
|
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil;
|
||||||
import com.chwl.library.utils.LogUtil;
|
import com.chwl.library.utils.LogUtil;
|
||||||
@@ -109,14 +110,24 @@ public class BigPhotoItemFragment extends Fragment {
|
|||||||
if (item.isNetImage() && item.isImage()) {
|
if (item.isNetImage() && item.isImage()) {
|
||||||
limitUrl = ImageLoadUtilsV2.getSizeUrl(item.getPath(), width);
|
limitUrl = ImageLoadUtilsV2.getSizeUrl(item.getPath(), width);
|
||||||
}
|
}
|
||||||
GlideApp.with(image.getContext())
|
if (limitUrl.endsWith(".gif") || limitUrl.endsWith(".GIF")) {
|
||||||
.load(limitUrl)
|
GlideApp.with(image.getContext())
|
||||||
.error(R.drawable.default_cover)
|
.asGif()
|
||||||
.placeholder(R.drawable.default_cover)
|
.load(limitUrl)
|
||||||
.apply(new RequestOptions()
|
.error(R.drawable.default_cover)
|
||||||
.override(width, argsHeight)
|
.placeholder(R.drawable.default_cover)
|
||||||
.fitCenter())
|
.apply(new RequestOptions().override(width, argsHeight).fitCenter())
|
||||||
.into(image);
|
.into(image);
|
||||||
|
} else {
|
||||||
|
GlideApp.with(image.getContext())
|
||||||
|
.asBitmap()
|
||||||
|
.load(limitUrl)
|
||||||
|
.error(R.drawable.default_cover)
|
||||||
|
.placeholder(R.drawable.default_cover)
|
||||||
|
.apply(new RequestOptions().override(width, argsHeight).fitCenter())
|
||||||
|
.into(image);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -65,21 +65,23 @@ class VipSetActivity : BaseViewBindingActivity<VipSetActivityBinding>(), ILog, V
|
|||||||
, R.drawable.vip_icon_lv8
|
, R.drawable.vip_icon_lv8
|
||||||
, R.drawable.vip_icon_lv9
|
, R.drawable.vip_icon_lv9
|
||||||
)
|
)
|
||||||
|
if (AuthModel.get().isLogin) {
|
||||||
UserModel.get().getUserInfo(AuthModel.get().currentUid)
|
UserModel.get().getUserInfoFromServerUpdate(AuthModel.get().currentUid)
|
||||||
.compose(bindToLifecycle())
|
.compose(bindToLifecycle())
|
||||||
.doOnSuccess {
|
.doOnSuccess {
|
||||||
it.userVipInfoVO?.let { vInfo->
|
it.userVipInfoVO?.let { vInfo ->
|
||||||
setSwitchView(binding.vipSetSwitch1,vInfo.enterFollow)//不被关注
|
setSwitchView(binding.vipSetSwitch1, vInfo.preventFollow)//不被关注
|
||||||
setSwitchView(binding.vipSetSwitch2,vInfo.preventTrace)//防跟随
|
setSwitchView(binding.vipSetSwitch2, vInfo.preventTrace)//防跟随
|
||||||
setSwitchView(binding.vipSetSwitch3,vInfo.enterHide)//开关隐身进房状态
|
setSwitchView(binding.vipSetSwitch3, vInfo.enterHide)//开关隐身进房状态
|
||||||
setSwitchView(binding.vipSetSwitch4,vInfo.preventKick)//防踢
|
setSwitchView(binding.vipSetSwitch4, vInfo.preventKick)//防踢
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
.doOnError {
|
||||||
.doOnError {
|
|
||||||
|
}
|
||||||
|
.subscribe()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
|
||||||
.subscribe()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun needSteepStateBar(): Boolean {
|
override fun needSteepStateBar(): Boolean {
|
||||||
|
@@ -35,6 +35,7 @@ import com.chwl.app.vip.util.VipHelper
|
|||||||
import com.chwl.core.auth.AuthModel
|
import com.chwl.core.auth.AuthModel
|
||||||
import com.chwl.core.file.FileModel
|
import com.chwl.core.file.FileModel
|
||||||
import com.chwl.core.user.UserModel
|
import com.chwl.core.user.UserModel
|
||||||
|
import com.chwl.core.user.bean.RegionInfoBean
|
||||||
import com.chwl.core.user.bean.UserInfo
|
import com.chwl.core.user.bean.UserInfo
|
||||||
import com.chwl.core.user.bean.UserPhoto
|
import com.chwl.core.user.bean.UserPhoto
|
||||||
import com.chwl.core.utils.CoreLogger
|
import com.chwl.core.utils.CoreLogger
|
||||||
@@ -299,45 +300,24 @@ class UserInfoModifyActivity : BaseViewBindingActivity<ActivityUserInfoModifyBin
|
|||||||
this@UserInfoModifyActivity,
|
this@UserInfoModifyActivity,
|
||||||
ResUtil.getString(R.string.ui_user_userinfomodifyactivity_02)
|
ResUtil.getString(R.string.ui_user_userinfomodifyactivity_02)
|
||||||
)
|
)
|
||||||
UserModel.get().areaInfo.subscribe(object : SingleObserver<List<String>> {
|
UserModel.get().areaInfo.subscribe(object : SingleObserver<List<RegionInfoBean>> {
|
||||||
override fun onSubscribe(d: Disposable) {
|
override fun onSubscribe(d: Disposable) {
|
||||||
mCompositeDisposable.add(d)
|
mCompositeDisposable.add(d)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onSuccess(areaList: List<String>) {
|
override fun onSuccess(areaList: List<RegionInfoBean>) {
|
||||||
dialogManager.dismissDialog()
|
dialogManager.dismissDialog()
|
||||||
if (areaList.isNotEmpty()) {
|
if (areaList.isNotEmpty()) {
|
||||||
UserAreaDialog.newInstance(areaList)
|
val newList = areaList.map {
|
||||||
|
it.name
|
||||||
|
}
|
||||||
|
UserAreaDialog.newInstance(newList)
|
||||||
.apply {
|
.apply {
|
||||||
setAction {
|
setAction {
|
||||||
reportArea(it)
|
val find = areaList.find { data -> data.name == it }
|
||||||
}
|
if (find != null) {
|
||||||
}.show(this@UserInfoModifyActivity)
|
reportArea(it,find.id)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
override fun onError(e: Throwable) {
|
|
||||||
dialogManager.dismissDialog()
|
|
||||||
toast(e.message)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} R.id.layout_area -> {
|
|
||||||
dialogManager.showProgressDialog(
|
|
||||||
this@UserInfoModifyActivity,
|
|
||||||
ResUtil.getString(R.string.ui_user_userinfomodifyactivity_02)
|
|
||||||
)
|
|
||||||
UserModel.get().areaInfo.subscribe(object : SingleObserver<List<String>> {
|
|
||||||
override fun onSubscribe(d: Disposable) {
|
|
||||||
mCompositeDisposable.add(d)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onSuccess(areaList: List<String>) {
|
|
||||||
dialogManager.dismissDialog()
|
|
||||||
if (areaList.isNotEmpty()) {
|
|
||||||
UserAreaDialog.newInstance(areaList)
|
|
||||||
.apply {
|
|
||||||
setAction {
|
|
||||||
reportArea(it)
|
|
||||||
}
|
}
|
||||||
}.show(this@UserInfoModifyActivity)
|
}.show(this@UserInfoModifyActivity)
|
||||||
}
|
}
|
||||||
@@ -383,13 +363,13 @@ class UserInfoModifyActivity : BaseViewBindingActivity<ActivityUserInfoModifyBin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun reportArea(area: String) {
|
private fun reportArea(area: String, id:Long) {
|
||||||
binding.tvArea.text = area
|
binding.tvArea.text = area
|
||||||
dialogManager.showProgressDialog(
|
dialogManager.showProgressDialog(
|
||||||
this@UserInfoModifyActivity,
|
this@UserInfoModifyActivity,
|
||||||
ResUtil.getString(R.string.ui_user_userinfomodifyactivity_02)
|
ResUtil.getString(R.string.ui_user_userinfomodifyactivity_02)
|
||||||
)
|
)
|
||||||
UserModel.get().saveArea(area).subscribe(object : SingleObserver<String> {
|
UserModel.get().saveArea(id).subscribe(object : SingleObserver<String> {
|
||||||
override fun onSubscribe(d: Disposable) {
|
override fun onSubscribe(d: Disposable) {
|
||||||
mCompositeDisposable.add(d)
|
mCompositeDisposable.add(d)
|
||||||
}
|
}
|
||||||
|
@@ -54,7 +54,7 @@ public class PhotoAdapter extends PagerAdapter {
|
|||||||
//拿到userphoto对象
|
//拿到userphoto对象
|
||||||
UserPhoto userPhoto = bigImagesList.get(position);
|
UserPhoto userPhoto = bigImagesList.get(position);
|
||||||
//把对象设置到imageview里面去
|
//把对象设置到imageview里面去
|
||||||
ImageLoadUtils.loadImage(context, userPhoto.getPhotoUrl(), imageView);
|
ImageLoadUtils.load(userPhoto.getPhotoUrl(), imageView);
|
||||||
//然后把imageview添加到容器里面去
|
//然后把imageview添加到容器里面去
|
||||||
container.addView(imageView);
|
container.addView(imageView);
|
||||||
imageView.setOnClickListener(new View.OnClickListener() {
|
imageView.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@@ -3,9 +3,18 @@ package com.chwl.app.ui.user.dialog
|
|||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.Gravity
|
import android.view.Gravity
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
|
import android.widget.ImageView
|
||||||
import com.chwl.app.base.BaseDialogFragment
|
import com.chwl.app.base.BaseDialogFragment
|
||||||
import com.chwl.app.databinding.DialogUserAreaPickerBinding
|
import com.chwl.app.databinding.DialogUserAreaPickerBinding
|
||||||
import com.chwl.app.ui.user.adapter.ArrayWheelAdapter
|
import com.chwl.app.ui.user.adapter.ArrayWheelAdapter
|
||||||
|
import com.chwl.core.bean.response.ServiceResult
|
||||||
|
import com.chwl.core.user.bean.RegionInfoBean
|
||||||
|
import com.chwl.core.utils.net.RxHelper
|
||||||
|
import com.chwl.library.net.rxnet.RxNet
|
||||||
|
import com.google.gson.JsonElement
|
||||||
|
import io.reactivex.Single
|
||||||
|
import retrofit2.http.GET
|
||||||
|
import retrofit2.http.Query
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
|
|
||||||
|
|
||||||
@@ -74,4 +83,19 @@ class UserAreaDialog :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getAreaList() : Single<List<RegionInfoBean>> {
|
||||||
|
return api.getRegionInfoList()
|
||||||
|
.compose(RxHelper.handleBeanData())
|
||||||
|
.compose(RxHelper.handleSchedulers())
|
||||||
|
}
|
||||||
|
|
||||||
|
private final val api = RxNet.create(Api::class.java);
|
||||||
|
interface Api{
|
||||||
|
/**
|
||||||
|
* 地区列表
|
||||||
|
*/
|
||||||
|
@GET("/regionInfo/list")
|
||||||
|
fun getRegionInfoList(): Single<ServiceResult<List<RegionInfoBean>>>
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@@ -407,6 +407,16 @@ public class ImageLoadUtils {
|
|||||||
GlideApp.with(context.getApplicationContext()).load(url).dontAnimate().into(imageView);
|
GlideApp.with(context.getApplicationContext()).load(url).dontAnimate().into(imageView);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void load(String url, ImageView imageView) {
|
||||||
|
if (url != null && !TextUtils.isEmpty(url)){
|
||||||
|
if (url.endsWith(".gif") || url.endsWith(".GIF")) {
|
||||||
|
GlideApp.with(imageView.getContext()).asGif().load(url).dontAnimate().into(imageView);
|
||||||
|
} else {
|
||||||
|
GlideApp.with(imageView.getContext()).asBitmap().load(url).dontAnimate().into(imageView);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void loadImage(ImageView imageView, String url) {
|
public static void loadImage(ImageView imageView, String url) {
|
||||||
GlideApp.with(imageView).load(url).dontAnimate().into(imageView);
|
GlideApp.with(imageView).load(url).dontAnimate().into(imageView);
|
||||||
}
|
}
|
||||||
|
@@ -103,7 +103,7 @@ public class ImageLoadUtilsV2 {
|
|||||||
if (size > 0) {
|
if (size > 0) {
|
||||||
url = getSizeUrl(url, isSquare, size);
|
url = getSizeUrl(url, isSquare, size);
|
||||||
}
|
}
|
||||||
GlideRequest<Drawable> requests = GlideApp.with(context).load(url);
|
GlideRequest<Drawable> requests = GlideApp.with(context).asDrawable().load(url);
|
||||||
if (transformations != null && transformations.length > 0) {
|
if (transformations != null && transformations.length > 0) {
|
||||||
requests = requests.transforms(transformations);
|
requests = requests.transforms(transformations);
|
||||||
}
|
}
|
||||||
|
@@ -215,7 +215,7 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
|
|||||||
GiftDialog.OnGiftDialogBtnClickListener listener) {
|
GiftDialog.OnGiftDialogBtnClickListener listener) {
|
||||||
LoadingDialog loadingDialog = new LoadingDialog(context);
|
LoadingDialog loadingDialog = new LoadingDialog(context);
|
||||||
loadingDialog.show();
|
loadingDialog.show();
|
||||||
UserModel.get().getUserInfo(uid)
|
UserModel.get().getUserInfoFromServerUpdate(uid)
|
||||||
.compose(RxHelper.bindContext(context))
|
.compose(RxHelper.bindContext(context))
|
||||||
.subscribe(userInfo -> {
|
.subscribe(userInfo -> {
|
||||||
List<ViewItem> list = ButtonItemFactory.createCommonButtonItems(
|
List<ViewItem> list = ButtonItemFactory.createCommonButtonItems(
|
||||||
|
@@ -8,6 +8,7 @@ import android.view.View
|
|||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.activity.viewModels
|
import androidx.activity.viewModels
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
|
import androidx.lifecycle.Observer
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.recyclerview.widget.GridLayoutManager
|
import androidx.recyclerview.widget.GridLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
@@ -194,6 +195,7 @@ class VipCenterActivity : BaseViewBindingActivity<ActivityVipCenterBinding>(),
|
|||||||
}
|
}
|
||||||
authInfoList = filteredList
|
authInfoList = filteredList
|
||||||
authAdapter.setNewData(filteredList)
|
authAdapter.setNewData(filteredList)
|
||||||
|
//todo do vip 奖励 配置
|
||||||
vipIdentificationsAdapter = VipCenterIdentificationsAdapter(this, it, this)
|
vipIdentificationsAdapter = VipCenterIdentificationsAdapter(this, it, this)
|
||||||
recyclerView.adapter = vipIdentificationsAdapter
|
recyclerView.adapter = vipIdentificationsAdapter
|
||||||
}
|
}
|
||||||
@@ -268,6 +270,14 @@ class VipCenterActivity : BaseViewBindingActivity<ActivityVipCenterBinding>(),
|
|||||||
getString(R.string.me_failed_to_get_aristocrat_data).toast()
|
getString(R.string.me_failed_to_get_aristocrat_data).toast()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vipViewModel.openVipData.observe(this,object : Observer<Boolean?> {
|
||||||
|
override fun onChanged(value: Boolean?) {
|
||||||
|
requestChargeList{
|
||||||
|
vipViewModel.getVipPageInfo()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onItemClick(position: Int) {
|
override fun onItemClick(position: Int) {
|
||||||
|
@@ -50,6 +50,9 @@ class VipViewModel : BaseViewModel() {
|
|||||||
|
|
||||||
val getVipRebateSuccessFlow = MutableSharedFlow<VipRebateInfo>()
|
val getVipRebateSuccessFlow = MutableSharedFlow<VipRebateInfo>()
|
||||||
|
|
||||||
|
val openVipData = MutableLiveData<Boolean>()
|
||||||
|
|
||||||
|
|
||||||
// private val _sendBroadcastLiveData = MutableLiveData<Boolean>()
|
// private val _sendBroadcastLiveData = MutableLiveData<Boolean>()
|
||||||
// val sendBroadcastLiveData: LiveData<Boolean> = _sendBroadcastLiveData
|
// val sendBroadcastLiveData: LiveData<Boolean> = _sendBroadcastLiveData
|
||||||
|
|
||||||
@@ -163,6 +166,7 @@ class VipViewModel : BaseViewModel() {
|
|||||||
fun openVipWithDiamond(vipLevel: Int) {
|
fun openVipWithDiamond(vipLevel: Int) {
|
||||||
safeLaunch(true) {
|
safeLaunch(true) {
|
||||||
VipModel.openVipWithDiamond(vipLevel)
|
VipModel.openVipWithDiamond(vipLevel)
|
||||||
|
openVipData.postValue(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -39,8 +39,7 @@ class VipCenterIdentificationsAdapter(
|
|||||||
|
|
||||||
|
|
||||||
val filteredList = items.filter {
|
val filteredList = items.filter {
|
||||||
it.authType == 1 || it.authType == 5 || it.authType == 8 || it.authType ==
|
it.authType == 1 || it.authType == 5 || it.authType == 8 || it.authType == 11 || it.authType == 12
|
||||||
11 || it.authType == 12
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val item = filteredList[position]
|
val item = filteredList[position]
|
||||||
@@ -114,6 +113,19 @@ class VipCenterIdentificationsAdapter(
|
|||||||
9 -> holder.contentImageView.setImageResource(R.drawable.vip_center_identification_entry_lv9)
|
9 -> holder.contentImageView.setImageResource(R.drawable.vip_center_identification_entry_lv9)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
5 -> {
|
||||||
|
// resourceName = "vip_center_identification_entry_lv$lv"
|
||||||
|
when (it.vipLevel) {
|
||||||
|
4 -> holder.contentImageView.setImageResource(R.drawable.vip_center_identification_entry_lv4)
|
||||||
|
5 -> holder.contentImageView.setImageResource(R.drawable.vip_center_identification_entry_lv5)
|
||||||
|
6 -> holder.contentImageView.setImageResource(R.drawable.vip_center_identification_entry_lv6)
|
||||||
|
7 -> holder.contentImageView.setImageResource(R.drawable.vip_center_identification_entry_lv7)
|
||||||
|
8 -> holder.contentImageView.setImageResource(R.drawable.vip_center_identification_entry_lv8)
|
||||||
|
9 -> holder.contentImageView.setImageResource(R.drawable.vip_center_identification_entry_lv9)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// val resourceId = context.resources
|
// val resourceId = context.resources
|
||||||
|
Before Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 9.0 KiB |
After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 25 KiB |
BIN
app/src/module_treasure_box/res/drawable-ar-xhdpi/ic_box_1.webp
Normal file
After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 26 KiB |
BIN
app/src/module_treasure_box/res/drawable-ar-xhdpi/ic_box_10.webp
Normal file
After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 150 KiB |
After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 9.5 KiB |
After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 25 KiB |
BIN
app/src/module_treasure_box/res/drawable-en-xhdpi/ic_box_1.webp
Normal file
After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 26 KiB |
BIN
app/src/module_treasure_box/res/drawable-en-xhdpi/ic_box_10.webp
Normal file
After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 148 KiB |
After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 8.1 KiB |
Before Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 71 KiB |
After Width: | Height: | Size: 8.1 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 8.1 KiB |
After Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 858 B |
Before Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 602 B |
Before Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 884 B |
Before Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 662 B |
Before Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 842 B |
Before Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 540 B |
Before Width: | Height: | Size: 9.1 KiB |
After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 1.1 MiB |
After Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 8.8 KiB |
Before Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 7.0 KiB |