修改首页和房间寻爱之旅ui

This commit is contained in:
wushaocheng
2022-10-27 23:42:40 +08:00
parent f3fa5cf12c
commit b6a0760d4a
23 changed files with 1831 additions and 386 deletions

View File

@@ -112,18 +112,21 @@ public abstract class BaseMicroViewAdapter extends RecyclerView.Adapter<Recycler
public void setBossViewGender(TextView tvNick, boolean isMale) {
if (AvRoomDataManager.get().isOpenPKMode()) { // pk模式不加性别背景
tvNick.setCompoundDrawablePadding(4);
tvNick.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
} else {
if (isMale) {
tvNick.setCompoundDrawablePadding(4);
tvNick.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_gender_male, 0);
} else {
tvNick.setCompoundDrawablePadding(4);
tvNick.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_gender_female, 0);
}
}
// if (AvRoomDataManager.get().isOpenPKMode()) { // pk模式不加性别背景
// tvNick.setCompoundDrawablePadding(4);
// tvNick.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
// } else {
// if (isMale) {
// tvNick.setCompoundDrawablePadding(4);
// tvNick.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_gender_male, 0);
// } else {
// tvNick.setCompoundDrawablePadding(4);
// tvNick.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_gender_female, 0);
// }
// }
}
public class NormalMicroViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

File diff suppressed because it is too large Load Diff

View File

