72 Commits

Author SHA1 Message Date
huangjian
0f12fcf40f 座驾缩放模式修改 2023-03-02 17:37:13 +08:00
huangjian
95bb81e1a1 夺宝精灵入口判断逻辑修改 2023-03-02 01:55:08 +08:00
huangjian
3ba2b0d93d 线上问题修复 2023-03-01 23:50:16 +08:00
huangjian
d30069aa68 精灵夺宝:赠送精灵后隐藏点击查看 2023-03-01 23:24:02 +08:00
huangjian
deaa1a19df 精灵夺宝:UI优化 2023-03-01 22:45:25 +08:00
huangjian
41ca42a4a2 精灵夺宝:增加空布局 2023-03-01 21:07:36 +08:00
huangjian
1dd9dbb9d7 精灵夺宝:UI对稿 2023-03-01 20:57:16 +08:00
huangjian
33c31963e8 精灵夺宝:UI对稿 2023-03-01 20:53:40 +08:00
huangjian
ba5de6b5f4 精灵夺宝:飘屏UI调整 2023-03-01 20:24:52 +08:00
huangjian
a625b11909 精灵夺宝:增加公屏和飘屏 2023-03-01 20:22:26 +08:00
huangjian
442098c61e 精灵夺宝:增加vap特效 2023-03-01 14:25:32 +08:00
huangjian
30c8e77d40 全服飘屏UI修改 2023-02-28 22:21:58 +08:00
huangjian
ac23f1600c 夺宝精灵:兑换商店 2023-02-28 19:08:18 +08:00
huangjian
a6adad7701 夺宝精灵:bug fix 2023-02-27 18:54:19 +08:00
huangjian
ec1507ed31 add package 2023-02-27 18:22:58 +08:00
huangjian
7385cfc2f1 TRTC SDK 升级 2023-02-27 18:11:13 +08:00
huangjian
a18b310ce3 夺宝精灵:精灵试炼提示文案修改 2023-02-27 17:53:04 +08:00
huangjian
559793e60d 增加H5打开半屏充值页面方法 2023-02-27 17:44:30 +08:00
huangjian
73ec5a77b1 夺宝精灵:精灵试炼 2023-02-27 17:38:13 +08:00
huangjian
96e3aa67af 夺宝精灵:1.赠送精灵 2.UI切图调整 2023-02-24 18:41:18 +08:00
huangjian
30fdd43119 夺宝精灵:我的精灵接口对接 2023-02-23 19:07:48 +08:00
huangjian
f000f75cd4 夺宝精灵:主页&精灵密藏 UI调整 2023-02-22 18:05:27 +08:00
huangjian
a644205935 夺宝精灵:精灵密藏 2023-02-21 18:55:01 +08:00
huangjian
d3106d36d6 主播评级:回复率C进度条使用错误View更正 2023-02-20 17:08:31 +08:00
huangjian
dfe2f0d1c9 主播评级:私聊回复率展示优化 2023-02-20 14:44:56 +08:00
huangjian
e4637305fa 夺宝精灵:幸运石头进度显示逻辑优化 2023-02-20 14:34:43 +08:00
huangjian
f87d25ad10 夺宝精灵:主页更多按钮 2023-02-20 11:29:15 +08:00
huangjian
9ddc66b4ae 夺宝精灵:主页接口对接 2023-02-17 18:10:09 +08:00
huangjian
fb8f36929f 星级厨房静态飘屏UI修改 2023-02-17 16:18:35 +08:00
huangjian
2ce4ca1037 夺宝精灵:我的精灵UI 2023-02-16 19:05:48 +08:00
huangjian
fdb2c9315d 夺宝精灵:主页UI 2023-02-15 18:44:55 +08:00
huangjian
072f345d50 主播评级bugfix 2023-02-15 18:08:45 +08:00
huangjian
a00ff162f1 主播评级弹窗改造 2023-02-14 18:56:19 +08:00
huangjian
62d57f5b5e 新增夺宝精灵WebView 2023-02-14 14:52:11 +08:00
huangjian
99f1f65a55 增加星级厨房飘屏 2023-02-13 19:12:33 +08:00
huangjian
c55c762a3b 隐私协议默认不选中 2023-02-13 10:02:55 +08:00
huangjian
98f6b12a5b 私聊体验优化 2023-02-09 19:40:18 +08:00
huangjian
39b7efd70e 去掉联系人列表等级展示 2023-02-09 18:18:05 +08:00
huangjian
05f0153159 UI对稿 2023-02-09 17:51:12 +08:00
huangjian
4186ee8920 UI对稿 2023-02-09 16:49:12 +08:00
huangjian
cf901e7c9d 房间默认背景更换 2023-02-09 14:19:37 +08:00
huangjian
42e07220dd bugly一些闪退问题修复 2023-02-09 12:07:30 +08:00
huangjian
4325d85fd8 新增版本埋点 2023-02-09 11:16:43 +08:00
huangjian
0265d87dd8 塔罗打开微信小程序体验优化 2023-02-08 19:06:50 +08:00
huangjian
c57e64d07b 移除糖果树开奖礼物展示 2023-02-08 18:18:19 +08:00
huangjian
b7e99ddc68 官方账号私聊隐藏关注按钮 2023-02-08 18:01:01 +08:00
huangjian
888ee9574c 增加官方账号私聊限制 2023-02-08 17:43:15 +08:00
huangjian
4beaa9a299 房间私聊输入体验优化 2023-02-08 16:41:37 +08:00
huangjian
0679944adf 糖果树svga飘屏比例修改 2023-02-07 19:03:00 +08:00
huangjian
9ce8301ced 糖果树UI调整 2023-02-07 18:15:15 +08:00
huangjian
f3a4af4582 私聊改造:用户卡片UI调整 2023-02-07 16:17:16 +08:00
huangjian
3b8796c378 私聊改造:bugfix 2023-02-07 11:51:11 +08:00
huangjian
86465b9932 性别图标修改 2023-02-06 16:50:06 +08:00
huangjian
67dad1004d 部分展示用户ID的页面增加复制ID功能 2023-02-06 14:59:22 +08:00
huangjian
064807470b 糖果树UI升级:规则页面 2023-02-03 19:00:32 +08:00
huangjian
a91d7d2471 自动打招呼:UI细节完善 2023-02-03 17:33:44 +08:00
huangjian
712374dbac 糖果树UI升级 2023-02-03 15:27:40 +08:00
huangjian
aad121c2b3 打招呼列表增加分页加载 2023-02-02 17:08:55 +08:00
huangjian
4b374fc3fb 新增自动打招呼功能 2023-02-02 16:01:30 +08:00
huangjian
e6d2e6707f 私聊改造:注册消息测回观察者 2023-02-01 16:19:30 +08:00
huangjian
dc6e53d51b 私聊改造:私聊礼物面板UI修改 2023-01-31 19:13:43 +08:00
huangjian
b37b1fc115 私聊改造:长按弹窗UI修改 2023-01-31 17:41:37 +08:00
huangjian
0ba0aed40f 私聊改造:UI完善,私聊页代码精简 2023-01-31 15:37:20 +08:00
huangjian
3379aeed02 私聊改造:完成对话框基础功能 2023-01-30 18:51:47 +08:00
huangjian
e99a65c21e 细节优化 2023-01-13 15:07:05 +08:00
huangjian
dee4f873b4 私聊改造:新增快速发送图片功能 2023-01-12 18:34:48 +08:00
huangjian
69f0d76330 私聊改造:输入体验优化 2023-01-11 19:09:36 +08:00
huangjian
42aea570b3 bugfix:修复糖果树购买糖果返回不刷新的问题 2023-01-10 16:44:53 +08:00
huangjian
3427999e29 RVDelegate内存泄漏问题解决 2023-01-10 14:49:24 +08:00
huangjian
e37af6c9a1 UI调整:首页和搜索页背景细节修改 2023-01-10 11:26:09 +08:00
huangjian
ff14ac710c 资源位图片加载服务端返回图片 2023-01-07 15:34:22 +08:00
huangjian
c9f0687f75 申请加入公会加入实名认证限制 2023-01-07 15:02:55 +08:00
5775 changed files with 96629 additions and 169406 deletions

View File

