1.0封存版本

This commit is contained in:
zlzw 2023-11-09 14:47:14 +08:00
parent 217eb0bd41
commit 526e05f554
153 changed files with 513 additions and 175 deletions

View File

@ -84,9 +84,24 @@ android {
} }
applicationVariants.all { variant -> applicationVariants.all { variant ->
String variantName = variant.name.capitalize()
def processManifestTask = project.tasks.getByName("process${variantName}Manifest")
processManifestTask.doLast { pm ->
String manifestPath = "build/intermediates/bundle_manifest/release/bundle-manifest/AndroidManifest.xml"
def isGooglePlay = rootProject.ext.manifestPlaceholders.isGooglePlay
if (file(manifestPath).exists() && isGooglePlay) {
def manifestContent = file(manifestPath).getText()
manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />', '')
file(manifestPath).write(manifestContent)
} else {
print "not Exists = " + manifestPath
}
}
variant.outputs.all { variant.outputs.all {
outputFileName = "[${new Date().format("MM-dd", TimeZone.getTimeZone("GMT+8"))}]1v1社交-${rootProject.ext.android.otoversionName}-${variant.buildType.name}.apk" outputFileName = "[${new Date().format("MM-dd", TimeZone.getTimeZone("GMT+8"))}]友聊-${rootProject.ext.android.otoversionName}-${variant.buildType.name}.apk"
} }
} }
@ -95,7 +110,7 @@ android {
minSdkVersion rootProject.ext.android.minSdkVersion minSdkVersion rootProject.ext.android.minSdkVersion
targetSdkVersion rootProject.ext.android.targetSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion
versionCode rootProject.ext.android.otoversionCode versionCode rootProject.ext.android.otoversionCode
versionName rootProject.ext.android.otoversionName+new Date().format("HHmm", TimeZone.getTimeZone("GMT+8")) versionName rootProject.ext.android.otoversionName
manifestPlaceholders = rootProject.ext.manifestPlaceholders manifestPlaceholders = rootProject.ext.manifestPlaceholders
ndk { ndk {
abiFilters "armeabi-v7a", "arm64-v8a" abiFilters "armeabi-v7a", "arm64-v8a"
@ -169,7 +184,7 @@ dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
//common //common
api project(path: ':common') api project(path: ':common')
api project(path:':FaceUnity')// //api project(path:':FaceUnity')//
api project(path:':Share') api project(path:':Share')
api project(path:':TabLayout') api project(path:':TabLayout')

View File

@ -1,21 +1,250 @@
# Add project specific ProGuard rules here. # Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the # By default, the flags in this file are appended to flags specified
# proguardFiles setting in build.gradle. # in /Users/macpro/Library/Android/sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
# #
# For more details, see # For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html # http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following # If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface # and specify the fully qualified class name to the JavaScript interface
# class: # class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *; public *;
#} }
# Uncomment this to preserve the line number information for # Uncomment this to preserve the groupLast number information for
# debugging stack traces. # debugging stack traces.
#-keepattributes SourceFile,LineNumberTable -keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to # If you keep the groupLast number information, uncomment this to
# hide the original source file name. # hide the original source file name.
#-renamesourcefileattribute SourceFile -renamesourcefileattribute SourceFile
-keep class com.yunbao.**{
public <methods>;
protected <methods>;
}
-keep class com.shayu.**{
public <methods>;
protected <methods>;
}
-keep class * implements com.yunbao.common.bean.BaseModel {
*;
}
-keep class com.yunbao.common.bean.** {
*;
}
-keep class com.shayu.onetoone.bean.** {
*;
}
-keep class com.yunbao.common.views.weight.VerticalViewPager$LayoutParams{
*;
}
-keep class android.**{
*;
}
-keep class **.R$* {
public static <fields>;
}
-keep class com.tencent.** { *; }
-keep class com.adjust.sdk.**{ *; }
-keep class com.google.android.gms.common.ConnectionResult {
int SUCCESS;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {
com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context);
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {
java.lang.String getId();
boolean isLimitAdTrackingEnabled();
}
-keep public class com.android.installreferrer.**{ *; }
-keep class * implements android.os.Parcelable.**{*;}
-keep class * implements android.os.Serializable.**{*;}
-dontwarn javax.annotation.**
-dontwarn javax.inject.**
# OkHttp3
-dontwarn okhttp3.logging.**
-keep class okhttp3.internal.**{*;}
-dontwarn okio.**
#okhttp
-dontwarn okhttp3.**
-keep class okhttp3.**{*;}
#okio
-dontwarn okio.**
-keep class okio.**{*;}
# Retrofit
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature-keepattributes,Exceptions
# RxJava RxAndroid
-dontwarn java.util.concurrent.Flow*
-dontwarn sun.misc.**
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
long producerIndex;
long consumerIndex;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef* {
rx.internal.util.atomic.LinkedQueueNode* producerNode;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef* {
rx.internal.util.atomic.LinkedQueueNode* consumerNode;
}
# Gson
-keep class com.google.gson.stream.** { *; }
##---------------Begin: proguard configuration for Gson ----------
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature
# For using GSON @Expose annotation
-keepattributes *Annotation*
# Gson specific classes
-dontwarn sun.misc.**
#-keep class com.google.gson.stream.** { *; }
# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { <fields>; }
# Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
-keep class * extends com.google.gson.TypeAdapter
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer
# Prevent R8 from leaving Data object members always null
-keepclassmembers,allowobfuscation class * {
@com.google.gson.annotations.SerializedName <fields>;
}
# Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher.
-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken
##---------------End: proguard configuration for Gson ----------
-keepattributes EnclosingMethod
#--------融云
-keepattributes Exceptions,InnerClasses
-keepattributes Signature
-keep class io.rong.** {*;}
-keep class cn.rongcloud.** {*;}
-keep class * implements io.rong.imlib.model.MessageContent {*;}
-dontwarn io.rong.push.**
-dontnote com.xiaomi.**
-dontnote com.google.android.gms.gcm.**
-dontnote io.rong.**
# 下方混淆使用了融云 IMKit 提供的 locationKit 位置插件时才需要配置,可参考高德官网的混淆方式:https://lbs.amap.com/api/android-sdk/guide/create-project/dev-attention
-keep class com.amap.api.maps.**{*;}
-keep class com.autonavi.**{*;}
-keep class com.amap.api.trace.**{*;}
-keep class com.amap.api.location.**{*;}
-keep class com.amap.api.fence.**{*;}
-keep class com.loc.**{*;}
-keep class com.autonavi.aps.amapapi.model.**{*;}
-keep class com.amap.api.services.**{*;}
-ignorewarnings
#--------科大讯飞
-keep class com.iflytek.**{*;}
-keepattributes Signature
#EvenBus
-keepattributes *Annotation*
-keepclassmembers class * {
@org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
# If using AsyncExecutord, keep required constructor of default event used.
# Adjust the class name if a custom failure event type is used.
-keepclassmembers class org.greenrobot.eventbus.util.ThrowableFailureEvent {
<init>(java.lang.Throwable);
}
# Accessed via reflection, avoid renaming or removal
-keep class org.greenrobot.eventbus.android.AndroidComponentsImpl*
#--------ARouter
-keep public class com.alibaba.android.arouter.routes.**{*;}
-keep public class com.alibaba.android.arouter.facade.**{*;}
-keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;}
# If you use the byType method to obtain Service, add the following rules to protect the interface:
-keep interface * implements com.alibaba.android.arouter.facade.template.IProvider
# If single-type injection is used, that is, no interface is defined to implement IProvider, the following rules need to be added to protect the implementation
# -keep class * implements com.alibaba.android.arouter.facade.template.IProvider
#----retrofit2
-keepattributes Signature, InnerClasses, EnclosingMethod
-keepattributes RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations
-keepattributes AnnotationDefault
-keepclassmembers,allowshrinking,allowobfuscation interface * {
@retrofit2.http.* <methods>;
}
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement*
-dontwarn javax.annotation.**
-dontwarn kotlin.Unit
-dontwarn retrofit2.KotlinExtensions*
-dontwarn retrofit2.KotlinExtensions$*
-if interface * { @retrofit2.http.* <methods>; }
-keep,allowobfuscation interface <1>
-if interface * { @retrofit2.http.* <methods>; }
-keep,allowobfuscation interface * extends <1>
-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation
-if interface * { @retrofit2.http.* public *** *(...); }
-keep,allowoptimization,allowshrinking,allowobfuscation class <3>
#-----glide
-keep public class com.bumptech.glide.** {*;}
-keep public class jp.co.cyberagent.** {*;}
-dontwarn jp.co.cyberagent.android.gpuimage.**
-printconfiguration tmp/full-r8-config.txt
#---美颜模块需要暴露出来的参数名
-keep class com.yunbao.faceunity.utils.FURenderer{
public static java.lang.String BUNDLE_AI_FACE;
}
-keep class com.yunbao.faceunity.utils.FaceUnityConfig{
public static java.lang.String BUNDLE_FACE_BEAUTIFICATION;
}
-keep class com.faceunity.wrapper.faceunity$LoadConfig*{
private static boolean sLoadedLibrary;
}
#--融云语聊--
-keep public class cn.rongcloud.** {*;}
-ignorewarnings
-keep class io.rong.imkit.** {*;}

View File

@ -82,6 +82,7 @@
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> --> <!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> -->
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> --> <!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> -->
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" /> <uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<application <application
android:name=".AppContext" android:name=".AppContext"

View File

@ -328,7 +328,8 @@ public class LauncherActivity extends AbsOTOActivity implements View.OnClickList
} }
checkUidAndToken(); checkUidAndToken();
} else if (i == R.id.container) { } else if (i == R.id.container) {
clickAD(); // clickAD();
checkUidAndToken();
} }
} }