@@ -30,6 +30,7 @@ import com.yizhuan.erban.avroom.activity.AVRoomActivity
import com.yizhuan.erban.avroom.helper.AnimHelper
import com.yizhuan.erban.common.svga.SimpleSvgaCallback
import com.yizhuan.erban.databinding.LayoutRoomEffectBinding
import com.yizhuan.erban.treasure_box.activity.TreasureBoxActivity
import com.yizhuan.erban.ui.utils.ImageLoadUtils
import com.yizhuan.erban.ui.utils.isDestroyed
import com.yizhuan.erban.ui.utils.load
@@ -126,7 +127,6 @@ class RoomEffectView @JvmOverloads constructor(
private val drawGiftPlayHelper: DrawGiftPlayHelper by lazy { DrawGiftPlayHelper(context as Activity) }
private fun loopCarAnim() {
if (context.isDestroyed()) return
isSvgaPlaying = false
@@ -150,9 +150,17 @@ class RoomEffectView @JvmOverloads constructor(
.subscribe { roomEvent: RoomEvent? ->
if (roomEvent == null || AvRoomDataManager.get().isSelfGamePlaying) return@subscribe
when (roomEvent.event) {
RoomEvent.BOX_NOTIFY -> addBoxNotify(roomEvent.chatRoomMessage)
RoomEvent.BOX_NOTIFY -> {
if((mContext as AVRoomActivity).isTopActivity) {
addBoxNotify(roomEvent.chatRoomMessage)
}
}
RoomEvent.DATING_ALL_NOTIFY -> addDatingAllNotify(roomEvent.chatRoomMessage)
RoomEvent.BOX_NOTIFY_SVGA -> addBoxNotifyBySVGA(roomEvent.chatRoomMessage)
RoomEvent.BOX_NOTIFY_SVGA -> {
if((mContext as AVRoomActivity).isTopActivity) {
addBoxNotifyBySVGA(roomEvent.chatRoomMessage)
}
}
RoomEvent.RADISH_NOTIFY,
RoomEvent.RADISH_NOTIFY_SVGA -> addRadishNotify(roomEvent.chatRoomMessage)
RoomEvent.ROOM_GIFT_COMPOUND -> addGiftCompoundNotify(roomEvent.chatRoomMessage)
@@ -253,18 +261,27 @@ class RoomEffectView @JvmOverloads constructor(
textView.setBackgroundResource(defaultBg)
ImageLoadUtils.loadBackground(mContext, backgroundUrl, defaultBg, textView)
val text = SpannableBuilder()
.append(ResUtil.getString(R.string.avroom_widget_roomeffectview_01), ForegroundColorSpan(Color.WHITE))
.append(
ResUtil.getString(R.string.avroom_widget_roomeffectview_01),
ForegroundColorSpan(Color.WHITE)
)
.append(
getShortString(oneUserNick, 8),
ForegroundColorSpan(resources.getColor(R.color.notice_nick))
)
.append(ResUtil.getString(R.string.avroom_widget_roomeffectview_02), ForegroundColorSpan(Color.WHITE))
.append(
ResUtil.getString(R.string.avroom_widget_roomeffectview_02),
ForegroundColorSpan(Color.WHITE)
)
.append(
getShortString(anotherUserNick, 8),
ForegroundColorSpan(resources.getColor(R.color.notice_nick))
)
.append(
ResUtil.getString(R.string.avroom_widget_roomeffectview_03) + getShortString(roomTitle, 10) + ")" + sweetWords,
ResUtil.getString(R.string.avroom_widget_roomeffectview_03) + getShortString(
roomTitle,
10
) + ")" + sweetWords,
ForegroundColorSpan(Color.WHITE)
)
textView.text = text.build()
@@ -310,22 +327,34 @@ class RoomEffectView @JvmOverloads constructor(
val attachment = message?.attachment as? RoomReceivedLuckyGiftAttachment ?: return
val noticeInfo = attachment.luckyBagNoticeInfo ?: return
val text = SpannableBuilder()
.append(ResUtil.getString(R.string.avroom_widget_roomeffectview_04), ForegroundColorSpan(Color.WHITE))
.append(
ResUtil.getString(R.string.avroom_widget_roomeffectview_04),
ForegroundColorSpan(Color.WHITE)
)
.append(
noticeInfo.nick.subAndReplaceDot(6) + " ",
ForegroundColorSpan(resources.getColor(R.color.notice_nick))
)
.append(ResUtil.getString(R.string.avroom_widget_roomeffectview_05), ForegroundColorSpan(Color.WHITE))
.append(
ResUtil.getString(R.string.avroom_widget_roomeffectview_05),
ForegroundColorSpan(Color.WHITE)
)
.append(
noticeInfo.luckyBagName + " ",
ForegroundColorSpan(resources.getColor(R.color.notice_nick))
)
.append(ResUtil.getString(R.string.avroom_widget_roomeffectview_06), ForegroundColorSpan(Color.WHITE))
.append(
ResUtil.getString(R.string.avroom_widget_roomeffectview_06),
ForegroundColorSpan(Color.WHITE)
)
.append(
noticeInfo.goldPrice + " ",
ForegroundColorSpan(resources.getColor(R.color.notice_nick))
)
.append(ResUtil.getString(R.string.avroom_widget_roomeffectview_07), ForegroundColorSpan(Color.WHITE))
.append(
ResUtil.getString(R.string.avroom_widget_roomeffectview_07),
ForegroundColorSpan(Color.WHITE)
)
.append(
noticeInfo.giftName,
ForegroundColorSpan(resources.getColor(R.color.notice_nick))
@@ -408,15 +437,22 @@ class RoomEffectView @JvmOverloads constructor(
val textView =
LayoutInflater.from(mContext).inflate(R.layout.layout_room_box_notify, null) as TextView
val text = SpannableBuilder()
.append(ResUtil.getString(R.string.avroom_widget_roomeffectview_08), ForegroundColorSpan(Color.WHITE))
.append(
ResUtil.getString(R.string.avroom_widget_roomeffectview_08),
ForegroundColorSpan(Color.WHITE)
)
.append(
attachment.nick + " ",
ForegroundColorSpan(resources.getColor(R.color.notice_nick))
)
.append(ResUtil.getString(R.string.avroom_widget_roomeffectview_09) + attachment.boxTypeStr + ResUtil.getString(R.string.avroom_widget_roomeffectview_010), ForegroundColorSpan(Color.WHITE))
.append(
ResUtil.getString(R.string.avroom_widget_roomeffectview_09) + attachment.boxTypeStr + ResUtil.getString(
R.string.avroom_widget_roomeffectview_010
), ForegroundColorSpan(Color.WHITE)
)
.append(
attachment.prizeName,
ForegroundColorSpan(resources.getColor(R.color.notice_gift))
ForegroundColorSpan(resources.getColor(R.color.color_00EAFF))
)
if (attachment.prizeNum > 1) {
text.append("x" + attachment.prizeNum, ForegroundColorSpan(Color.WHITE))
@@ -446,25 +482,34 @@ class RoomEffectView @JvmOverloads constructor(
.observeOn(AndroidSchedulers.mainThread())
.takeWhile { messagesBoxSVGA.size > 0 }
.subscribe {
if((mContext as AVRoomActivity).isTopActivity) {
showBoxNotifyBySVGA(
messagesBoxSVGA.removeAt(0)
)
}
}
}
}
private fun showBoxNotifyBySVGA(chatRoomMessage: ChatRoomMessage) {
val attachment = chatRoomMessage.attachment as RoomBoxPrizeAttachment
val text = SpannableBuilder()
.append(ResUtil.getString(R.string.avroom_widget_roomeffectview_011), ForegroundColorSpan(Color.WHITE))
.append(
ResUtil.getString(R.string.avroom_widget_roomeffectview_011),
ForegroundColorSpan(Color.WHITE)
)
.append(
attachment.nick + " ",
ForegroundColorSpan(resources.getColor(R.color.notice_nick))
)
.append(ResUtil.getString(R.string.avroom_widget_roomeffectview_012) + attachment.boxTypeStr + ResUtil.getString(R.string.avroom_widget_roomeffectview_013), ForegroundColorSpan(Color.WHITE))
.append(
ResUtil.getString(R.string.avroom_widget_roomeffectview_012) + attachment.boxTypeStr + ResUtil.getString(
R.string.avroom_widget_roomeffectview_013
), ForegroundColorSpan(Color.WHITE)
)
.append(
attachment.prizeName,
ForegroundColorSpan(resources.getColor(R.color.notice_gift))
ForegroundColorSpan(resources.getColor(R.color.color_00EAFF))
)
if (attachment.prizeNum > 1) {
text.append("x" + attachment.prizeNum, ForegroundColorSpan(Color.WHITE))
@@ -497,7 +542,7 @@ class RoomEffectView @JvmOverloads constructor(
1.0f,
0.0f,
false
), "tgs_copywriting"
), "noble_text_tx"
)
val drawable = SVGADrawable(videoItem, dynamicEntity)
svgaImageView.setImageDrawable(drawable)
@@ -535,12 +580,18 @@ class RoomEffectView @JvmOverloads constructor(
.inflate(R.layout.layout_room_radish_notify, null) as TextView
textView.setBackgroundResource(R.drawable.bg_radish_notice)
val text = SpannableBuilder()
.append(ResUtil.getString(R.string.avroom_widget_roomeffectview_014), ForegroundColorSpan(Color.WHITE))
.append(
ResUtil.getString(R.string.avroom_widget_roomeffectview_014),
ForegroundColorSpan(Color.WHITE)
)
.append(
attachment.nick.subAndReplaceDot(6) + " ",
ForegroundColorSpan(resources.getColor(R.color.notice_nick))
)
.append(attachment.boxTypeStr + ResUtil.getString(R.string.avroom_widget_roomeffectview_015), ForegroundColorSpan(Color.WHITE))
.append(
attachment.boxTypeStr + ResUtil.getString(R.string.avroom_widget_roomeffectview_015),
ForegroundColorSpan(Color.WHITE)
)
.append(
attachment.prizeName,
ForegroundColorSpan(resources.getColor(R.color.notice_gift))
@@ -603,12 +654,18 @@ class RoomEffectView @JvmOverloads constructor(
private fun showRadishNotifyBySVGA(chatRoomMessage: ChatRoomMessage?) {
val attachment = chatRoomMessage?.attachment as? RoomBoxPrizeAttachment ?: return
val text = SpannableBuilder()
.append(ResUtil.getString(R.string.avroom_widget_roomeffectview_016), ForegroundColorSpan(Color.WHITE))
.append(
ResUtil.getString(R.string.avroom_widget_roomeffectview_016),
ForegroundColorSpan(Color.WHITE)
)
.append(
attachment.nick + " ",
ForegroundColorSpan(resources.getColor(R.color.notice_nick))
)
.append(attachment.boxTypeStr + ResUtil.getString(R.string.avroom_widget_roomeffectview_017), ForegroundColorSpan(Color.WHITE))
.append(
attachment.boxTypeStr + ResUtil.getString(R.string.avroom_widget_roomeffectview_017),
ForegroundColorSpan(Color.WHITE)
)
.append(
attachment.prizeName,
ForegroundColorSpan(resources.getColor(R.color.notice_gift))
@@ -778,10 +835,16 @@ class RoomEffectView @JvmOverloads constructor(
enterText = ResUtil.getString(R.string.avroom_widget_roomeffectview_019)
}
if (fromType == AVRoomActivity.FROM_TYPE_USER) {
enterText = ResUtil.getString(R.string.avroom_widget_roomeffectview_020) + fromNick.subAndReplaceDot(7) + ResUtil.getString(R.string.avroom_widget_roomeffectview_021)
enterText =
ResUtil.getString(R.string.avroom_widget_roomeffectview_020) + fromNick.subAndReplaceDot(
7
) + ResUtil.getString(R.string.avroom_widget_roomeffectview_021)
}
if (fromType == AVRoomActivity.FROM_TYPE_GAME_RECOMMEND) {
enterText = ResUtil.getString(R.string.avroom_widget_roomeffectview_022) + fromNick.subAndReplaceDot(7) + ResUtil.getString(R.string.avroom_widget_roomeffectview_023)
enterText =
ResUtil.getString(R.string.avroom_widget_roomeffectview_022) + fromNick.subAndReplaceDot(
7
) + ResUtil.getString(R.string.avroom_widget_roomeffectview_023)
}
text.append(enterText, ForegroundColorSpan(Color.WHITE))
textView.text = text.build()
@@ -1288,7 +1351,10 @@ class RoomEffectView @JvmOverloads constructor(
val rootView = LayoutInflater.from(mContext).inflate(R.layout.layout_room_rank_notify, null)
val textView = rootView.findViewById<TextView>(R.id.tv_content)
val text = MessageView.SpannableBuilder(textView)
.append(ResUtil.getString(R.string.avroom_widget_roomeffectview_025), ForegroundColorSpan(Color.WHITE))
.append(
ResUtil.getString(R.string.avroom_widget_roomeffectview_025),
ForegroundColorSpan(Color.WHITE)
)
.append("${msgBean.title}」房間", ForegroundColorSpan(Color.parseColor("#FFFC4C")))
.append(msgBean.desc, ForegroundColorSpan(Color.WHITE))
.append("TOP1", ForegroundColorSpan(Color.parseColor("#FFFC4C")))

View File

@@ -22,7 +22,6 @@ public class HomeTopAdapter extends BaseBannerAdapter<HomeTabMapInfo> {
@Override
protected void bindData(BaseViewHolder<HomeTabMapInfo> helper, HomeTabMapInfo item, int position, int pageSize) {
helper.setText(R.id.tv_online_number, item.getOnlineNum() + "");
helper.setText(R.id.tv_title, item.getTitle());

View File

@@ -5,7 +5,9 @@ import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import com.orhanobut.logger.Logger;
import com.trello.rxlifecycle3.components.support.RxAppCompatActivity;
import com.umeng.commonsdk.statistics.common.DeviceConfig;
import com.yizhuan.erban.R;
import com.yizhuan.erban.UIHelper;
import com.yizhuan.erban.audio.VoiceMatchActivity;
@@ -44,6 +46,7 @@ import com.yizhuan.erban.ui.withdraw.BinderAlipayActivity;
import com.yizhuan.erban.vip.VipMainActivity;
import com.yizhuan.tutu.mentoring_relationship.activity.MentoringRelationshipActivity;
import com.yizhuan.xchat_android_core.DemoCache;
import com.yizhuan.xchat_android_core.UriProvider;
import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.community.event.SquareTaskEvent;
import com.yizhuan.xchat_android_core.im.custom.bean.RouterType;
@@ -59,6 +62,7 @@ import com.yizhuan.xchat_android_core.utils.net.BeanObserver;
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
import com.yizhuan.xchat_android_core.withdraw.WithdrawModel;
import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack;
import com.yizhuan.xchat_android_library.utils.AppMetaDataUtil;
import com.yizhuan.xchat_android_library.utils.JavaUtil;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
@@ -95,7 +99,16 @@ public class RouterHandler {
CommonWebViewActivity.start(context, routerValue);
break;
case RouterType.RECHARGE:
if(AppMetaDataUtil.getChannelID().equals("google")) {
ChargeActivity.start(context);
}else {
CommonWebViewActivity.start(
context, UriProvider.getOfficialPay(
4,
DeviceConfig.getDeviceId(context)
)
);
}
break;
case RouterType.PERSON:
UserInfoActivity.Companion.start(context, JavaUtil.str2long(routerValue));

View File

@@ -27,6 +27,7 @@ import com.yizhuan.xchat_android_core.DemoCache;
import com.yizhuan.xchat_android_core.UriProvider;
import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.auth.event.LoginEvent;
import com.yizhuan.xchat_android_library.utils.AppMetaDataUtil;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@@ -61,6 +62,11 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
private void onFindViews() {
tvProtocol = findViewById(R.id.tv_protocol);
tvProtocolHint = findViewById(R.id.tv_protocol_hint);
if(AppMetaDataUtil.getChannelID().equals("google")){
findViewById(R.id.tv_google).setVisibility(View.VISIBLE);
}else {
findViewById(R.id.tv_google).setVisibility(View.GONE);
}
}
private void onSetListener() {

View File

@@ -65,7 +65,7 @@ public class LoginPasswordActivity extends BaseActivity {
edtPassword.addTextChangedListener(textWatcher);
btnNext.setOnClickListener(v -> login());
findViewById(R.id.tv_forget_password).setOnClickListener(v ->
getDialogManager().showOkCancelWithTitleDialog(getString(R.string.login_contact_service), "LINEtlw20220510", getString(R.string.button_ok), "", true, () -> {
getDialogManager().showOkCancelWithTitleDialog(getString(R.string.login_contact_service), "LINEpekoyuyin", getString(R.string.button_ok), "", true, () -> {
})
);

View File

@@ -33,6 +33,7 @@ import com.yizhuan.erban.ui.webview.event.ShowNavEvent;
import com.yizhuan.erban.ui.webview.event.TaroPayResultEvent;
import com.yizhuan.erban.ui.widget.ShareDialog;
import com.yizhuan.xchat_android_constants.XChatConstants;
import com.yizhuan.xchat_android_core.UriProvider;
import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.decoration.bean.DecorationStoreRouterType;
import com.yizhuan.xchat_android_core.file.FileModel;
@@ -108,7 +109,16 @@ public class JSInterface {
@JavascriptInterface
public void openChargePage() {
if (context != null) {
if(AppMetaDataUtil.getChannelID().equals("google")) {
ChargeActivity.start(context);
}else {
CommonWebViewActivity.start(
context, UriProvider.getOfficialPay(
4,
DeviceConfig.getDeviceId(context)
)
);
}
}
}

View File

@@ -1,153 +0,0 @@
package com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.indicators;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.Shader;
import android.view.View;
import android.view.animation.Interpolator;
import android.view.animation.LinearInterpolator;
import com.yizhuan.erban.ui.widget.magicindicator.FragmentContainerHelper;
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.model.PositionData;
import java.util.List;
/**
* 包裹住内容区域的指示器类似天天快报的切换效果需要和IMeasurablePagerTitleView配合使用
* 博客: http://hackware.lucode.net
* Created by hackware on 2016/6/26.
*/
public class WrapPagerIndicator extends View implements IPagerIndicator {
private final int[] mGradientColors = {0xFF13E2F5, 0xFFCC66FF};
//渐变位置
private final float[] mGradientPosition = new float[]{0, 1};
private int mVerticalPadding;
private int mHorizontalPadding;
private int mFillColor;
private float mRoundRadius;
private Interpolator mStartInterpolator = new LinearInterpolator();
private Interpolator mEndInterpolator = new LinearInterpolator();
private List<PositionData> mPositionDataList;
private Paint mPaint;
private RectF mRect = new RectF();
private boolean mRoundRadiusSet;
public WrapPagerIndicator(Context context) {
super(context);
init(context);
}
private void init(Context context) {
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaint.setStyle(Paint.Style.FILL);
mHorizontalPadding = UIUtil.dip2px(context, 10);
}
@Override
protected void onDraw(Canvas canvas) {
//mPaint.setColor(mFillColor);
canvas.drawRoundRect(mRect, mRoundRadius, mRoundRadius, mPaint);
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (mPositionDataList == null || mPositionDataList.isEmpty()) {
return;
}
// 计算锚点位置
PositionData current = FragmentContainerHelper.getImitativePositionData(mPositionDataList, position);
PositionData next = FragmentContainerHelper.getImitativePositionData(mPositionDataList, position + 1);
mRect.left = current.mContentLeft - mHorizontalPadding + (next.mContentLeft - current.mContentLeft) * mEndInterpolator.getInterpolation(positionOffset);
mRect.top = current.mContentTop - mVerticalPadding;
mRect.right = current.mContentRight + mHorizontalPadding + (next.mContentRight - current.mContentRight) * mStartInterpolator.getInterpolation(positionOffset);
mRect.bottom = current.mContentBottom + mVerticalPadding;
mPaint.setShader(new LinearGradient(mRect.left, mRect.top, mRect.right, mRect.bottom, mGradientColors, mGradientPosition, Shader.TileMode.CLAMP));
if (!mRoundRadiusSet) {
mRoundRadius = mRect.height() / 2;
}
invalidate();
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
@Override
public void onPositionDataProvide(List<PositionData> dataList) {
mPositionDataList = dataList;
}
public Paint getPaint() {
return mPaint;
}
public int getVerticalPadding() {
return mVerticalPadding;
}
public void setVerticalPadding(int verticalPadding) {
mVerticalPadding = verticalPadding;
}
public int getHorizontalPadding() {
return mHorizontalPadding;
}
public void setHorizontalPadding(int horizontalPadding) {
mHorizontalPadding = horizontalPadding;
}
public int getFillColor() {
return mFillColor;
}
public void setFillColor(int fillColor) {
mFillColor = fillColor;
}
public float getRoundRadius() {
return mRoundRadius;
}
public void setRoundRadius(float roundRadius) {
mRoundRadius = roundRadius;
mRoundRadiusSet = true;
}
public Interpolator getStartInterpolator() {
return mStartInterpolator;
}
public void setStartInterpolator(Interpolator startInterpolator) {
mStartInterpolator = startInterpolator;
if (mStartInterpolator == null) {
mStartInterpolator = new LinearInterpolator();
}
}
public Interpolator getEndInterpolator() {
return mEndInterpolator;
}
public void setEndInterpolator(Interpolator endInterpolator) {
mEndInterpolator = endInterpolator;
if (mEndInterpolator == null) {
mEndInterpolator = new LinearInterpolator();
}
}
}

View File

@@ -0,0 +1,120 @@
package com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.indicators
import android.content.Context
import android.graphics.*
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.abs.IPagerIndicator
import android.view.animation.LinearInterpolator
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.model.PositionData
import android.view.View
import android.view.animation.Interpolator
import com.yizhuan.erban.R
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil
import com.yizhuan.erban.ui.widget.magicindicator.FragmentContainerHelper
/**
* 包裹住内容区域的指示器类似天天快报的切换效果需要和IMeasurablePagerTitleView配合使用
* 博客: http://hackware.lucode.net
* Created by hackware on 2016/6/26.
*/
class WrapPagerIndicator(context: Context) : View(context), IPagerIndicator {
private val mGradientColors = intArrayOf(-0xec1d0b, -0x339901)
//渐变位置
private val mGradientPosition = floatArrayOf(0f, 1f)
var verticalPadding = 0
var horizontalPadding = 0
var fillColor = 0
private var mRoundRadius = 0f
private var mStartInterpolator: Interpolator? = LinearInterpolator()
private var mEndInterpolator: Interpolator? = LinearInterpolator()
private var mPositionDataList: List<PositionData>? = null
var paint: Paint? = null
private set
private val mRect = RectF()
private var mRoundRadiusSet = false
init {
init(context)
}
private fun init(context: Context) {
paint = Paint(Paint.ANTI_ALIAS_FLAG)
paint!!.style = Paint.Style.FILL
horizontalPadding = UIUtil.dip2px(context, 10.0)
}
private val mIndicatorBmp: Bitmap by lazy {
BitmapFactory.decodeResource(
context.resources,
R.drawable.bg_home_tab
)
}
override fun onDraw(canvas: Canvas) {
//mPaint.setColor(mFillColor);
canvas.drawBitmap(mIndicatorBmp, null, mRect, paint!!)
// canvas.drawRoundRect(mRect, mRoundRadius, mRoundRadius, paint!!)
}
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
if (mPositionDataList == null || mPositionDataList!!.isEmpty()) {
return
}
// 计算锚点位置
val current = FragmentContainerHelper.getImitativePositionData(mPositionDataList, position)
val next = FragmentContainerHelper.getImitativePositionData(mPositionDataList, position + 1)
mRect.left =
current.mContentLeft - horizontalPadding + (next.mContentLeft - current.mContentLeft) * mEndInterpolator!!.getInterpolation(
positionOffset
)
mRect.top = (current.mContentTop - verticalPadding).toFloat()
mRect.right =
current.mContentRight + horizontalPadding + (next.mContentRight - current.mContentRight) * mStartInterpolator!!.getInterpolation(
positionOffset
)
mRect.bottom = (current.mContentBottom + verticalPadding).toFloat()
paint!!.shader = LinearGradient(
mRect.left,
mRect.top,
mRect.right,
mRect.bottom,
mGradientColors,
mGradientPosition,
Shader.TileMode.CLAMP
)
if (!mRoundRadiusSet) {
mRoundRadius = mRect.height() / 2
}
invalidate()
}
override fun onPageSelected(position: Int) {}
override fun onPageScrollStateChanged(state: Int) {}
override fun onPositionDataProvide(dataList: List<PositionData>) {
mPositionDataList = dataList
}
var roundRadius: Float
get() = mRoundRadius
set(roundRadius) {
mRoundRadius = roundRadius
mRoundRadiusSet = true
}
var startInterpolator: Interpolator?
get() = mStartInterpolator
set(startInterpolator) {
mStartInterpolator = startInterpolator
if (mStartInterpolator == null) {
mStartInterpolator = LinearInterpolator()
}
}
var endInterpolator: Interpolator?
get() = mEndInterpolator
set(endInterpolator) {
mEndInterpolator = endInterpolator
if (mEndInterpolator == null) {
mEndInterpolator = LinearInterpolator()
}
}
}

View File

@@ -76,7 +76,8 @@ class VipMainActivity : BaseViewBindingActivity<ActivityVipMainBinding>(),
private lateinit var rvDelegate: RVDelegate<VipAuthInfo>
private val vipViewModel: VipViewModel by viewModels()
private var billingManager: BillingManager? = null
private var bean: ChargeBean? = null
private var bean: ChargeBean? = null//google
private var chargeInfo: ChargeBean? = null//official
@SuppressLint("SetTextI18n")
override fun init() {
@@ -222,19 +223,18 @@ class VipMainActivity : BaseViewBindingActivity<ActivityVipMainBinding>(),
}
}
}
@SuppressLint("CheckResult", "SetTextI18n")
private fun loadData() {
PayModel.get().getChargeList(2, AuthModel.get().currentUid)
.compose(bindToLifecycle())
.subscribe(
{
val chargeInfo = it.list.getOrNull(0)
chargeInfo?.let { chargeBean ->
binding.tvOpenVip.text =
"${chargeBean.getMoney()}${getString(R.string.me_immediately_become_a_Peko_nobleman)}"
binding.tvOpenVip.setOnClickListener {
if(AppMetaDataUtil.getChannelID().equals("google")){
bean?.let { charge ->
StatisticManager.Instance()
.onEvent(
StatisticsProtocol.EVENT_VIP_OPEN_CLICK,
getString(R.string.me_open_nobleman_click_event)
)
buyProduct(charge.skuDetails)
}
}else{
chargeInfo?.let {
StatisticManager.Instance()
.onEvent(
StatisticsProtocol.EVENT_VIP_OPEN_CLICK,
@@ -246,6 +246,21 @@ class VipMainActivity : BaseViewBindingActivity<ActivityVipMainBinding>(),
)
}
}
}
}
@SuppressLint("CheckResult", "SetTextI18n")
private fun loadData() {
PayModel.get().getChargeList(2, AuthModel.get().currentUid)
.compose(bindToLifecycle())
.subscribe(
{
chargeInfo = it.list.getOrNull(0)
chargeInfo?.let { chargeBean ->
binding.tvOpenVip.text =
"${chargeBean.getMoney()}${getString(R.string.me_immediately_become_a_Peko_nobleman)}"
}
}, {
it.printStackTrace()
}
@@ -358,16 +373,6 @@ class VipMainActivity : BaseViewBindingActivity<ActivityVipMainBinding>(),
binding.tvOpenVip.text = "${
bean?.getMoney()
}${getString(R.string.me_immediately_become_a_Peko_nobleman)}"
binding.tvOpenVip.setOnClickListener {
StatisticManager.Instance()
.onEvent(
StatisticsProtocol.EVENT_VIP_OPEN_CLICK,
getString(R.string.me_open_nobleman_click_event)
)
bean?.let { charge ->
buyProduct(charge.skuDetails)
}
}
}
}
}
@@ -472,6 +477,8 @@ class VipMainActivity : BaseViewBindingActivity<ActivityVipMainBinding>(),
super.onDestroy()
EventBus.getDefault().unregister(this)
billingManager?.destroy()
bean = null
chargeInfo = null
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {

View File

@@ -21,24 +21,6 @@
app:riv_corner_radius_top_left="8dp"
app:riv_corner_radius_top_right="8dp" />
<TextView
android:id="@+id/tv_online_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:layout_marginBottom="2dp"
android:background="@drawable/shape_item_room_online_member"
android:gravity="center"
android:maxLines="1"
android:paddingStart="4dp"
android:paddingEnd="4dp"
android:textColor="@color/white"
android:textSize="@dimen/sp_10"
app:drawableStartCompat="@drawable/ic_home_online_tag"
app:layout_constraintBottom_toBottomOf="@+id/iv_cover"
app:layout_constraintStart_toStartOf="parent"
tools:text="100" />
<ImageView
android:id="@+id/iv_tab_label"
android:layout_width="43dp"
@@ -88,7 +70,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_5"
android:layout_marginTop="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_10"
android:ellipsize="end"
android:gravity="center"

View File

@@ -2,6 +2,7 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:background="@color/color_white"
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -46,7 +47,8 @@
android:background="@drawable/shape_white_top_25dp"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginTop="-20dp"
app:layout_constraintTop_toBottomOf="@+id/view_bg_top"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
@@ -106,6 +108,8 @@
android:textSize="12sp"
app:drawableEndCompat="@drawable/ic_login_arrow_right" />
</LinearLayout>
<TextView
android:id="@+id/tv_protocol_hint"
android:layout_width="wrap_content"
@@ -118,7 +122,9 @@
android:textColor="@color/white"
android:textSize="@dimen/sp_10"
android:visibility="gone"
/>
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@+id/tv_protocol"/>
<CheckBox
android:id="@+id/tv_protocol"
@@ -137,6 +143,4 @@
app:layout_constraintStart_toStartOf="parent"
tools:ignore="SpUsage" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -234,6 +234,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_8"
android:gravity="center_vertical"
android:orientation="horizontal"
app:layout_constraintTop_toBottomOf="@id/ll_id">

View File

@@ -3,6 +3,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:clipChildren="false"
android:clipToPadding="false"
android:paddingTop="11dp"
@@ -124,11 +125,11 @@
android:visibility="gone"
tools:text="@string/layout_item_boss_micro_01" />
<LinearLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/ll_nick"
android:layout_width="wrap_content"
android:layout_width="52dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_15"
android:layout_marginStart="@dimen/dp_20"
android:layout_below="@+id/micro_layout"
android:gravity="center_vertical">
@@ -136,7 +137,8 @@
android:id="@+id/iv_tag"
android:layout_width="wrap_content"
android:layout_height="15dp"
android:layout_marginEnd="5dp" />
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/nick"
@@ -144,23 +146,30 @@
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="center_vertical"
android:maxWidth="120dp"
android:maxWidth="52dp"
android:maxLines="1"
android:singleLine="true"
android:text=""
android:textColor="@color/white"
android:textSize="13sp"
tools:text="@string/layout_item_boss_micro_02" />
android:textSize="@dimen/sp_10"
android:layout_marginStart="@dimen/dp_5"
app:layout_goneMarginStart="0dp"
tools:text="@string/layout_item_boss_micro_02"
app:layout_constraintStart_toEndOf="@+id/iv_tag"
app:layout_constraintTop_toTopOf="parent"/>
<LinearLayout
android:id="@+id/ll_charm_click"
android:layout_width="wrap_content"
android:layout_height="16dp"
android:layout_marginStart="4dp"
android:layout_gravity="center_horizontal"
android:background="@drawable/shape_bg_of_mic_charm"
android:orientation="horizontal"
android:paddingStart="4dp"
android:paddingEnd="4dp">
android:paddingEnd="4dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/nick">
<ImageView
android:layout_width="11dp"
@@ -183,13 +192,13 @@
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<FrameLayout
android:id="@+id/fr_title"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginEnd="80dp"
android:layout_marginStart="@dimen/dp_25"
android:layout_marginStart="@dimen/dp_20"
android:background="@drawable/bg_micro_title"
android:layout_toEndOf="@+id/micro_layout"
android:layout_width="match_parent"

View File

@@ -620,5 +620,6 @@
<color name="color_75FBE2">#75FBE2</color>
<color name="color_A8041D">#A8041D</color>
<color name="color_141B3B">#141B3B</color>
<color name="color_00EAFF">#00EAFF</color>
</resources>

View File

@@ -13,7 +13,7 @@
android:id="@+id/cl_user_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_20"
app:layout_constraintTop_toTopOf="parent">

View File

@@ -72,7 +72,7 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
super.onCreate(savedInstanceState);
//这里的height用MATCH_PARENT状态栏会被顶上去,不知道什么鬼
height = ScreenUtil.screenHeight - ScreenUtil.getStatusBarHeight(context);
getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, height);
getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
getWindow().setGravity(Gravity.BOTTOM);
subscribeEvent();
}
@@ -245,18 +245,6 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ScreenUtil.dip2px(21));
layoutParams.setMargins(0, 0, 0, ScreenUtil.dip2px(5));
linearLayout.setLayoutParams(layoutParams);
switch (prizeInfo.getPrizeLevel()) {
case 3:
default:
linearLayout.setBackgroundResource(R.drawable.bg_box_prize_hint_v3);
break;
case 4:
linearLayout.setBackgroundResource(R.drawable.bg_box_prize_hint_v4);
break;
case 5:
linearLayout.setBackgroundResource(R.drawable.bg_box_prize_hint_v5);
break;
}
linearLayout.setPadding(ScreenUtil.dip2px(10), 0, ScreenUtil.dip2px(10), 0);
mBinding.llPrizeHint.addView(linearLayout);
if (mBinding.llPrizeHint.getChildCount() > 6) {

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:type="linear" android:useLevel="true" android:startColor="#ffee8833" android:endColor="#fff7d377" android:angle="90" />
<stroke android:width="1dp" android:color="#fff0ce" />
<corners
android:radius="@dimen/dp_9" />
</shape>

View File

@@ -19,7 +19,7 @@
<View
android:id="@+id/view_bg"
android:layout_width="285dp"
android:layout_height="416dp"
android:layout_height="434dp"
android:layout_marginTop="20dp"
android:background="@drawable/treasure_box_bg_normal"
android:onClick="@{click}"
@@ -33,7 +33,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="35dp"
android:layout_marginTop="44dp"
android:onClick="@{click}"
android:src="@drawable/treasure_box_rank"
app:layout_constraintStart_toStartOf="@id/view_bg"
@@ -43,7 +43,7 @@
android:id="@+id/iv_box_meteor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="35dp"
android:layout_marginTop="44dp"
android:src="@drawable/treasure_box_meteor"
app:layout_constraintEnd_toEndOf="@+id/view_bg"
app:layout_constraintStart_toStartOf="@+id/view_bg"
@@ -57,9 +57,7 @@
android:background="@drawable/bg_1affff_r8"
android:gravity="center"
android:paddingStart="@dimen/dp_8"
android:paddingTop="@dimen/dp_2"
android:paddingEnd="@dimen/dp_8"
android:paddingBottom="@dimen/dp_2"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
app:layout_constraintEnd_toEndOf="@id/view_bg"
@@ -71,7 +69,7 @@
android:id="@+id/iv_more"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="35dp"
android:layout_marginTop="44dp"
android:layout_marginEnd="18dp"
android:gravity="center"
android:onClick="@{click}"
@@ -96,14 +94,14 @@
<ImageView
android:id="@+id/iv_first_box"
android:layout_width="285dp"
android:layout_height="0dp"
android:scaleType="fitXY"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_box_temp"
app:layout_constraintBottom_toBottomOf="@+id/view_bg"
android:layout_marginTop="@dimen/dp_60"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_rank" />
app:layout_constraintTop_toTopOf="@+id/view_bg" />
<com.opensource.svgaplayer.SVGAImageView
android:id="@+id/iv_box"
@@ -194,7 +192,7 @@
android:layout_marginStart="25dp"
android:layout_marginTop="15dp"
android:layout_marginEnd="25dp"
android:layout_marginBottom="10dp"
android:layout_marginBottom="@dimen/dp_26"
android:onClick="@{click}"
android:src="@drawable/click_open_box_selector"
app:layout_constraintBottom_toBottomOf="@id/view_bg"
@@ -208,8 +206,9 @@
android:layout_marginStart="7dp"
android:gravity="bottom"
android:orientation="vertical"
android:layout_marginBottom="110dp"
app:layout_constraintStart_toStartOf="@id/view_bg"
app:layout_constraintTop_toBottomOf="@id/iv_box" />
app:layout_constraintBottom_toBottomOf="@+id/view_bg" />
<com.opensource.svgaplayer.SVGAImageView
android:id="@+id/svga_gift_bg"
@@ -227,5 +226,10 @@
tools:background="@color/white"
tools:visibility="gone" />
<com.yizhuan.erban.avroom.widget.RoomEffectBoxView
android:id="@+id/effect_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -8,7 +8,7 @@
android:orientation="horizontal"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:background="@drawable/bg_box_prize_hint_v3">
android:background="@drawable/bg_ee8833_f7d377_r9">
<TextView
android:id="@+id/tv_prize_name"
@@ -17,7 +17,7 @@
android:includeFontPadding="false"
android:lines="1"
android:textColor="@color/white"
android:textSize="11sp"
android:textSize="@dimen/sp_10"
tools:text="@string/layout_item_box_prize_hint_01" />
<TextView
@@ -28,7 +28,7 @@
android:lines="1"
android:layout_marginStart="5dp"
android:textColor="@color/white"
android:textSize="11sp"
android:textSize="@dimen/sp_10"
tools:text="x12" />
</LinearLayout>

View File

@@ -24,5 +24,5 @@ only_arm64=false
channel_file=channel.txt
version_name=1.1.0.0
version_code=110
version_name=1.1.1.0
version_code=111

View File

@@ -1,88 +1,88 @@
<?xml version="1.0" encoding="utf-8"?>
<PopoEmoticons>
<Catalog Title="default">
<Emoticon ID="emoticon_emoji_01" Tag="[可]" File="emoji_01.webp" />
<Emoticon ID="emoticon_emoji_01" Tag="[可]" File="emoji_01.webp" />
<Emoticon ID="emoticon_emoji_0" Tag="[大笑]" File="emoji_00.webp" />
<Emoticon ID="emoticon_emoji_02" Tag="[色]" File="emoji_02.webp" />
<Emoticon ID="emoticon_emoji_03" Tag="[]" File="emoji_03.webp" />
<Emoticon ID="emoticon_emoji_04" Tag="[]" File="emoji_04.webp" />
<Emoticon ID="emoticon_emoji_03" Tag="[]" File="emoji_03.webp" />
<Emoticon ID="emoticon_emoji_04" Tag="[]" File="emoji_04.webp" />
<Emoticon ID="emoticon_emoji_05" Tag="[呆]" File="emoji_05.webp" />
<Emoticon ID="emoticon_emoji_06" Tag="[口水]" File="emoji_06.webp" />
<Emoticon ID="emoticon_emoji_145" Tag="[汗]" File="emoji_145.webp" />
<Emoticon ID="emoticon_emoji_07" Tag="[呲牙]" File="emoji_07.webp" />
<Emoticon ID="emoticon_emoji_08" Tag="[鬼]" File="emoji_08.webp" />
<Emoticon ID="emoticon_emoji_08" Tag="[鬼]" File="emoji_08.webp" />
<Emoticon ID="emoticon_emoji_09" Tag="[害羞]" File="emoji_09.webp" />
<Emoticon ID="emoticon_emoji_10" Tag="[偷笑]" File="emoji_10.webp" />
<Emoticon ID="emoticon_emoji_11" Tag="[皮]" File="emoji_11.webp" />
<Emoticon ID="emoticon_emoji_12" Tag="[可]" File="emoji_12.webp" />
<Emoticon ID="emoticon_emoji_11" Tag="[調皮]" File="emoji_11.webp" />
<Emoticon ID="emoticon_emoji_12" Tag="[可]" File="emoji_12.webp" />
<Emoticon ID="emoticon_emoji_13" Tag="[敲]" File="emoji_13.webp" />
<Emoticon ID="emoticon_emoji_14" Tag="[惊讶]" File="emoji_14.webp" />
<Emoticon ID="emoticon_emoji_14" Tag="[驚訝]" File="emoji_14.webp" />
<Emoticon ID="emoticon_emoji_15" Tag="[流感]" File="emoji_15.webp" />
<Emoticon ID="emoticon_emoji_16" Tag="[委屈]" File="emoji_16.webp" />
<Emoticon ID="emoticon_emoji_17" Tag="[流]" File="emoji_17.webp" />
<Emoticon ID="emoticon_emoji_17" Tag="[流]" File="emoji_17.webp" />
<Emoticon ID="emoticon_emoji_18" Tag="[嚎哭]" File="emoji_18.webp" />
<Emoticon ID="emoticon_emoji_19" Tag="[恐]" File="emoji_19.webp" />
<Emoticon ID="emoticon_emoji_19" Tag="[恐]" File="emoji_19.webp" />
<Emoticon ID="emoticon_emoji_20" Tag="[怒]" File="emoji_20.webp" />
<Emoticon ID="emoticon_emoji_21" Tag="[酷]" File="emoji_21.webp" />
<Emoticon ID="emoticon_emoji_22" Tag="[不]" File="emoji_22.webp" />
<Emoticon ID="emoticon_emoji_23" Tag="[鄙]" File="emoji_23.webp" />
<Emoticon ID="emoticon_emoji_24" Tag="[阿陀佛]" File="emoji_24.webp" />
<Emoticon ID="emoticon_emoji_22" Tag="[不]" File="emoji_22.webp" />
<Emoticon ID="emoticon_emoji_23" Tag="[鄙]" File="emoji_23.webp" />
<Emoticon ID="emoticon_emoji_24" Tag="[阿陀佛]" File="emoji_24.webp" />
<Emoticon ID="emoticon_emoji_25" Tag="[奸笑]" File="emoji_25.webp" />
<Emoticon ID="emoticon_emoji_26" Tag="[睡]" File="emoji_26.webp" />
<Emoticon ID="emoticon_emoji_26" Tag="[睡]" File="emoji_26.webp" />
<Emoticon ID="emoticon_emoji_27" Tag="[口罩]" File="emoji_27.webp" />
<Emoticon ID="emoticon_emoji_28" Tag="[努力]" File="emoji_28.webp" />
<Emoticon ID="emoticon_emoji_29" Tag="[鼻孔]" File="emoji_29.webp" />
<Emoticon ID="emoticon_emoji_30" Tag="[疑]" File="emoji_30.webp" />
<Emoticon ID="emoticon_emoji_31" Tag="[怒]" File="emoji_31.webp" />
<Emoticon ID="emoticon_emoji_32" Tag="[]" File="emoji_32.webp" />
<Emoticon ID="emoticon_emoji_33" Tag="[吐]" File="emoji_33.webp" />
<Emoticon ID="emoticon_emoji_29" Tag="[鼻孔]" File="emoji_29.webp" />
<Emoticon ID="emoticon_emoji_30" Tag="[疑]" File="emoji_30.webp" />
<Emoticon ID="emoticon_emoji_31" Tag="[怒]" File="emoji_31.webp" />
<Emoticon ID="emoticon_emoji_32" Tag="[]" File="emoji_32.webp" />
<Emoticon ID="emoticon_emoji_33" Tag="[吐]" File="emoji_33.webp" />
<Emoticon ID="emoticon_emoji_160" Tag="[拜一拜]" File="emoji_160.webp" />
<Emoticon ID="emoticon_emoji_161" Tag="[喜]" File="emoji_161.webp" />
<Emoticon ID="emoticon_emoji_161" Tag="[喜]" File="emoji_161.webp" />
<Emoticon ID="emoticon_emoji_162" Tag="[流汗]" File="emoji_162.webp" />
<Emoticon ID="emoticon_emoji_163" Tag="[萌]" File="emoji_163.webp" />
<Emoticon ID="emoticon_emoji_163" Tag="[萌]" File="emoji_163.webp" />
<Emoticon ID="emoticon_emoji_164" Tag="[默契眨眼]" File="emoji_164.webp" />
<Emoticon ID="emoticon_emoji_165" Tag="[香拜佛]" File="emoji_165.webp" />
<Emoticon ID="emoticon_emoji_165" Tag="[香拜佛]" File="emoji_165.webp" />
<Emoticon ID="emoticon_emoji_166" Tag="[晚安]" File="emoji_166.webp" />
<Emoticon ID="emoticon_emoji_34" Tag="[]" File="emoji_34.webp" />
<Emoticon ID="emoticon_emoji_34" Tag="[]" File="emoji_34.webp" />
<Emoticon ID="emoticon_emoji_35" Tag="[弱]" File="emoji_35.webp" />
<Emoticon ID="emoticon_emoji_36" Tag="[OK]" File="emoji_36.webp" />
<Emoticon ID="emoticon_emoji_37" Tag="[拳]" File="emoji_37.webp" />
<Emoticon ID="emoticon_emoji_38" Tag="[利]" File="emoji_38.webp" />
<Emoticon ID="emoticon_emoji_37" Tag="[拳]" File="emoji_37.webp" />
<Emoticon ID="emoticon_emoji_38" Tag="[利]" File="emoji_38.webp" />
<Emoticon ID="emoticon_emoji_39" Tag="[鼓掌]" File="emoji_39.webp" />
<Emoticon ID="emoticon_emoji_167" Tag="[握手]" File="emoji_167.webp" />
<Emoticon ID="emoticon_emoji_40" Tag="[怒]" File="emoji_40.webp" />
<Emoticon ID="emoticon_emoji_41" Tag="[骷]" File="emoji_41.webp" />
<Emoticon ID="emoticon_emoji_40" Tag="[怒]" File="emoji_40.webp" />
<Emoticon ID="emoticon_emoji_41" Tag="[骷]" File="emoji_41.webp" />
<Emoticon ID="emoticon_emoji_42" Tag="[便便]" File="emoji_42.webp" />
<Emoticon ID="emoticon_emoji_43" Tag="[火]" File="emoji_43.webp" />
<Emoticon ID="emoticon_emoji_44" Tag="[溜]" File="emoji_44.webp" />
<Emoticon ID="emoticon_emoji_45" Tag="[心]" File="emoji_45.webp" />
<Emoticon ID="emoticon_emoji_45" Tag="[心]" File="emoji_45.webp" />
<Emoticon ID="emoticon_emoji_46" Tag="[心碎]" File="emoji_46.webp" />
<Emoticon ID="emoticon_emoji_47" Tag="[情]" File="emoji_47.webp" />
<Emoticon ID="emoticon_emoji_47" Tag="[情]" File="emoji_47.webp" />
<Emoticon ID="emoticon_emoji_48" Tag="[唇]" File="emoji_48.webp" />
<Emoticon ID="emoticon_emoji_49" Tag="[戒指]" File="emoji_49.webp" />
<Emoticon ID="emoticon_emoji_50" Tag="[石]" File="emoji_50.webp" />
<Emoticon ID="emoticon_emoji_51" Tag="[太]" File="emoji_51.webp" />
<Emoticon ID="emoticon_emoji_52" Tag="[有晴]" File="emoji_52.webp" />
<Emoticon ID="emoticon_emoji_53" Tag="[多]" File="emoji_53.webp" />
<Emoticon ID="emoticon_emoji_50" Tag="[石]" File="emoji_50.webp" />
<Emoticon ID="emoticon_emoji_51" Tag="[太]" File="emoji_51.webp" />
<Emoticon ID="emoticon_emoji_52" Tag="[有晴]" File="emoji_52.webp" />
<Emoticon ID="emoticon_emoji_53" Tag="[多]" File="emoji_53.webp" />
<Emoticon ID="emoticon_emoji_54" Tag="[雷]" File="emoji_54.webp" />
<Emoticon ID="emoticon_emoji_55" Tag="[雨]" File="emoji_55.webp" />
<Emoticon ID="emoticon_emoji_56" Tag="[雪花]" File="emoji_56.webp" />
<Emoticon ID="emoticon_emoji_57" Tag="[人]" File="emoji_57.webp" />
<Emoticon ID="emoticon_emoji_57" Tag="[人]" File="emoji_57.webp" />
<Emoticon ID="emoticon_emoji_58" Tag="[帽子]" File="emoji_58.webp" />
<Emoticon ID="emoticon_emoji_59" Tag="[皇冠]" File="emoji_59.webp" />
<Emoticon ID="emoticon_emoji_60" Tag="[球]" File="emoji_60.webp" />
<Emoticon ID="emoticon_emoji_60" Tag="[球]" File="emoji_60.webp" />
<Emoticon ID="emoticon_emoji_61" Tag="[足球]" File="emoji_61.webp" />
<Emoticon ID="emoticon_emoji_62" Tag="[球]" File="emoji_62.webp" />
<Emoticon ID="emoticon_emoji_63" Tag="[球]" File="emoji_63.webp" />
<Emoticon ID="emoticon_emoji_64" Tag="[球]" File="emoji_64.webp" />
<Emoticon ID="emoticon_emoji_62" Tag="[球]" File="emoji_62.webp" />
<Emoticon ID="emoticon_emoji_63" Tag="[球]" File="emoji_63.webp" />
<Emoticon ID="emoticon_emoji_64" Tag="[球]" File="emoji_64.webp" />
<Emoticon ID="emoticon_emoji_65" Tag="[咖啡]" File="emoji_65.webp" />
<Emoticon ID="emoticon_emoji_66" Tag="[啤酒]" File="emoji_66.webp" />
<Emoticon ID="emoticon_emoji_67" Tag="[杯]" File="emoji_67.webp" />
<Emoticon ID="emoticon_emoji_68" Tag="[檬汁]" File="emoji_68.webp" />
<Emoticon ID="emoticon_emoji_67" Tag="[杯]" File="emoji_67.webp" />
<Emoticon ID="emoticon_emoji_68" Tag="[檬汁]" File="emoji_68.webp" />
<Emoticon ID="emoticon_emoji_69" Tag="[餐具]" File="emoji_69.webp" />
<Emoticon ID="emoticon_emoji_70" Tag="[堡]" File="emoji_70.webp" />
<Emoticon ID="emoticon_emoji_71" Tag="[腿]" File="emoji_71.webp" />
<Emoticon ID="emoticon_emoji_72" Tag="[面]" File="emoji_72.webp" />
<Emoticon ID="emoticon_emoji_70" Tag="[堡]" File="emoji_70.webp" />
<Emoticon ID="emoticon_emoji_71" Tag="[腿]" File="emoji_71.webp" />
<Emoticon ID="emoticon_emoji_72" Tag="[面]" File="emoji_72.webp" />
<Emoticon ID="emoticon_emoji_73" Tag="[冰淇淋]" File="emoji_73.webp" />
<Emoticon ID="emoticon_emoji_74" Tag="[沙冰]" File="emoji_74.webp" />
<Emoticon ID="emoticon_emoji_75" Tag="[生日蛋糕]" File="emoji_75.webp" />
@@ -91,41 +91,41 @@
<Emoticon ID="emoticon_emoji_78" Tag="[葡萄]" File="emoji_78.webp" />
<Emoticon ID="emoticon_emoji_79" Tag="[西瓜]" File="emoji_79.webp" />
<Emoticon ID="emoticon_emoji_80" Tag="[光碟]" File="emoji_80.webp" />
<Emoticon ID="emoticon_emoji_81" Tag="[手]" File="emoji_81.webp" />
<Emoticon ID="emoticon_emoji_82" Tag="[电话]" File="emoji_82.webp" />
<Emoticon ID="emoticon_emoji_83" Tag="[电视]" File="emoji_83.webp" />
<Emoticon ID="emoticon_emoji_84" Tag="[声音开启]" File="emoji_84.webp" />
<Emoticon ID="emoticon_emoji_85" Tag="[声音关闭]" File="emoji_85.webp" />
<Emoticon ID="emoticon_emoji_86" Tag="[铃铛]" File="emoji_86.webp" />
<Emoticon ID="emoticon_emoji_87" Tag="[锁头]" File="emoji_87.webp" />
<Emoticon ID="emoticon_emoji_88" Tag="[放大]" File="emoji_88.webp" />
<Emoticon ID="emoticon_emoji_89" Tag="[泡]" File="emoji_89.webp" />
<Emoticon ID="emoticon_emoji_90" Tag="[锤头]" File="emoji_90.webp" />
<Emoticon ID="emoticon_emoji_91" Tag="[]" File="emoji_91.webp" />
<Emoticon ID="emoticon_emoji_92" Tag="[炸]" File="emoji_92.webp" />
<Emoticon ID="emoticon_emoji_93" Tag="[]" File="emoji_93.webp" />
<Emoticon ID="emoticon_emoji_81" Tag="[手]" File="emoji_81.webp" />
<Emoticon ID="emoticon_emoji_82" Tag="[電話]" File="emoji_82.webp" />
<Emoticon ID="emoticon_emoji_83" Tag="[電視]" File="emoji_83.webp" />
<Emoticon ID="emoticon_emoji_84" Tag="[聲音開啟]" File="emoji_84.webp" />
<Emoticon ID="emoticon_emoji_85" Tag="[聲音關閉]" File="emoji_85.webp" />
<Emoticon ID="emoticon_emoji_86" Tag="[鈴鐺]" File="emoji_86.webp" />
<Emoticon ID="emoticon_emoji_87" Tag="[鎖頭]" File="emoji_87.webp" />
<Emoticon ID="emoticon_emoji_88" Tag="[放大]" File="emoji_88.webp" />
<Emoticon ID="emoticon_emoji_89" Tag="[泡]" File="emoji_89.webp" />
<Emoticon ID="emoticon_emoji_90" Tag="[錘頭]" File="emoji_90.webp" />
<Emoticon ID="emoticon_emoji_91" Tag="[]" File="emoji_91.webp" />
<Emoticon ID="emoticon_emoji_92" Tag="[炸]" File="emoji_92.webp" />
<Emoticon ID="emoticon_emoji_93" Tag="[]" File="emoji_93.webp" />
<Emoticon ID="emoticon_emoji_94" Tag="[刀]" File="emoji_94.webp" />
<Emoticon ID="emoticon_emoji_95" Tag="[]" File="emoji_95.webp" />
<Emoticon ID="emoticon_emoji_96" Tag="[打]" File="emoji_96.webp" />
<Emoticon ID="emoticon_emoji_97" Tag="[袋]" File="emoji_97.webp" />
<Emoticon ID="emoticon_emoji_98" Tag="[票]" File="emoji_98.webp" />
<Emoticon ID="emoticon_emoji_99" Tag="[行卡]" File="emoji_99.webp" />
<Emoticon ID="emoticon_emoji_95" Tag="[]" File="emoji_95.webp" />
<Emoticon ID="emoticon_emoji_96" Tag="[打]" File="emoji_96.webp" />
<Emoticon ID="emoticon_emoji_97" Tag="[袋]" File="emoji_97.webp" />
<Emoticon ID="emoticon_emoji_98" Tag="[票]" File="emoji_98.webp" />
<Emoticon ID="emoticon_emoji_99" Tag="[行卡]" File="emoji_99.webp" />
<Emoticon ID="emoticon_emoji_100" Tag="[手柄]" File="emoji_100.webp" />
<Emoticon ID="emoticon_emoji_101" Tag="[麻]" File="emoji_101.webp" />
<Emoticon ID="emoticon_emoji_102" Tag="[色板]" File="emoji_102.webp" />
<Emoticon ID="emoticon_emoji_103" Tag="[影]" File="emoji_103.webp" />
<Emoticon ID="emoticon_emoji_104" Tag="[麦克风]" File="emoji_104.webp" />
<Emoticon ID="emoticon_emoji_105" Tag="[耳]" File="emoji_105.webp" />
<Emoticon ID="emoticon_emoji_106" Tag="[音]" File="emoji_106.webp" />
<Emoticon ID="emoticon_emoji_101" Tag="[麻]" File="emoji_101.webp" />
<Emoticon ID="emoticon_emoji_102" Tag="[調色板]" File="emoji_102.webp" />
<Emoticon ID="emoticon_emoji_103" Tag="[影]" File="emoji_103.webp" />
<Emoticon ID="emoticon_emoji_104" Tag="[麥克風]" File="emoji_104.webp" />
<Emoticon ID="emoticon_emoji_105" Tag="[耳]" File="emoji_105.webp" />
<Emoticon ID="emoticon_emoji_106" Tag="[音]" File="emoji_106.webp" />
<Emoticon ID="emoticon_emoji_107" Tag="[吉他]" File="emoji_107.webp" />
<Emoticon ID="emoticon_emoji_108" Tag="[火箭]" File="emoji_108.webp" />
<Emoticon ID="emoticon_emoji_109" Tag="[飞机]" File="emoji_109.webp" />
<Emoticon ID="emoticon_emoji_110" Tag="[火]" File="emoji_110.webp" />
<Emoticon ID="emoticon_emoji_109" Tag="[飛機]" File="emoji_109.webp" />
<Emoticon ID="emoticon_emoji_110" Tag="[火]" File="emoji_110.webp" />
<Emoticon ID="emoticon_emoji_111" Tag="[公交]" File="emoji_111.webp" />
<Emoticon ID="emoticon_emoji_112" Tag="[轿车]" File="emoji_112.webp" />
<Emoticon ID="emoticon_emoji_113" Tag="[出租]" File="emoji_113.webp" />
<Emoticon ID="emoticon_emoji_114" Tag="[警]" File="emoji_114.webp" />
<Emoticon ID="emoticon_emoji_115" Tag="[自行]" File="emoji_115.webp" />
<Emoticon ID="emoticon_emoji_112" Tag="[轎車]" File="emoji_112.webp" />
<Emoticon ID="emoticon_emoji_113" Tag="[出租]" File="emoji_113.webp" />
<Emoticon ID="emoticon_emoji_114" Tag="[警]" File="emoji_114.webp" />
<Emoticon ID="emoticon_emoji_115" Tag="[自行]" File="emoji_115.webp" />
</Catalog>
</PopoEmoticons>