@@ -2,11 +2,11 @@ apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
android {
compileSdkVersion COMPILE_SDK_VERSION.toInteger()
compileSdkVersion 31
defaultConfig {
minSdkVersion MIN_SDK_VERSION.toInteger()
targetSdkVersion TARGET_SDK_VERSION.toInteger()
minSdkVersion 21
targetSdkVersion 29
testApplicationId 'com.soundcloud.android.crop.test'
testInstrumentationRunner 'android.test.InstrumentationTestRunner'
@@ -20,21 +20,12 @@ android {
}
buildToolsVersion = '30.0.3'
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = "11"
}
}
dependencies {
api 'androidx.annotation:annotation:1.2.0'
api 'androidx.annotation:annotation:1.1.0'
api 'androidx.legacy:legacy-support-v4:1.0.0'
implementation "androidx.core:core-ktx:1.7.0"
implementation "androidx.core:core-ktx:1.3.2"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}
repositories {

View File

@@ -33,7 +33,7 @@
"project_id":"736430079244645870",
"app_id":"102953045",
"api_key":"DAEDAN1bqknzqRuvualUo98vO7U9uXBJtBZ0rNQHgSo03bXgkl98tD4sytVBCBB1Y7ha0NcY++dSp9JLsws9BzDN+/fS3v8J9We3nA==",
"package_name":"cn.nnbc123.voice"
"package_name":"com.voice.magic"
},
"oauth_client":{
"client_id":"102953045",
@@ -41,7 +41,7 @@
},
"app_info":{
"app_id":"102953045",
"package_name":"cn.nnbc123.voice"
"package_name":"com.voice.magic"
},
"service":{
"analytics":{
@@ -75,12 +75,12 @@
"configuration_version":"3.0",
"appInfos":[
{
"package_name":"cn.nnbc123.voice",
"package_name":"com.voice.magic",
"client":{
"app_id":"102953045"
},
"app_info":{
"package_name":"cn.nnbc123.voice",
"package_name":"com.voice.magic",
"app_id":"102953045"
},
"oauth_client":{

Binary file not shown.

View File

@@ -3,55 +3,47 @@ apply plugin: 'com.android.application'
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'com.huawei.agconnect'
apply plugin: 'com.tencent.vasdolly'
apply from: '../mob.gradle'
apply plugin: 'android-junk-code'
def onlyArm64 = Boolean.parseBoolean(only_arm64)
android {
compileSdkVersion COMPILE_SDK_VERSION.toInteger()
compileSdkVersion 31
defaultConfig {
applicationId "cn.nnbc123.voice"
minSdkVersion MIN_SDK_VERSION.toInteger()
targetSdkVersion TARGET_SDK_VERSION.toInteger()
applicationId "com.voice.magic"
minSdkVersion 21
targetSdkVersion 29
versionCode Integer.valueOf(version_code)
versionName version_name
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
// ndk {
// abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86'
// }
ndk {
//设置支持的SO库架构
if (onlyArm64) {
abiFilters "arm64-v8a"
} else {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
flavorDimensions 'default'
}
// splits {
// abi {
// enable true
// reset()
// include 'armeabi-v7a', 'arm64-v8a', 'x86'
// universalApk true
// }
// }
//在apk文件后边生成版本号信息
android.applicationVariants.configureEach { variant ->
variant.outputs.configureEach { output ->
def date = new Date().format("MMddHHmm", TimeZone.getTimeZone("GMT+08"))
def outputFile = output.outputFile
if (outputFile == null || !outputFile.name.endsWith('.apk')) {
return
android.applicationVariants.all {
variant ->
variant.outputs.all {
def date = new Date().format("MMddHHmm", TimeZone.getTimeZone("GMT+08"))
outputFileName = "magic_${buildType.name}_v${defaultConfig.versionName}-${date}.apk"
}
def abi = output.getFilter(com.android.build.OutputFile.ABI)
if (abi == null) {
abi = "universal"
}
outputFileName = "yinmeng_${variant.flavorName}_${buildType.name}_v${defaultConfig.versionName}_${defaultConfig.versionCode}_${abi}_${date}.apk"
}
}
lintOptions {
abortOnError false
disable 'MissingTranslation'
@@ -73,19 +65,19 @@ android {
signingConfigs {
v2 {
storeFile file('../yinmeng.jks')
storePassword "yinmeng2023"
keyAlias "yinmeng"
keyPassword "yinmeng2023"
storeFile file('../magic.jks')
storePassword "magic2020"
keyAlias "magic"
keyPassword "magic2020"
v2SigningEnabled true
v1SigningEnabled true
}
v1 {
storeFile file('../yinmeng.jks')
storePassword "yinmeng2023"
keyAlias "yinmeng"
keyPassword "yinmeng2023"
storeFile file('../magic.jks')
storePassword "magic2020"
keyAlias "magic"
keyPassword "magic2020"
v2SigningEnabled false
v1SigningEnabled true
}
@@ -144,8 +136,7 @@ android {
buildTypes {
release {
buildConfigField "String", "BASE_URL", "\"https://api.nnbc123.cn/\""
buildConfigField "String", "WEB_URL", "\"https://h5.nnbc123.cn/\""
buildConfigField "String", "BASE_URL", "\"https://yinyou.api.shengxuanwangluo.com/\""
buildConfigField "String", "BASE_URL_DEBUG", "BASE_URL"
buildConfigField "String", "BASE_URL_STAGING", "BASE_URL"
buildConfigField "String", "BASE_URL_RELEASE", "BASE_URL"
@@ -156,99 +147,37 @@ android {
}
debug {
println("minifyEnabled = " + minify_enabled)
buildConfigField "String", "BASE_URL", "\"http://beta.api.nnbc123.cn/\""
buildConfigField "String", "WEB_URL", "\"http://beta.api.nnbc123.cn\""
buildConfigField "String", "BASE_URL", "\"http://api.uat.lecheng163.com/\""
buildConfigField "String", "BASE_URL_DEBUG", "BASE_URL"
buildConfigField "String", "BASE_URL_STAGING", "\"https://api.nnbc123.cn/\""
buildConfigField "String", "BASE_URL_RELEASE", "\"https://api.nnbc123.cn/\""
minifyEnabled minify_enabled.toBoolean() // 是否混淆
buildConfigField "String", "BASE_URL_STAGING", "\"https://yinyou.api.shengxuanwangluo.com/\""
buildConfigField "String", "BASE_URL_RELEASE", "\"https://yinyou.api.shengxuanwangluo.com/\""
minifyEnabled false
shrinkResources false
signingConfig signingConfigs.v2
signingConfig signingConfigs.v1
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "11"
jvmTarget = "1.8"
}
buildToolsVersion = '30.0.3'
productFlavors {
official {
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}
fir {
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}
mlq {
ndk {
abiFilters 'x86'
}
}
yingyongbao {
ndk {
abiFilters 'armeabi-v7a'
}
}
vivo {
ndk {
abiFilters 'arm64-v8a'
}
}
oppo {
ndk {
abiFilters 'arm64-v8a'
}
}
xiaomi {
ndk {
abiFilters 'arm64-v8a'
}
}
huawei {
ndk {
abiFilters 'arm64-v8a'
}
}
rongyao {
ndk {
abiFilters 'arm64-v8a'
}
}
kuaishou_01 {
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}
}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [
// 渠道
CHANNEL_VALUE : name,
]
}
}
def Lombok = "1.18.18"
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
implementation fileTree(dir: 'aliyun-libs', include: ['*.jar', '*.aar'])
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
testImplementation 'junit:junit:4.13.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
api 'androidx.multidex:multidex:2.0.1'
@@ -273,7 +202,7 @@ dependencies {
api "com.jakewharton:butterknife:10.2.3"
annotationProcessor "com.jakewharton:butterknife-compiler:10.2.3"
implementation "com.llew.huawei:verifier:1.0.3"
annotationProcessor 'androidx.annotation:annotation:1.2.0'
annotationProcessor 'androidx.annotation:annotation:1.1.0'
implementation 'io.github.h07000223:flycoTabLayout:3.0.0'
@@ -287,6 +216,8 @@ dependencies {
api 'com.jungly:gridPasswordView:0.3'
api 'com.google.android.flexbox:flexbox:3.0.0'
compileOnly "org.projectlombok:lombok:${Lombok}"
annotationProcessor "org.projectlombok:lombok:${Lombok}"
implementation 'nl.dionsegijn:konfetti:1.1.2'
//数字滚动效果
@@ -314,14 +245,10 @@ dependencies {
//oppo推送需要
implementation 'commons-codec:commons-codec:1.6'
// api 'com.tencent.vasdolly:helper:3.0.3'
api 'com.tencent.vasdolly:helper:3.0.3'
implementation "io.github.tencent:vap:2.0.24"
implementation 'com.github.mmin18:realtimeblurview:1.2.1'
implementation 'com.qiyukf.unicorn:unicorn:8.2.0'
implementation 'com.github.yalantis:ucrop:2.2.7'
}
repositories {
@@ -332,20 +259,36 @@ repositories {
}
channel {
//多渠道包的输出目录默认为new File(project.buildDir,"channel")
outputDir = new File(project.buildDir, "channelapk")
//多渠道包的命名规则,默认为:${appName}-${versionName}-${versionCode}-${flavorName}-${buildType}-${buildTime}
def only64 = onlyArm64 ? "-only64" : ""
apkNameFormat = 'magic-${buildType}only64-${flavorName}-v${versionName}-${buildTime}'.replace("only64", only64)
//快速模式生成渠道包时不进行校验速度可以提升10倍以上默认为false
fastMode = false
//buildTime的时间格式默认格式yyyyMMdd-HHmmss
buildTimeDateFormat = 'MMddHHmm'
//低内存模式仅针对V2签名默认为false只把签名块、中央目录和EOCD读取到内存不把最大头的内容块读取到内存在手机上合成APK时可以使用该模式
lowMemory = false
}
android.applicationVariants.all { variant ->
print("variant.name=" + variant.name)
if (variant.name.contains("release") || variant.name.contains("Release")) {
androidJunkCode.configMap.put(variant.name, {
packageBase = "com.nnbc123.plugin.ui" //生成java类根包名
packageCount = 30 //生成包数量
activityCountPerPackage = 30 //每个包下生成Activity类数量
excludeActivityJavaFile = false
//是否排除生成ActivityJava文件,默认false(layout和写入AndroidManifest.xml还会执行),主要用于处理类似神策全埋点编译过慢问题
otherCountPerPackage = 50 //每个包下生成其它类的数量
methodCountPerClass = 20 //每个下生成方法数量
resPrefix = "mango_" //生成的layout、drawable、string等资源名前缀
drawableCount = 300 //生成drawable资源数量
stringCount = 300 //生成string数量
})
switch (variant.name) {//变体名称如果没有设置productFlavors就是buildType名称如果有设置productFlavors就是flavor+buildType例如freeRelease、proRelease
case "release":
androidJunkCode.configMap.put(variant.name, {
packageBase = "com.mango.plugin.ui" //生成java类根包名
packageCount = 30 //生成包数量
activityCountPerPackage = 30 //每个包下生成Activity类数量
excludeActivityJavaFile = false
//是否排除生成Activity的Java文件,默认false(layout和写入AndroidManifest.xml还会执行),主要用于处理类似神策全埋点编译过慢问题
otherCountPerPackage = 50 //每个下生成其它类的数量
methodCountPerClass = 20 //每个类下生成方法数量
resPrefix = "mango_" //生成的layout、drawable、string等资源名前缀
drawableCount = 300 //生成drawable资源数量
stringCount = 300 //生成string数量
})
break
}
}

Binary file not shown.

Binary file not shown.

View File

@@ -115,19 +115,19 @@
-keep class com.netease.** {*;}
# Presenter 相关
-keep class com.nnbc123.app.base.** { *; }
-keep public class * extends com.nnbc123.app.base.BaseMvpPresenter
-keep public class * extends com.nnbc123.library.base.factory.AbstractMvpPresenter
-keep class com.mango.moshen.base.** { *; }
-keep public class * extends com.mango.moshen.base.BaseMvpPresenter
-keep public class * extends com.mango.xchat_android_library.base.factory.AbstractMvpPresenter
# 云信自定义 ViewHolder 配置
-dontwarn com.nnbc123.app.ui.im.recent.holder.**
-keep class com.nnbc123.app.ui.im.recent.holder.** {*;}
-keep class com.nnbc123.app.ui.im.chat.** {*;}
-keep class com.nnbc123.app.luckymoney.viewholder.** {*;}
-keep class com.nnbc123.app.share.viewholder.** {*;}
-keep class com.nnbc123.app.public_chat_hall.msg.viewholder.** {*;}
-keep class com.nnbc123.app.module_hall.im.msgholder.** {*;}
-keep class com.nnbc123.app.mentoring_relationship.viewholder.** {*;}
-dontwarn com.mango.moshen.ui.im.recent.holder.**
-keep class com.mango.moshen.ui.im.recent.holder.** {*;}
-keep class com.mango.moshen.ui.im.chat.** {*;}
-keep class com.mango.moshen.luckymoney.viewholder.** {*;}
-keep class com.mango.moshen.share.viewholder.** {*;}
-keep class com.mango.moshen.public_chat_hall.msg.viewholder.** {*;}
-keep class com.mango.moshen.module_hall.im.msgholder.** {*;}
-keep class com.mango.moshen.mentoring_relationship.viewholder.** {*;}
-keep public class * extends com.netease.nim.uikit.common.ui.recyclerview.holder.RecyclerViewHolder {*;}
-keep public class * extends com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase {*;}
@@ -169,7 +169,7 @@
#-------------TakePhoto的混淆配置------------
-keep class com.nnbc123.app.takephoto.** { *; }
-keep class com.jph.takephoto.** { *; }
-dontwarn com.jph.takephoto.**
-keep class com.darsh.multipleimageselect.** { *; }
@@ -207,8 +207,8 @@
<init>(...);
}
-dontwarn com.nnbc123.app.bindadapter.**
-keep class com.nnbc123.app.bindadapter.** {*;}
-dontwarn com.mango.moshen.bindadapter.**
-keep class com.mango.moshen.bindadapter.** {*;}
# Ping++ 混淆过滤
-dontwarn com.pingplusplus.**
@@ -239,8 +239,8 @@
# TODO 网络加载 一些业务bean gson 时候混淆问题
-keep class org.json.** {*;}
-dontwarn com.nnbc123.core.**
-keep class com.nnbc123.core.** {*;}
-dontwarn com.moshen.core.**
-keep class com.mango.core.** {*;}
#百度统计
@@ -314,8 +314,8 @@
-keep class com.autonavi.aps.amapapi.model.**{*;}
#暂时keep这个View排查华为oom问题
-keep class com.nnbc123.app.avroom.widget.MicroView{*;}
-keep class com.nnbc123.app.ui.widget.rollviewpager.RollPagerView{*;}
-keep class com.mango.moshen.avroom.widget.MicroView{*;}
-keep class com.mango.moshen.ui.widget.rollviewpager.RollPagerView{*;}
#linkedMe
-keep class com.microquation.linkedme.android.** { *; }
@@ -373,7 +373,7 @@
-dontwarn com.meizu.cloud.**
-keep class com.meizu.cloud.** {*;}
-keep class com.nnbc123.app.ui.widget.AppBarLayoutBehavior {*;}
-keep class com.mango.moshen.ui.widget.AppBarLayoutBehavior {*;}
#ViewBinding使用的反射生成的对应Binding
-keepclassmembers class * implements androidx.viewbinding.ViewBinding {
@@ -436,6 +436,9 @@
# linkedme
-keep class com.microquation.linkedme.android.** { *; }
# 数美天网
-keep class com.ishumei.dfp.SMSDK { *; }
-dontwarn com.alibaba.**
-dontwarn com.taobao.**
-dontwarn com.google.**
@@ -450,14 +453,5 @@
-keep class android.support.v8.renderscript.** { *; }
-keep class androidx.renderscript.** { *; }
-keep class com.nnbc123.plugin.ui.**{*;}
-keep class com.yinyou.plugin.**{*;}
-dontwarn com.qiyukf.**
-keep class com.qiyukf.** {*;}
-dontwarn org.slf4j.**
-keep class org.slf4j.** { *; }
# For BannerViewPager
-keep class androidx.recyclerview.widget.** { *; }
-keep class androidx.viewpager2.widget.** { *; }
-keep class io.agora.**{*;}

View File

@@ -0,0 +1,28 @@
package com.mango.moshen;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() throws Exception {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("com.mango.moshen_android_client", appContext.getPackageName());
}
}

View File

@@ -1,28 +0,0 @@
package com.nnbc123.app;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() throws Exception {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("com.nnbc123.app_android_client", appContext.getPackageName());
}
}

View File

@@ -1,17 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true">
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="#ffffe710" />
<solid android:color="#26ffe710" />
<corners android:bottomLeftRadius="8dp" android:bottomRightRadius="8dp" android:topLeftRadius="8dp" android:topRightRadius="8dp" />
</shape>
</item>
<item android:drawable="@drawable/dialog_charge_bg_checked" android:state_selected="true" />
<item android:drawable="@drawable/dialog_charge_bg_checked" android:state_checked="true" />
<item>
<shape android:shape="rectangle">
<solid android:color="#fff8f8fa" />
<corners android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" android:topLeftRadius="10dp" android:topRightRadius="10dp" />
<solid android:color="@color/white" />
<corners android:radius="8dp"/>
</shape>
</item>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners
android:radius="@dimen/dp_12"
/>
<solid
android:color="@color/black_transparent_35"
/>
</shape>

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_12" />
<stroke android:color="#FFE974" android:width="1px"/>
<solid android:color="#0D002F"/>
</shape>

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,16 +1,16 @@
package com.nnbc123.app.takephoto.app;
package com.jph.takephoto.app;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import com.nnbc123.app.takephoto.compress.CompressConfig;
import com.nnbc123.app.takephoto.model.CropOptions;
import com.nnbc123.app.takephoto.model.MultipleCrop;
import com.nnbc123.app.takephoto.model.TException;
import com.nnbc123.app.takephoto.model.TResult;
import com.nnbc123.app.takephoto.model.TakePhotoOptions;
import com.nnbc123.app.takephoto.permission.PermissionManager;
import com.jph.takephoto.compress.CompressConfig;
import com.jph.takephoto.model.CropOptions;
import com.jph.takephoto.model.MultipleCrop;
import com.jph.takephoto.model.TException;
import com.jph.takephoto.model.TResult;
import com.jph.takephoto.model.TakePhotoOptions;
import com.jph.takephoto.permission.PermissionManager;
/**

View File

@@ -1,19 +1,19 @@
package com.nnbc123.app.takephoto.app;
package com.jph.takephoto.app;
import android.content.Intent;
import android.os.Bundle;
import androidx.annotation.CallSuper;
import android.util.Log;
import com.nnbc123.app.takephoto.model.InvokeParam;
import com.nnbc123.app.takephoto.model.TContextWrap;
import com.nnbc123.app.takephoto.model.TResult;
import com.nnbc123.app.takephoto.permission.InvokeListener;
import com.nnbc123.app.takephoto.permission.PermissionManager;
import com.nnbc123.app.takephoto.permission.PermissionManager.TPermissionType;
import com.nnbc123.app.takephoto.permission.TakePhotoInvocationHandler;
import com.nnbc123.app.R;
import com.nnbc123.app.base.BaseActivity;
import com.jph.takephoto.model.InvokeParam;
import com.jph.takephoto.model.TContextWrap;
import com.jph.takephoto.model.TResult;
import com.jph.takephoto.permission.InvokeListener;
import com.jph.takephoto.permission.PermissionManager;
import com.jph.takephoto.permission.PermissionManager.TPermissionType;
import com.jph.takephoto.permission.TakePhotoInvocationHandler;
import com.mango.moshen.R;
import com.mango.moshen.base.BaseActivity;
/**
* 继承这个类来让Activity获取拍照的能力<br>

View File

@@ -1,17 +1,17 @@
package com.nnbc123.app.takephoto.app;
package com.jph.takephoto.app;
import android.content.Intent;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.util.Log;
import com.nnbc123.app.takephoto.model.InvokeParam;
import com.nnbc123.app.takephoto.model.TContextWrap;
import com.nnbc123.app.takephoto.model.TResult;
import com.nnbc123.app.takephoto.permission.InvokeListener;
import com.nnbc123.app.takephoto.permission.PermissionManager;
import com.nnbc123.app.takephoto.permission.TakePhotoInvocationHandler;
import com.nnbc123.app.R;
import com.jph.takephoto.model.InvokeParam;
import com.jph.takephoto.model.TContextWrap;
import com.jph.takephoto.model.TResult;
import com.jph.takephoto.permission.InvokeListener;
import com.jph.takephoto.permission.PermissionManager;
import com.jph.takephoto.permission.TakePhotoInvocationHandler;
import com.mango.moshen.R;
/**
* 继承这个类来让Fragment获取拍照的能力<br>

View File

@@ -1,17 +1,17 @@
package com.nnbc123.app.takephoto.app;
package com.jph.takephoto.app;
import android.content.Intent;
import android.os.Bundle;
import androidx.fragment.app.FragmentActivity;
import android.util.Log;
import com.nnbc123.app.takephoto.model.InvokeParam;
import com.nnbc123.app.takephoto.model.TContextWrap;
import com.nnbc123.app.takephoto.model.TResult;
import com.nnbc123.app.takephoto.permission.InvokeListener;
import com.nnbc123.app.takephoto.permission.PermissionManager;
import com.nnbc123.app.takephoto.permission.TakePhotoInvocationHandler;
import com.nnbc123.app.R;
import com.jph.takephoto.model.InvokeParam;
import com.jph.takephoto.model.TContextWrap;
import com.jph.takephoto.model.TResult;
import com.jph.takephoto.permission.InvokeListener;
import com.jph.takephoto.permission.PermissionManager;
import com.jph.takephoto.permission.TakePhotoInvocationHandler;
import com.mango.moshen.R;
/**
* 继承这个类来让Activity获取拍照的能力<br>

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.app;
package com.jph.takephoto.app;
import android.app.Activity;
import android.app.ProgressDialog;
@@ -12,30 +12,30 @@ import android.text.TextUtils;
import com.darsh.multipleimageselect.helpers.Constants;
import com.darsh.multipleimageselect.models.Image;
import com.nnbc123.app.takephoto.compress.CompressConfig;
import com.nnbc123.app.takephoto.compress.CompressImage;
import com.nnbc123.app.takephoto.compress.CompressImageImpl;
import com.nnbc123.app.takephoto.model.CropOptions;
import com.nnbc123.app.takephoto.model.MultipleCrop;
import com.nnbc123.app.takephoto.model.TContextWrap;
import com.nnbc123.app.takephoto.model.TException;
import com.nnbc123.app.takephoto.model.TExceptionType;
import com.nnbc123.app.takephoto.model.TImage;
import com.nnbc123.app.takephoto.model.TIntentWap;
import com.nnbc123.app.takephoto.model.TResult;
import com.nnbc123.app.takephoto.model.TakePhotoOptions;
import com.nnbc123.app.takephoto.permission.PermissionManager;
import com.nnbc123.app.takephoto.uitl.ImageRotateUtil;
import com.nnbc123.app.takephoto.uitl.IntentUtils;
import com.nnbc123.app.takephoto.uitl.TConstant;
import com.nnbc123.app.takephoto.uitl.TFileUtils;
import com.nnbc123.app.takephoto.uitl.TImageFiles;
import com.nnbc123.app.takephoto.uitl.TUriParse;
import com.nnbc123.app.takephoto.uitl.TUtils;
import com.jph.takephoto.compress.CompressConfig;
import com.jph.takephoto.compress.CompressImage;
import com.jph.takephoto.compress.CompressImageImpl;
import com.jph.takephoto.model.CropOptions;
import com.jph.takephoto.model.MultipleCrop;
import com.jph.takephoto.model.TContextWrap;
import com.jph.takephoto.model.TException;
import com.jph.takephoto.model.TExceptionType;
import com.jph.takephoto.model.TImage;
import com.jph.takephoto.model.TIntentWap;
import com.jph.takephoto.model.TResult;
import com.jph.takephoto.model.TakePhotoOptions;
import com.jph.takephoto.permission.PermissionManager;
import com.jph.takephoto.uitl.ImageRotateUtil;
import com.jph.takephoto.uitl.IntentUtils;
import com.jph.takephoto.uitl.TConstant;
import com.jph.takephoto.uitl.TFileUtils;
import com.jph.takephoto.uitl.TImageFiles;
import com.jph.takephoto.uitl.TUriParse;
import com.jph.takephoto.uitl.TUtils;
import com.orhanobut.logger.Logger;
import com.soundcloud.android.crop.Crop;
import com.nnbc123.app.R;
import com.nnbc123.library.utils.SingleToastUtil;
import com.mango.moshen.R;
import com.mango.xchat_android_library.utils.SingleToastUtil;
import java.io.File;
import java.util.ArrayList;

View File

@@ -1,7 +1,7 @@
package com.nnbc123.app.takephoto.compress;
package com.jph.takephoto.compress;
import com.nnbc123.app.takephoto.model.LubanOptions;
import com.jph.takephoto.model.LubanOptions;
import java.io.Serializable;

View File

@@ -1,6 +1,6 @@
package com.nnbc123.app.takephoto.compress;
package com.jph.takephoto.compress;
import com.nnbc123.app.takephoto.model.TImage;
import com.jph.takephoto.model.TImage;
import java.util.ArrayList;

View File

@@ -1,9 +1,9 @@
package com.nnbc123.app.takephoto.compress;
package com.jph.takephoto.compress;
import android.content.Context;
import android.text.TextUtils;
import com.nnbc123.app.takephoto.model.TImage;
import com.jph.takephoto.model.TImage;
import java.io.File;
import java.util.ArrayList;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.compress;
package com.jph.takephoto.compress;
import android.content.Context;
import android.graphics.Bitmap;
@@ -6,7 +6,7 @@ import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.os.Handler;
import com.nnbc123.app.takephoto.uitl.TFileUtils;
import com.jph.takephoto.uitl.TFileUtils;
import java.io.ByteArrayOutputStream;
import java.io.File;

View File

@@ -1,9 +1,9 @@
package com.nnbc123.app.takephoto.compress;
package com.jph.takephoto.compress;
import android.content.Context;
import com.nnbc123.app.takephoto.model.LubanOptions;
import com.nnbc123.app.takephoto.model.TImage;
import com.jph.takephoto.model.LubanOptions;
import com.jph.takephoto.model.TImage;
import java.io.File;
import java.util.ArrayList;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.model;
package com.jph.takephoto.model;
import java.io.Serializable;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.model;
package com.jph.takephoto.model;
import java.lang.reflect.Method;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.model;
package com.jph.takephoto.model;
import java.io.Serializable;

View File

@@ -1,10 +1,10 @@
package com.nnbc123.app.takephoto.model;
package com.jph.takephoto.model;
import android.app.Activity;
import android.net.Uri;
import com.nnbc123.app.takephoto.uitl.TImageFiles;
import com.nnbc123.app.takephoto.uitl.TUtils;
import com.jph.takephoto.uitl.TImageFiles;
import com.jph.takephoto.uitl.TUtils;
import java.util.ArrayList;
import java.util.HashMap;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.model;
package com.jph.takephoto.model;
import android.app.Activity;
import androidx.fragment.app.Fragment;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.model;
package com.jph.takephoto.model;
/**
* Author: JPH

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.model;
package com.jph.takephoto.model;
/**
* Author: JPH

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.model;
package com.jph.takephoto.model;
import android.net.Uri;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.model;
package com.jph.takephoto.model;
import android.content.Intent;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.model;
package com.jph.takephoto.model;
import java.util.ArrayList;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.model;
package com.jph.takephoto.model;
import java.io.Serializable;

View File

@@ -0,0 +1,10 @@
package com.jph.takephoto.permission;
import com.jph.takephoto.model.InvokeParam;
/**
* 授权管理回调
*/
public interface InvokeListener {
PermissionManager.TPermissionType invoke(InvokeParam invokeParam);
}

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.permission;
package com.jph.takephoto.permission;
import android.Manifest;
import android.app.Activity;
@@ -8,12 +8,12 @@ import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import android.text.TextUtils;
import com.nnbc123.app.takephoto.app.TakePhoto;
import com.nnbc123.app.takephoto.model.InvokeParam;
import com.nnbc123.app.takephoto.model.TContextWrap;
import com.nnbc123.app.takephoto.uitl.TConstant;
import com.nnbc123.app.R;
import com.nnbc123.library.utils.SingleToastUtil;
import com.jph.takephoto.app.TakePhoto;
import com.jph.takephoto.model.InvokeParam;
import com.jph.takephoto.model.TContextWrap;
import com.jph.takephoto.uitl.TConstant;
import com.mango.moshen.R;
import com.mango.xchat_android_library.utils.SingleToastUtil;
import java.lang.reflect.Method;
import java.util.ArrayList;

View File

@@ -1,7 +1,7 @@
package com.nnbc123.app.takephoto.permission;
package com.jph.takephoto.permission;
import com.nnbc123.app.takephoto.app.TakePhoto;
import com.nnbc123.app.takephoto.model.InvokeParam;
import com.jph.takephoto.app.TakePhoto;
import com.jph.takephoto.model.InvokeParam;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.uitl;
package com.jph.takephoto.uitl;
import android.content.Context;
import android.graphics.Bitmap;
@@ -8,6 +8,8 @@ import android.media.ExifInterface;
import android.net.Uri;
import android.text.TextUtils;
import com.netease.nim.uikit.common.util.log.LogUtil;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

View File

@@ -0,0 +1,93 @@
package com.jph.takephoto.uitl;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.provider.MediaStore;
import android.util.Log;
import com.darsh.multipleimageselect.activities.AlbumSelectActivity;
import com.darsh.multipleimageselect.helpers.Constants;
import com.jph.takephoto.model.CropOptions;
import com.jph.takephoto.model.TContextWrap;
/**
* Intent工具类用于生成拍照、
* 从相册选择照片裁剪照片所需的Intent
* Author: JPH
* Date: 2016/6/7 0007 13:41
*/
public class IntentUtils {
private static final String TAG = IntentUtils.class.getName();
/**
* 获取图片多选的Intent
* @param limit 最多选择图片张数的限制
* */
public static Intent getPickMultipleIntent(TContextWrap contextWrap, int limit){
Intent intent = new Intent(contextWrap.getActivity(), AlbumSelectActivity.class);
intent.putExtra(Constants.INTENT_EXTRA_LIMIT, limit>0? limit:1);
return intent;
}
/**
* 获取裁剪照片的Intent
* @param targetUri 要裁剪的照片
* @param outPutUri 裁剪完成的照片
* @param options 裁剪配置
* @return
*/
public static Intent getCropIntentWithOtherApp(Uri targetUri, Uri outPutUri, CropOptions options) {
boolean isReturnData = TUtils.isReturnData();
Log.w(TAG, "getCaptureIntentWithCrop:isReturnData:" + (isReturnData ? "true" : "false"));
Intent intent = new Intent("com.android.camera.action.CROP");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setDataAndType(targetUri, "image/*");
intent.putExtra("crop", "true");
if (options.getAspectX()*options.getAspectY()>0){
intent.putExtra("aspectX", options.getAspectX());
intent.putExtra("aspectY", options.getAspectY());
}
if (options.getOutputX()*options.getOutputY()>0){
intent.putExtra("outputX", options.getOutputX());
intent.putExtra("outputY", options.getOutputY());
}
intent.putExtra("scale", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outPutUri);
intent.putExtra("return-data", isReturnData);
intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
intent.putExtra("noFaceDetection", true); // no face detection
return intent;
}
/**
* 获取拍照的Intent
* @return
*/
public static Intent getCaptureIntent(Uri outPutUri) {
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);//设置Action为拍照
intent.putExtra(MediaStore.EXTRA_OUTPUT, outPutUri);//将拍取的照片保存到指定URI
return intent;
}
/**
* 获取选择照片的Intent
* @return
*/
public static Intent getPickIntentWithGallery() {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_PICK);//Pick an item from the data
intent.setType("image/*");//从所有图片中进行选择
return intent;
}
/**
* 获取从文件中选择照片的Intent
* @return
*/
public static Intent getPickIntentWithDocuments() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
return intent;
}
}

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.uitl;
package com.jph.takephoto.uitl;
import android.content.Context;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.uitl;
package com.jph.takephoto.uitl;
import android.content.Context;
import android.util.Log;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.uitl;
package com.jph.takephoto.uitl;
import android.app.Activity;
import android.content.ContentResolver;
@@ -10,10 +10,10 @@ import android.text.TextUtils;
import android.util.Log;
import android.webkit.MimeTypeMap;
import com.nnbc123.app.takephoto.model.TException;
import com.nnbc123.app.takephoto.model.TExceptionType;
import com.nnbc123.app.R;
import com.nnbc123.library.utils.SingleToastUtil;
import com.jph.takephoto.model.TException;
import com.jph.takephoto.model.TExceptionType;
import com.mango.moshen.R;
import com.mango.xchat_android_library.utils.SingleToastUtil;
import java.io.ByteArrayOutputStream;
import java.io.File;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.uitl;
package com.jph.takephoto.uitl;
import android.app.Activity;
import android.content.ContentResolver;
@@ -12,8 +12,8 @@ import androidx.core.content.FileProvider;
import android.text.TextUtils;
import android.util.Log;
import com.nnbc123.app.takephoto.model.TException;
import com.nnbc123.app.takephoto.model.TExceptionType;
import com.jph.takephoto.model.TException;
import com.jph.takephoto.model.TExceptionType;
import java.io.File;
import java.io.FileNotFoundException;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.takephoto.uitl;
package com.jph.takephoto.uitl;
import android.app.Activity;
import android.app.ProgressDialog;
@@ -12,15 +12,15 @@ import android.text.TextUtils;
import android.util.Log;
import com.darsh.multipleimageselect.models.Image;
import com.nnbc123.app.takephoto.model.CropOptions;
import com.nnbc123.app.takephoto.model.TContextWrap;
import com.nnbc123.app.takephoto.model.TException;
import com.nnbc123.app.takephoto.model.TExceptionType;
import com.nnbc123.app.takephoto.model.TImage;
import com.nnbc123.app.takephoto.model.TIntentWap;
import com.jph.takephoto.model.CropOptions;
import com.jph.takephoto.model.TContextWrap;
import com.jph.takephoto.model.TException;
import com.jph.takephoto.model.TExceptionType;
import com.jph.takephoto.model.TImage;
import com.jph.takephoto.model.TIntentWap;
import com.soundcloud.android.crop.Crop;
import com.nnbc123.app.R;
import com.nnbc123.library.utils.SingleToastUtil;
import com.mango.moshen.R;
import com.mango.xchat_android_library.utils.SingleToastUtil;
import java.io.File;
import java.util.ArrayList;
@@ -106,6 +106,7 @@ public class TUtils {
public static void captureBySafely(TContextWrap contextWrap, TIntentWap intentWap)throws TException {
List result=contextWrap.getActivity().getPackageManager().queryIntentActivities(intentWap.getIntent(),PackageManager.MATCH_ALL);
if (result.isEmpty()){
// Toast.makeText(contextWrap.getActivity(),contextWrap.getActivity().getResources().getText(R.string.tip_no_camera),Toast.LENGTH_SHORT).show();
SingleToastUtil.showToastShort(R.string.tip_no_camera);
throw new TException(TExceptionType.TYPE_NO_CAMERA);
}else {
@@ -157,7 +158,7 @@ public class TUtils {
if (contextWrap.getFragment()!=null){
Crop.of(imageUri, outPutUri).asSquare().start(contextWrap.getActivity(),contextWrap.getFragment());
}else {
Crop.of(imageUri, outPutUri).asSquare().withAspect(160, 90).start(contextWrap.getActivity());
Crop.of(imageUri, outPutUri).asSquare().start(contextWrap.getActivity());
}
}
}

View File

@@ -1,16 +1,17 @@
package com.nnbc123.app;
package com.mango.moshen;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import com.nnbc123.app.takephoto.app.TakePhotoActivity;
import com.nnbc123.app.takephoto.compress.CompressConfig;
import com.nnbc123.app.takephoto.model.CropOptions;
import com.nnbc123.app.takephoto.model.TResult;
import com.nnbc123.app.common.permission.PermissionActivity;
import com.nnbc123.library.utils.file.JXFileUtils;
import com.jph.takephoto.app.TakePhotoActivity;
import com.jph.takephoto.compress.CompressConfig;
import com.jph.takephoto.model.CropOptions;
import com.jph.takephoto.model.TResult;
import com.mango.moshen.common.permission.PermissionActivity;
import com.mango.xchat_android_library.utils.file.JXFileUtils;
import java.io.File;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app;
package com.mango.moshen;
import android.content.Context;
import androidx.viewpager.widget.PagerAdapter;

View File

@@ -1,11 +1,13 @@
package com.nnbc123.app;
package com.mango.moshen;
import static com.nnbc123.core.channel_page.model.ChannelPageModel.KEY_FLAG_VALID_CHANNEL_PAGE;
import static com.mango.core.channel_page.model.ChannelPageModel.KEY_FLAG_VALID_CHANNEL_PAGE;
import android.animation.ObjectAnimator;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.text.TextUtils;
@@ -14,7 +16,7 @@ import android.util.SparseArray;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.view.animation.LinearInterpolator;
import android.widget.LinearLayout;
import android.widget.TextView;
@@ -23,6 +25,11 @@ import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.ViewModelProvider;
import com.mango.core.utils.SystemUidUtil;
import com.mango.moshen.home.fragment.PmModeFragment;
import com.mango.moshen.ui.im.recent.RecentListFragment;
import com.mango.moshen.ui.patriarch.PmModeChangeEvent;
import com.mango.moshen.utils.UserUtils;
import com.netease.nim.uikit.StatusBarUtil;
import com.netease.nim.uikit.common.util.log.LogUtil;
import com.netease.nim.uikit.common.util.string.StringUtil;
@@ -36,91 +43,88 @@ import com.netease.nimlib.sdk.team.TeamService;
import com.netease.nimlib.sdk.team.constant.TeamMessageNotifyTypeEnum;
import com.netease.nimlib.sdk.team.model.Team;
import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
import com.nnbc123.app.application.ActivityStackManager;
import com.nnbc123.app.avroom.activity.AVRoomActivity;
import com.nnbc123.app.avroom.newuserchargegift.NewUserChargeGiftDialog;
import com.nnbc123.app.base.BaseMvpActivity;
import com.nnbc123.app.common.widget.DragLayout;
import com.nnbc123.app.community.dynamic.view.DynamicDetailActivity;
import com.nnbc123.app.community.publish.view.PublishActivity;
import com.nnbc123.app.community.square.SquareFragment;
import com.nnbc123.app.family.view.activity.FamilyHomeActivity;
import com.nnbc123.app.home.HomeViewModel;
import com.nnbc123.app.home.dialog.NewUserHelloDialog;
import com.nnbc123.app.home.dialog.ProtocolUpdateDialog;
import com.nnbc123.app.home.fragment.home.HomeFragment;
import com.nnbc123.app.home.fragment.MeFragment;
import com.nnbc123.app.home.fragment.MsgFragment;
import com.nnbc123.app.home.fragment.PmModeFragment;
import com.nnbc123.app.home.presenter.MainPresenter;
import com.nnbc123.app.home.view.IMainView;
import com.nnbc123.app.home.widget.AnchorCardView;
import com.nnbc123.app.main.helper.NoticationsUiHelper;
import com.nnbc123.app.miniworld.activity.MiniWorldGuestPageActivity;
import com.nnbc123.app.module.Extras;
import com.nnbc123.app.module_hall.secretcode.PwdCodeMgr;
import com.nnbc123.app.qiyukefu.CustomerServerHelper;
import com.nnbc123.app.quick_pass.QuickPassLoginAct;
import com.nnbc123.app.service.DaemonService;
import com.nnbc123.app.ui.im.ImInitHelper;
import com.nnbc123.app.ui.im.avtivity.NimP2PMessageActivity;
import com.nnbc123.app.ui.login.BindPhoneActivity;
import com.nnbc123.app.ui.login.fragment.AddUserInfoFragment;
import com.nnbc123.app.ui.patriarch.PmModeChangeEvent;
import com.nnbc123.app.ui.patriarch.help.LimitEnterRoomHelper;
import com.nnbc123.app.ui.patriarch.help.PmDialogShowMrg;
import com.nnbc123.app.ui.utils.ImageLoadUtils;
import com.nnbc123.app.ui.utils.ImageLoadUtilsV2;
import com.nnbc123.app.ui.webview.CommonWebViewActivity;
import com.nnbc123.app.ui.widget.MainTabLayout;
import com.nnbc123.app.utils.CleanLeakUtils;
import com.nnbc123.app.utils.PushMessageHandler;
import com.nnbc123.app.utils.UserUtils;
import com.nnbc123.core.Constants;
import com.nnbc123.core.DemoCache;
import com.nnbc123.core.UriProvider;
import com.nnbc123.core.auth.AuthModel;
import com.nnbc123.core.auth.event.KickOutEvent;
import com.nnbc123.core.auth.event.LoginEvent;
import com.nnbc123.core.auth.event.LogoutEvent;
import com.nnbc123.core.channel_page.model.ChannelPageModel;
import com.nnbc123.core.community.event.SquareTaskEvent;
import com.nnbc123.core.community.event.UnReadCountEvent;
import com.nnbc123.core.home.bean.MainTabType;
import com.nnbc123.core.home.event.RefreshHomeDataEvent;
import com.nnbc123.core.home.event.VisitorUnreadCountEvent;
import com.nnbc123.core.home.model.GameHomeModel;
import com.nnbc123.core.home.model.HomeModel;
import com.nnbc123.core.initial.InitialModel;
import com.nnbc123.core.linked.LinkedModel;
import com.nnbc123.core.linked.bean.LinkedInfo;
import com.nnbc123.core.manager.AvRoomDataManager;
import com.nnbc123.core.manager.IMBroadcastManager;
import com.nnbc123.core.manager.IMMessageManager;
import com.nnbc123.core.manager.RoomEvent;
import com.nnbc123.core.patriarch.event.CloseMinRoomEvent;
import com.nnbc123.core.patriarch.event.ImPushMsgPmLimitTimeEvent;
import com.nnbc123.core.patriarch.event.PmDismissAllLimitDialogEvent;
import com.nnbc123.core.room.bean.RoomInfo;
import com.nnbc123.core.statistic.StatisticManager;
import com.nnbc123.core.statistic.protocol.StatisticsProtocol;
import com.nnbc123.core.user.UserModel;
import com.nnbc123.core.user.bean.UserInfo;
import com.nnbc123.core.user.event.LoadLoginUserInfoEvent;
import com.nnbc123.core.user.event.LoginUserInfoUpdateEvent;
import com.nnbc123.core.user.event.NeedBindPhoneEvent;
import com.nnbc123.core.user.event.NeedCompleteInfoEvent;
import com.nnbc123.core.utils.CurrentTimeUtils;
import com.nnbc123.core.utils.SharedPreferenceUtils;
import com.nnbc123.core.utils.StringUtils;
import com.nnbc123.library.base.factory.CreatePresenter;
import com.nnbc123.library.threadmgr.ThreadPoolManager;
import com.nnbc123.library.utils.JavaUtil;
import com.opensource.svgaplayer.SVGAImageView;
import com.orhanobut.logger.Logger;
import com.tencent.bugly.crashreport.CrashReport;
import com.tongdaxing.erban.upgrade.AppUpgradeHelper;
import com.trello.rxlifecycle3.android.ActivityEvent;
import com.mango.moshen.application.ActivityStackManager;
import com.mango.moshen.avroom.activity.AVRoomActivity;
import com.mango.moshen.avroom.newuserchargegift.NewUserChargeGiftDialog;
import com.mango.moshen.base.BaseMvpActivity;
import com.mango.moshen.common.widget.CircleImageView;
import com.mango.moshen.common.widget.DragLayout;
import com.mango.moshen.community.dynamic.view.DynamicDetailActivity;
import com.mango.moshen.community.publish.view.PublishActivity;
import com.mango.moshen.community.square.SquareFragment;
import com.mango.moshen.family.view.activity.FamilyHomeActivity;
import com.mango.moshen.home.HomeViewModel;
import com.mango.moshen.home.dialog.NewUserHelloDialog;
import com.mango.moshen.home.dialog.ProtocolUpdateDialog;
import com.mango.moshen.home.fragment.HomeFragment;
import com.mango.moshen.home.fragment.MeFragment;
import com.mango.moshen.home.presenter.MainPresenter;
import com.mango.moshen.home.view.IMainView;
import com.mango.moshen.home.widget.AnchorCardView;
import com.mango.moshen.main.helper.NoticationsUiHelper;
import com.mango.moshen.miniworld.activity.MiniWorldGuestPageActivity;
import com.mango.moshen.module.Extras;
import com.mango.moshen.module_hall.secretcode.PwdCodeMgr;
import com.mango.moshen.quick_pass.QuickPassLoginAct;
import com.mango.moshen.service.DaemonService;
import com.mango.moshen.ui.im.ImInitHelper;
import com.mango.moshen.ui.im.avtivity.NimP2PMessageActivity;
import com.mango.moshen.ui.login.BindPhoneActivity;
import com.mango.moshen.ui.login.fragment.AddUserInfoFragment;
import com.mango.moshen.ui.patriarch.help.LimitEnterRoomHelper;
import com.mango.moshen.ui.patriarch.help.PmDialogShowMrg;
import com.mango.moshen.ui.utils.ImageLoadUtils;
import com.mango.moshen.ui.utils.ImageLoadUtilsV2;
import com.mango.moshen.ui.webview.CommonWebViewActivity;
import com.mango.moshen.ui.widget.LivingIconView;
import com.mango.moshen.ui.widget.MainTabLayout;
import com.mango.moshen.utils.CleanLeakUtils;
import com.mango.moshen.utils.PushMessageHandler;
import com.mango.core.Constants;
import com.mango.core.DemoCache;
import com.mango.core.UriProvider;
import com.mango.core.auth.AuthModel;
import com.mango.core.auth.event.KickOutEvent;
import com.mango.core.auth.event.LoginEvent;
import com.mango.core.auth.event.LogoutEvent;
import com.mango.core.channel_page.model.ChannelPageModel;
import com.mango.core.community.event.SquareTaskEvent;
import com.mango.core.community.event.UnReadCountEvent;
import com.mango.core.home.bean.MainTabType;
import com.mango.core.home.event.RefreshHomeDataEvent;
import com.mango.core.home.event.VisitorUnreadCountEvent;
import com.mango.core.home.model.GameHomeModel;
import com.mango.core.home.model.HomeModel;
import com.mango.core.initial.InitialModel;
import com.mango.core.linked.LinkedModel;
import com.mango.core.linked.bean.LinkedInfo;
import com.mango.core.manager.AudioEngineManager;
import com.mango.core.manager.AvRoomDataManager;
import com.mango.core.manager.IMBroadcastManager;
import com.mango.core.manager.IMMessageManager;
import com.mango.core.manager.RoomEvent;
import com.mango.core.patriarch.event.CloseMinRoomEvent;
import com.mango.core.patriarch.event.ImPushMsgPmLimitTimeEvent;
import com.mango.core.patriarch.event.PmDismissAllLimitDialogEvent;
import com.mango.core.room.bean.RoomInfo;
import com.mango.core.statistic.StatisticManager;
import com.mango.core.statistic.protocol.StatisticsProtocol;
import com.mango.core.user.UserModel;
import com.mango.core.user.bean.UserInfo;
import com.mango.core.user.event.LoadLoginUserInfoEvent;
import com.mango.core.user.event.LoginUserInfoUpdateEvent;
import com.mango.core.user.event.NeedBindPhoneEvent;
import com.mango.core.user.event.NeedCompleteInfoEvent;
import com.mango.core.utils.CurrentTimeUtils;
import com.mango.core.utils.SharedPreferenceUtils;
import com.mango.core.utils.StringUtils;
import com.mango.xchat_android_library.base.factory.CreatePresenter;
import com.mango.xchat_android_library.threadmgr.ThreadPoolManager;
import com.mango.xchat_android_library.utils.JavaUtil;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@@ -129,6 +133,7 @@ import org.jetbrains.annotations.NotNull;
import java.lang.ref.WeakReference;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
@@ -149,14 +154,17 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
private DragLayout avatarLayout;
private TextView tvName;//最小化窗口名称
private TextView tvId;//最小化窗口ID
private ImageView avatarImage;
private CircleImageView avatarImage;
private LinearLayout llDragInfo;
private SVGAImageView userLivingView;
private LivingIconView userLivingView;
private View viewClose;
private MainTabLayout mMainTabLayout;
private AnchorCardView anchorCardView;
private int mCurrentTabType = MainTabType.TAB_TYPE_HOME;
/**
* 房间最小化动画换成属性动画原先的补间动画影响了activity的生命周期
*/
private ObjectAnimator roomMinAnim;
/**
* 管理限制进房
*/
@@ -171,7 +179,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
{
fragmentArray.put(MainTabType.TAB_TYPE_HOME, new HomeFragment());
fragmentArray.put(MainTabType.TAB_TYPE_MSG, new MsgFragment());
fragmentArray.put(MainTabType.TAB_TYPE_MSG, new RecentListFragment());
fragmentArray.put(MainTabType.TAB_TYPE_SQUARE, new SquareFragment());
fragmentArray.put(MainTabType.TAB_TYPE_ME, new MeFragment());
}
@@ -217,12 +225,11 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
.doOnError(throwable -> onNeedLogin())
.subscribe();
initView();
/* InitialModel.get().getMainTabInfosLiveData().observeForever(mainTabInfos -> {
InitialModel.get().getMainTabInfosLiveData().observeForever(mainTabInfos -> {
if (mainTabInfos != null) {
mMainTabLayout.setMainTabInfoList(InitialModel.getDefaultMainTab());
}
});*/
mMainTabLayout.setMainTabInfoList(InitialModel.getDefaultMainTab());
});
initMaterialView();
onParseIntent();
updateDatas();
@@ -285,8 +292,8 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
}
private void closeOpenRoomAnimation() {
stopRoomMinAnim();
avatarLayout.setVisibility(View.GONE);
userLivingView.stopAnimation();
}
@Override
@@ -294,7 +301,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
super.onResume();
mResumed = true;
if (avatarLayout.getVisibility() == View.VISIBLE) {
userLivingView.startAnimation();
userLivingView.start();
}
//这里是为了处理APP后台运行的情况下点击分享房间等LinkedMe链接的情况
UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
@@ -335,7 +342,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
super.onPause();
mResumed = false;
if (avatarLayout.getVisibility() == View.VISIBLE) {
userLivingView.stopAnimation();
userLivingView.stop();
}
mMainTabLayout.removeCallbacks(touchRunnable);
}
@@ -364,6 +371,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
userLivingView = findViewById(R.id.liv_user);
viewClose = findViewById(R.id.view_close);
llDragInfo = findViewById(R.id.ll_drag_info);
userLivingView.setColor(Color.WHITE);
mMainTabLayout.setOnTabClickListener(this);
anchorCardView = findViewById(R.id.vs_anchor_card);
}
@@ -416,6 +424,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
super.onDestroy();
ImInitHelper.get().unInit();
EventBus.getDefault().unregister(this);
stopRoomMinAnim();
if (limitEnterRoomHelper != null) {
limitEnterRoomHelper.release();
}
@@ -501,7 +510,6 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
getMvpPresenter().exitRoom();
QuickPassLoginAct.start(MainActivity.this);
PmDialogShowMrg.get().onLogout();
// CustomerServerHelper.logout();
}
public void onNeedLogin() {
@@ -519,6 +527,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
public void onReceiveRecentContactChanged(List<RecentContact> imMessages) {
int countIgnore = 0;
String subscriptionUid = SystemUidUtil.getSubscriptionUid();
for (RecentContact recentContact : imMessages) {
if (recentContact.getSessionType() == SessionTypeEnum.Team) {
@@ -529,6 +538,10 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
}
if (Objects.equals(subscriptionUid, recentContact.getContactId())) {
countIgnore += recentContact.getUnreadCount();
}
}
int unreadCount = IMMessageManager.get().queryUnreadMsg() + countIgnore;
mMainTabLayout.setMsgNum(unreadCount);
@@ -574,13 +587,30 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
}
}
private void startRoomMinAnim() {
roomMinAnim = ObjectAnimator.ofFloat(avatarImage, "rotation", 0f, 360f);
roomMinAnim.setDuration(10000);
roomMinAnim.setRepeatCount(-1);
roomMinAnim.setInterpolator(new LinearInterpolator());
roomMinAnim.start();
}
private void stopRoomMinAnim() {
if (roomMinAnim != null) {
roomMinAnim.cancel();
roomMinAnim = null;
}
}
@SuppressLint("SetTextI18n")
private void displayAvatarLayout(String avatar, String nickName, long uid) {
avatarLayout.clearAnimation();
avatarLayout.setVisibility(View.VISIBLE);
tvName.setText(nickName);
tvId.setText("ID:" + uid);
userLivingView.startAnimation();
userLivingView.start();
stopRoomMinAnim();
startRoomMinAnim();
ImageLoadUtils.loadAvatar(MainActivity.this, avatar, avatarImage);
}
@@ -656,8 +686,6 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
checkShowAnchorCardView();
onTabClick(mCurrentTabType);
// CustomerServerHelper.onLoginInfoUpdate(UserUtils.getUserInfo());
}

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app;
package com.mango.moshen;
import android.os.Bundle;
import android.util.Log;
@@ -6,9 +6,9 @@ import android.util.Log;
import com.microquation.linkedme.android.LinkedME;
import com.microquation.linkedme.android.util.LinkProperties;
import com.netease.nim.uikit.common.util.log.LogUtil;
import com.nnbc123.app.base.BaseActivity;
import com.nnbc123.core.linked.LinkedModel;
import com.nnbc123.core.linked.bean.LinkedInfo;
import com.mango.moshen.base.BaseActivity;
import com.mango.core.linked.LinkedModel;
import com.mango.core.linked.bean.LinkedInfo;
import java.util.HashMap;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app;
package com.mango.moshen;
import android.content.Intent;
import android.os.Bundle;
@@ -7,23 +7,23 @@ import android.util.Log;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.coorchice.library.utils.LogUtils;
import com.nnbc123.app.utils.UserUtils;
import com.mango.moshen.utils.UserUtils;
import com.netease.nimlib.sdk.NimIntent;
import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum;
import com.netease.nimlib.sdk.msg.model.IMMessage;
import com.nnbc123.app.avroom.activity.AVRoomActivity;
import com.nnbc123.app.base.BaseActivity;
import com.nnbc123.app.radish.signin.SignInActivity;
import com.nnbc123.app.ui.im.avtivity.NimP2PMessageActivity;
import com.nnbc123.app.ui.webview.CommonWebViewActivity;
import com.nnbc123.app.utils.PushMessageHandler;
import com.nnbc123.core.auth.AuthModel;
import com.nnbc123.core.im.custom.bean.CustomAttachment;
import com.nnbc123.core.im.custom.bean.OpenRoomNotiAttachment;
import com.nnbc123.core.im.custom.bean.OpenSignInAttachment;
import com.nnbc123.core.im.custom.bean.RedPackageAttachment;
import com.nnbc123.core.im.custom.bean.RoomInviteFansAttachment;
import com.nnbc123.library.utils.UIUtils;
import com.mango.moshen.avroom.activity.AVRoomActivity;
import com.mango.moshen.base.BaseActivity;
import com.mango.moshen.radish.signin.SignInActivity;
import com.mango.moshen.ui.im.avtivity.NimP2PMessageActivity;
import com.mango.moshen.ui.webview.CommonWebViewActivity;
import com.mango.moshen.utils.PushMessageHandler;
import com.mango.core.auth.AuthModel;
import com.mango.core.im.custom.bean.CustomAttachment;
import com.mango.core.im.custom.bean.OpenRoomNotiAttachment;
import com.mango.core.im.custom.bean.OpenSignInAttachment;
import com.mango.core.im.custom.bean.RedPackageAttachment;
import com.mango.core.im.custom.bean.RoomInviteFansAttachment;
import com.mango.xchat_android_library.utils.UIUtils;
import java.util.ArrayList;
import java.util.Map;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app;
package com.mango.moshen;
import android.app.Activity;
import android.content.ComponentName;
@@ -9,19 +9,19 @@ import android.provider.Settings;
import androidx.fragment.app.Fragment;
import com.nnbc123.app.audio.AudioRecordActivity;
import com.nnbc123.app.audio.MyVoiceActivity;
import com.nnbc123.app.audio.RecordingVoiceActivity;
import com.nnbc123.app.ui.login.AddUserInfoActivity;
import com.nnbc123.app.ui.login.ModifyInfoActivity;
import com.nnbc123.app.ui.setting.SettingActivity;
import com.nnbc123.app.ui.user.UserInfoActivity;
import com.nnbc123.app.ui.user.UserInfoModifyActivity;
import com.nnbc123.app.ui.user.UserModifyPhotosActivity;
import com.nnbc123.app.ui.webview.CommonWebViewActivity;
import com.nnbc123.core.UriProvider;
import com.nnbc123.core.statistic.StatisticManager;
import com.nnbc123.core.statistic.protocol.StatisticsProtocol;
import com.mango.moshen.audio.AudioRecordActivity;
import com.mango.moshen.audio.MyVoiceActivity;
import com.mango.moshen.audio.RecordingVoiceActivity;
import com.mango.moshen.ui.login.AddUserInfoActivity;
import com.mango.moshen.ui.login.ModifyInfoActivity;
import com.mango.moshen.ui.setting.SettingActivity;
import com.mango.moshen.ui.user.UserInfoActivity;
import com.mango.moshen.ui.user.UserInfoModifyActivity;
import com.mango.moshen.ui.user.UserModifyPhotosActivity;
import com.mango.moshen.ui.webview.CommonWebViewActivity;
import com.mango.core.UriProvider;
import com.mango.core.statistic.StatisticManager;
import com.mango.core.statistic.protocol.StatisticsProtocol;
/**
@@ -153,8 +153,8 @@ public class UIHelper {
}
public static void showMonsterResult(Context context, String monsterId) {
CommonWebViewActivity.start(context, UriProvider.WEB_URL +
"/yinmeng/modules/monster/index.html?monsterId=" + monsterId);
CommonWebViewActivity.start(context, UriProvider.IM_SERVER_URL +
"/yinyou/modules/monster/index.html?monsterId=" + monsterId);
}
/**
@@ -172,8 +172,8 @@ public class UIHelper {
* 跳转推荐页h5
*/
public static void showRecommendPosH5(Context context) {
String cardUrl = UriProvider.WEB_URL +
"/yinmeng/modules/recommend-card/index.html";
String cardUrl = UriProvider.JAVA_WEB_URL +
"/yinyou/modules/recommend-card/index.html";
CommonWebViewActivity.start(context, cardUrl);
}
@@ -208,6 +208,6 @@ public class UIHelper {
}
public static void openContactUs(Context context) {
CommonWebViewActivity.start(context, UriProvider.WEB_URL + "/yinmeng/modules/contact/contact.html");
CommonWebViewActivity.start(context, UriProvider.IM_SERVER_URL + "/yinyou/modules/contact/contact.html");
}
}

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app;
package com.mango.moshen;
import android.content.Context;
import android.content.Intent;
@@ -7,8 +7,8 @@ import androidx.viewpager.widget.ViewPager;
import android.view.View;
import android.widget.ImageView;
import com.nnbc123.app.base.BaseActivity;
import com.nnbc123.core.PreferencesUtils;
import com.mango.moshen.base.BaseActivity;
import com.mango.core.PreferencesUtils;
public class UserGuideActivity extends BaseActivity {

View File

@@ -1,11 +1,11 @@
package com.nnbc123.app.application;
package com.mango.moshen.application;
import android.app.Activity;
import android.app.Application;
import android.os.Bundle;
import com.nnbc123.app.location.LocationManager;
import com.nnbc123.core.auth.AuthModel;
import com.mango.moshen.location.LocationManager;
import com.mango.core.auth.AuthModel;
/**
* activity的管理

View File

@@ -0,0 +1,55 @@
package com.mango.moshen.application;
import android.app.Activity;
import com.mango.moshen.avroom.activity.AVRoomActivity;
import com.mango.moshen.utils.ActWhiteListMrg;
import java.lang.ref.WeakReference;
import lombok.Getter;
/**
* create by lvzebiao @2019/8/8
*/
public class ActivityStackManager {
/**
* 用于保持最顶的Activity实例排除中转的activity
* 比如{@link com.mango.moshen.MiddleActivity}
*/
@Getter
private WeakReference<Activity> topUpgradeWeakRef;
@Getter
private WeakReference<Activity> avRoomActWeakRef;
public void setTopUpgradeActivity(Activity activity) {
if (!ActWhiteListMrg.isTempActivity(activity)) {
topUpgradeWeakRef = new WeakReference<>(activity);
}
}
public void addActivity(Activity activity){
if (activity instanceof AVRoomActivity) {
avRoomActWeakRef = new WeakReference<>(activity);
}
}
public void removeActivity(Activity activity){
if (activity instanceof AVRoomActivity) {
avRoomActWeakRef = null;
}
}
private static final class Helper {
public static final ActivityStackManager INSTANCE = new ActivityStackManager();
}
public static ActivityStackManager getInstance() {
return Helper.INSTANCE;
}
}

View File

@@ -1,29 +1,29 @@
package com.nnbc123.app.application;
package com.mango.moshen.application;
import android.app.Activity;
import com.nnbc123.core.activity.bean.LotteryInfo;
import com.nnbc123.core.level.event.CharmLevelUpEvent;
import com.nnbc123.core.level.event.LevelUpEvent;
import com.nnbc123.core.manager.AvRoomDataManager;
import com.nnbc123.core.pay.bean.ShowCommonWebEvent;
import com.nnbc123.core.pay.event.NewUserChargeEvent;
import com.nnbc123.core.recall.bean.CheckLostUserInfo;
import com.nnbc123.core.recall.event.CheckLostUserEvent;
import com.nnbc123.core.relation.cp.CpInviteInfo;
import com.nnbc123.core.upgrade.event.ImPushUpdateAppEvent;
import com.nnbc123.core.user.UserModel;
import com.nnbc123.core.utils.ActivityUtil;
import com.nnbc123.core.utils.SharedPreferenceUtils;
import com.nnbc123.core.vip.VipUpgradeEvent;
import com.nnbc123.app.avroom.newuserchargegift.NewUserChargePrizeDialog;
import com.nnbc123.app.relation.cp.dialog.CpGlobalDialog;
import com.nnbc123.app.ui.webview.CommonWebViewActivity;
import com.nnbc123.app.ui.widget.LevelUpDialog;
import com.nnbc123.app.ui.widget.RecallDialog;
import com.nnbc123.app.ui.widget.lottery_dialog.LotteryDialogManager;
import com.nnbc123.app.utils.UserUtils;
import com.nnbc123.app.vip.VipUpgradeDialog;
import com.mango.core.activity.bean.LotteryInfo;
import com.mango.core.level.event.CharmLevelUpEvent;
import com.mango.core.level.event.LevelUpEvent;
import com.mango.core.manager.AvRoomDataManager;
import com.mango.core.pay.bean.ShowCommonWebEvent;
import com.mango.core.pay.event.NewUserChargeEvent;
import com.mango.core.recall.bean.CheckLostUserInfo;
import com.mango.core.recall.event.CheckLostUserEvent;
import com.mango.core.relation.cp.CpInviteInfo;
import com.mango.core.upgrade.event.ImPushUpdateAppEvent;
import com.mango.core.user.UserModel;
import com.mango.core.utils.ActivityUtil;
import com.mango.core.utils.SharedPreferenceUtils;
import com.mango.core.vip.VipUpgradeEvent;
import com.mango.moshen.avroom.newuserchargegift.NewUserChargePrizeDialog;
import com.mango.moshen.relation.cp.dialog.CpGlobalDialog;
import com.mango.moshen.ui.webview.CommonWebViewActivity;
import com.mango.moshen.ui.widget.LevelUpDialog;
import com.mango.moshen.ui.widget.RecallDialog;
import com.mango.moshen.ui.widget.lottery_dialog.LotteryDialogManager;
import com.mango.moshen.utils.UserUtils;
import com.mango.moshen.vip.VipUpgradeDialog;
import com.tongdaxing.erban.upgrade.AppUpgradeHelper;
import com.trello.rxlifecycle3.components.support.RxAppCompatActivity;

View File

@@ -1,16 +1,16 @@
package com.nnbc123.app.application;
package com.mango.moshen.application;
import static com.nnbc123.xchat_android_constants.XChatConstants.HW_APP_ID;
import static com.nnbc123.xchat_android_constants.XChatConstants.HW_CERTIFICATE_NAME;
import static com.nnbc123.xchat_android_constants.XChatConstants.OPPO_APP_ID;
import static com.nnbc123.xchat_android_constants.XChatConstants.OPPO_APP_KEY;
import static com.nnbc123.xchat_android_constants.XChatConstants.OPPO_CERTIFICATE_NAME;
import static com.nnbc123.xchat_android_constants.XChatConstants.OPPO_SECRET;
import static com.nnbc123.xchat_android_constants.XChatConstants.VIVO_CERTIFICATE_NAME;
import static com.nnbc123.xchat_android_constants.XChatConstants.XM_APP_ID;
import static com.nnbc123.xchat_android_constants.XChatConstants.XM_APP_KEY;
import static com.nnbc123.xchat_android_constants.XChatConstants.XM_CERTIFICATE_NAME;
import static com.nnbc123.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_HEADER_TYPE_OPEN_ROOM_NOTI;
import static com.mango.xchat_android_constants.XChatConstants.HW_APP_ID;
import static com.mango.xchat_android_constants.XChatConstants.HW_CERTIFICATE_NAME;
import static com.mango.xchat_android_constants.XChatConstants.OPPO_APP_ID;
import static com.mango.xchat_android_constants.XChatConstants.OPPO_APP_KEY;
import static com.mango.xchat_android_constants.XChatConstants.OPPO_CERTIFICATE_NAME;
import static com.mango.xchat_android_constants.XChatConstants.OPPO_SECRET;
import static com.mango.xchat_android_constants.XChatConstants.VIVO_CERTIFICATE_NAME;
import static com.mango.xchat_android_constants.XChatConstants.XM_APP_ID;
import static com.mango.xchat_android_constants.XChatConstants.XM_APP_KEY;
import static com.mango.xchat_android_constants.XChatConstants.XM_CERTIFICATE_NAME;
import static com.mango.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_HEADER_TYPE_OPEN_ROOM_NOTI;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
@@ -28,9 +28,7 @@ import androidx.multidex.MultiDex;
import com.bumptech.glide.request.target.ViewTarget;
import com.bytedance.hume.readapk.HumeSDK;
import com.chuhai.utils.MetaDataUtils;
import com.coorchice.library.utils.LogUtils;
import com.facebook.stetho.Stetho;
import com.heytap.msp.push.HeytapPushManager;
import com.hjq.toast.ToastUtils;
import com.huawei.hms.support.common.ActivityMgr;
@@ -49,10 +47,6 @@ import com.netease.nimlib.sdk.msg.MessageNotifierCustomization;
import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum;
import com.netease.nimlib.sdk.msg.model.IMMessage;
import com.netease.nimlib.sdk.util.NIMUtil;
import com.nnbc123.app.qiyukefu.CustomerServerHelper;
import com.nnbc123.library.common.application.BaseApp;
import com.nnbc123.library.common.file.FileHelper;
import com.nnbc123.library.utils.ResUtil;
import com.opensource.svgaplayer.SVGAParser;
import com.orhanobut.logger.AndroidLogAdapter;
import com.orhanobut.logger.Logger;
@@ -62,58 +56,59 @@ import com.scwang.smartrefresh.layout.footer.ClassicsFooter;
import com.tencent.bugly.Bugly;
import com.tencent.bugly.beta.Beta;
import com.tencent.bugly.crashreport.CrashReport;
import com.tencent.vasdolly.helper.ChannelReaderUtil;
import com.umeng.analytics.MobclickAgent;
import com.umeng.commonsdk.UMConfigure;
import com.nnbc123.app.BuildConfig;
import com.nnbc123.app.MainActivity;
import com.nnbc123.app.MiddleActivity;
import com.nnbc123.app.NimMiddleActivity;
import com.nnbc123.app.R;
import com.nnbc123.app.module_hall.HallDataManager;
import com.nnbc123.app.other.activity.SplashActivity;
import com.nnbc123.app.quick_pass.QuickPassLoginAct;
import com.nnbc123.app.radish.wallet.RadishWalletManager;
import com.nnbc123.app.utils.PushMessageHandler;
import com.nnbc123.xchat_android_constants.XChatConstants;
import com.nnbc123.core.Constants;
import com.nnbc123.core.DemoCache;
import com.nnbc123.core.Env;
import com.nnbc123.core.UriProvider;
import com.nnbc123.core.auth.AuthModel;
import com.nnbc123.core.bean.response.ServiceResult;
import com.nnbc123.core.channel.ChannelModel;
import com.nnbc123.core.family.model.FamilyModel;
import com.nnbc123.core.gift.GiftModel;
import com.nnbc123.core.im.custom.bean.CustomAttachment;
import com.nnbc123.core.im.custom.bean.OpenSignInAttachment;
import com.nnbc123.core.initial.InitialModel;
import com.nnbc123.core.interceptor.NoParamsInterceptor;
import com.nnbc123.core.interceptor.ParamsInterceptor;
import com.nnbc123.core.manager.IMMessageManager;
import com.nnbc123.core.manager.IMSystemMsgManager;
import com.nnbc123.core.market_verify.MarketVerifyModel;
import com.nnbc123.core.mentoring_relationship.model.MentoringRelationshipModel;
import com.nnbc123.core.pay.PayModel;
import com.nnbc123.core.public_chat_hall.model.PublicChatHallModel;
import com.nnbc123.core.radish.RadishModel;
import com.nnbc123.core.radish.signin.bean.ImNotice;
import com.nnbc123.core.room.face.DynamicFaceModel;
import com.nnbc123.core.statistic.StatisticManager;
import com.nnbc123.core.statistic.protocol.StatisticsProtocol;
import com.nnbc123.core.user.UserModel;
import com.nnbc123.core.user.event.NeedCompleteInfoEvent;
import com.nnbc123.core.utils.SharedPreferenceUtils;
import com.nnbc123.core.utils.net.ServerException;
import com.nnbc123.library.net.rxnet.RxNet;
import com.nnbc123.library.net.rxnet.converter.GsonConverterPlugins;
import com.nnbc123.library.utils.AppMetaDataUtil;
import com.nnbc123.library.utils.AppUtils;
import com.nnbc123.library.utils.DeviceUuidFactory;
import com.nnbc123.library.utils.SingleToastUtil;
import com.nnbc123.library.utils.SystemUtils;
import com.nnbc123.library.utils.VersionUtil;
import com.nnbc123.library.utils.codec.MD5Utils;
import com.nnbc123.library.utils.config.BasicConfig;
import com.mango.moshen.BuildConfig;
import com.mango.moshen.MainActivity;
import com.mango.moshen.MiddleActivity;
import com.mango.moshen.NimMiddleActivity;
import com.mango.moshen.R;
import com.mango.moshen.module_hall.HallDataManager;
import com.mango.moshen.other.activity.SplashActivity;
import com.mango.moshen.quick_pass.QuickPassLoginAct;
import com.mango.moshen.radish.wallet.RadishWalletManager;
import com.mango.moshen.utils.PushMessageHandler;
import com.mango.xchat_android_constants.XChatConstants;
import com.mango.core.Constants;
import com.mango.core.DemoCache;
import com.mango.core.Env;
import com.mango.core.UriProvider;
import com.mango.core.auth.AuthModel;
import com.mango.core.bean.response.ServiceResult;
import com.mango.core.channel.ChannelModel;
import com.mango.core.family.model.FamilyModel;
import com.mango.core.gift.GiftModel;
import com.mango.core.im.custom.bean.CustomAttachment;
import com.mango.core.im.custom.bean.OpenSignInAttachment;
import com.mango.core.initial.InitialModel;
import com.mango.core.interceptor.NoParamsInterceptor;
import com.mango.core.interceptor.ParamsInterceptor;
import com.mango.core.manager.IMMessageManager;
import com.mango.core.manager.IMSystemMsgManager;
import com.mango.core.market_verify.MarketVerifyModel;
import com.mango.core.mentoring_relationship.model.MentoringRelationshipModel;
import com.mango.core.pay.PayModel;
import com.mango.core.public_chat_hall.model.PublicChatHallModel;
import com.mango.core.radish.RadishModel;
import com.mango.core.radish.signin.bean.ImNotice;
import com.mango.core.room.face.DynamicFaceModel;
import com.mango.core.statistic.StatisticManager;
import com.mango.core.statistic.protocol.StatisticsProtocol;
import com.mango.core.user.UserModel;
import com.mango.core.user.event.NeedCompleteInfoEvent;
import com.mango.core.utils.SharedPreferenceUtils;
import com.mango.core.utils.net.ServerException;
import com.mango.xchat_android_library.net.rxnet.RxNet;
import com.mango.xchat_android_library.net.rxnet.converter.GsonConverterPlugins;
import com.mango.xchat_android_library.utils.AppMetaDataUtil;
import com.mango.xchat_android_library.utils.AppUtils;
import com.mango.xchat_android_library.utils.DeviceUuidFactory;
import com.mango.xchat_android_library.utils.SingleToastUtil;
import com.mango.xchat_android_library.utils.SystemUtils;
import com.mango.xchat_android_library.utils.VersionUtil;
import com.mango.xchat_android_library.utils.codec.MD5Utils;
import com.mango.xchat_android_library.utils.config.BasicConfig;
import org.greenrobot.eventbus.EventBus;
@@ -131,7 +126,7 @@ import io.realm.RealmConfiguration;
* @date 2017/2/11
*/
public class XChatApplication extends BaseApp {
public class XChatApplication extends Application {
public static final String TAG = "XChatApplication";
private static final MessageNotifierCustomization messageNotifierCustomization = new MessageNotifierCustomization() {
@Override
@@ -208,17 +203,17 @@ public class XChatApplication extends BaseApp {
public static void initOtherSDK() {
if (isInitOtherSDK) return;
isInitOtherSDK = true;
Context context = instance;
Context context = BasicConfig.INSTANCE.getAppContext();
Application application = (Application) context.getApplicationContext();
// 初始化 sp
long startTime = System.currentTimeMillis();
String channel;
channel = MetaDataUtils.INSTANCE.getStringData(Constants.CHANNEL_KEY, application);
String channel = "";
channel = ChannelReaderUtil.getChannel(instance);
if (TextUtils.isEmpty(channel)) {
channel = "official";
}
Log.d("XChatApplication", "channel:" + channel);
BasicConfig.INSTANCE.setOriginalChannel(channel);
//头条分包渠道
@@ -228,7 +223,6 @@ public class XChatApplication extends BaseApp {
channel = byteDanceChannel;
}
}
Log.d("XChatApplication", "channel2:" + channel);
BasicConfig.INSTANCE.setChannel(channel);
initEnv();
@@ -246,6 +240,7 @@ public class XChatApplication extends BaseApp {
});
ToastUtils.init(application);
if (inMainProcess(context)) {
HeytapPushManager.init(context, true);
@@ -277,7 +272,6 @@ public class XChatApplication extends BaseApp {
ViewTarget.setTagId(R.id.tag_glide);
init(channel);
initStetho(context);
if (!TextUtils.isEmpty(channel)) {
CrashReport.setAppChannel(context, channel);
@@ -306,8 +300,6 @@ public class XChatApplication extends BaseApp {
UMConfigure.setEncryptEnabled(true);
// 集成测试
UMConfigure.setLogEnabled(BuildConfig.DEBUG);
} else {
// CustomerServerHelper.init(instance, null);
}
LogUtils.d("init time = " + (System.currentTimeMillis() - startTime) + "ms");
@@ -319,7 +311,7 @@ public class XChatApplication extends BaseApp {
* 初始化linkedMe
*/
private static void initLinkedMe() {
LinkedME.getInstance(instance, XChatConstants.LINKED_ME_KEY);
LinkedME.getInstance(BasicConfig.INSTANCE.getAppContext(), XChatConstants.LINKED_ME_KEY);
if (isDebug()) {
//设置debug模式下打印LinkedME日志
LinkedME.getInstance().setDebug();
@@ -351,13 +343,13 @@ public class XChatApplication extends BaseApp {
"HUAWEI".toLowerCase().equals(brand.toLowerCase())
|| "HONOR".toLowerCase().equals(brand.toLowerCase())
|| "HUAWEI".equals(manufacturer))) {
LoadedApkHuaWei.hookHuaWeiVerifier((Application) instance.getApplicationContext());
LoadedApkHuaWei.hookHuaWeiVerifier((Application) BasicConfig.INSTANCE.getAppContext().getApplicationContext());
}
}
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public static void registerActivityLifecycleCallback(Application.ActivityLifecycleCallbacks callbacks) {
((Application) instance.getApplicationContext()).registerActivityLifecycleCallbacks(callbacks);
((Application) BasicConfig.INSTANCE.getAppContext().getApplicationContext()).registerActivityLifecycleCallbacks(callbacks);
}
/**
@@ -390,7 +382,6 @@ public class XChatApplication extends BaseApp {
options.messageNotifierCustomization = messageNotifierCustomization;
options.appKey = Constants.nimAppKey;
options.shouldConsiderRevokedMessageUnreadCount = true;
// 配置保存图片文件log 等数据的目录
// 如果 options 中没有设置这个值SDK 会使用下面代码示例中的位置作为 SDK 的数据目录
@@ -398,7 +389,7 @@ public class XChatApplication extends BaseApp {
// 如果第三方 APP 需要缓存清理功能 清理这个目录下面个子目录的内容即可
String sdkPath = null;
try {
sdkPath = FileHelper.getRootCacheDir().getPath() + "/nim";
sdkPath = Environment.getExternalStorageDirectory() + "/" + BasicConfig.INSTANCE.getAppContext().getPackageName() + "/nim";
} catch (ArrayIndexOutOfBoundsException e) {
}
@@ -409,7 +400,7 @@ public class XChatApplication extends BaseApp {
// 配置附件缩略图的尺寸大小表示向服务器请求缩略图文件的大小
// 该值一般应根据屏幕尺寸来确定 默认值为 Screen.width / 2
int widthPixels = instance.getResources().getDisplayMetrics().widthPixels;
int widthPixels = BasicConfig.INSTANCE.getAppContext().getResources().getDisplayMetrics().widthPixels;
options.thumbnailSize = widthPixels / 2;
// // save cache留做切换账号备用
DemoCache.setNotificationConfig(config);
@@ -531,28 +522,23 @@ public class XChatApplication extends BaseApp {
private static void init(String channel) {
initNimUIKit();
UriProvider.initUri(
BuildConfig.BASE_URL_DEBUG,
BuildConfig.BASE_URL_STAGING,
BuildConfig.BASE_URL_RELEASE,
BuildConfig.WEB_URL
);
SVGAParser.Companion.shareParser().init(instance);
UriProvider.initUri(BuildConfig.BASE_URL_DEBUG, BuildConfig.BASE_URL_STAGING, BuildConfig.BASE_URL_RELEASE);
SVGAParser.Companion.shareParser().init(BasicConfig.INSTANCE.getAppContext());
try {
/** svga动画缓存路径 */
File cacheDir = new File(instance.getExternalCacheDir(), "http");
File cacheDir = new File(BasicConfig.INSTANCE.getAppContext().getApplicationContext().getExternalCacheDir(), "http");
if (!cacheDir.exists()) cacheDir.mkdirs();
HttpResponseCache.install(cacheDir, 1024 * 1024 * 128);
} catch (IOException e) {
Log.e(TAG, "testtest", e);
}
initRxNet(instance, UriProvider.API_URL);
initRxNet(BasicConfig.INSTANCE.getAppContext(), UriProvider.JAVA_WEB_URL);
/**
* 使用到realm 数据库这里配置数据库 这里必须先于模块初始化前进行初始化配置
*/
Realm.init(instance);
Realm.init(BasicConfig.INSTANCE.getAppContext());
RealmConfiguration config = new RealmConfiguration.Builder()
.name("accompany.realm")
.deleteRealmIfMigrationNeeded()
@@ -600,7 +586,7 @@ public class XChatApplication extends BaseApp {
private static void initNimUIKit() {
// 初始化
NimUIKit.init(instance);
NimUIKit.init(BasicConfig.INSTANCE.getAppContext());
}
/**
@@ -627,29 +613,12 @@ public class XChatApplication extends BaseApp {
public void onCreate() {
super.onCreate();
instance = this;
BaseApp.init(this);
BasicConfig.INSTANCE.setAppContext(this.getApplicationContext());
SharedPreferenceUtils.init(this);
ResUtil.init(this);
boolean isShowPrivacyAgreement = (boolean) SharedPreferenceUtils.get(SplashActivity.SHOW_PRIVACY_AGREEMENT, true);
if (!isShowPrivacyAgreement) {
initOtherSDK();
}
initContext(this);
}
/**
* 初始化Application实例
*/
public void initContext(Application application) {
gContext = application;
}
/**
* @return 获取Application实例
*/
public static Application getApplication() {
return gContext;
}
@Override
@@ -667,18 +636,4 @@ public class XChatApplication extends BaseApp {
}
GlobalHandleManager.get().unInit();
}
/**
* 初始化Stetho网络调试
*/
private static void initStetho(Context context) {
if (Env.isDebug()) {
Stetho.initialize(
Stetho.newInitializerBuilder(context)
.enableDumpapp(Stetho.defaultDumperPluginsProvider(context))
.enableWebKitInspector(Stetho.defaultInspectorModulesProvider(context))
.build()
);
}
}
}

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.audio;
package com.mango.moshen.audio;
import android.annotation.SuppressLint;
import android.content.Intent;
@@ -12,20 +12,20 @@ import com.netease.nimlib.sdk.media.player.OnPlayListener;
import com.netease.nimlib.sdk.media.record.AudioRecorder;
import com.netease.nimlib.sdk.media.record.IAudioRecordCallback;
import com.netease.nimlib.sdk.media.record.RecordType;
import com.nnbc123.app.R;
import com.nnbc123.app.base.BaseBindingActivity;
import com.nnbc123.app.common.widget.dialog.DialogManager;
import com.nnbc123.app.databinding.ActivityAudiorecordBinding;
import com.nnbc123.core.audio.AudioPlayAndRecordManager;
import com.nnbc123.core.auth.AuthModel;
import com.nnbc123.core.file.FileModel;
import com.nnbc123.core.manager.AvRoomDataManager;
import com.nnbc123.core.room.bean.RoomInfo;
import com.nnbc123.core.room.model.AvRoomModel;
import com.nnbc123.core.user.UserModel;
import com.nnbc123.core.user.bean.UserInfo;
import com.nnbc123.library.annatation.ActLayoutRes;
import com.nnbc123.library.utils.log.MLog;
import com.mango.moshen.R;
import com.mango.moshen.base.BaseBindingActivity;
import com.mango.moshen.common.widget.dialog.DialogManager;
import com.mango.moshen.databinding.ActivityAudiorecordBinding;
import com.mango.core.audio.AudioPlayAndRecordManager;
import com.mango.core.auth.AuthModel;
import com.mango.core.file.FileModel;
import com.mango.core.manager.AvRoomDataManager;
import com.mango.core.room.bean.RoomInfo;
import com.mango.core.room.model.AvRoomModel;
import com.mango.core.user.UserModel;
import com.mango.core.user.bean.UserInfo;
import com.mango.xchat_android_library.annatation.ActLayoutRes;
import com.mango.xchat_android_library.utils.log.MLog;
import java.io.File;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.audio;
package com.mango.moshen.audio;
import android.Manifest;
import android.content.Intent;
@@ -9,22 +9,22 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.view.View;
import com.nnbc123.app.R;
import com.nnbc123.app.UIHelper;
import com.nnbc123.app.audio.adapter.MyVoiceListAdapter;
import com.nnbc123.app.audio.helper.AudioPlayerHelper;
import com.nnbc123.app.audio.presenter.MyVoicePresenter;
import com.nnbc123.app.audio.view.IMyVoiceView;
import com.nnbc123.app.base.BaseMvpActivity;
import com.nnbc123.app.common.NoDataFragment;
import com.nnbc123.app.ui.widget.magicindicator.buildins.UIUtil;
import com.nnbc123.app.ui.widget.recyclerview.decoration.HorizontalDecoration;
import com.nnbc123.core.audio.bean.UserVoiceInfo;
import com.nnbc123.core.statistic.StatisticManager;
import com.nnbc123.core.statistic.protocol.StatisticsProtocol;
import com.nnbc123.library.base.factory.CreatePresenter;
import com.nnbc123.library.utils.ListUtils;
import com.nnbc123.library.utils.log.MLog;
import com.mango.moshen.R;
import com.mango.moshen.UIHelper;
import com.mango.moshen.audio.adapter.MyVoiceListAdapter;
import com.mango.moshen.audio.helper.AudioPlayerHelper;
import com.mango.moshen.audio.presenter.MyVoicePresenter;
import com.mango.moshen.audio.view.IMyVoiceView;
import com.mango.moshen.base.BaseMvpActivity;
import com.mango.moshen.common.NoDataFragment;
import com.mango.moshen.ui.widget.magicindicator.buildins.UIUtil;
import com.mango.moshen.ui.widget.recyclerview.decoration.HorizontalDecoration;
import com.mango.core.audio.bean.UserVoiceInfo;
import com.mango.core.statistic.StatisticManager;
import com.mango.core.statistic.protocol.StatisticsProtocol;
import com.mango.xchat_android_library.base.factory.CreatePresenter;
import com.mango.xchat_android_library.utils.ListUtils;
import com.mango.xchat_android_library.utils.log.MLog;
import java.util.List;
@@ -99,7 +99,7 @@ public class MyVoiceActivity extends BaseMvpActivity<IMyVoiceView, MyVoicePresen
private void playVoice(String voice) {
// AudioEngineManager.get().setOpenVoiceMatchActivity(true);
// PlayerModel.get().pause();
AudioPlayerHelper.get().playInThread(voice, new com.nnbc123.app.audio.helper.OnPlayListener() {
AudioPlayerHelper.get().playInThread(voice, new com.mango.moshen.audio.helper.OnPlayListener() {
@Override
public void onError(String error) {
if (adapter != null) {

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.audio;
package com.mango.moshen.audio;
import android.Manifest;
import android.animation.Animator;
@@ -24,25 +24,25 @@ import android.widget.Chronometer;
import android.widget.ImageView;
import android.widget.TextView;
import com.nnbc123.app.R;
import com.nnbc123.app.audio.adapter.CardAdapter;
import com.nnbc123.app.audio.helper.AudioPlayerHelper;
import com.nnbc123.app.audio.presenter.RecordingVoicePresenter;
import com.nnbc123.app.audio.view.IRecordingVoiceView;
import com.nnbc123.app.audio.widget.OnSwipeListener;
import com.nnbc123.app.audio.widget.RingProgressView;
import com.nnbc123.app.audio.widget.VoiceCardConfig;
import com.nnbc123.app.audio.widget.VoiceCardItemTouchHelperCallback;
import com.nnbc123.app.audio.widget.VoiceCardLayoutManager;
import com.nnbc123.app.audio.widget.VoiceCardRecyclerView;
import com.nnbc123.app.audio.widget.VoiceWave;
import com.nnbc123.app.base.BaseMvpActivity;
import com.nnbc123.app.common.widget.dialog.DialogManager;
import com.nnbc123.core.audio.bean.VoiceCardInfo;
import com.nnbc123.core.room.model.AvRoomModel;
import com.nnbc123.core.statistic.StatisticManager;
import com.nnbc123.core.statistic.protocol.StatisticsProtocol;
import com.nnbc123.library.base.factory.CreatePresenter;
import com.mango.moshen.R;
import com.mango.moshen.audio.adapter.CardAdapter;
import com.mango.moshen.audio.helper.AudioPlayerHelper;
import com.mango.moshen.audio.presenter.RecordingVoicePresenter;
import com.mango.moshen.audio.view.IRecordingVoiceView;
import com.mango.moshen.audio.widget.OnSwipeListener;
import com.mango.moshen.audio.widget.RingProgressView;
import com.mango.moshen.audio.widget.VoiceCardConfig;
import com.mango.moshen.audio.widget.VoiceCardItemTouchHelperCallback;
import com.mango.moshen.audio.widget.VoiceCardLayoutManager;
import com.mango.moshen.audio.widget.VoiceCardRecyclerView;
import com.mango.moshen.audio.widget.VoiceWave;
import com.mango.moshen.base.BaseMvpActivity;
import com.mango.moshen.common.widget.dialog.DialogManager;
import com.mango.core.audio.bean.VoiceCardInfo;
import com.mango.core.room.model.AvRoomModel;
import com.mango.core.statistic.StatisticManager;
import com.mango.core.statistic.protocol.StatisticsProtocol;
import com.mango.xchat_android_library.base.factory.CreatePresenter;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
@@ -52,9 +52,9 @@ import java.util.Locale;
import butterknife.BindView;
import butterknife.ButterKnife;
import static com.nnbc123.app.audio.presenter.RecordingVoicePresenter.STATE_RECORD_NORMAL;
import static com.nnbc123.app.audio.presenter.RecordingVoicePresenter.STATE_RECORD_RECORDING;
import static com.nnbc123.app.audio.presenter.RecordingVoicePresenter.STATE_RECORD_SUCCESS;
import static com.mango.moshen.audio.presenter.RecordingVoicePresenter.STATE_RECORD_NORMAL;
import static com.mango.moshen.audio.presenter.RecordingVoicePresenter.STATE_RECORD_RECORDING;
import static com.mango.moshen.audio.presenter.RecordingVoicePresenter.STATE_RECORD_SUCCESS;
/**
* 录制声音页面

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.audio;
package com.mango.moshen.audio;
import android.content.Context;
import android.content.Intent;
@@ -19,37 +19,37 @@ import androidx.constraintlayout.widget.Group;
import com.opensource.svgaplayer.SVGACallback;
import com.opensource.svgaplayer.SVGAImageView;
import com.trello.rxlifecycle3.android.ActivityEvent;
import com.nnbc123.app.R;
import com.nnbc123.app.UIHelper;
import com.nnbc123.app.audio.helper.AudioPlayerHelper;
import com.nnbc123.app.audio.helper.OnPlayListener;
import com.nnbc123.app.audio.helper.OnRefreshListener;
import com.nnbc123.app.audio.helper.SvgaCacheManager;
import com.nnbc123.app.audio.helper.VmSoundManager;
import com.nnbc123.app.audio.helper.VoiceMacthHelper;
import com.nnbc123.app.audio.view.BottleContainer;
import com.nnbc123.app.audio.view.IBottleOpListener;
import com.nnbc123.app.audio.widget.VoiceBottleFilterGenderBottomDialog;
import com.nnbc123.app.audio.widget.VoiceLine;
import com.nnbc123.app.base.BaseActivity;
import com.nnbc123.app.base.TitleBar;
import com.nnbc123.app.common.widget.dialog.DialogManager;
import com.nnbc123.app.ui.im.avtivity.NimP2PMessageActivity;
import com.nnbc123.app.ui.widget.higuide.TuTuGuideHelper;
import com.nnbc123.core.audio.AudioModel;
import com.nnbc123.core.audio.bean.HistoryVoiceInfo;
import com.nnbc123.core.audio.bean.VoiceMatchInfo;
import com.nnbc123.core.auth.AuthModel;
import com.nnbc123.core.music.model.PlayerModel;
import com.nnbc123.core.statistic.StatisticManager;
import com.nnbc123.core.statistic.protocol.StatisticsProtocol;
import com.nnbc123.core.user.UserModel;
import com.nnbc123.core.user.bean.UserInfo;
import com.nnbc123.core.utils.ActivityUtil;
import com.nnbc123.core.utils.SharedPreferenceUtils;
import com.nnbc123.core.utils.net.DontWarnObserver;
import com.nnbc123.library.utils.ListUtils;
import com.nnbc123.library.utils.SingleToastUtil;
import com.mango.moshen.R;
import com.mango.moshen.UIHelper;
import com.mango.moshen.audio.helper.AudioPlayerHelper;
import com.mango.moshen.audio.helper.OnPlayListener;
import com.mango.moshen.audio.helper.OnRefreshListener;
import com.mango.moshen.audio.helper.SvgaCacheManager;
import com.mango.moshen.audio.helper.VmSoundManager;
import com.mango.moshen.audio.helper.VoiceMacthHelper;
import com.mango.moshen.audio.view.BottleContainer;
import com.mango.moshen.audio.view.IBottleOpListener;
import com.mango.moshen.audio.widget.VoiceBottleFilterGenderBottomDialog;
import com.mango.moshen.audio.widget.VoiceLine;
import com.mango.moshen.base.BaseActivity;
import com.mango.moshen.base.TitleBar;
import com.mango.moshen.common.widget.dialog.DialogManager;
import com.mango.moshen.ui.im.avtivity.NimP2PMessageActivity;
import com.mango.moshen.ui.widget.higuide.TuTuGuideHelper;
import com.mango.core.audio.AudioModel;
import com.mango.core.audio.bean.HistoryVoiceInfo;
import com.mango.core.audio.bean.VoiceMatchInfo;
import com.mango.core.auth.AuthModel;
import com.mango.core.music.model.PlayerModel;
import com.mango.core.statistic.StatisticManager;
import com.mango.core.statistic.protocol.StatisticsProtocol;
import com.mango.core.user.UserModel;
import com.mango.core.user.bean.UserInfo;
import com.mango.core.utils.ActivityUtil;
import com.mango.core.utils.SharedPreferenceUtils;
import com.mango.core.utils.net.DontWarnObserver;
import com.mango.xchat_android_library.utils.ListUtils;
import com.mango.xchat_android_library.utils.SingleToastUtil;
import java.util.List;
import java.util.Locale;
@@ -616,7 +616,7 @@ public class VoiceMatchActivity extends BaseActivity implements View.OnClickList
}
if (error == null) {
if (isRight) {
NimP2PMessageActivity.start(context, String.valueOf(info.getUid()), true);
NimP2PMessageActivity.start(context, String.valueOf(info.getUid()));
}
}
}

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.audio.adapter;
package com.mango.moshen.audio.adapter;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
@@ -10,8 +10,8 @@ import android.widget.FrameLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.nnbc123.app.R;
import com.nnbc123.core.audio.bean.VoiceCardInfo;
import com.mango.moshen.R;
import com.mango.core.audio.bean.VoiceCardInfo;
import java.util.ArrayList;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.audio.adapter;
package com.mango.moshen.audio.adapter;
import androidx.annotation.Nullable;
import android.view.View;
@@ -9,10 +9,10 @@ import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.nnbc123.app.R;
import com.nnbc123.app.audio.widget.VoiceLine;
import com.nnbc123.core.audio.bean.UserVoiceInfo;
import com.nnbc123.core.utils.StringUtils;
import com.mango.moshen.R;
import com.mango.moshen.audio.widget.VoiceLine;
import com.mango.core.audio.bean.UserVoiceInfo;
import com.mango.core.utils.StringUtils;
import java.util.List;
import java.util.Locale;

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.audio.helper;
package com.mango.moshen.audio.helper;
import android.annotation.SuppressLint;
import android.media.AudioManager;
@@ -9,6 +9,8 @@ import android.text.TextUtils;
import java.io.IOException;
import lombok.Getter;
/**
* create by lvzebiao @2019/6/14
*/
@@ -49,26 +51,12 @@ public class AudioPlayerHelper {
endPlay();
}
@Getter
private boolean preparing = false;
@Getter
private boolean pause = false;
public boolean isPreparing() {
return preparing;
}
public void setPreparing(boolean preparing) {
this.preparing = preparing;
}
public void setPause(boolean pause) {
this.pause = pause;
}
public boolean isPause() {
return pause;
}
public void playInThread(String filePath, OnPlayListener l) {
playInThread(filePath, false, l);
}
@@ -93,7 +81,7 @@ public class AudioPlayerHelper {
try {
player.setDataSource(filePath);
} catch (Exception e) {
} catch (IOException e) {
e.printStackTrace();
}
preparing = true;
@@ -122,9 +110,6 @@ public class AudioPlayerHelper {
}
public void endPlay() {
if (listener != null) {
listener.onCompletion();
}
handler.removeMessages(WHAT_STATUS.COUNT_PLAY);
if (player != null) {
if (preparing) {

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.audio.helper;
package com.mango.moshen.audio.helper;
/**
* create by lvzebiao @2019/6/17

View File

@@ -0,0 +1,10 @@
package com.mango.moshen.audio.helper;
/**
* create by lvzebiao @2019/6/11
*/
public interface OnRefreshListener {
void refresh();
}

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.audio.helper;
package com.mango.moshen.audio.helper;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -16,6 +16,7 @@ import javax.annotation.Nullable;
import io.reactivex.Single;
import io.reactivex.SingleOnSubscribe;
import io.reactivex.schedulers.Schedulers;
import lombok.Getter;
/**
* create by lvzebiao @2019/6/21
@@ -27,18 +28,22 @@ public class SvgaCacheManager {
/**
* 大瓶子水波纹
*/
@Getter
private SVGADrawable bigBottleSvga;
/**
* 大瓶子气泡
*/
@Getter
private SVGADrawable bigBubbleSvga;
/**
* 小瓶子水波纹
*/
@Getter
private SVGADrawable smallBottleSvga;
/**
* 小瓶子气泡
*/
@Getter
private SVGADrawable smallBubbleSvga;
private static SvgaCacheManager instance;
@@ -47,22 +52,6 @@ public class SvgaCacheManager {
}
public SVGADrawable getBigBottleSvga() {
return bigBottleSvga;
}
public SVGADrawable getBigBubbleSvga() {
return bigBubbleSvga;
}
public SVGADrawable getSmallBottleSvga() {
return smallBottleSvga;
}
public SVGADrawable getSmallBubbleSvga() {
return smallBubbleSvga;
}
public static SvgaCacheManager get() {
if (instance == null) {
instance = new SvgaCacheManager();

View File

@@ -1,6 +1,7 @@
package com.nnbc123.app.audio.helper;
package com.mango.moshen.audio.helper;
import lombok.Getter;
/**
* 声音匹配界面播放管理写一个单例类管理
@@ -26,12 +27,9 @@ public class VmSoundManager {
return Helper.INSTANCE;
}
@Getter
private AudioPlayerHelper helper;
public AudioPlayerHelper getHelper() {
return helper;
}
public void onCreate() {
helper = new AudioPlayerHelper();
helper.onCreate();

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.audio.helper;
package com.mango.moshen.audio.helper;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
@@ -6,18 +6,16 @@ import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.view.View;
import lombok.Getter;
/**
* create by lvzebiao @2019/6/11
*/
public class VoiceMacthHelper {
@Getter
private boolean dontLikeAnimRun;
public boolean isDontLikeAnimRun() {
return dontLikeAnimRun;
}
public void playDontLikeAnim(View view) {
dontLikeAnimRun = true;
ObjectAnimator animatorX = ObjectAnimator.ofFloat(view, "scaleX", 1.0f, 0.9f, 1.2f, 1.0f);

View File

@@ -0,0 +1,35 @@
package com.mango.moshen.audio.presenter;
import com.mango.moshen.audio.view.IMyVoiceView;
import com.mango.moshen.base.BaseMvpPresenter;
import com.mango.core.audio.AudioModel;
import com.mango.core.audio.bean.UserVoiceInfo;
import com.mango.core.auth.AuthModel;
import com.mango.core.utils.net.DontWarnObserver;
import com.mango.xchat_android_library.base.PresenterEvent;
import java.util.List;
/**
* 我的声音页面
*/
public class MyVoicePresenter extends BaseMvpPresenter<IMyVoiceView> {
public void getUserVoiceInfo() {
getMvpView().showLoadingView();
AudioModel.get().getMyVoiceInfoList(AuthModel.get().getCurrentUid())
.compose(bindUntilEvent(PresenterEvent.DESTROY))
.subscribe(new DontWarnObserver<List<UserVoiceInfo>>() {
@Override
public void accept(List<UserVoiceInfo> userVoiceInfos, String error) {
super.accept(userVoiceInfos, error);
if (getMvpView() == null) {
return;
}
getMvpView().hideLoadingView();
getMvpView().showVoiceInfo(userVoiceInfos);
}
});
}
}

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.audio.presenter;
package com.mango.moshen.audio.presenter;
import android.content.Context;
import android.content.Intent;
@@ -9,25 +9,25 @@ import android.util.Log;
import com.netease.nimlib.sdk.media.record.AudioRecorder;
import com.netease.nimlib.sdk.media.record.IAudioRecordCallback;
import com.netease.nimlib.sdk.media.record.RecordType;
import com.nnbc123.app.audio.helper.AudioPlayerHelper;
import com.nnbc123.app.audio.helper.OnPlayListener;
import com.nnbc123.app.audio.view.IRecordingVoiceView;
import com.nnbc123.app.base.BaseMvpPresenter;
import com.nnbc123.core.audio.AudioModel;
import com.nnbc123.core.audio.AudioPlayAndRecordManager;
import com.nnbc123.core.audio.bean.SaveVoiceSuccessResultInfo;
import com.nnbc123.core.audio.bean.VoiceCardInfo;
import com.nnbc123.core.auth.AuthModel;
import com.nnbc123.core.file.FileModel;
import com.nnbc123.core.manager.AvRoomDataManager;
import com.nnbc123.core.room.bean.RoomInfo;
import com.nnbc123.core.statistic.StatisticManager;
import com.nnbc123.core.statistic.protocol.StatisticsProtocol;
import com.nnbc123.core.utils.net.DontWarnObserver;
import com.nnbc123.library.base.PresenterEvent;
import com.nnbc123.library.utils.ListUtils;
import com.nnbc123.library.utils.SingleToastUtil;
import com.nnbc123.library.utils.log.MLog;
import com.mango.moshen.audio.helper.AudioPlayerHelper;
import com.mango.moshen.audio.helper.OnPlayListener;
import com.mango.moshen.audio.view.IRecordingVoiceView;
import com.mango.moshen.base.BaseMvpPresenter;
import com.mango.core.audio.AudioModel;
import com.mango.core.audio.AudioPlayAndRecordManager;
import com.mango.core.audio.bean.SaveVoiceSuccessResultInfo;
import com.mango.core.audio.bean.VoiceCardInfo;
import com.mango.core.auth.AuthModel;
import com.mango.core.file.FileModel;
import com.mango.core.manager.AvRoomDataManager;
import com.mango.core.room.bean.RoomInfo;
import com.mango.core.statistic.StatisticManager;
import com.mango.core.statistic.protocol.StatisticsProtocol;
import com.mango.core.utils.net.DontWarnObserver;
import com.mango.xchat_android_library.base.PresenterEvent;
import com.mango.xchat_android_library.utils.ListUtils;
import com.mango.xchat_android_library.utils.SingleToastUtil;
import com.mango.xchat_android_library.utils.log.MLog;
import java.io.File;
import java.util.List;
@@ -35,9 +35,9 @@ import java.util.List;
import io.reactivex.SingleObserver;
import io.reactivex.disposables.Disposable;
import static com.nnbc123.app.audio.RecordingVoiceActivity.AUDIO_DURA;
import static com.nnbc123.app.audio.RecordingVoiceActivity.AUDIO_FILE;
import static com.nnbc123.app.audio.RecordingVoiceActivity.MIN_RECORD_VOICE_DURATION;
import static com.mango.moshen.audio.RecordingVoiceActivity.AUDIO_DURA;
import static com.mango.moshen.audio.RecordingVoiceActivity.AUDIO_FILE;
import static com.mango.moshen.audio.RecordingVoiceActivity.MIN_RECORD_VOICE_DURATION;
/**
* 录制声音页面

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.audio.view;
package com.mango.moshen.audio.view;
import android.content.Context;
import androidx.annotation.NonNull;
@@ -8,13 +8,14 @@ import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.FrameLayout;
import com.nnbc123.app.ui.widget.magicindicator.buildins.UIUtil;
import com.nnbc123.core.audio.bean.VoiceMatchInfo;
import com.nnbc123.library.utils.ListUtils;
import com.mango.moshen.ui.widget.magicindicator.buildins.UIUtil;
import com.mango.core.audio.bean.VoiceMatchInfo;
import com.mango.xchat_android_library.utils.ListUtils;
import java.util.ArrayList;
import java.util.List;
import lombok.Setter;
/**
* create by lvzebiao @2019/6/18
@@ -182,12 +183,9 @@ public class BottleContainer extends FrameLayout {
}
}
@Setter
private IBottleOpListener opListener;
public void setOpListener(IBottleOpListener opListener) {
this.opListener = opListener;
}
/**
* 更新显示的瓶子状态
*/

View File

@@ -1,4 +1,4 @@
package com.nnbc123.app.audio.view;
package com.mango.moshen.audio.view;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
@@ -13,25 +13,25 @@ import android.widget.TextView;
import com.coorchice.library.SuperTextView;
import com.opensource.svgaplayer.SVGAImageView;
import com.nnbc123.app.R;
import com.nnbc123.app.UIHelper;
import com.nnbc123.app.audio.VoiceMatchActivity;
import com.nnbc123.app.audio.helper.OnPlayListener;
import com.nnbc123.app.audio.helper.SvgaCacheManager;
import com.nnbc123.app.audio.helper.VmSoundManager;
import com.nnbc123.app.common.widget.CircleImageView;
import com.nnbc123.app.ui.utils.ImageLoadUtils;
import com.nnbc123.app.ui.widget.magicindicator.buildins.UIUtil;
import com.nnbc123.xchat_android_constants.XChatConstants;
import com.nnbc123.core.audio.bean.VoiceMatchInfo;
import com.nnbc123.core.auth.AuthModel;
import com.nnbc123.core.statistic.StatisticManager;
import com.nnbc123.core.statistic.protocol.StatisticsProtocol;
import com.nnbc123.core.utils.SharedPreferenceUtils;
import com.nnbc123.core.utils.net.DontWarnObserver;
import com.nnbc123.core.utils.net.RxHelper;
import com.nnbc123.library.utils.SingleToastUtil;
import com.nnbc123.library.utils.TimeUtils;
import com.mango.moshen.R;
import com.mango.moshen.UIHelper;
import com.mango.moshen.audio.VoiceMatchActivity;
import com.mango.moshen.audio.helper.OnPlayListener;
import com.mango.moshen.audio.helper.SvgaCacheManager;
import com.mango.moshen.audio.helper.VmSoundManager;
import com.mango.moshen.common.widget.CircleImageView;
import com.mango.moshen.ui.utils.ImageLoadUtils;
import com.mango.moshen.ui.widget.magicindicator.buildins.UIUtil;
import com.mango.xchat_android_constants.XChatConstants;
import com.mango.core.audio.bean.VoiceMatchInfo;
import com.mango.core.auth.AuthModel;
import com.mango.core.statistic.StatisticManager;
import com.mango.core.statistic.protocol.StatisticsProtocol;
import com.mango.core.utils.SharedPreferenceUtils;
import com.mango.core.utils.net.DontWarnObserver;
import com.mango.core.utils.net.RxHelper;
import com.mango.xchat_android_library.utils.SingleToastUtil;
import com.mango.xchat_android_library.utils.TimeUtils;
import java.math.BigDecimal;
import java.text.DecimalFormat;
@@ -41,6 +41,8 @@ import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.Single;
import io.reactivex.android.schedulers.AndroidSchedulers;
import lombok.Getter;
import lombok.Setter;
/**
* create by lvzebiao @2019/6/6
@@ -87,18 +89,12 @@ public class BottleLayout extends FrameLayout {
int parentWidth;
@Getter
int initLeft;
@Getter
int initTop;
public int getInitLeft() {
return initLeft;
}
public int getInitTop() {
return initTop;
}
int minNextOffset;
private boolean canDrag;
@@ -333,12 +329,9 @@ public class BottleLayout extends FrameLayout {
animator.start();
}
@Setter
private OnNextPageListener onNextPageListener;
public void setOnNextPageListener(OnNextPageListener onNextPageListener) {
this.onNextPageListener = onNextPageListener;
}
public interface OnNextPageListener {
/**
* 受到限制 不给滑动

View File

@@ -0,0 +1,14 @@
package com.mango.moshen.audio.view;
import com.mango.core.audio.bean.VoiceMatchInfo;
/**
* create by lvzebiao @2019/6/19
*/
public interface IBottleOpListener {
void onLimit(boolean isRight);
void onLikeOrUnLike(VoiceMatchInfo info, boolean isRight, boolean needLoading);
}

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