View File

@ -13,6 +13,7 @@ import com.alibaba.fastjson.JSONObject;
import com.angcyo.tablayout.DslTabLayout; import com.angcyo.tablayout.DslTabLayout;
import com.angcyo.tablayout.DslTabLayoutConfig; import com.angcyo.tablayout.DslTabLayoutConfig;
import com.angcyo.tablayout.delegate2.ViewPager2Delegate; import com.angcyo.tablayout.delegate2.ViewPager2Delegate;
import com.lxj.xpopup.core.BasePopupView;
import com.shayu.onetoone.AppContext; import com.shayu.onetoone.AppContext;
import com.lxj.xpopup.XPopup; import com.lxj.xpopup.XPopup;
import com.shayu.onetoone.R; import com.shayu.onetoone.R;
@ -28,6 +29,7 @@ import com.shayu.onetoone.bean.SendConsumeBean;
import com.shayu.onetoone.dialog.FirstTipsDialog; import com.shayu.onetoone.dialog.FirstTipsDialog;
import com.shayu.onetoone.event.HomeBusEvent; import com.shayu.onetoone.event.HomeBusEvent;
import com.shayu.onetoone.event.MessageMsgBusEvent; import com.shayu.onetoone.event.MessageMsgBusEvent;
import com.shayu.onetoone.listener.OnDialogClickListener;
import com.shayu.onetoone.listener.OnSendMessageListener; import com.shayu.onetoone.listener.OnSendMessageListener;
import com.shayu.onetoone.manager.CallClientManager; import com.shayu.onetoone.manager.CallClientManager;
import com.shayu.onetoone.manager.OTONetManager; import com.shayu.onetoone.manager.OTONetManager;
@ -73,6 +75,7 @@ public class MainActivity extends AbsOTOActivity {
private ViewPager2 viewPager; private ViewPager2 viewPager;
private DslTabLayout dslTabLayout; private DslTabLayout dslTabLayout;
private long mLastClickBackTime;//上次点击back键的时间 private long mLastClickBackTime;//上次点击back键的时间
private boolean isInstallApk = false;
@Override @Override
protected void onDestroy() { protected void onDestroy() {
@ -130,13 +133,15 @@ public class MainActivity extends AbsOTOActivity {
} }
}); });
CallClientManager.getManager(); CallClientManager.getManager();
//checkVersion(); checkVersion();
} }
/** /**
* 检查版本更新 * 检查版本更新
*/ */
private void checkVersion() { private void checkVersion() {
if(true)
return;
CommonAppConfig.getInstance().getConfig(new CommonCallback<ConfigBean>() { CommonAppConfig.getInstance().getConfig(new CommonCallback<ConfigBean>() {
@Override @Override
public void callback(ConfigBean configBean) { public void callback(ConfigBean configBean) {
@ -146,11 +151,13 @@ public class MainActivity extends AbsOTOActivity {
} }
if (!VersionUtil.isLatest(configBean.getVersion())) { if (!VersionUtil.isLatest(configBean.getVersion())) {
if (!APKManager.get().getApkVerNew()) { if (!APKManager.get().getApkVerNew()) {
new XPopup.Builder(mContext) new XPopup.Builder(mContext)
.isDestroyOnDismiss(true) .isDestroyOnDismiss(true)
.dismissOnBackPressed(false) // 按返回键是否关闭弹窗默认为true .dismissOnBackPressed(false) // 按返回键是否关闭弹窗默认为true
.dismissOnTouchOutside(false) // 点击外部是否关闭弹窗默认为true .dismissOnTouchOutside(false) // 点击外部是否关闭弹窗默认为true
.asCustom(new APKUpdateOneToOnePopup(MainActivity.this, false)) .asCustom(new APKUpdateOneToOnePopup(MainActivity.this, false)
.setOnShowListener(view -> isInstallApk = true))
.show(); .show();
} }
} else { } else {
@ -179,7 +186,7 @@ public class MainActivity extends AbsOTOActivity {
if (!isHome && data.getChat() != 0) { if (!isHome && data.getChat() != 0) {
isShow = false; isShow = false;
} }
SpUtil.setStringValue("match_data",JSONObject.toJSONString(data)); SpUtil.setStringValue("match_data", JSONObject.toJSONString(data));
Bus.get().post(new HomeBusEvent(HomeBusEvent.TYPE_UPDATE_MATCHING, data.getNum())); Bus.get().post(new HomeBusEvent(HomeBusEvent.TYPE_UPDATE_MATCHING, data.getNum()));
if (isShow) { if (isShow) {
new FirstTipsDialog(mContext) new FirstTipsDialog(mContext)
@ -229,6 +236,9 @@ public class MainActivity extends AbsOTOActivity {
super.onResume(); super.onResume();
checkUserInfoIsSet(); checkUserInfoIsSet();
initFirstLoginTips(); initFirstLoginTips();
if (isInstallApk) {
checkVersion();
}
} }
/** /**
@ -238,7 +248,7 @@ public class MainActivity extends AbsOTOActivity {
OTONetManager.getInstance(mContext).getBaseInfos(false, new com.yunbao.common.http.base.HttpCallback<com.shayu.onetoone.bean.UserBean>() { OTONetManager.getInstance(mContext).getBaseInfos(false, new com.yunbao.common.http.base.HttpCallback<com.shayu.onetoone.bean.UserBean>() {
@Override @Override
public void onSuccess(com.shayu.onetoone.bean.UserBean data) { public void onSuccess(com.shayu.onetoone.bean.UserBean data) {
UserManager.saveUserBean(mContext,data); UserManager.saveUserBean(mContext, data);
if (data.getStatus() == 0) { if (data.getStatus() == 0) {
RouteManager.forwardCompleteActivity(); RouteManager.forwardCompleteActivity();
} }
@ -260,30 +270,38 @@ public class MainActivity extends AbsOTOActivity {
} }
RongIMClient.getInstance().getUnreadCount(new Conversation.ConversationType[]{Conversation.ConversationType.PRIVATE} RongIMClient.getInstance().getUnreadCount(new Conversation.ConversationType[]{Conversation.ConversationType.PRIVATE}
,false , false
,new RongIMClient.ResultCallback<Integer>() { , new RongIMClient.ResultCallback<Integer>() {
@Override @Override
public void onSuccess(Integer integer) { public void onSuccess(Integer integer) {
updateUnreadCount(MsgMessageFragment.systemPoint + integer); updateUnreadCount(MsgMessageFragment.systemPoint + integer);
Bus.get().post(new MessageMsgBusEvent(MessageMsgBusEvent.TYPE_UPDATE_POINT, MsgMessageFragment.systemPoint + integer)); Bus.get().post(new MessageMsgBusEvent(MessageMsgBusEvent.TYPE_UPDATE_POINT, MsgMessageFragment.systemPoint + integer));
} }
@Override @Override
public void onError(RongIMClient.ErrorCode e) { public void onError(RongIMClient.ErrorCode e) {
} }
}); });
} }
private void updateUnreadCount(int count) { private void updateUnreadCount(int count) {
dslTabLayout.setDrawBadge(count > 0); dslTabLayout.setDrawBadge(count > 0);
if(count>99){ if (count > 99) {
dslTabLayout.updateTabBadge(2, "99+"); dslTabLayout.updateTabBadge(2, "99+");
}else { } else {
dslTabLayout.updateTabBadge(2, count + ""); dslTabLayout.updateTabBadge(2, count + "");
} }
} }
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 998) {
checkVersion();
}
}
@Override @Override
protected int getLayoutId() { protected int getLayoutId() {
return R.layout.activity_main; return R.layout.activity_main;
@ -309,10 +327,11 @@ public class MainActivity extends AbsOTOActivity {
if (event.getNum() == -1) { if (event.getNum() == -1) {
showRedPoint(-1); showRedPoint(-1);
} }
}else if(event.getType()==MessageMsgBusEvent.TYPE_TO_HOME_PAGE){ } else if (event.getType() == MessageMsgBusEvent.TYPE_TO_HOME_PAGE) {
viewPager.setCurrentItem(event.getNum()); viewPager.setCurrentItem(event.getNum());
} }
} }
/** /**
* 用户被踢下线 * 用户被踢下线
* *

View File

@ -60,6 +60,7 @@ public class RecommendFragment extends BaseFragment {
mRefreshLayout.setRefreshHeader(new RongRefreshHeader(this.getContext())); mRefreshLayout.setRefreshHeader(new RongRefreshHeader(this.getContext()));
mRefreshLayout.setRefreshFooter(new RongRefreshHeader(this.getContext())); mRefreshLayout.setRefreshFooter(new RongRefreshHeader(this.getContext()));
recyclerView.setEmptyView(itemView.findViewById(R.id.view_empty)); recyclerView.setEmptyView(itemView.findViewById(R.id.view_empty));
recyclerView.setHasFixedSize(true);
recyclerView.setAutoLoadMore(true); recyclerView.setAutoLoadMore(true);
mRefreshLayout.setOnRefreshListener(new OnRefreshListener() { mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
public void onRefresh(@NonNull RefreshLayout refreshLayout) { public void onRefresh(@NonNull RefreshLayout refreshLayout) {

View File

@ -153,48 +153,52 @@ public class ChatMessageFragment extends AbsConversationFragment {
// img.setOnClickListener(v -> cameraUtil.getImageByCamera()); // img.setOnClickListener(v -> cameraUtil.getImageByCamera());
initCamera(); initCamera();
mSendBtn.setOnClickListener(v -> { ViewClicksAntiShake.clicksAntiShake(mSendBtn, new ViewClicksAntiShake.ViewClicksCallBack() {
if (StringUtil.isEmpty(mEditText.getText().toString())) { @Override
return; public void onViewClicks() {
} if (StringUtil.isEmpty(mEditText.getText().toString())) {
SendMessageManager.sendMessageForText(targetId, mEditText.getText().toString(), new OnSendMessageListener() { return;
@Override
public void onSuccess(String token, SendConsumeBean bean) {
super.onSuccess(token, bean);
ChatMessageFragment.this.token = token;
sendText();
} }
SendMessageManager.sendMessageForText(targetId, mEditText.getText().toString(), new OnSendMessageListener() {
@Override
public void onSuccess(String token, SendConsumeBean bean) {
super.onSuccess(token, bean);
ChatMessageFragment.this.token = token;
sendText();
@Override
public void onError(int status, String msg) {
super.onError(status, msg);
if (status == OnSendMessageListener.STATUS_NOT_PRICE) {
MsgCheckUtils.checkPrice(mContext, targetId, new OnItemClickListener<MessageConsumeConfigBean>() {
@Override
public void onItemClick(MessageConsumeConfigBean bean, int position) {
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.not_money))
.setContent(String.format(WordUtil.getNewString(R.string.not_money_tips), bean.getPrice()))
.setCancelText(WordUtil.getNewString(R.string.dialog_cancel_tip))
.setApplyText(WordUtil.getNewString(R.string.dialog_to_money_tip))
.setOnDialogClickListener(new OnDialogClickListener() {
@Override
public void onApply(Dialog dialog) {
super.onApply(dialog);
}
}).showDialog();
}
});
} else {
ToastUtil.show(msg);
} }
}
}); @Override
public void onError(int status, String msg) {
super.onError(status, msg);
if (status == OnSendMessageListener.STATUS_NOT_PRICE) {
MsgCheckUtils.checkPrice(mContext, targetId, new OnItemClickListener<MessageConsumeConfigBean>() {
@Override
public void onItemClick(MessageConsumeConfigBean bean, int position) {
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.not_money))
.setContent(String.format(WordUtil.getNewString(R.string.not_money_tips), bean.getPrice()))
.setCancelText(WordUtil.getNewString(R.string.dialog_cancel_tip))
.setApplyText(WordUtil.getNewString(R.string.dialog_to_money_tip))
.setOnDialogClickListener(new OnDialogClickListener() {
@Override
public void onApply(Dialog dialog) {
super.onApply(dialog);
}
}).showDialog();
}
});
} else {
ToastUtil.show(msg);
}
}
});
}
}); });
updateMyInfo(); updateMyInfo();
showRedPoint(); showRedPoint();
} }

View File

@ -263,6 +263,7 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
model = CallClientManager.AUDIO_CALL; model = CallClientManager.AUDIO_CALL;
} }
callMsg.setImageResource(R.mipmap.ic_call_audio_msg); callMsg.setImageResource(R.mipmap.ic_call_audio_msg);
callMsg.setTag(true);
} }
} }

View File

@ -162,6 +162,7 @@ public class SettingActivity extends AbsActivity {
*/ */
private void logout() { private void logout() {
IMLoginManager.get(this).logout(this); IMLoginManager.get(this).logout(this);
UserManager.logout();
CommonAppConfig.getInstance().clearLoginInfo(); CommonAppConfig.getInstance().clearLoginInfo();
RCRTCEngine.getInstance().unInit(); RCRTCEngine.getInstance().unInit();
RongIMClient.getInstance().logout(); RongIMClient.getInstance().logout();

View File

@ -52,7 +52,6 @@ public class MsgMessageRecyclerViewAdapter extends ConversationListAdapter {
if(conversation.mCore.getUnreadMessageCount()>99){ if(conversation.mCore.getUnreadMessageCount()>99){
holder.setText(R.id.rc_conversation_unread_count,"99+"); holder.setText(R.id.rc_conversation_unread_count,"99+");
} }
} }
@Override @Override

View File

@ -103,34 +103,37 @@ public class GiftDialog extends AbsDialogPopupWindow {
PagerConfig.setMillisecondsPreInch(150); PagerConfig.setMillisecondsPreInch(150);
gifList.setAdapter(mAdapter); gifList.setAdapter(mAdapter);
initData(); initData();
sendBtn.setOnClickListener(v -> { ViewClicksAntiShake.clicksAntiShake(sendBtn, new ViewClicksAntiShake.ViewClicksCallBack() {
SendMessageManager.sendMessageForGift(targetId, mAdapter.getItem().getId() + "", new OnSendMessageListener() { @Override
@Override public void onViewClicks() {
public void onSuccess(String token, SendConsumeBean bean) { SendMessageManager.sendMessageForGift(targetId, mAdapter.getItem().getId() + "", new OnSendMessageListener() {
super.onSuccess(token,bean); @Override
GiftDialog.this.token = token; public void onSuccess(String token, SendConsumeBean bean) {
sendGift(mAdapter.getItem()); super.onSuccess(token,bean);
GiftDialog.this.token = token;
sendGift(mAdapter.getItem());
}
@Override
public void onError(int status, String msg) {
super.onError(status, msg);
if(status==OnSendMessageListener.STATUS_NOT_PRICE){
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.money_title))
.setApplyText(WordUtil.getNewString(R.string.money_apply))
.setOnDialogClickListener(new OnDialogClickListener() {
@Override
public void onApply(Dialog dialog) {
super.onApply(dialog);
}
})
.setCancelText(WordUtil.getNewString(R.string.money_cancel))
.showDialog();
} }
}
}); @Override
public void onError(int status, String msg) {
super.onError(status, msg);
if(status==OnSendMessageListener.STATUS_NOT_PRICE){
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.money_title))
.setApplyText(WordUtil.getNewString(R.string.money_apply))
.setOnDialogClickListener(new OnDialogClickListener() {
@Override
public void onApply(Dialog dialog) {
super.onApply(dialog);
}
})
.setCancelText(WordUtil.getNewString(R.string.money_cancel))
.showDialog();
}
}
});
}
}); });
ViewClicksAntiShake.clicksAntiShake(topUpBtn, new ViewClicksAntiShake.ViewClicksCallBack() { ViewClicksAntiShake.clicksAntiShake(topUpBtn, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override @Override

View File

@ -18,7 +18,6 @@ import com.yunbao.common.CommonAppContext;
import com.yunbao.common.manager.IMLoginManager; import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
import com.yunbao.faceunity.FaceManager;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;

View File

@ -3,6 +3,8 @@ package com.shayu.onetoone.utils;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import com.yunbao.common.utils.ToastUtil;
import io.rong.imkit.utils.RouteUtils; import io.rong.imkit.utils.RouteUtils;
import io.rong.imlib.model.Conversation; import io.rong.imlib.model.Conversation;
import io.rong.imlib.model.ConversationIdentifier; import io.rong.imlib.model.ConversationIdentifier;
@ -16,6 +18,10 @@ public class ConversationUtils {
} }
public static void startConversation(Context mContext, String targetId, Bundle bundle) { public static void startConversation(Context mContext, String targetId, Bundle bundle) {
if(targetId.equals(UserManager.getUserBean().getUser().getId()+"")){
ToastUtil.show("不能与自己对话");
return;
}
ConversationIdentifier conversationIdentifier = new ConversationIdentifier(Conversation.ConversationType.PRIVATE, targetId); ConversationIdentifier conversationIdentifier = new ConversationIdentifier(Conversation.ConversationType.PRIVATE, targetId);
RouteUtils.routeToConversationActivity(mContext, conversationIdentifier, false, bundle); RouteUtils.routeToConversationActivity(mContext, conversationIdentifier, false, bundle);
} }

View File

@ -97,32 +97,35 @@ public class MsgInputPanelForGift extends AbsInputPanel {
PagerConfig.setMillisecondsPreInch(150); PagerConfig.setMillisecondsPreInch(150);
gifList.setAdapter(mAdapter); gifList.setAdapter(mAdapter);
initData(); initData();
sendBtn.setOnClickListener(v -> { ViewClicksAntiShake.clicksAntiShake(sendBtn, new ViewClicksAntiShake.ViewClicksCallBack() {
GiftBean item = mAdapter.getItem(); @Override
SendMessageManager.sendMessageForGift(targetId, item.getId() + "", new OnSendMessageListener() { public void onViewClicks() {
@Override GiftBean item = mAdapter.getItem();
public void onSuccess(String token, SendConsumeBean bean) { SendMessageManager.sendMessageForGift(targetId, item.getId() + "", new OnSendMessageListener() {
super.onSuccess(token, bean); @Override
MsgInputPanelForGift.this.token = token; public void onSuccess(String token, SendConsumeBean bean) {
sendGift(item); super.onSuccess(token, bean);
MsgInputPanelForGift.this.token = token;
sendGift(item);
} }
@Override @Override
public void onError(int status, String msg) { public void onError(int status, String msg) {
super.onError(status, msg); super.onError(status, msg);
new TipsDialog(mContext) new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.gift_not_money)) .setTitle(WordUtil.getNewString(R.string.gift_not_money))
.setApplyText(WordUtil.getNewString(R.string.money_apply)) .setApplyText(WordUtil.getNewString(R.string.money_apply))
.setOnDialogClickListener(new OnDialogClickListener() { .setOnDialogClickListener(new OnDialogClickListener() {
@Override @Override
public void onApply(Dialog dialog) { public void onApply(Dialog dialog) {
super.onApply(dialog); super.onApply(dialog);
} }
}) })
.showDialog(); .showDialog();
} }
}); });
}
}); });
ViewClicksAntiShake.clicksAntiShake(topUpBtn, new ViewClicksAntiShake.ViewClicksCallBack() { ViewClicksAntiShake.clicksAntiShake(topUpBtn, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override @Override

View File

@ -23,7 +23,7 @@
android:textSize="30dp" android:textSize="30dp"
android:layout_marginTop="95dp" android:layout_marginTop="95dp"
android:layout_marginLeft="16dp" android:layout_marginLeft="16dp"
android:textColor="@color/colorWhite" android:textColor="@color/white"
android:text="Hello,"/> android:text="Hello,"/>
<TextView <TextView
@ -32,7 +32,7 @@
android:textSize="30dp" android:textSize="30dp"
android:layout_marginLeft="16dp" android:layout_marginLeft="16dp"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:textColor="@color/colorWhite" android:textColor="@color/white"
android:text="歡迎來到..."/> android:text="歡迎來到..."/>
</LinearLayout> </LinearLayout>

View File

@ -149,7 +149,7 @@
android:layout_marginLeft="5dp"> android:layout_marginLeft="5dp">
<LinearLayout <LinearLayout
android:layout_width="48dp" android:layout_width="78dp"
android:layout_height="17dp" android:layout_height="17dp"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginLeft="3dp" android:layout_marginLeft="3dp"
@ -170,8 +170,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginLeft="3dp" android:layout_marginLeft="3dp"
android:textSize="9sp"
android:layout_toRightOf="@+id/yan" android:layout_toRightOf="@+id/yan"
android:text="v.0" android:text="Lv.0"
android:textColor="@color/white" android:textColor="@color/white"
android:textStyle="bold" /> android:textStyle="bold" />

View File

@ -53,7 +53,7 @@
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="horizontal">
@ -64,7 +64,7 @@
android:ellipsize="end" android:ellipsize="end"
android:singleLine="true" android:singleLine="true"
android:layout_weight="1" android:layout_weight="1"
tools:text="用户——123456789012345" tools:text="用户——1234"
android:textColor="#333333" android:textColor="#333333"
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" /> android:textStyle="bold" />

View File

@ -27,7 +27,6 @@
android:layout_marginTop="2dp" android:layout_marginTop="2dp"
android:layout_marginEnd="2dp" android:layout_marginEnd="2dp"
android:layout_marginBottom="2dp" android:layout_marginBottom="2dp"
android:src="@mipmap/icon_green_science"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"

View File

@ -42,16 +42,20 @@
<TextView <TextView
android:id="@+id/rc_conversation_title" android:id="@+id/rc_conversation_title"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginEnd="30dp"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@android:color/black" android:textColor="@android:color/black"
android:textSize="20sp" android:textSize="20sp"
app:layout_constraintBottom_toTopOf="@+id/rc_conversation_content" app:layout_constraintBottom_toTopOf="@+id/rc_conversation_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/constraintLayout" app:layout_constraintStart_toEndOf="@+id/constraintLayout"
app:layout_constraintTop_toTopOf="@+id/constraintLayout" app:layout_constraintTop_toTopOf="@+id/constraintLayout"
tools:text="@tools:sample/full_names" /> tools:text="sssssssssssssssssssssssssssssssssssssssssss22222222222222222222" />
<TextView <TextView
android:id="@+id/rc_conversation_content" android:id="@+id/rc_conversation_content"
@ -114,4 +118,15 @@
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" /> app:layout_constraintEnd_toEndOf="parent" />
<ImageView
android:id="@+id/rc_conversation_no_disturb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/rc_margin_size_12"
android:layout_marginBottom="@dimen/rc_margin_size_12"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:srcCompat="@drawable/rc_no_disturb" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 654 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 662 KiB

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 MiB

After

Width:  |  Height:  |  Size: 911 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 497 KiB

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 443 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 959 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 618 B

After

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Some files were not shown because too many files have changed in this diff Show More