Commit c18cbb51 by 刘鹏

Merge branch 'd/v4.4.08' into 'release'

D/v4.4.08

See merge request app_android_lib/YDL-Component!345
parents ec32ab46 870dd346
...@@ -3,7 +3,6 @@ package com.ydl.component.base ...@@ -3,7 +3,6 @@ package com.ydl.component.base
import android.app.Application import android.app.Application
import android.content.Context import android.content.Context
import android.content.Intent
import android.os.Build import android.os.Build
import android.os.Looper import android.os.Looper
import android.os.Process import android.os.Process
...@@ -22,18 +21,15 @@ import com.ydl.component.MainActivity ...@@ -22,18 +21,15 @@ import com.ydl.component.MainActivity
import com.ydl.component.R import com.ydl.component.R
import com.ydl.ydlcommon.actions.crash.Cockroach import com.ydl.ydlcommon.actions.crash.Cockroach
import com.ydl.ydlcommon.actions.crash.ExceptionHandler import com.ydl.ydlcommon.actions.crash.ExceptionHandler
import com.ydl.ydlcommon.base.config.HttpConfig
import com.ydl.ydlcommon.base.config.YDLConstants import com.ydl.ydlcommon.base.config.YDLConstants
import com.ydl.ydlcommon.base.delegate.IAppLifecycles import com.ydl.ydlcommon.base.delegate.IAppLifecycles
import com.ydl.ydlcommon.utils.AppProgressUtils import com.ydl.ydlcommon.utils.AppProgressUtils
import com.ydl.ydlcommon.utils.LogUtil import com.ydl.ydlcommon.utils.LogUtil
import com.ydl.ydlcommon.utils.YdlBuryPointUtil
import com.ydl.ydlcommon.utils.log.LogHelper import com.ydl.ydlcommon.utils.log.LogHelper
import com.yidianling.common.tools.ToastUtil import com.yidianling.common.tools.ToastUtil
import com.yidianling.im.api.bean.IMInitConfigBean import com.yidianling.im.api.bean.IMInitConfigBean
import com.yidianling.im.config.NimApplication import com.yidianling.im.config.NimApplication
import io.flutter.view.FlutterMain import io.flutter.view.FlutterMain
import io.reactivex.functions.Action
/** /**
* Created by haorui on 2019-09-02. * Created by haorui on 2019-09-02.
...@@ -146,10 +142,7 @@ class DemoAppLifecycles : IAppLifecycles { ...@@ -146,10 +142,7 @@ class DemoAppLifecycles : IAppLifecycles {
//开启友盟集成测试 //开启友盟集成测试
UMConfigure.setLogEnabled(BuildConfig.DEBUG) UMConfigure.setLogEnabled(BuildConfig.DEBUG)
HttpConfig.getInstance().initSocketConfig(Action {
//数据埋点初始化 (一定要放在主进程中/因为用到了umeng统计,需要放在umeng初始化后)
YdlBuryPointUtil.init(application, true)
})
//安全检测 //安全检测
//YDLAppProtector.init(); //YDLAppProtector.init();
......
...@@ -4,11 +4,10 @@ package com.ydl.component.base; ...@@ -4,11 +4,10 @@ package com.ydl.component.base;
import android.content.Context; import android.content.Context;
import com.ydl.component.BuildConfig; import com.ydl.component.BuildConfig;
import com.ydl.ydlcommon.base.config.GlobalConfig;
import com.ydl.ydlcommon.base.config.IConfigModule; import com.ydl.ydlcommon.base.config.IConfigModule;
import com.ydl.ydlcommon.base.config.YDLConstants; import com.ydl.ydlcommon.base.config.YDLConstants;
import com.ydl.ydlcommon.base.delegate.IAppLifecycles; import com.ydl.ydlcommon.base.delegate.IAppLifecycles;
import com.ydl.ydlcommon.base.config.GlobalConfig;
import com.ydl.ydlcommon.utils.YDLCacheUtils;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
...@@ -20,8 +19,8 @@ import java.util.List; ...@@ -20,8 +19,8 @@ import java.util.List;
*/ */
public final class DemoGlobalConfig implements IConfigModule { public final class DemoGlobalConfig implements IConfigModule {
String APP_DOMAIN = "https://api.github.com/"; String APP_DOMAIN = "https://api.github.com/";
// public static String appEnv = YDLConstants.ENV_TEST; public static String appEnv = YDLConstants.ENV_TEST;
public static String appEnv = YDLConstants.ENV_PROD; // public static String appEnv = YDLConstants.ENV_PROD;
// public static String appEnv = YDLConstants.ENV_NEW_TEST;//配置未上传到maven库 // public static String appEnv = YDLConstants.ENV_NEW_TEST;//配置未上传到maven库
@Override @Override
......
...@@ -3,7 +3,6 @@ package com.ydl.component.rtc ...@@ -3,7 +3,6 @@ package com.ydl.component.rtc
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
...@@ -23,11 +22,9 @@ import com.ydl.component.rtc.bean.UserSigResponse ...@@ -23,11 +22,9 @@ import com.ydl.component.rtc.bean.UserSigResponse
import com.ydl.component.rtc.http.MDTHttpImpl.Companion.getInstance import com.ydl.component.rtc.http.MDTHttpImpl.Companion.getInstance
import com.ydl.ydlcommon.modular.ModularServiceManager.provide import com.ydl.ydlcommon.modular.ModularServiceManager.provide
import com.yidianling.common.tools.ToastUtil import com.yidianling.common.tools.ToastUtil
import com.yidianling.user.api.bean.UserResponseBean
import com.yidianling.user.api.service.IUserService import com.yidianling.user.api.service.IUserService
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import java.util.*
class MDTLoginActivity : AppCompatActivity() { class MDTLoginActivity : AppCompatActivity() {
private var mEditUserId: EditText? = null private var mEditUserId: EditText? = null
...@@ -157,16 +154,12 @@ class MDTLoginActivity : AppCompatActivity() { ...@@ -157,16 +154,12 @@ class MDTLoginActivity : AppCompatActivity() {
} }
private fun initStatusBar() { private fun initStatusBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { val window = window
val window = window window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LAYOUT_STABLE)
or View.SYSTEM_UI_FLAG_LAYOUT_STABLE) window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) window.statusBarColor = Color.TRANSPARENT
window.statusBarColor = Color.TRANSPARENT
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
}
} }
companion object { companion object {
......
...@@ -4,7 +4,6 @@ import android.app.Dialog; ...@@ -4,7 +4,6 @@ import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
...@@ -63,16 +62,12 @@ public class MDTMainActivity extends AppCompatActivity { ...@@ -63,16 +62,12 @@ public class MDTMainActivity extends AppCompatActivity {
} }
private void initStatusBar() { private void initStatusBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow();
Window window = getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
| View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.TRANSPARENT);
window.setStatusBarColor(Color.TRANSPARENT);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
} }
private void login() { private void login() {
......
...@@ -2,7 +2,6 @@ package com.ydl.component.rtc; ...@@ -2,7 +2,6 @@ package com.ydl.component.rtc;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.text.Editable; import android.text.Editable;
import android.text.TextUtils; import android.text.TextUtils;
...@@ -158,15 +157,11 @@ public class ProfileActivity extends AppCompatActivity { ...@@ -158,15 +157,11 @@ public class ProfileActivity extends AppCompatActivity {
} }
private void initStatusBar() { private void initStatusBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow();
Window window = getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
| View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.TRANSPARENT);
window.setStatusBarColor(Color.TRANSPARENT);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
} }
} }
...@@ -111,16 +111,12 @@ public class TUICallingEntranceActivity extends Activity { ...@@ -111,16 +111,12 @@ public class TUICallingEntranceActivity extends Activity {
} }
private void initStatusBar() { private void initStatusBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow();
Window window = getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
| View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.TRANSPARENT);
window.setStatusBarColor(Color.TRANSPARENT);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
} }
private void initView() { private void initView() {
...@@ -401,11 +397,9 @@ public class TUICallingEntranceActivity extends Activity { ...@@ -401,11 +397,9 @@ public class TUICallingEntranceActivity extends Activity {
return; return;
} }
//其他厂商 //其他厂商
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION); intent.setData(Uri.parse("package:" + getPackageName()));
intent.setData(Uri.parse("package:" + getPackageName())); startActivityForResult(intent, PERMISSION_RESULT_CODE);
startActivityForResult(intent, PERMISSION_RESULT_CODE);
}
} else { } else {
//已经有权限 //已经有权限
PermissionUtil.mHasPermissionOrHasHinted = true; PermissionUtil.mHasPermissionOrHasHinted = true;
......
...@@ -8,7 +8,7 @@ android { ...@@ -8,7 +8,7 @@ android {
defaultConfig { defaultConfig {
applicationId "com.cxzapp.yidianling" applicationId "com.cxzapp.yidianling"
minSdk 21 minSdk 23
targetSdk 28 targetSdk 28
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"
...@@ -136,10 +136,10 @@ dependencies { ...@@ -136,10 +136,10 @@ dependencies {
implementation 'com.huawei.hms:push:5.3.0.304' implementation 'com.huawei.hms:push:5.3.0.304'
//====================云信基础库==================== //====================云信基础库====================
implementation 'com.ydl:nim-base:1.1.0.7' implementation 'com.ydl:nim-base:1.1.1.2'
implementation 'com.netease.nimlib:basesdk:9.1.1' implementation 'com.netease.nimlib:basesdk:9.2.1'
implementation 'com.netease.nimlib:avchat:9.1.1' implementation 'com.netease.nimlib:avchat:9.2.1'
implementation 'com.netease.nimlib:nrtc:9.1.1' implementation 'com.netease.nimlib:nrtc:9.2.1'
//OPPO推送需要单独引入 //OPPO推送需要单独引入
implementation 'com.google.code.gson:gson:2.6.2' implementation 'com.google.code.gson:gson:2.6.2'
implementation 'commons-codec:commons-codec:1.6' implementation 'commons-codec:commons-codec:1.6'
......
...@@ -5,7 +5,7 @@ buildscript { ...@@ -5,7 +5,7 @@ buildscript {
ext { ext {
kotlin_version = '1.6.10' kotlin_version = '1.6.10'
support_version = '26.1.0' support_version = '26.1.0'
minSdkVersion = 21 minSdkVersion = 23
targetSdkVersion = 28 targetSdkVersion = 28
compileSdkVersion = 28 compileSdkVersion = 28
buildToolsVersion = '28.0.3' buildToolsVersion = '28.0.3'
...@@ -14,7 +14,7 @@ buildscript { ...@@ -14,7 +14,7 @@ buildscript {
ydlrouter_version = '1.2.3' ydlrouter_version = '1.2.3'
constrait_support_version = '1.0.2' constrait_support_version = '1.0.2'
componentVersion = "0.3.0.41" componentVersion = "0.3.0.42.4-SNAPSHOT"
} }
repositories { repositories {
mavenCentral() mavenCentral()
......
...@@ -16,7 +16,7 @@ ext { ...@@ -16,7 +16,7 @@ ext {
android = [ android = [
compileSdkVersion: 28, compileSdkVersion: 28,
buildToolsVersion: "28.0.3", buildToolsVersion: "28.0.3",
minSdkVersion : 21, minSdkVersion : 23,
targetSdkVersion : 28, targetSdkVersion : 28,
versionCode : 1000, versionCode : 1000,
versionName : "1.0.00", versionName : "1.0.00",
...@@ -131,8 +131,8 @@ ext { ...@@ -131,8 +131,8 @@ ext {
"flowlayout" : "cn.lankton:flowlayout:3.1.0", "flowlayout" : "cn.lankton:flowlayout:3.1.0",
"androidanimations" : "com.daimajia.androidanimations:library:2.3@aar", "androidanimations" : "com.daimajia.androidanimations:library:2.3@aar",
//友盟统计 //友盟统计
"umeng-common" : "com.umeng.umsdk:common:9.4.4", "umeng-common" : "com.umeng.umsdk:common:9.5.2",
"umeng-asms" : "com.umeng.umsdk:asms:1.4.1", "umeng-asms" : "com.umeng.umsdk:asms:1.6.3",
//友盟社会化分享 //友盟社会化分享
"umeng-share-core" : "com.umeng.umsdk:share-core:7.1.4", "umeng-share-core" : "com.umeng.umsdk:share-core:7.1.4",
"umeng-share-qq" : "com.umeng.umsdk:share-qq:7.1.4", "umeng-share-qq" : "com.umeng.umsdk:share-qq:7.1.4",
...@@ -150,7 +150,6 @@ ext { ...@@ -150,7 +150,6 @@ ext {
"bugly-nativecrashreport" : "com.tencent.bugly:nativecrashreport:3.6.0.1", "bugly-nativecrashreport" : "com.tencent.bugly:nativecrashreport:3.6.0.1",
"ydl-image" : "com.ydl:ydl-image:1.0.10-SNAPSHOT@aar", "ydl-image" : "com.ydl:ydl-image:1.0.10-SNAPSHOT@aar",
"ydl-pushagent" : "com.ydl:pushagent:0.1.1", "ydl-pushagent" : "com.ydl:pushagent:0.1.1",
"ydl-notracepoint" : "com.ydl:notracepoint-lib:0.2.3.3@aar",
"ydl-js" : "com.ydl:ydl-js:1.0.7-SNAPSHOT@aar", "ydl-js" : "com.ydl:ydl-js:1.0.7-SNAPSHOT@aar",
"ydl-router" : "com.ydl:ydl-router:1.4.4", "ydl-router" : "com.ydl:ydl-router:1.4.4",
"xrecyclerview" : "com.ydl:xrecyclerview:1.0.0-SNAPSHOT@aar", "xrecyclerview" : "com.ydl:xrecyclerview:1.0.0-SNAPSHOT@aar",
...@@ -165,10 +164,11 @@ ext { ...@@ -165,10 +164,11 @@ ext {
"blankUtil" : "com.blankj:utilcode:1.25.9", "blankUtil" : "com.blankj:utilcode:1.25.9",
"ydl-hnet" : "com.ydl:h-net:0.0.8", "ydl-hnet" : "com.ydl:h-net:0.0.8",
"ydl-user-router" : "com.ydl:router:1.0.0-SNAPSHOT@aar", "ydl-user-router" : "com.ydl:router:1.0.0-SNAPSHOT@aar",
"ydl-device" : "com.ydl:device-id:0.0.31", "ydl-device" : "com.ydl:device-id:0.0.34",
//flutter功能组件升级===>发布ydl-flutter组件===>引用flutter相关的业务模块 //flutter功能组件升级===>发布ydl-flutter组件===>引用flutter相关的业务模块
"ydl-flutter" : "com.ydl:ydl-flutter:0.0.56@aar", //flutter aar "ydl-flutter" : "com.ydl:ydl-flutter:0.0.57@aar", //flutter aar
// "ydl-flutter-sp" : "com.ydl:ydl-flutter-sp:0.0.2@aar", //flutter 缓存 aar // "ydl-flutter-sp" : "com.ydl:ydl-flutter-sp:0.0.2@aar", //flutter 缓存 aar
"tbssdk" : "com.tencent.tbs:tbssdk:44216"
] ]
} }
...@@ -14,7 +14,6 @@ android { ...@@ -14,7 +14,6 @@ android {
compileSdkVersion rootProject.ext.android["compileSdkVersion"] compileSdkVersion rootProject.ext.android["compileSdkVersion"]
buildToolsVersion rootProject.ext.android["buildToolsVersion"] buildToolsVersion rootProject.ext.android["buildToolsVersion"]
defaultConfig { defaultConfig {
minSdkVersion rootProject.ext.android["minSdkVersion"] minSdkVersion rootProject.ext.android["minSdkVersion"]
targetSdkVersion rootProject.ext.android["targetSdkVersion"] targetSdkVersion rootProject.ext.android["targetSdkVersion"]
......
...@@ -15,10 +15,7 @@ android { ...@@ -15,10 +15,7 @@ android {
compileSdkVersion rootProject.ext.compileSdkVersion compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig { defaultConfig {
// minSdkVersion rootProject.ext.android["minSdkVersion"]
// targetSdkVersion rootProject.ext.android["targetSdkVersion"]
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1 versionCode 1
...@@ -68,7 +65,7 @@ dependencies { ...@@ -68,7 +65,7 @@ dependencies {
kapt "com.alibaba:arouter-compiler:$arouter_compiler" kapt "com.alibaba:arouter-compiler:$arouter_compiler"
api "com.alibaba:arouter-api:$arouter_api" api "com.alibaba:arouter-api:$arouter_api"
api "com.ydl:ydl-av:1.4.4" api "com.ydl:ydl-av:1.4.6"
implementation 'com.volcengine:apm_insight:1.4.6.cn' implementation 'com.volcengine:apm_insight:1.4.6.cn'
api project(':ydl-platform') api project(':ydl-platform')
......
...@@ -55,7 +55,6 @@ import com.ydl.ydlcommon.modular.ModularServiceManager ...@@ -55,7 +55,6 @@ import com.ydl.ydlcommon.modular.ModularServiceManager
import com.ydl.ydlcommon.modular.findRouteService import com.ydl.ydlcommon.modular.findRouteService
import com.ydl.ydlcommon.router.YdlCommonRouterManager import com.ydl.ydlcommon.router.YdlCommonRouterManager
import com.ydl.ydlcommon.utils.LogUtil import com.ydl.ydlcommon.utils.LogUtil
import com.ydl.ydlcommon.utils.StatusBarUtils
import com.ydl.ydlcommon.utils.Utils import com.ydl.ydlcommon.utils.Utils
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import com.ydl.ydlcommon.utils.log.AliYunLogConfig import com.ydl.ydlcommon.utils.log.AliYunLogConfig
...@@ -234,7 +233,6 @@ class AudioHomeActivity : ...@@ -234,7 +233,6 @@ class AudioHomeActivity :
private var canChangeRoute: Boolean = false private var canChangeRoute: Boolean = false
private var hasHandleRefused = false private var hasHandleRefused = false
private val notificationCallback = object : IMRegisterObserverCustomNotificationCallBack { private val notificationCallback = object : IMRegisterObserverCustomNotificationCallBack {
override fun onObserverCustomNotification(fromUid: String, toUid: String, content: String) { override fun onObserverCustomNotification(fromUid: String, toUid: String, content: String) {
if (fromUid == listenerUid) { if (fromUid == listenerUid) {
...@@ -530,7 +528,10 @@ class AudioHomeActivity : ...@@ -530,7 +528,10 @@ class AudioHomeActivity :
writeAgoraLog("通话页面打开的时候,RTM登录状态码:${YDLavManager.sdkStatus}") writeAgoraLog("通话页面打开的时候,RTM登录状态码:${YDLavManager.sdkStatus}")
AliYunRichLogsHelper.getInstance() AliYunRichLogsHelper.getInstance()
.sendRichLog(AliYunLogConfig.RTM, "通话页面打开的时候,RTM登录状态码:${YDLavManager.sdkStatus} channelId:${channelId}") .sendRichLog(
AliYunLogConfig.RTM,
"通话页面打开的时候,RTM登录状态码:${YDLavManager.sdkStatus} channelId:${channelId}"
)
if (YDLavManager.sdkStatus != Constants.CONNECTION_STATE_CONNECTED) { if (YDLavManager.sdkStatus != Constants.CONNECTION_STATE_CONNECTED) {
//再次登录声网,确保声网登录状态 //再次登录声网,确保声网登录状态
reLoginRTM() reLoginRTM()
...@@ -548,18 +549,14 @@ class AudioHomeActivity : ...@@ -548,18 +549,14 @@ class AudioHomeActivity :
private fun setWindowStatusBarColor() { private fun setWindowStatusBarColor() {
if (Build.VERSION.SDK_INT >= 21) { val decorView = window.decorView
val decorView = window.decorView val option = (View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
val option = (View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LAYOUT_STABLE)
or View.SYSTEM_UI_FLAG_LAYOUT_STABLE) decorView.systemUiVisibility = option
decorView.systemUiVisibility = option window.statusBarColor = Color.TRANSPARENT
window.statusBarColor = Color.TRANSPARENT if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { window.attributes?.layoutInDisplayCutoutMode =
window.attributes?.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
}
} else {
StatusBarUtils.setWindowStatusBarColor(this, R.color.audioim_color_40353535)
} }
} }
......
...@@ -4,7 +4,6 @@ import android.content.Context ...@@ -4,7 +4,6 @@ import android.content.Context
import android.media.AudioAttributes import android.media.AudioAttributes
import android.media.AudioManager import android.media.AudioManager
import android.media.MediaPlayer import android.media.MediaPlayer
import android.os.Build
/** /**
...@@ -23,14 +22,10 @@ class AudioPlayer { ...@@ -23,14 +22,10 @@ class AudioPlayer {
this.mContext = mContext this.mContext = mContext
mPlayer = MediaPlayer() mPlayer = MediaPlayer()
if (isSpeakerphoneOn) { if (isSpeakerphoneOn) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { var attributes = AudioAttributes.Builder()
var attributes = AudioAttributes.Builder() .setLegacyStreamType(AudioManager.STREAM_MUSIC)
.setLegacyStreamType(AudioManager.STREAM_MUSIC) .build()
.build() mPlayer?.setAudioAttributes(attributes)
mPlayer?.setAudioAttributes(attributes)
} else {
mPlayer?.setAudioStreamType(AudioManager.STREAM_MUSIC)
}
audioManager = mContext!!.getSystemService(Context.AUDIO_SERVICE) as AudioManager? audioManager = mContext!!.getSystemService(Context.AUDIO_SERVICE) as AudioManager?
audioManager?.setStreamVolume( audioManager?.setStreamVolume(
...@@ -41,14 +36,10 @@ class AudioPlayer { ...@@ -41,14 +36,10 @@ class AudioPlayer {
} else { } else {
mPlayer?.setAudioStreamType(AudioManager.STREAM_VOICE_CALL) mPlayer?.setAudioStreamType(AudioManager.STREAM_VOICE_CALL)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { var attributes = AudioAttributes.Builder()
var attributes = AudioAttributes.Builder() .setLegacyStreamType(AudioManager.STREAM_VOICE_CALL)
.setLegacyStreamType(AudioManager.STREAM_VOICE_CALL) .build()
.build() mPlayer?.setAudioAttributes(attributes)
mPlayer?.setAudioAttributes(attributes)
} else {
mPlayer?.setAudioStreamType(AudioManager.STREAM_VOICE_CALL)
}
audioManager = mContext!!.getSystemService(Context.AUDIO_SERVICE) as AudioManager? audioManager = mContext!!.getSystemService(Context.AUDIO_SERVICE) as AudioManager?
audioManager?.setStreamVolume( audioManager?.setStreamVolume(
......
...@@ -498,7 +498,6 @@ class ConsultantAudioHomeActivity : ...@@ -498,7 +498,6 @@ class ConsultantAudioHomeActivity :
override fun initDataAndEvent() { override fun initDataAndEvent() {
EventBus.getDefault().register(this) EventBus.getDefault().register(this)
callEventSave("30", "进入接听界面") callEventSave("30", "进入接听界面")
//状态栏颜色 //状态栏颜色
setWindowStatusBarColor() setWindowStatusBarColor()
//点亮屏幕 并解锁 //点亮屏幕 并解锁
......
...@@ -14,7 +14,6 @@ android { ...@@ -14,7 +14,6 @@ android {
compileSdkVersion rootProject.ext.compileSdkVersion compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig { defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
...@@ -53,7 +52,7 @@ android { ...@@ -53,7 +52,7 @@ android {
dependencies { dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.0.0' implementation 'androidx.appcompat:appcompat:1.2.0'
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
...@@ -61,7 +60,6 @@ dependencies { ...@@ -61,7 +60,6 @@ dependencies {
implementation 'com.daimajia.androidanimations:library:2.3@aar' implementation 'com.daimajia.androidanimations:library:2.3@aar'
api 'fr.tvbarthel.blurdialogfragment:lib:2.1.5' api 'fr.tvbarthel.blurdialogfragment:lib:2.1.5'
api "com.alibaba:arouter-api:$arouter_api" api "com.alibaba:arouter-api:$arouter_api"
api 'com.tencent.tbs.tbssdk:sdk:43903'
// 注意此处的依赖方式:kotlin中使用和java中使用方式有不同 // 注意此处的依赖方式:kotlin中使用和java中使用方式有不同
kapt "com.alibaba:arouter-compiler:$arouter_compiler" kapt "com.alibaba:arouter-compiler:$arouter_compiler"
implementation 'com.alibaba:fastjson:1.2.38' implementation 'com.alibaba:fastjson:1.2.38'
......
...@@ -5,7 +5,6 @@ import android.content.Context ...@@ -5,7 +5,6 @@ import android.content.Context
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.net.Uri import android.net.Uri
import android.os.Build
import android.text.TextUtils import android.text.TextUtils
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
...@@ -310,12 +309,10 @@ class ConfideHomeActivity : ...@@ -310,12 +309,10 @@ class ConfideHomeActivity :
* 初始化状态栏位置 * 初始化状态栏位置
*/ */
private fun initStatusBar() { private fun initStatusBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { window?.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
window?.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) window?.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
window?.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) window?.statusBarColor = Color.WHITE
window?.statusBarColor = Color.WHITE window?.decorView?.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
window?.decorView?.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
}
} }
/** /**
......
package com.ydl.confide.home.widget package com.ydl.confide.home.widget
import android.content.Context import android.content.Context
import android.os.Build
import androidx.cardview.widget.CardView
import androidx.recyclerview.widget.RecyclerView
import android.text.TextUtils import android.text.TextUtils
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.ydl.ydl_image.module.GlideApp import androidx.cardview.widget.CardView
import com.ydl.ydl_image.transform.GlideRoundTransform import androidx.recyclerview.widget.RecyclerView
import com.yidianling.common.tools.RxImageTool
import com.ydl.confide.R import com.ydl.confide.R
import com.ydl.confide.home.bean.ConfideHomeDataBean import com.ydl.confide.home.bean.ConfideHomeDataBean
import com.ydl.confide.home.event.IConfideHomeEvent import com.ydl.confide.home.event.IConfideHomeEvent
import com.ydl.ydl_image.module.GlideApp
import com.ydl.ydl_image.transform.GlideRoundTransform
import com.yidianling.common.tools.RxImageTool
import kotlinx.android.synthetic.main.confide_recent_view.view.* import kotlinx.android.synthetic.main.confide_recent_view.view.*
/** /**
...@@ -46,9 +45,7 @@ class ConfideHomeRecentView(mContext: Context, private var confideHomeEvent: ICo ...@@ -46,9 +45,7 @@ class ConfideHomeRecentView(mContext: Context, private var confideHomeEvent: ICo
params.setMargins(dp15, RxImageTool.dip2px(28f), dp15, RxImageTool.dip2px(24f)) params.setMargins(dp15, RxImageTool.dip2px(28f), dp15, RxImageTool.dip2px(24f))
radius = RxImageTool.dip2px(23f).toFloat() radius = RxImageTool.dip2px(23f).toFloat()
layoutParams = params layoutParams = params
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { elevation = RxImageTool.dip2px(1f).toFloat()
elevation = RxImageTool.dip2px(1f).toFloat()
}
} }
/** /**
......
package com.ydl.confide.intro package com.ydl.confide.intro
import android.graphics.Color import android.graphics.Color
import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
...@@ -64,16 +63,14 @@ class ExpertIntroActivity : AppCompatActivity() { ...@@ -64,16 +63,14 @@ class ExpertIntroActivity : AppCompatActivity() {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
ARouter.getInstance().inject(this) ARouter.getInstance().inject(this)
binding = DataBindingUtil.setContentView(this, R.layout.activity_expert_intro) binding = DataBindingUtil.setContentView(this, R.layout.activity_expert_intro)
if (Build.VERSION.SDK_INT >= 21) { val decorView = window.decorView
val decorView = window.decorView val option = (View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
val option = (View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LAYOUT_STABLE)
or View.SYSTEM_UI_FLAG_LAYOUT_STABLE) decorView.systemUiVisibility = option
decorView.systemUiVisibility = option window.statusBarColor = Color.TRANSPARENT
window.statusBarColor = Color.TRANSPARENT
}
if (initData != null) { if (initData != null) {
val beans = JSON.parseArray(initData, ConfideHomeBodyBean::class.java) val beans = JSON.parseArray(initData, ConfideHomeBodyBean::class.java)
val isLogin = findRouteService(IUserService::class.java).isLogin() val isLogin = findRouteService(IUserService::class.java).isLogin()
val vms = beans.map { val vms = beans.map {
VideoViewModel().mapOf(it).apply { showFreeTag.set(!isLogin) } VideoViewModel().mapOf(it).apply { showFreeTag.set(!isLogin) }
} }
......
...@@ -39,7 +39,7 @@ android { ...@@ -39,7 +39,7 @@ android {
dependencies { dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.0' implementation 'androidx.appcompat:appcompat:1.2.0'
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
......
...@@ -7,17 +7,22 @@ ...@@ -7,17 +7,22 @@
android:name=".ExpertSearchActivity" android:name=".ExpertSearchActivity"
android:launchMode="singleTask" android:launchMode="singleTask"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/consultant_NoTitleTheme"/> android:theme="@style/consultant_NoTitleTheme" />
<activity
android:name=".ExpertEightCategoryActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="@style/consultant_NoTitleTheme" />
<activity <activity
android:name=".HotSearchActivity" android:name=".HotSearchActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/consultant_NoTitleTheme"/> android:theme="@style/consultant_NoTitleTheme" />
<activity <activity
android:name=".ConsultAssistantCenterActivity" android:name=".ConsultAssistantCenterActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/consultant_Transparent"/> android:theme="@style/consultant_Transparent" />
<activity android:name=".preview.GridPreviewActivity" <activity android:name=".preview.GridPreviewActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
......
package com.yidianling.consultant
import android.annotation.SuppressLint
import android.view.WindowManager
import com.alibaba.android.arouter.facade.annotation.Route
import com.alibaba.android.arouter.launcher.ARouter
import com.ydl.webview.H5Params
import com.ydl.webview.NewH5Activity
import com.ydl.ydlcommon.base.BaseActivity
import com.ydl.ydlcommon.base.config.HttpConfig
import com.ydl.ydlcommon.bean.StatusBarOptions
import com.ydl.ydlcommon.data.http.RxUtils
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import com.yidianling.consultant.constants.ConsultBIConstants
import com.yidianling.consultant.model.SearchApi
import com.yidianling.consultant.model.bean.ChildrenBean
import com.yidianling.consultant.router.ConsultantIn
import com.yidianling.consultant.ui.view.topView.EightCategoryView
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
import kotlinx.android.synthetic.main.consultant_layout_eight_category.*
import kotlinx.android.synthetic.main.consultant_layout_search_toolbar.*
@Route(path = "/consult/eightcategory")
class ExpertEightCategoryActivity : BaseActivity() {
override fun layoutResId(): Int {
return R.layout.consultant_layout_eight_category
}
override fun getStatusViewOptions(): StatusBarOptions {
return StatusBarOptions(true, true)
}
@SuppressLint("CheckResult")
override fun initDataAndEvent() {
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE or WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN)
showProgressDialog()
SearchApi.getSearchApi()
.searchEightCategoryHotWord()
.compose(RxUtils.resultJavaData())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ resp ->
dismissProgressDialog()
var mutableList = mutableListOf<MutableList<ChildrenBean>>()
resp.forEach {
it.children?.let { it1 -> mutableList.add(it1) }
}
mutableList.forEachIndexed { index, item ->
item.forEachIndexed { inin, childrenBean ->
if (inin < 8) {
childrenBean.isVisible = true
}
if (inin == 8) {
return@forEachIndexed
}
}
}
val eightCategoryView = EightCategoryView(this, true)
eightCategoryView.setData(mutableList, null, null, true)
eight_view_ll.addView(eightCategoryView)
}, { t ->
dismissProgressDialog()
})
btn_back.setOnClickListener {
onBackPressed()
}
btn_call.setOnClickListener {
ActionCountUtils.count(ConsultBIConstants.ConsultEvent.APP_CONSULT_LIST_ONLINE_CUSTOMER_CLICK)
ConsultantIn.startP2PXiaoYi(this)
}
tv_guide.setOnClickListener {
ActionCountUtils.count(ConsultBIConstants.ConsultEvent.APP_CONSULT_LIST_CONSULT_GUIDE_CLICK)
val h5param = H5Params(HttpConfig.H5_URL + "help/consultation/", "咨询指南")
h5param.isShowMenu = true
NewH5Activity.start(this, h5param)
}
rl_search.setOnClickListener {
ActionCountUtils.count(
ConsultBIConstants.ConsultEvent.YDL_USER_CONSULT_SEARCH_CLICK,
tv_search_content.hint.toString()
)
ARouter.getInstance()
.build("/consult/hot_search")
.withString(
ExpertSearchActivity.HOT_SEARCH_DOCTOR_NAME,
tv_search_content.text.toString()
)
.navigation()
}
}
}
\ No newline at end of file
...@@ -34,6 +34,7 @@ import com.ydl.ydl_image.manager.YDLImageCacheManager ...@@ -34,6 +34,7 @@ import com.ydl.ydl_image.manager.YDLImageCacheManager
import com.ydl.ydlcommon.base.BaseMvpActivity import com.ydl.ydlcommon.base.BaseMvpActivity
import com.ydl.ydlcommon.base.config.HttpConfig import com.ydl.ydlcommon.base.config.HttpConfig
import com.ydl.ydlcommon.bean.StatusBarOptions import com.ydl.ydlcommon.bean.StatusBarOptions
import com.ydl.ydlcommon.router.IYDLRouterConstant
import com.ydl.ydlcommon.ui.LogoLoadingView import com.ydl.ydlcommon.ui.LogoLoadingView
import com.ydl.ydlcommon.utils.BuryPointUtils import com.ydl.ydlcommon.utils.BuryPointUtils
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
...@@ -47,6 +48,7 @@ import com.yidianling.consultant.adapter.ExpertSearchAdapter ...@@ -47,6 +48,7 @@ import com.yidianling.consultant.adapter.ExpertSearchAdapter
import com.yidianling.consultant.bean.ConsultantRecentCity import com.yidianling.consultant.bean.ConsultantRecentCity
import com.yidianling.consultant.constants.ConsultBIConstants import com.yidianling.consultant.constants.ConsultBIConstants
import com.yidianling.consultant.constants.ConsultBIConstants.ConsultEvent.Companion.POPUP_ICON_CLICK import com.yidianling.consultant.constants.ConsultBIConstants.ConsultEvent.Companion.POPUP_ICON_CLICK
import com.yidianling.consultant.constants.ConsultBIConstants.ConsultEvent.Companion.PRICE_TYPE_CLICK
import com.yidianling.consultant.constants.ConsultBIConstants.ConsultEvent.Companion.YDL_USER_CONSULT_SEARCH_CLICK import com.yidianling.consultant.constants.ConsultBIConstants.ConsultEvent.Companion.YDL_USER_CONSULT_SEARCH_CLICK
import com.yidianling.consultant.listener.OnCategoriesSelectedListener import com.yidianling.consultant.listener.OnCategoriesSelectedListener
import com.yidianling.consultant.listener.OnFilterConfirmListener import com.yidianling.consultant.listener.OnFilterConfirmListener
...@@ -83,6 +85,8 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres ...@@ -83,6 +85,8 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
private var locationRegionItem: RegionItem? = null private var locationRegionItem: RegionItem? = null
private var locationList: ArrayList<SubItem>? = arrayListOf() private var locationList: ArrayList<SubItem>? = arrayListOf()
private var locationHistoryList: ArrayList<RegionItem>? = arrayListOf() private var locationHistoryList: ArrayList<RegionItem>? = arrayListOf()
private var eightcategoryPopup: EightCategoryPopupWindow? = null
override fun showImage(url: String?, imgView: ImageView) { override fun showImage(url: String?, imgView: ImageView) {
YDLImageCacheManager.showImage(ExpertSearchActivity@ this, url, imgView) YDLImageCacheManager.showImage(ExpertSearchActivity@ this, url, imgView)
} }
...@@ -126,6 +130,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres ...@@ -126,6 +130,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
const val EXTRA_CATEGORY_NAME = "category_name" const val EXTRA_CATEGORY_NAME = "category_name"
const val EXTRA_SHOW_TYPE = "showType" const val EXTRA_SHOW_TYPE = "showType"
const val EXTRA_FROM_PAGE = "fromPage" const val EXTRA_FROM_PAGE = "fromPage"
const val CATEID3IN = "cateid3in"
const val HOT_SEARCH_DOCTOR_NAME = "hot_search_doctor_name" const val HOT_SEARCH_DOCTOR_NAME = "hot_search_doctor_name"
private const val EXTRA_IS_SHOW_HOT = "isInitShowHot" private const val EXTRA_IS_SHOW_HOT = "isInitShowHot"
private const val EXTRA_SEARCH_WORD = "searchWord" private const val EXTRA_SEARCH_WORD = "searchWord"
...@@ -213,6 +218,8 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres ...@@ -213,6 +218,8 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
private val doctorList = ArrayList<ExpertServiceItem>() private val doctorList = ArrayList<ExpertServiceItem>()
private var hasMore = true private var hasMore = true
private var initCategory = "0" private var initCategory = "0"
private var hasCateid = "0"
private var initCategoryCateid3 = "0"
private var initShowType: Int = 1 private var initShowType: Int = 1
var mapFilter: Map<String, Any>? = null var mapFilter: Map<String, Any>? = null
...@@ -411,6 +418,12 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres ...@@ -411,6 +418,12 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
mapFilter = mIntent.getSerializableExtra(GO_CRITERIA) as HashMap<String, Any> mapFilter = mIntent.getSerializableExtra(GO_CRITERIA) as HashMap<String, Any>
} }
initCategory = mIntent.getStringExtra("cateId") ?: "" initCategory = mIntent.getStringExtra("cateId") ?: ""
initCategoryCateid3 = mIntent.getStringExtra(CATEID3IN) ?: ""
if (!TextUtils.isEmpty(initCategoryCateid3) && initCategoryCateid3 != "0") {
allFilter.categoryId3List.add(initCategoryCateid3)
}
if (mIntent.getStringExtra("cateTitle") != null) { if (mIntent.getStringExtra("cateTitle") != null) {
cateName = mIntent.getStringExtra("cateTitle") cateName = mIntent.getStringExtra("cateTitle")
} }
...@@ -430,10 +443,6 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres ...@@ -430,10 +443,6 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
if (!TextUtils.isEmpty(initCategory) && initCategory != "0") { if (!TextUtils.isEmpty(initCategory) && initCategory != "0") {
allFilter.categoryId2List.add(initCategory) allFilter.categoryId2List.add(initCategory)
} }
if (!TextUtils.isEmpty(cateName)) {
tvSubject.text = cateName
updateFilterTextViewStatus(tvSubject, FILTER_STATUS_FILTERED)
}
getPresenter().fetchListHead() getPresenter().fetchListHead()
recommendListView.requestData(initCategory) recommendListView.requestData(initCategory)
...@@ -461,13 +470,43 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres ...@@ -461,13 +470,43 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
v_loading.visibility = View.VISIBLE v_loading.visibility = View.VISIBLE
v_loading.setViewType(LogoLoadingView.TYPE_LOADING, null) v_loading.setViewType(LogoLoadingView.TYPE_LOADING, null)
hasCateid = mIntent.getStringExtra(IYDLRouterConstant.HASCATEID) ?: ""
doctorAdapter.clickCount = 0 doctorAdapter.clickCount = 0
doctorAdapter.setIsRecommendWords(isRecommendWords) doctorAdapter.setIsRecommendWords(isRecommendWords)
doctorAdapter.setEntrance(1) doctorAdapter.setEntrance(1)
getPresenter().fetchFunctionWord(2) getPresenter().fetchFunctionWord(2)
} }
private fun hasCateid() {
//金刚位传递过来的cateid 如果八大分类 contain这个cateid就显示。否则不显示。
val mutableList = mutableListOf<MutableList<ChildrenBean>>()
mutableList.add(allFilter.childList)
mutableList.add(allFilter.stressList)
mutableList.add(allFilter.loveEmotionList)
mutableList.add(allFilter.marriedFamilyList)
mutableList.add(allFilter.personalGrowthList)
mutableList.add(allFilter.interpersonalRelationshipList)
mutableList.add(allFilter.careerDevelopmentList)
mutableList.add(allFilter.mentalHealthList)
var isShow = false
mutableList.forEachIndexed { index, item ->
if (item[0].cate_id == hasCateid) {
item[0].isSelected = true
isShow = true
}
}
if (isShow) {
if (!TextUtils.isEmpty(cateName)) {
tvSubject.text = cateName
updateFilterTextViewStatus(tvSubject, FILTER_STATUS_FILTERED)
}
} else {
tvSubject.text = "困扰"
updateFilterTextViewStatus(tvSubject, FILTER_STATUS_NORMAL)
}
}
override fun onNewIntent(intent: Intent?) { override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent) super.onNewIntent(intent)
initData(intent!!, true) initData(intent!!, true)
...@@ -543,6 +582,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres ...@@ -543,6 +582,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
allFilter.mentalHealthList.add(childrenBean) allFilter.mentalHealthList.add(childrenBean)
} }
} }
hasCateid()
} }
override fun onFunctionWordFetched(wordBean: MutableList<FunctionWordBean>) { override fun onFunctionWordFetched(wordBean: MutableList<FunctionWordBean>) {
...@@ -1025,7 +1065,8 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres ...@@ -1025,7 +1065,8 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
hideSoftInput() hideSoftInput()
appbar_layout.setExpanded(false) appbar_layout.setExpanded(false)
appbar_layout.postDelayed({ appbar_layout.postDelayed({
showSubjectPopupWindow() // showSubjectPopupWindow()
showeightCategoryPopupWindow()
}, 300) }, 300)
} }
...@@ -1079,6 +1120,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres ...@@ -1079,6 +1120,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
appbar_layout.setExpanded(false) appbar_layout.setExpanded(false)
appbar_layout.postDelayed({ appbar_layout.postDelayed({
updateFilterTextViewStatus(tvSort, FILTER_STATUS_OPEN) updateFilterTextViewStatus(tvSort, FILTER_STATUS_OPEN)
ActionCountUtils.count(PRICE_TYPE_CLICK)
showPricePopupWindow() showPricePopupWindow()
}, 300) }, 300)
...@@ -1382,7 +1424,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres ...@@ -1382,7 +1424,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
tempFilter, this tempFilter, this
) )
} }
pricePopup!!.setOnDismissListener { pricePopup?.setOnDismissListener {
if (tempFilter.priceRanges != null) { if (tempFilter.priceRanges != null) {
updateFilterTextViewStatus(tvSort, FILTER_STATUS_FILTERED) updateFilterTextViewStatus(tvSort, FILTER_STATUS_FILTERED)
} else { } else {
...@@ -1665,11 +1707,28 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres ...@@ -1665,11 +1707,28 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
} }
/** /**
* 显示八大类弹窗
*/
private fun showeightCategoryPopupWindow() {
eightcategoryPopup = EightCategoryPopupWindow(this, allFilter)
eightcategoryPopup?.setListener(this)
eightcategoryPopup?.setOnDismissListener {
viewDim.visibility = View.INVISIBLE
ConsultAssistantDialogUtils.INSTANCE.fitRequest(this, "doctor_list", true)
}
ConsultAssistantDialogUtils.INSTANCE.hideAssistantActivity()
eightcategoryPopup?.showAsDropDown(viewSep2)
updateFilterTextViewStatus(tvSubject, FILTER_STATUS_OPEN)
viewDim.visibility = View.VISIBLE
}
/**
* 主题选择确认回调 * 主题选择确认回调
* *
* 新增逻辑:当主题选择后,需要判断热门筛选中是否也有该主题,如果有,也需要同步更新选中状态 * 新增逻辑:当主题选择后,需要判断热门筛选中是否也有该主题,如果有,也需要同步更新选中状态
*/ */
override fun onCategoriesSelected(signLit: ArrayList<String>) { override fun onCategoriesSelected(signLit: ArrayList<String>) {
eightcategoryPopup?.dismiss()
if (signLit.isNotEmpty()) { if (signLit.isNotEmpty()) {
val sign1 = signLit.joinToString(",") { it } val sign1 = signLit.joinToString(",") { it }
ActionCountUtils.baiDuCountSign3( ActionCountUtils.baiDuCountSign3(
......
...@@ -50,6 +50,7 @@ import com.yidianling.common.tools.ToastUtil ...@@ -50,6 +50,7 @@ import com.yidianling.common.tools.ToastUtil
import com.yidianling.consultant.adapter.ExpertSearchAdapter import com.yidianling.consultant.adapter.ExpertSearchAdapter
import com.yidianling.consultant.bean.ConsultantRecentCity import com.yidianling.consultant.bean.ConsultantRecentCity
import com.yidianling.consultant.constants.ConsultBIConstants import com.yidianling.consultant.constants.ConsultBIConstants
import com.yidianling.consultant.constants.ConsultBIConstants.ConsultEvent.Companion.PRICE_TYPE_CLICK
import com.yidianling.consultant.constants.ConsultBIConstants.ConsultantLocationAuth.Companion.REFUSE_ALREADY import com.yidianling.consultant.constants.ConsultBIConstants.ConsultantLocationAuth.Companion.REFUSE_ALREADY
import com.yidianling.consultant.constants.ConsultBIConstants.ConsultantLocationAuth.Companion.WHETHER_LOCATION_AUTH import com.yidianling.consultant.constants.ConsultBIConstants.ConsultantLocationAuth.Companion.WHETHER_LOCATION_AUTH
import com.yidianling.consultant.listener.* import com.yidianling.consultant.listener.*
...@@ -96,6 +97,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -96,6 +97,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
private var locationRegionItem: RegionItem? = null private var locationRegionItem: RegionItem? = null
private var locationList: ArrayList<SubItem>? = arrayListOf() private var locationList: ArrayList<SubItem>? = arrayListOf()
private var locationHistoryList: ArrayList<RegionItem>? = arrayListOf() private var locationHistoryList: ArrayList<RegionItem>? = arrayListOf()
private var eightcategoryPopup: EightCategoryPopupWindow? = null
override fun layoutResId(): Int { override fun layoutResId(): Int {
return R.layout.consultant_activity_expert_search_list return R.layout.consultant_activity_expert_search_list
...@@ -908,7 +910,8 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -908,7 +910,8 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
hideSoftInput() hideSoftInput()
appbar_layout.setExpanded(false) appbar_layout.setExpanded(false)
appbar_layout.postDelayed({ appbar_layout.postDelayed({
showSubjectPopupWindow() // showSubjectPopupWindow()
showeightCategoryPopupWindow()
}, 300) }, 300)
} }
...@@ -953,6 +956,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -953,6 +956,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
appbar_layout.setExpanded(false) appbar_layout.setExpanded(false)
appbar_layout.postDelayed({ appbar_layout.postDelayed({
updateFilterTextViewStatus(tvSort, FILTER_STATUS_OPEN) updateFilterTextViewStatus(tvSort, FILTER_STATUS_OPEN)
ActionCountUtils.count(PRICE_TYPE_CLICK)
showPricePopupWindow() showPricePopupWindow()
}, 300) }, 300)
...@@ -1518,10 +1522,27 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -1518,10 +1522,27 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
} }
/** /**
* 显示八大类弹窗
*/
private fun showeightCategoryPopupWindow() {
eightcategoryPopup = EightCategoryPopupWindow(mActivity, allFilter)
eightcategoryPopup?.setListener(this)
eightcategoryPopup?.setOnDismissListener {
viewDim.visibility = View.INVISIBLE
showConsultAssistantDialog()
}
hideConsultAssistantDialog()
eightcategoryPopup?.showAsDropDown(viewSep2)
updateFilterTextViewStatus(tvSubject, FILTER_STATUS_OPEN)
viewDim.visibility = View.VISIBLE
}
/**
* 主题选择确认回调 * 主题选择确认回调
* *
*/ */
override fun onCategoriesSelected(signLit: ArrayList<String>) { override fun onCategoriesSelected(signLit: ArrayList<String>) {
eightcategoryPopup?.dismiss()
if (signLit.isNotEmpty()) { if (signLit.isNotEmpty()) {
val sign1 = signLit.joinToString(",") { it } val sign1 = signLit.joinToString(",") { it }
ActionCountUtils.baiDuCountSign3( ActionCountUtils.baiDuCountSign3(
......
...@@ -127,6 +127,9 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() { ...@@ -127,6 +127,9 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() {
} }
if (allFilter.sub.code != null&&allFilter.sub.code!=allFilter.region.code) { if (allFilter.sub.code != null&&allFilter.sub.code!=allFilter.region.code) {
filterMap["city_code"] = allFilter.sub.code filterMap["city_code"] = allFilter.sub.code
if (allFilter.sub.provinceCode.isNotEmpty()) {
filterMap["province_code"] = allFilter.sub.provinceCode
}
} }
} }
// 咨询方式 // 咨询方式
......
package com.yidianling.consultant.adapter
import android.annotation.SuppressLint
import android.content.Context
import androidx.recyclerview.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import com.yidianling.consultant.R
import com.yidianling.consultant.model.bean.ChildrenBean
import com.yidianling.consultant.model.bean.EightCategoryBean
import kotlinx.android.synthetic.main.consultant_layout_category_view.*
import kotlinx.android.synthetic.main.eight_category_detail_list_item.view.*
import kotlinx.android.synthetic.main.eight_category_list_item.view.*
/**
* Created by zqk on 17-9-20.
*/
class CategoryDetailAdapter(
private val context: Context,
private val categoryDetailList: MutableList<MutableList<ChildrenBean>>,
private val categoryNamelList: MutableList<EightCategoryBean>,
) : RecyclerView.Adapter<CategoryDetailAdapter.ViewHolder>() {
lateinit var outAdapterClicklistener: OutAdapterClicklistener
override fun getItemCount(): Int = categoryNamelList.size
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val itemView =
LayoutInflater.from(context)
.inflate(R.layout.eight_category_detail_list_item, parent, false)
return ViewHolder(itemView)
}
override fun onBindViewHolder(holder: ViewHolder, @SuppressLint("RecyclerView") position: Int) {
holder.category_name.text = categoryNamelList[position].string
val eightCategoryAdapter = CategoryDetailTextAdapter(context, categoryDetailList[position])
eightCategoryAdapter.setOnClick(object :
CategoryDetailTextAdapter.TextAdapterOnclickListener {
override fun textOnClick(textPosition: Int) {
outAdapterClicklistener.outAdapterClick(position, textPosition)
}
})
if (categoryDetailList[position].size > 9) {
holder.collapse_hide.visibility = View.VISIBLE
holder.arrow_collapse_hide.visibility = View.VISIBLE
} else {
holder.collapse_hide.visibility = View.GONE
holder.arrow_collapse_hide.visibility = View.GONE
}
if (categoryNamelList[position].collapse) {
eightCategoryAdapter.setAllVisible()
holder.collapse_hide.text = "收起"
holder.arrow_collapse_hide.background =
context.resources.getDrawable(R.drawable.consult_hide_arrow)
} else {
eightCategoryAdapter.setGone()
holder.collapse_hide.text = "展开"
holder.arrow_collapse_hide.background =
context.resources.getDrawable(R.drawable.consult_collapse_arrow)
}
holder.collapse_hide.setOnClickListener {
if (categoryNamelList[position].collapse) {
//显示 展开
categoryNamelList[position].collapse = false
holder.collapse_hide.text = "展开"
holder.arrow_collapse_hide.background =
context.resources.getDrawable(R.drawable.consult_collapse_arrow)
eightCategoryAdapter.setGone()
} else {
//显示收起
categoryNamelList[position].collapse = true
holder.collapse_hide.text = "收起"
holder.arrow_collapse_hide.background =
context.resources.getDrawable(R.drawable.consult_hide_arrow)
eightCategoryAdapter.setAllVisible()
}
}
holder.category_list_detail.layoutManager = GridLayoutManager(context, 3)
holder.category_list_detail.adapter = eightCategoryAdapter
}
interface OutAdapterClicklistener {
fun outAdapterClick(outPosition: Int, inPosition: Int)
}
fun setOutClicklistener(listener: OutAdapterClicklistener) {
this.outAdapterClicklistener = listener
}
inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val category_name = itemView.category_name
val category_list_detail = itemView.category_list_detail
val collapse_hide = itemView.collapse_hide
val arrow_collapse_hide = itemView.arrow_collapse_hide
}
}
\ No newline at end of file
package com.yidianling.consultant.adapter
import android.annotation.SuppressLint
import android.content.Context
import androidx.recyclerview.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import com.yidianling.consultant.R
import com.yidianling.consultant.model.bean.ChildrenBean
import kotlinx.android.synthetic.main.consultant_layout_category_view.*
import kotlinx.android.synthetic.main.eight_category_detail_item_item.view.*
import kotlinx.android.synthetic.main.eight_category_detail_list_item.view.*
import kotlinx.android.synthetic.main.eight_category_list_item.view.*
/**
* Created by zqk on 17-9-20.
*/
class CategoryDetailTextAdapter(
private val context: Context,
private val categoryDetailList: MutableList<ChildrenBean>,
) : RecyclerView.Adapter<CategoryDetailTextAdapter.ViewHolder>() {
var isVisible = false
lateinit var textAdapterOnclickListener: TextAdapterOnclickListener
override fun getItemCount(): Int = categoryDetailList.size
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val itemView =
LayoutInflater.from(context)
.inflate(R.layout.eight_category_detail_item_item, parent, false)
return ViewHolder(itemView)
}
@SuppressLint("UseCompatLoadingForDrawables")
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
var param = RecyclerView.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT
);
if (categoryDetailList[position].isVisible) {
param.height = ViewGroup.LayoutParams.WRAP_CONTENT
param.width = ViewGroup.LayoutParams.MATCH_PARENT
param.setMargins(0, 0, 10, 10)
holder.itemView.visibility = View.VISIBLE
} else {
param.height = 0
param.width = 0
holder.itemView.visibility = View.GONE;
}
holder.itemView.layoutParams = param
holder.category_name_detail.text = categoryDetailList[position].cate_name
holder.category_name_detail.isSelected = categoryDetailList[position].isSelected
if (categoryDetailList[position].isSelected) {
holder.category_name_detail.setTextColor(context.resources.getColor(R.color.platform_main_theme))
holder.category_name_detail.background =
context.getDrawable(R.drawable.consult_price_expert_selected)
} else {
holder.category_name_detail.background =
context.getDrawable(R.drawable.consult_price_expert_unseleted)
holder.category_name_detail.setTextColor(context.resources.getColor(R.color.platform_color_333333))
}
holder.itemView.setOnClickListener {
textAdapterOnclickListener.textOnClick(position)
}
}
inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val category_name_detail = itemView.category_name_detail
}
interface TextAdapterOnclickListener {
fun textOnClick(position: Int)
}
fun setOnClick(adapterOnclickListener: TextAdapterOnclickListener) {
this.textAdapterOnclickListener = adapterOnclickListener
}
fun setAllVisible() {
categoryDetailList.forEach { bean ->
bean.isVisible = true
}
notifyDataSetChanged()
isVisible = true
}
fun setGone() {
categoryDetailList.forEachIndexed { index, bean ->
if (index > 8) {
bean.isVisible = false
}
}
notifyDataSetChanged()
isVisible = false
}
}
\ No newline at end of file
package com.yidianling.consultant.adapter
import android.annotation.SuppressLint
import android.content.Context
import androidx.recyclerview.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.content.ContextCompat
import com.yidianling.consultant.R
import com.yidianling.consultant.model.bean.EightCategoryBean
import kotlinx.android.synthetic.main.eight_category_list_item.view.*
/**
* Created by zqk on 17-9-20.
*/
class EightCategoryAdapter(
private val context: Context,
private val eightCateList: MutableList<EightCategoryBean>,
private val singleMultiple: Boolean
) : RecyclerView.Adapter<EightCategoryAdapter.ViewHolder>() {
lateinit var onLeftClickListener: OnLeftClickListener
override fun getItemCount(): Int = eightCateList.size
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val itemView =
LayoutInflater.from(context).inflate(R.layout.eight_category_list_item, parent, false)
return ViewHolder(itemView)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.eight_name.text = eightCateList[position].string
holder.itemView.setOnClickListener {
onLeftClickListener.onLeftClick(position)
}
if (eightCateList[position].selected) {
holder.itemView.setBackgroundColor(ContextCompat.getColor(context, R.color.white))
holder.eight_name.setTextColor(
ContextCompat.getColor(
context,
R.color.platform_main_theme
)
)
if (singleMultiple) {
holder.single_selected_tag.visibility = View.VISIBLE
} else {
holder.single_selected_tag.visibility = View.INVISIBLE
}
} else {
holder.eight_name.setTextColor(
ContextCompat.getColor(
context,
R.color.platform_color_242424
)
)
holder.single_selected_tag.visibility = View.INVISIBLE
holder.itemView.setBackgroundColor(
ContextCompat.getColor(
context,
R.color.platform_color_F7F7F7
)
)
}
if (eightCateList[position].hasData) {
holder.multiple_choise.visibility = View.VISIBLE
} else {
holder.multiple_choise.visibility = View.INVISIBLE
}
}
interface OnLeftClickListener {
fun onLeftClick(leftPosition: Int)
}
fun setleftClick(leftListener: OnLeftClickListener) {
this.onLeftClickListener = leftListener
}
inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val eight_name = itemView.eight_name
val multiple_choise = itemView.multiple_choise
val single_selected_tag = itemView.single_selected_tag
}
}
\ No newline at end of file
package com.yidianling.consultant.adapter package com.yidianling.consultant.adapter
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Activity
import android.content.Context import android.content.Context
import android.graphics.Typeface import android.graphics.Typeface
import android.text.SpannableStringBuilder import android.text.SpannableStringBuilder
...@@ -19,10 +20,11 @@ import com.ydl.webview.NewH5Activity ...@@ -19,10 +20,11 @@ import com.ydl.webview.NewH5Activity
import com.ydl.ydl_image.config.SimpleImageOpConfiger import com.ydl.ydl_image.config.SimpleImageOpConfiger
import com.ydl.ydl_image.module.GlideApp import com.ydl.ydl_image.module.GlideApp
import com.ydl.ydlcommon.base.config.HttpConfig import com.ydl.ydlcommon.base.config.HttpConfig
import com.ydl.ydlcommon.utils.LogUtil import com.ydl.ydlcommon.modular.findRouteService
import com.ydl.ydlcommon.utils.URLUtils import com.ydl.ydlcommon.utils.URLUtils
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import com.ydl.ydlcommon.utils.remind.ToastHelper import com.ydl.ydlcommon.utils.remind.ToastHelper
import com.ydl.ydlcommon.view.dialog.CommonDialog
import com.yidianling.consultant.IExpertSearchView import com.yidianling.consultant.IExpertSearchView
import com.yidianling.consultant.R import com.yidianling.consultant.R
import com.yidianling.consultant.constants.ConsultBIConstants import com.yidianling.consultant.constants.ConsultBIConstants
...@@ -30,6 +32,7 @@ import com.yidianling.consultant.listener.OnExpertClickListener ...@@ -30,6 +32,7 @@ import com.yidianling.consultant.listener.OnExpertClickListener
import com.yidianling.consultant.model.bean.ExpertServiceItem import com.yidianling.consultant.model.bean.ExpertServiceItem
import com.yidianling.consultant.modular.utils.TempH5RouteUtils import com.yidianling.consultant.modular.utils.TempH5RouteUtils
import com.yidianling.consultant.router.ConsultantIn import com.yidianling.consultant.router.ConsultantIn
import com.yidianling.user.api.service.IUserService
import kotlinx.android.synthetic.main.consultant_expert_search_feedbackrate.view.* import kotlinx.android.synthetic.main.consultant_expert_search_feedbackrate.view.*
import kotlinx.android.synthetic.main.consultant_expert_search_header_view.view.* import kotlinx.android.synthetic.main.consultant_expert_search_header_view.view.*
import kotlinx.android.synthetic.main.consultant_expert_search_item_view.view.* import kotlinx.android.synthetic.main.consultant_expert_search_item_view.view.*
...@@ -581,6 +584,18 @@ class ExpertSearchAdapter( ...@@ -581,6 +584,18 @@ class ExpertSearchAdapter(
if (!TextUtils.isEmpty(doctor.uid)) { if (!TextUtils.isEmpty(doctor.uid)) {
val userService = findRouteService(IUserService::class.java)
if (!userService.isBindPhone() && context is Activity) {
CommonDialog(context)
.setMessage("为了及时接收消息通知,请立即绑定手机")
.setLeftOnclick("忍痛放弃") {}
.setRightClick("果断绑定") {
userService.wxBindToInputhonePage(context) // 跳转绑定手机号页面
}
.setCancelAble(false)
.show()
return@setOnClickListener
}
//跳转私聊 //跳转私聊
ConsultantIn.startP2PSession(context as AppCompatActivity, doctor.uid!!) ConsultantIn.startP2PSession(context as AppCompatActivity, doctor.uid!!)
ActionCountUtils.count(ConsultBIConstants.UserMainEvent.YDL_PRIVATE_CHAT_CLICK) ActionCountUtils.count(ConsultBIConstants.UserMainEvent.YDL_PRIVATE_CHAT_CLICK)
......
...@@ -79,6 +79,7 @@ class ConsultBIConstants { ...@@ -79,6 +79,7 @@ class ConsultBIConstants {
const val PRICE_CHOICE_CLICK = "$CONSULT_FILTER_PRICE_PAGE|price_choice_click" const val PRICE_CHOICE_CLICK = "$CONSULT_FILTER_PRICE_PAGE|price_choice_click"
const val PRICE_SLIDE_CLICK = "$CONSULT_FILTER_PRICE_PAGE|price_slide_click" const val PRICE_SLIDE_CLICK = "$CONSULT_FILTER_PRICE_PAGE|price_slide_click"
const val BOTTOM_ICON_CLICK = "$CONSULT_FILTER_PRICE_PAGE|bottom_icon_click" const val BOTTOM_ICON_CLICK = "$CONSULT_FILTER_PRICE_PAGE|bottom_icon_click"
const val PRICE_TYPE_CLICK = "$CONSULT_FILTER_PRICE_PAGE|price_type_click"
} }
} }
class ConsultSearchListEvent { class ConsultSearchListEvent {
......
...@@ -7,10 +7,7 @@ import com.ydl.ydlcommon.data.http.BaseAPIResponse ...@@ -7,10 +7,7 @@ import com.ydl.ydlcommon.data.http.BaseAPIResponse
import com.ydl.ydlcommon.data.http.BaseResponse import com.ydl.ydlcommon.data.http.BaseResponse
import com.ydl.ydlnet.YDLHttpUtils import com.ydl.ydlnet.YDLHttpUtils
import com.yidianling.consultant.bean.* import com.yidianling.consultant.bean.*
import com.yidianling.consultant.model.bean.ExpertBean import com.yidianling.consultant.model.bean.*
import com.yidianling.consultant.model.bean.FunctionWordBean
import com.yidianling.consultant.model.bean.HeadData
import com.yidianling.consultant.model.bean.PromptPaymentBean
import io.reactivex.Observable import io.reactivex.Observable
import retrofit2.http.* import retrofit2.http.*
...@@ -42,6 +39,11 @@ interface SearchApi { ...@@ -42,6 +39,11 @@ interface SearchApi {
@Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA)
fun searchConditions(@Query("cateSource") cateSource: Int): Observable<BaseAPIResponse<HeadData>> fun searchConditions(@Query("cateSource") cateSource: Int): Observable<BaseAPIResponse<HeadData>>
//查询八大类目包括
@GET("consult/search/v3/mix-cates")
@Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA)
fun searchEightCategoryHotWord(): Observable<BaseAPIResponse<MutableList<CateItem>>>
//查询功能词、底纹词 //查询功能词、底纹词
//(1热门词,2底纹词,3跳转词) //(1热门词,2底纹词,3跳转词)
@POST("function/word/queryList") @POST("function/word/queryList")
......
package com.yidianling.consultant.model.bean
data class EightCategoryBean(
val string: String,
var collapse: Boolean = false,
var selected: Boolean = false,
var hasData: Boolean = false
)
\ No newline at end of file
...@@ -15,5 +15,6 @@ data class SubItem( ...@@ -15,5 +15,6 @@ data class SubItem(
@field:SerializedName("code") @field:SerializedName("code")
var code: String? = null, var code: String? = null,
var locationCode: String? = "" var locationCode: String? = "",
var provinceCode: String = ""
) : Parcelable ) : Parcelable
\ No newline at end of file
...@@ -8,9 +8,7 @@ import com.ydl.webview.NewH5Activity ...@@ -8,9 +8,7 @@ import com.ydl.webview.NewH5Activity
import com.ydl.ydlcommon.data.PlatformDataManager import com.ydl.ydlcommon.data.PlatformDataManager
import com.ydl.ydlcommon.data.http.ThrowableConsumer import com.ydl.ydlcommon.data.http.ThrowableConsumer
import com.ydl.ydlcommon.utils.ActivityManager import com.ydl.ydlcommon.utils.ActivityManager
import com.ydl.ydlcommon.utils.LogUtil
import com.ydl.ydlcommon.utils.Utils import com.ydl.ydlcommon.utils.Utils
import com.ydl.ydlcommon.utils.YdlBuryPointUtil
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import com.ydl.ydlnet.YDLHttpUtils.Companion.obtainApi import com.ydl.ydlnet.YDLHttpUtils.Companion.obtainApi
import com.yidianling.consultant.ConsultAssistantCenterActivity import com.yidianling.consultant.ConsultAssistantCenterActivity
...@@ -126,14 +124,12 @@ class ConsultAssistantDialogUtils private constructor() { ...@@ -126,14 +124,12 @@ class ConsultAssistantDialogUtils private constructor() {
if (ConsultantIn.getUserImpl().isLogin()){ if (ConsultantIn.getUserImpl().isLogin()){
//获取用户uid //获取用户uid
ActionCountUtils.count("main_page|main_daoyi_entry_click") ActionCountUtils.count("main_page|main_daoyi_entry_click")
YdlBuryPointUtil.sendClick("home_page_assistant_click")
getConsultAssistantUid("", activity, 1) getConsultAssistantUid("", activity, 1)
}else{ }else{
ConsultantIn.getUserImpl().loginByOneKeyLoginCallBack(activity,true,object :LoginCallBackListener{ ConsultantIn.getUserImpl().loginByOneKeyLoginCallBack(activity,true,object :LoginCallBackListener{
override fun loginSuccess() { override fun loginSuccess() {
//获取用户uid //获取用户uid
ActionCountUtils.count("main_page|main_daoyi_entry_click") ActionCountUtils.count("main_page|main_daoyi_entry_click")
YdlBuryPointUtil.sendClick("home_page_assistant_click")
getConsultAssistantUid("", activity, 1) getConsultAssistantUid("", activity, 1)
} }
override fun notLogin() { override fun notLogin() {
...@@ -284,7 +280,6 @@ class ConsultAssistantDialogUtils private constructor() { ...@@ -284,7 +280,6 @@ class ConsultAssistantDialogUtils private constructor() {
return@onClickAction return@onClickAction
} }
ActionCountUtils.count("app_consult_list_page|app_consult_list_daoyi_entry_click") ActionCountUtils.count("app_consult_list_page|app_consult_list_daoyi_entry_click")
YdlBuryPointUtil.sendClick("assistant_list_click")
if (ConsultantIn.getUserImpl().isLogin()){ if (ConsultantIn.getUserImpl().isLogin()){
//获取用户uid //获取用户uid
...@@ -316,7 +311,6 @@ class ConsultAssistantDialogUtils private constructor() { ...@@ -316,7 +311,6 @@ class ConsultAssistantDialogUtils private constructor() {
return@onClickAction return@onClickAction
} }
ActionCountUtils.count("app_consult_list_page|app_consult_list_daoyi_entry_click") ActionCountUtils.count("app_consult_list_page|app_consult_list_daoyi_entry_click")
YdlBuryPointUtil.sendClick("assistant_list_click")
// 咨询师列表页面且未登录情况下,跳转登录页面 // 咨询师列表页面且未登录情况下,跳转登录页面
if (ConsultantIn.loginByOneKeyLogin(activity, true)) { if (ConsultantIn.loginByOneKeyLogin(activity, true)) {
//获取用户uid //获取用户uid
......
...@@ -17,7 +17,6 @@ package com.yidianling.consultant.preview; ...@@ -17,7 +17,6 @@ package com.yidianling.consultant.preview;
*******************************************************************************/ *******************************************************************************/
import android.content.Context; import android.content.Context;
import android.os.Build;
/** /**
* @author rainb * @author rainb
...@@ -26,16 +25,8 @@ public final class VersionedGestureDetector { ...@@ -26,16 +25,8 @@ public final class VersionedGestureDetector {
public static GestureDetector newInstance(Context context, public static GestureDetector newInstance(Context context,
OnGestureListener listener) { OnGestureListener listener) {
final int sdkVersion = Build.VERSION.SDK_INT;
GestureDetector detector; GestureDetector detector;
detector = new FroyoGestureDetector(context);
if (sdkVersion < Build.VERSION_CODES.ECLAIR) {
detector = new CupcakeGestureDetector(context);
} else if (sdkVersion < Build.VERSION_CODES.FROYO) {
detector = new EclairGestureDetector(context);
} else {
detector = new FroyoGestureDetector(context);
}
detector.setOnGestureListener(listener); detector.setOnGestureListener(listener);
......
...@@ -140,6 +140,9 @@ class AreaPopupWindow( ...@@ -140,6 +140,9 @@ class AreaPopupWindow(
//倒序保留最近五次的搜索历史记录并去重 //倒序保留最近五次的搜索历史记录并去重
private fun saveCitySearchRecord(data: SubItem) { private fun saveCitySearchRecord(data: SubItem) {
if (data.value == "不限") return if (data.value == "不限") return
if (selectedRegion.code.toString() != "0") data.provinceCode =
selectedRegion.code.toString()
recentCityBean?.let { recentCityBean?.let {
if (it.recentCity.size < 5) { if (it.recentCity.size < 5) {
it.recentCity.add(0, data) it.recentCity.add(0, data)
......
package com.yidianling.consultant.ui.view
import android.content.Context
import android.graphics.drawable.BitmapDrawable
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.PopupWindow
import androidx.fragment.app.FragmentActivity
import com.yidianling.common.tools.RxImageTool
import com.yidianling.common.tools.asFragmentActivity
import com.yidianling.consultant.R
import com.yidianling.consultant.adapter.SortAdapter
import com.yidianling.consultant.layoutmanager.FlowLayoutManager
import com.yidianling.consultant.listener.OnCategoriesSelectedListener
import com.yidianling.consultant.model.bean.AllFilter
import com.yidianling.consultant.model.bean.ChildrenBean
import com.yidianling.consultant.ui.view.topView.EightCategoryView
import kotlinx.android.synthetic.main.consultant_ui_eight_category_popup_window.view.*
import kotlinx.android.synthetic.main.consultant_ui_subject_popup_window.view.*
import kotlinx.android.synthetic.main.consultant_ui_subject_popup_window.view.btnConfirm
import kotlinx.android.synthetic.main.consultant_ui_subject_popup_window.view.btn_reset
/**
* 主题弹窗
* Created by zqk on 17-9-15.
*/
class EightCategoryPopupWindow(context: Context, allFilter: AllFilter) :
PopupWindow(ViewGroup.LayoutParams.MATCH_PARENT, RxImageTool.dp2px(566f)) {
private var view: View = LayoutInflater.from(context)
.inflate(R.layout.consultant_ui_eight_category_popup_window, null)
var mAllFilter: AllFilter
private var context: Context
var onSubjectsSelectedListener: OnCategoriesSelectedListener? = null
lateinit var mutableList: MutableList<MutableList<ChildrenBean>>
private val signList = ArrayList<String>() // 用于埋点
init {
this.contentView = view
this.isFocusable = true
this.context = context
@Suppress("DEPRECATION")
this.setBackgroundDrawable(BitmapDrawable())
this.isOutsideTouchable = true
mAllFilter = allFilter
initView()
}
fun setListener(onSubjectsSelectedListener: OnCategoriesSelectedListener) {
this.onSubjectsSelectedListener = onSubjectsSelectedListener
val eightCategoryView = EightCategoryView(context, false)
eightCategoryView.setData(mutableList, mAllFilter, onSubjectsSelectedListener, false)
view.eight_category_fl.addView(eightCategoryView)
}
private fun initView() {
inputMethodMode = INPUT_METHOD_NEEDED
mutableList = mutableListOf<MutableList<ChildrenBean>>()
mutableList.add(mAllFilter.childList)
mutableList.add(mAllFilter.stressList)
mutableList.add(mAllFilter.loveEmotionList)
mutableList.add(mAllFilter.marriedFamilyList)
mutableList.add(mAllFilter.personalGrowthList)
mutableList.add(mAllFilter.interpersonalRelationshipList)
mutableList.add(mAllFilter.careerDevelopmentList)
mutableList.add(mAllFilter.mentalHealthList)
// val fragmentTransaction = context?.asFragmentActivity()?.supportFragmentManager?.beginTransaction()
// val searchFragment=ConsultCategoryFragment()
// fragmentTransaction?.add(R.id.eight_category_fl,searchFragment)?.commit()
}
}
\ No newline at end of file
...@@ -24,6 +24,8 @@ import com.yidianling.consultant.model.bean.PriceRangesItem ...@@ -24,6 +24,8 @@ import com.yidianling.consultant.model.bean.PriceRangesItem
import com.yidianling.consultant.model.bean.ReorderItem import com.yidianling.consultant.model.bean.ReorderItem
import kotlinx.android.synthetic.main.consultant_item_filter.view.* import kotlinx.android.synthetic.main.consultant_item_filter.view.*
import kotlinx.android.synthetic.main.consultant_ui_filter_popup.view.* import kotlinx.android.synthetic.main.consultant_ui_filter_popup.view.*
import kotlinx.android.synthetic.main.consultant_ui_filter_popup.view.btnConfirm
import kotlinx.android.synthetic.main.consultant_ui_subject_popup_window.view.*
import kotlin.math.roundToInt import kotlin.math.roundToInt
...@@ -91,7 +93,6 @@ class FilterPopupWindow( ...@@ -91,7 +93,6 @@ class FilterPopupWindow(
//学历选择 //学历选择
initEduViews(view) initEduViews(view)
initKeyboardListener(view)
updateCount() updateCount()
view.btnReset.setOnClickListener { view.btnReset.setOnClickListener {
...@@ -110,6 +111,7 @@ class FilterPopupWindow( ...@@ -110,6 +111,7 @@ class FilterPopupWindow(
@SuppressLint("UseCompatLoadingForDrawables") @SuppressLint("UseCompatLoadingForDrawables")
private fun initShowSortViews(view: View) { private fun initShowSortViews(view: View) {
val mWidth = (popWidth - RxImageTool.dp2px(52f)) / enquirySize val mWidth = (popWidth - RxImageTool.dp2px(52f)) / enquirySize
view.flSortType.removeAllViews()
for ((index, enquiry) in sortItems.withIndex()) { for ((index, enquiry) in sortItems.withIndex()) {
val llTextView = val llTextView =
View.inflate(context, R.layout.consultant_item_filter, null) as TextView View.inflate(context, R.layout.consultant_item_filter, null) as TextView
...@@ -163,28 +165,11 @@ class FilterPopupWindow( ...@@ -163,28 +165,11 @@ class FilterPopupWindow(
} }
} }
@SuppressLint("ClickableViewAccessibility")
private fun initKeyboardListener(view: View) {
val svFilter = view.findViewById<ScrollView>(R.id.sv_filter)
svFilter.setOnTouchListener { _, _ ->
false
}
val activity = context as Activity;
RxKeyboardTool.setKeyboardChangedListener(activity) { b: Boolean, i: Int, i1: Int, i2: Int ->
if (!b) {
//软键盘隐藏
updatePriceFilter()
}
}
}
private fun reset() { private fun reset() {
tempFilter.showType = filterData.showType[0] tempFilter.showType = filterData.showType[0]
tempFilter.ages.clear() tempFilter.ages.clear()
tempFilter.doctorEdu.clear() tempFilter.doctorEdu.clear()
tempFilter.reorder = ReorderItem()
// 擅长人群 // 擅长人群
tempFilter.specialityCrowd.clear() tempFilter.specialityCrowd.clear()
tempFilter.others.clear() tempFilter.others.clear()
...@@ -235,6 +220,19 @@ class FilterPopupWindow( ...@@ -235,6 +220,19 @@ class FilterPopupWindow(
v.paint.isFakeBoldText = false v.paint.isFakeBoldText = false
} }
} }
initZiZhiViews(contentView)
initOtherViews(contentView)
initShowSortViews(contentView)
initShowTypeViews(contentView)
//咨询方式
initEnquiryViews(contentView)
//年龄选择
initAgeViews(contentView)
//擅长人群
initGoodAtCrowd(contentView)
//学历选择
initEduViews(contentView)
updateCount(ConsultBIConstants.POSITION_CONSULT_FILTER_RESET_CLICK) updateCount(ConsultBIConstants.POSITION_CONSULT_FILTER_RESET_CLICK)
} }
...@@ -371,6 +369,7 @@ class FilterPopupWindow( ...@@ -371,6 +369,7 @@ class FilterPopupWindow(
* */ * */
private fun initOtherViews(view: View) { private fun initOtherViews(view: View) {
val mWidth = (popWidth - RxImageTool.dp2px(52f)) / enquirySize val mWidth = (popWidth - RxImageTool.dp2px(52f)) / enquirySize
view.flOther.removeAllViews()
for ((index, other) in filterData.other.withIndex()) { for ((index, other) in filterData.other.withIndex()) {
val textView = View.inflate(context, R.layout.consultant_item_filter, null) as TextView val textView = View.inflate(context, R.layout.consultant_item_filter, null) as TextView
val params = FrameLayout.LayoutParams(mWidth, dp36) val params = FrameLayout.LayoutParams(mWidth, dp36)
...@@ -418,6 +417,7 @@ class FilterPopupWindow( ...@@ -418,6 +417,7 @@ class FilterPopupWindow(
* */ * */
private fun initZiZhiViews(view: View) { private fun initZiZhiViews(view: View) {
val mWidth = (popWidth - RxImageTool.dp2px(40f)) / 2 val mWidth = (popWidth - RxImageTool.dp2px(40f)) / 2
view.flZhizi.removeAllViews()
for (other in filterData.title) { for (other in filterData.title) {
val textView = View.inflate(context, R.layout.consultant_item_filter, null) as TextView val textView = View.inflate(context, R.layout.consultant_item_filter, null) as TextView
val params = FrameLayout.LayoutParams(mWidth, dp36) val params = FrameLayout.LayoutParams(mWidth, dp36)
...@@ -434,7 +434,6 @@ class FilterPopupWindow( ...@@ -434,7 +434,6 @@ class FilterPopupWindow(
} }
textView.tvFilterName.text = " " + other.value + " " textView.tvFilterName.text = " " + other.value + " "
textView.setOnClickListener { textView.setOnClickListener {
if (textView.isSelected) { if (textView.isSelected) {
tempFilter.title.remove(other) tempFilter.title.remove(other)
textView.isSelected = false textView.isSelected = false
...@@ -459,6 +458,7 @@ class FilterPopupWindow( ...@@ -459,6 +458,7 @@ class FilterPopupWindow(
*/ */
private fun initGoodAtCrowd(view: View) { private fun initGoodAtCrowd(view: View) {
// 如果标标签数量大于20,取前20个默认展示 // 如果标标签数量大于20,取前20个默认展示
view.fl_crowd.removeAllViews()
if (filterData.specialityCrowd.size > 20) { if (filterData.specialityCrowd.size > 20) {
view.ll_crowd_more.visibility = View.VISIBLE view.ll_crowd_more.visibility = View.VISIBLE
view.ll_crowd_more.setOnClickListener { view.ll_crowd_more.setOnClickListener {
...@@ -525,6 +525,7 @@ class FilterPopupWindow( ...@@ -525,6 +525,7 @@ class FilterPopupWindow(
* */ * */
private fun initAgeViews(view: View) { private fun initAgeViews(view: View) {
val mWidth = (popWidth - RxImageTool.dp2px(52f)) / enquirySize val mWidth = (popWidth - RxImageTool.dp2px(52f)) / enquirySize
view.flAge.removeAllViews()
for ((index, age) in filterData.age.withIndex()) { for ((index, age) in filterData.age.withIndex()) {
val textView = View.inflate(context, R.layout.consultant_item_filter, null) as TextView val textView = View.inflate(context, R.layout.consultant_item_filter, null) as TextView
val params = FrameLayout.LayoutParams(mWidth, RxImageTool.dp2px(36f)) val params = FrameLayout.LayoutParams(mWidth, RxImageTool.dp2px(36f))
...@@ -572,6 +573,7 @@ class FilterPopupWindow( ...@@ -572,6 +573,7 @@ class FilterPopupWindow(
* */ * */
private fun initEduViews(view: View) { private fun initEduViews(view: View) {
val mWidth = (popWidth - RxImageTool.dp2px(52f)) / enquirySize val mWidth = (popWidth - RxImageTool.dp2px(52f)) / enquirySize
view.fl_edu.removeAllViews()
for ((index, edu) in filterData.doctorEdu.withIndex()) { for ((index, edu) in filterData.doctorEdu.withIndex()) {
val textView = View.inflate(context, R.layout.consultant_item_filter, null) as TextView val textView = View.inflate(context, R.layout.consultant_item_filter, null) as TextView
val params = FrameLayout.LayoutParams(mWidth, RxImageTool.dp2px(36f)) val params = FrameLayout.LayoutParams(mWidth, RxImageTool.dp2px(36f))
...@@ -616,6 +618,7 @@ class FilterPopupWindow( ...@@ -616,6 +618,7 @@ class FilterPopupWindow(
private fun initEnquiryViews(view: View) { private fun initEnquiryViews(view: View) {
val mWidth = (popWidth - RxImageTool.dp2px(52f)) / enquirySize val mWidth = (popWidth - RxImageTool.dp2px(52f)) / enquirySize
view.flEnquiryType.removeAllViews()
for ((index, enquiry) in filterData.enquiry.withIndex()) { for ((index, enquiry) in filterData.enquiry.withIndex()) {
val llLayout = View.inflate(context, R.layout.consultant_method_item_filter, null) val llLayout = View.inflate(context, R.layout.consultant_method_item_filter, null)
val textView: TextView = llLayout.findViewById(R.id.tvFilterName) val textView: TextView = llLayout.findViewById(R.id.tvFilterName)
...@@ -670,21 +673,10 @@ class FilterPopupWindow( ...@@ -670,21 +673,10 @@ class FilterPopupWindow(
} }
} }
private fun updatePriceFilter() {
if (tempFilter.priceRanges == null) {
val priceRangesItem = PriceRangesItem()
tempFilter.priceRanges = priceRangesItem;
}
tempFilter.priceRangesView?.isSelected = false
tempFilter.priceRangesView?.paint?.isFakeBoldText = false
tempFilter.priceRangesView = null
updateCount(ConsultBIConstants.POSITION_AVERAGE_SERVICE_INPUT)
}
private fun initShowTypeViews(view: View) { private fun initShowTypeViews(view: View) {
val mWidth = (popWidth - RxImageTool.dp2px(42f)) / 2 val mWidth = (popWidth - RxImageTool.dp2px(42f)) / 2
view.flShowType.removeAllViews()
for ((index, showType) in filterData.showType.withIndex()) { for ((index, showType) in filterData.showType.withIndex()) {
val textView = View.inflate(context, R.layout.consultant_item_filter, null) as TextView val textView = View.inflate(context, R.layout.consultant_item_filter, null) as TextView
val params = FrameLayout.LayoutParams(mWidth, dp36) val params = FrameLayout.LayoutParams(mWidth, dp36)
......
...@@ -28,8 +28,7 @@ import kotlinx.android.synthetic.main.consultant_ui_price_popup_window.view.* ...@@ -28,8 +28,7 @@ import kotlinx.android.synthetic.main.consultant_ui_price_popup_window.view.*
/** /**
* 排序弹窗 * 价格筛选弹窗
* Created by zqk on 17-9-15.
*/ */
class PricePopupWindow( class PricePopupWindow(
val context: Context, val context: Context,
......
...@@ -15,7 +15,6 @@ import android.graphics.Path; ...@@ -15,7 +15,6 @@ import android.graphics.Path;
import android.graphics.Rect; import android.graphics.Rect;
import android.graphics.RectF; import android.graphics.RectF;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.os.Build;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.AttributeSet; import android.util.AttributeSet;
...@@ -571,11 +570,7 @@ public class SeekBar { ...@@ -571,11 +570,7 @@ public class SeekBar {
public void setThumbInactivatedDrawableId(@DrawableRes int thumbInactivatedDrawableId, int width, int height) { public void setThumbInactivatedDrawableId(@DrawableRes int thumbInactivatedDrawableId, int width, int height) {
if (thumbInactivatedDrawableId != 0 && getResources() != null) { if (thumbInactivatedDrawableId != 0 && getResources() != null) {
this.thumbInactivatedDrawableId = thumbInactivatedDrawableId; this.thumbInactivatedDrawableId = thumbInactivatedDrawableId;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { thumbInactivatedBitmap = Utils.drawableToBitmap(width, height, getResources().getDrawable(thumbInactivatedDrawableId, null));
thumbInactivatedBitmap = Utils.drawableToBitmap(width, height, getResources().getDrawable(thumbInactivatedDrawableId, null));
} else {
thumbInactivatedBitmap = Utils.drawableToBitmap(width, height, getResources().getDrawable(thumbInactivatedDrawableId));
}
} }
} }
...@@ -589,22 +584,14 @@ public class SeekBar { ...@@ -589,22 +584,14 @@ public class SeekBar {
} }
if (thumbDrawableId != 0 && getResources() != null) { if (thumbDrawableId != 0 && getResources() != null) {
this.thumbDrawableId = thumbDrawableId; this.thumbDrawableId = thumbDrawableId;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { thumbBitmap = Utils.drawableToBitmap(thumbWidth, thumbHeight, getResources().getDrawable(thumbDrawableId, null));
thumbBitmap = Utils.drawableToBitmap(thumbWidth, thumbHeight, getResources().getDrawable(thumbDrawableId, null));
} else {
thumbBitmap = Utils.drawableToBitmap(thumbWidth, thumbHeight, getResources().getDrawable(thumbDrawableId));
}
} }
} }
public void setThumbDrawableId(@DrawableRes int thumbDrawableId, int width, int height) { public void setThumbDrawableId(@DrawableRes int thumbDrawableId, int width, int height) {
if (thumbDrawableId != 0 && getResources() != null && width > 0 && height > 0) { if (thumbDrawableId != 0 && getResources() != null && width > 0 && height > 0) {
this.thumbDrawableId = thumbDrawableId; this.thumbDrawableId = thumbDrawableId;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { thumbBitmap = Utils.drawableToBitmap(width, height, getResources().getDrawable(thumbDrawableId, null));
thumbBitmap = Utils.drawableToBitmap(width, height, getResources().getDrawable(thumbDrawableId, null));
} else {
thumbBitmap = Utils.drawableToBitmap(width, height, getResources().getDrawable(thumbDrawableId));
}
} }
} }
......
...@@ -10,7 +10,6 @@ import android.graphics.Paint; ...@@ -10,7 +10,6 @@ import android.graphics.Paint;
import android.graphics.Rect; import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Build;
import android.util.Log; import android.util.Log;
import androidx.annotation.ColorRes; import androidx.annotation.ColorRes;
...@@ -42,11 +41,7 @@ public class Utils { ...@@ -42,11 +41,7 @@ public class Utils {
public static Bitmap drawableToBitmap(Context context, int width, int height, int drawableId) { public static Bitmap drawableToBitmap(Context context, int width, int height, int drawableId) {
if (context == null || width <= 0 || height <= 0 || drawableId == 0) return null; if (context == null || width <= 0 || height <= 0 || drawableId == 0) return null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { return Utils.drawableToBitmap(width, height, context.getResources().getDrawable(drawableId, null));
return Utils.drawableToBitmap(width, height, context.getResources().getDrawable(drawableId, null));
} else {
return Utils.drawableToBitmap(width, height, context.getResources().getDrawable(drawableId));
}
} }
/** /**
......
package com.yidianling.consultant.ui.view.topView
import android.content.Context
import androidx.recyclerview.widget.LinearSmoothScroller
class LinearTopSmoothScroller(context: Context?) : LinearSmoothScroller(context) {
override fun getVerticalSnapPreference(): Int {
return SNAP_TO_START
}
}
\ No newline at end of file
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/white" android:background="@color/white"
android:gravity="center_vertical" android:gravity="center_vertical"
android:paddingTop="@dimen/platform_dp_15" android:paddingTop="@dimen/platform_dp_17"
android:paddingBottom="@dimen/platform_dp_15" android:paddingBottom="@dimen/platform_dp_17"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingLeft="16dp" android:paddingLeft="16dp"
android:paddingRight="16dp"> android:paddingRight="16dp">
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:id="@+id/ll_view"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/eight_category"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:background="@color/platform_color_F7F7F7"
android:orientation="vertical" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/category_detail"
android:layout_width="0dp"
android:layout_weight="3"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="68dp"
android:background="@color/white"
android:orientation="horizontal"
android:paddingStart="16dp"
android:paddingTop="8dp"
android:paddingEnd="16dp">
<TextView
android:id="@+id/btn_reset"
android:layout_width="0dp"
android:layout_height="44dp"
android:layout_weight="1"
android:background="@drawable/consultant_stroke_ebebeb_r_8"
android:gravity="center"
android:text="@string/platform_reset"
android:textColor="@color/platform_color_242424"
android:textSize="16sp" />
<TextView
android:id="@+id/btnConfirm"
android:layout_width="0dp"
android:layout_height="44dp"
android:layout_marginStart="13dp"
android:layout_weight="1"
android:background="@drawable/consultant_solid_main_theme_color_r_8"
android:gravity="center"
android:text="@string/platform_confirm"
android:textColor="@color/white"
android:textSize="16sp" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
layout="@layout/consultant_layout_search_toolbar"
android:layout_width="match_parent"
android:layout_height="48dp" />
<LinearLayout
android:id="@+id/eight_view_ll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/eight_category_fl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" />
</LinearLayout>
\ No newline at end of file
...@@ -17,6 +17,6 @@ ...@@ -17,6 +17,6 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/white" android:background="@color/white"
android:layout_weight="2" android:layout_weight="3"
android:overScrollMode="never"/> android:overScrollMode="never"/>
</LinearLayout> </LinearLayout>
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
<androidx.core.widget.NestedScrollView <androidx.core.widget.NestedScrollView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:id="@+id/scroll_nested"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<LinearLayout <LinearLayout
......
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/category_name_detail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/platform_dp_5"
android:layout_marginBottom="@dimen/platform_dp_5"
android:background="@drawable/consult_price_expert_unseleted"
android:gravity="center"
android:minHeight="@dimen/platform_dp_40"
android:paddingStart="@dimen/platform_dp_10"
android:paddingTop="@dimen/platform_dp_6"
android:paddingRight="@dimen/platform_dp_10"
android:paddingBottom="@dimen/platform_dp_6"
android:textColor="@color/platform_color_333333"
android:textSize="@dimen/platform_sp_12"
tools:text="aaaaaaaaa">
</TextView>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/platform_dp_12"
android:layout_marginEnd="@dimen/platform_dp_12"
android:orientation="vertical"
android:paddingTop="@dimen/platform_dp_12"
android:paddingBottom="@dimen/platform_dp_13">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/platform_dp_12"
android:gravity="center">
<TextView
android:id="@+id/category_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="恋爱情感"
android:textColor="#1c212d"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/collapse_hide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:padding="@dimen/platform_dp_5"
android:text="展开"
android:textColor="@color/platform_main_theme"
android:textSize="@dimen/platform_sp_12" />
<ImageView
android:id="@+id/arrow_collapse_hide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/consult_collapse_arrow">
</ImageView>
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/category_list_detail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:spanCount="3">
</androidx.recyclerview.widget.RecyclerView>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:gravity="center"
android:orientation="horizontal">
<View
android:id="@+id/single_selected_tag"
android:layout_width="3dp"
android:layout_height="@dimen/platform_dp_15"
android:background="@color/platform_main_theme"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/multiple_choise"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/alert_selected"
android:backgroundTint="@color/platform_main_theme"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:visibility="gone">
</ImageView>
<TextView
android:id="@+id/eight_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/platform_dp_3"
android:layout_marginTop="@dimen/platform_dp_15"
android:layout_marginBottom="@dimen/platform_dp_15"
android:textColor="@color/color_242424"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:textSize="@dimen/sp_14"
tools:text="情绪压力">
</TextView>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -8,7 +8,6 @@ android { ...@@ -8,7 +8,6 @@ android {
compileSdkVersion rootProject.ext.android["compileSdkVersion"] compileSdkVersion rootProject.ext.android["compileSdkVersion"]
buildToolsVersion rootProject.ext.android["buildToolsVersion"] buildToolsVersion rootProject.ext.android["buildToolsVersion"]
defaultConfig { defaultConfig {
minSdkVersion rootProject.ext.android["minSdkVersion"] minSdkVersion rootProject.ext.android["minSdkVersion"]
targetSdkVersion rootProject.ext.android["targetSdkVersion"] targetSdkVersion rootProject.ext.android["targetSdkVersion"]
......
...@@ -5,9 +5,7 @@ import android.app.AlertDialog ...@@ -5,9 +5,7 @@ import android.app.AlertDialog
import android.content.Intent import android.content.Intent
import android.content.res.Configuration import android.content.res.Configuration
import android.graphics.Color import android.graphics.Color
import android.os.Build
import android.os.Handler import android.os.Handler
import androidx.recyclerview.widget.LinearLayoutManager
import android.text.TextUtils import android.text.TextUtils
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
...@@ -15,6 +13,7 @@ import android.view.WindowManager ...@@ -15,6 +13,7 @@ import android.view.WindowManager
import android.widget.ImageView import android.widget.ImageView
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import androidx.recyclerview.widget.LinearLayoutManager
import com.alibaba.android.arouter.facade.annotation.Route import com.alibaba.android.arouter.facade.annotation.Route
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.dou361.ijkplayer.widget.PlayStateParams import com.dou361.ijkplayer.widget.PlayStateParams
...@@ -52,7 +51,6 @@ import com.yidianling.ydl_pay.common.CommonPayDialog ...@@ -52,7 +51,6 @@ import com.yidianling.ydl_pay.common.CommonPayDialog
import kotlinx.android.synthetic.main.activity_course_play.* import kotlinx.android.synthetic.main.activity_course_play.*
import org.json.JSONException import org.json.JSONException
import org.json.JSONObject import org.json.JSONObject
import java.util.*
/** /**
* 课程播放页面 * 课程播放页面
...@@ -324,28 +322,22 @@ class CoursePlayActivity : BaseActivity() { ...@@ -324,28 +322,22 @@ class CoursePlayActivity : BaseActivity() {
} }
private fun initWindows() { private fun initWindows() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { val window = window
val window = window //获取状态栏高度
//获取状态栏高度 var statusBarheight: Int = ScreenUtil.getStatusBarHeight(mContext)
var statusBarheight: Int = ScreenUtil.getStatusBarHeight(mContext) //设置边距
//设置边距 setMargins(
setMargins( title_bar_layout,
title_bar_layout, RxImageTool.dp2px(15f),
RxImageTool.dp2px(15f), statusBarheight,
statusBarheight, RxImageTool.dp2px(15f),
RxImageTool.dp2px(15f), 0
0 )
) window.statusBarColor = Color.TRANSPARENT
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
window.statusBarColor = Color.TRANSPARENT window.decorView.systemUiVisibility =
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
window.decorView.systemUiVisibility = window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
} else {
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
}
}
} }
private fun setMargins(v: View?, l: Int, t: Int, r: Int, b: Int) { private fun setMargins(v: View?, l: Int, t: Int, r: Int, b: Int) {
......
...@@ -32,7 +32,7 @@ class CourseListDialog : BaseDialogFragment() { ...@@ -32,7 +32,7 @@ class CourseListDialog : BaseDialogFragment() {
private lateinit var recycler_list: RecyclerView private lateinit var recycler_list: RecyclerView
override fun getLayoutResourceId(): Int = R.layout.dialog_course_list override fun getLayoutResourceId(): Int = R.layout.dialog_course_list
override fun getGravity(): Int = Gravity.BOTTOM override fun setGravity(): Int = Gravity.BOTTOM
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
context?.let { ctx -> context?.let { ctx ->
......
...@@ -26,7 +26,7 @@ class CourseSpeedDialog : BaseDialogFragment() { ...@@ -26,7 +26,7 @@ class CourseSpeedDialog : BaseDialogFragment() {
private lateinit var tv_cancel: TextView private lateinit var tv_cancel: TextView
override fun getLayoutResourceId(): Int = R.layout.dialog_course_speed override fun getLayoutResourceId(): Int = R.layout.dialog_course_speed
override fun getGravity(): Int = Gravity.BOTTOM override fun setGravity(): Int = Gravity.BOTTOM
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
context?.let { context?.let {
......
...@@ -2,15 +2,14 @@ package com.yidianling.course.widget ...@@ -2,15 +2,14 @@ package com.yidianling.course.widget
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.os.Build
import android.os.Handler import android.os.Handler
import androidx.annotation.DrawableRes
import androidx.annotation.Nullable
import androidx.annotation.RawRes
import android.view.View import android.view.View
import android.widget.ImageView import android.widget.ImageView
import android.widget.RelativeLayout import android.widget.RelativeLayout
import android.widget.SeekBar import android.widget.SeekBar
import androidx.annotation.DrawableRes
import androidx.annotation.Nullable
import androidx.annotation.RawRes
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.ydl.media.audio.AudioPlayer import com.ydl.media.audio.AudioPlayer
import com.ydl.media.audio.OnPlayerEventListener import com.ydl.media.audio.OnPlayerEventListener
...@@ -22,7 +21,6 @@ import com.yidianling.course.listener.HPlayStatusListener ...@@ -22,7 +21,6 @@ import com.yidianling.course.listener.HPlayStatusListener
import kotlinx.android.synthetic.main.course_play_music_view.view.* import kotlinx.android.synthetic.main.course_play_music_view.view.*
/** /**
* Created by hgw on 2018/4/28. * Created by hgw on 2018/4/28.
*/ */
...@@ -279,6 +277,6 @@ class HPlayView : RelativeLayout, OnPlayerEventListener { ...@@ -279,6 +277,6 @@ class HPlayView : RelativeLayout, OnPlayerEventListener {
* @return * @return
*/ */
fun isDestroy(): Boolean { fun isDestroy(): Boolean {
return mContext == null || mContext!!.isFinishing || Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && mContext!!.isDestroyed return mContext == null || mContext!!.isFinishing || mContext?.isDestroyed == true
} }
} }
\ No newline at end of file
...@@ -14,7 +14,6 @@ android { ...@@ -14,7 +14,6 @@ android {
compileSdkVersion rootProject.ext.android["compileSdkVersion"] compileSdkVersion rootProject.ext.android["compileSdkVersion"]
buildToolsVersion rootProject.ext.android["buildToolsVersion"] buildToolsVersion rootProject.ext.android["buildToolsVersion"]
defaultConfig { defaultConfig {
minSdkVersion rootProject.ext.android["minSdkVersion"] minSdkVersion rootProject.ext.android["minSdkVersion"]
targetSdkVersion rootProject.ext.android["targetSdkVersion"] targetSdkVersion rootProject.ext.android["targetSdkVersion"]
......
...@@ -5,14 +5,10 @@ import android.content.Context; ...@@ -5,14 +5,10 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.net.Uri; import android.net.Uri;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.os.Parcelable; import android.os.Parcelable;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.View; import android.view.View;
import android.view.Window; import android.view.Window;
...@@ -20,19 +16,23 @@ import android.view.WindowManager; ...@@ -20,19 +16,23 @@ import android.view.WindowManager;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.luck.picture.lib.photoview.PhotoView; import com.luck.picture.lib.photoview.PhotoView;
import com.miracle.view.imageeditor.utils.FileUtils; import com.miracle.view.imageeditor.utils.FileUtils;
import com.ydl.ydl_image.module.GlideApp; import com.ydl.ydl_image.module.GlideApp;
import com.ydl.ydlcommon.base.BaseActivity; import com.ydl.ydlcommon.base.BaseActivity;
import com.ydl.ydlcommon.data.http.RxUtils; import com.ydl.ydlcommon.data.http.RxUtils;
import com.ydl.ydlcommon.ui.ParcelableImage;
import com.yidianling.common.tools.ToastUtil; import com.yidianling.common.tools.ToastUtil;
import com.yidianling.dynamic.bean.DynamicConstants;
import com.yidianling.dynamic.R; import com.yidianling.dynamic.R;
import com.yidianling.dynamic.bean.DynamicConstants;
import com.yidianling.dynamic.common.net.DynamicApiUtils; import com.yidianling.dynamic.common.net.DynamicApiUtils;
import com.yidianling.dynamic.common.tool.DownLoadImageService; import com.yidianling.dynamic.common.tool.DownLoadImageService;
import com.yidianling.dynamic.common.tool.ImageDownLoadCallBack; import com.yidianling.dynamic.common.tool.ImageDownLoadCallBack;
import com.yidianling.dynamic.model.Command; import com.yidianling.dynamic.model.Command;
import com.ydl.ydlcommon.ui.ParcelableImage;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -226,11 +226,9 @@ public class BrowsePicturesActivity extends BaseActivity implements ViewPager.On ...@@ -226,11 +226,9 @@ public class BrowsePicturesActivity extends BaseActivity implements ViewPager.On
} }
private void initWindows() { private void initWindows() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Window window = getWindow();
Window window = getWindow();
// window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); // window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
} }
private Handler mHandler = new Handler() { private Handler mHandler = new Handler() {
......
...@@ -3,26 +3,26 @@ package com.yidianling.dynamic.common.browsePictures; ...@@ -3,26 +3,26 @@ package com.yidianling.dynamic.common.browsePictures;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.os.Parcelable; import android.os.Parcelable;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import android.view.View; import android.view.View;
import android.view.Window; import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.luck.picture.lib.photoview.PhotoView; import com.luck.picture.lib.photoview.PhotoView;
import com.ydl.ydl_image.module.GlideApp; import com.ydl.ydl_image.module.GlideApp;
import com.ydl.ydlcommon.base.BaseActivity; import com.ydl.ydlcommon.base.BaseActivity;
import com.yidianling.common.tools.ToastUtil; import com.yidianling.common.tools.ToastUtil;
import com.yidianling.dynamic.bean.DynamicConstants;
import com.yidianling.dynamic.R; import com.yidianling.dynamic.R;
import com.yidianling.dynamic.bean.DynamicConstants;
import com.yidianling.dynamic.common.tool.DownLoadImageService; import com.yidianling.dynamic.common.tool.DownLoadImageService;
import com.yidianling.dynamic.common.tool.ImageDownLoadCallBack; import com.yidianling.dynamic.common.tool.ImageDownLoadCallBack;
...@@ -164,11 +164,9 @@ public class BrowsePicturesActivity2 extends BaseActivity implements ViewPager.O ...@@ -164,11 +164,9 @@ public class BrowsePicturesActivity2 extends BaseActivity implements ViewPager.O
} }
private void initWindows() { private void initWindows() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Window window = getWindow();
Window window = getWindow();
// window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); // window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
} }
private Handler mHandler=new Handler(){ private Handler mHandler=new Handler(){
......
...@@ -7,14 +7,14 @@ import android.graphics.Paint; ...@@ -7,14 +7,14 @@ import android.graphics.Paint;
import android.graphics.PorterDuff; import android.graphics.PorterDuff;
import android.graphics.RectF; import android.graphics.RectF;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Build;
import androidx.core.view.ViewCompat;
import android.text.TextPaint; import android.text.TextPaint;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.widget.ImageView; import android.widget.ImageView;
import androidx.core.view.ViewCompat;
public class NineGridViewWrapper extends ImageView { public class NineGridViewWrapper extends ImageView {
private int moreNum = 0; //显示更多的数量 private int moreNum = 0; //显示更多的数量
...@@ -56,16 +56,8 @@ public class NineGridViewWrapper extends ImageView { ...@@ -56,16 +56,8 @@ public class NineGridViewWrapper extends ImageView {
protected void onDraw(Canvas canvas) { protected void onDraw(Canvas canvas) {
super.onDraw(canvas); super.onDraw(canvas);
if (moreNum > 0) { if (moreNum > 0) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { canvas.drawRoundRect(getWidth() / 2, 0f, getRight(), getHeight() / 4, 20f, 20f, mPaint);
canvas.drawRoundRect(getWidth() / 2, 0f, getRight(), getHeight() / 4, 20f, 20f, mPaint); // canvas.drawColor(maskColor);
}else {
mRectF.left=getWidth() / 2;
mRectF.top=0;
mRectF.bottom=getHeight() / 4;
mRectF.right=getRight();
canvas.drawRoundRect(mRectF,20f, 20f, mPaint);
}
// canvas.drawColor(maskColor);
float baseY = getHeight() / 8 - (textPaint.ascent() + textPaint.descent()) / 2; float baseY = getHeight() / 8 - (textPaint.ascent() + textPaint.descent()) / 2;
canvas.drawText(msg, getWidth() / 2 + 10, baseY, textPaint); canvas.drawText(msg, getWidth() / 2 + 10, baseY, textPaint);
} }
......
...@@ -20,11 +20,11 @@ public class MemberFragment extends DynamicFragment { ...@@ -20,11 +20,11 @@ public class MemberFragment extends DynamicFragment {
private View view; private View view;
private Context context; private Context context;
private TextView member_age_tv,member_emotional_state_tv,member_job_tv,member_address_tv,member_introduction_tv; private TextView member_age_tv,member_emotional_state_tv,member_job_tv,member_address_tv,member_introduction_tv,member_ip_tv;
String age,emotional_state,job,address,introduction; String age,emotional_state,job,address,introduction,ipProvince;
public static MemberFragment newInstance(String age, String emotional_state, String job, String address, String introduction){ public static MemberFragment newInstance(String age, String emotional_state, String job, String address, String introduction, String ipProvince){
MemberFragment memberFragment=new MemberFragment(); MemberFragment memberFragment=new MemberFragment();
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putString("age", age); args.putString("age", age);
...@@ -32,6 +32,7 @@ public class MemberFragment extends DynamicFragment { ...@@ -32,6 +32,7 @@ public class MemberFragment extends DynamicFragment {
args.putString("job", job); args.putString("job", job);
args.putString("address", address); args.putString("address", address);
args.putString("introduction", introduction); args.putString("introduction", introduction);
args.putString("ipProvince", ipProvince);
memberFragment.setArguments(args); memberFragment.setArguments(args);
return memberFragment; return memberFragment;
} }
...@@ -46,18 +47,21 @@ public class MemberFragment extends DynamicFragment { ...@@ -46,18 +47,21 @@ public class MemberFragment extends DynamicFragment {
member_job_tv=(TextView)view.findViewById(R.id.member_job_tv); member_job_tv=(TextView)view.findViewById(R.id.member_job_tv);
member_address_tv=(TextView)view.findViewById(R.id.member_address_tv); member_address_tv=(TextView)view.findViewById(R.id.member_address_tv);
member_introduction_tv=(TextView)view.findViewById(R.id.member_introduction_tv); member_introduction_tv=(TextView)view.findViewById(R.id.member_introduction_tv);
member_ip_tv = view.findViewById(R.id.member_ip_tv);
age=getArguments().getString("age"); age=getArguments().getString("age");
emotional_state=getArguments().getString("emotional_state"); emotional_state=getArguments().getString("emotional_state");
job=getArguments().getString("job"); job=getArguments().getString("job");
address=getArguments().getString("address"); address=getArguments().getString("address");
introduction=getArguments().getString("introduction"); introduction=getArguments().getString("introduction");
ipProvince=getArguments().getString("ipProvince");
member_age_tv.setText(age); member_age_tv.setText(age);
member_emotional_state_tv.setText(emotional_state); member_emotional_state_tv.setText(emotional_state);
member_job_tv.setText(job); member_job_tv.setText(job);
member_address_tv.setText(address); member_address_tv.setText(address);
member_introduction_tv.setText(introduction); member_introduction_tv.setText(introduction);
member_ip_tv.setText(ipProvince);
return view; return view;
} }
} }
...@@ -13,10 +13,6 @@ import android.os.Bundle; ...@@ -13,10 +13,6 @@ import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.os.Parcelable; import android.os.Parcelable;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import androidx.appcompat.app.AlertDialog;
import android.view.View; import android.view.View;
import android.view.ViewTreeObserver; import android.view.ViewTreeObserver;
import android.widget.ImageView; import android.widget.ImageView;
...@@ -24,6 +20,11 @@ import android.widget.LinearLayout; ...@@ -24,6 +20,11 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.alibaba.android.arouter.launcher.ARouter;
import com.google.gson.internal.LinkedTreeMap; import com.google.gson.internal.LinkedTreeMap;
import com.ydl.ydl_image.module.GlideApp; import com.ydl.ydl_image.module.GlideApp;
import com.ydl.ydlcommon.base.BaseActivity; import com.ydl.ydlcommon.base.BaseActivity;
...@@ -82,7 +83,7 @@ public class MembersActivity extends BaseActivity implements View.OnClickListene ...@@ -82,7 +83,7 @@ public class MembersActivity extends BaseActivity implements View.OnClickListene
List<String> reportReasons;//举报内容列表 List<String> reportReasons;//举报内容列表
private FragmentManager fragmentManager; private FragmentManager fragmentManager;
String age, emotional_state, job, address, introduction; String age, emotional_state, job, address, introduction, ipProvince;
String focus_state;//关注状态 String focus_state;//关注状态
boolean zan_state; boolean zan_state;
...@@ -197,17 +198,6 @@ public class MembersActivity extends BaseActivity implements View.OnClickListene ...@@ -197,17 +198,6 @@ public class MembersActivity extends BaseActivity implements View.OnClickListene
}); });
} }
/* @SuppressLint("WrongConstant")
private void initWindows() {
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) {
Window window = getWindow();
// window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
} else {
members_top_view.setVisibility(View.GONE);
}
}*/
/** /**
* 获取顶部图片高度后,设置滚动监听 * 获取顶部图片高度后,设置滚动监听
*/ */
...@@ -249,6 +239,7 @@ public class MembersActivity extends BaseActivity implements View.OnClickListene ...@@ -249,6 +239,7 @@ public class MembersActivity extends BaseActivity implements View.OnClickListene
job = person.profession; job = person.profession;
address = person.address; address = person.address;
introduction = person.description; introduction = person.description;
ipProvince = person.ipProvince;
String bg = person.bg; String bg = person.bg;
GlideApp.with(MembersActivity.this) GlideApp.with(MembersActivity.this)
.load(head) .load(head)
...@@ -487,12 +478,13 @@ public class MembersActivity extends BaseActivity implements View.OnClickListene ...@@ -487,12 +478,13 @@ public class MembersActivity extends BaseActivity implements View.OnClickListene
private void RightSet() { private void RightSet() {
final List<String> dialog_datas = new ArrayList<String>(); final List<String> dialog_datas = new ArrayList<String>();
if (shielding == false) { if (!shielding) {
dialog_datas.add("屏蔽ta"); dialog_datas.add("屏蔽ta");
} else { } else {
dialog_datas.add("解除屏蔽"); dialog_datas.add("解除屏蔽");
} }
dialog_datas.add("举报"); dialog_datas.add("举报");
dialog_datas.add("投诉与反馈");
int itemTextColor = getResources().getColor(R.color.dynamic_black); int itemTextColor = getResources().getColor(R.color.dynamic_black);
ListDialog.Builder builder1 = new ListDialog.Builder(MembersActivity.this, dialog_datas, itemTextColor); ListDialog.Builder builder1 = new ListDialog.Builder(MembersActivity.this, dialog_datas, itemTextColor);
builder1.SetLastStr("取消"); builder1.SetLastStr("取消");
...@@ -505,19 +497,20 @@ public class MembersActivity extends BaseActivity implements View.OnClickListene ...@@ -505,19 +497,20 @@ public class MembersActivity extends BaseActivity implements View.OnClickListene
builder1.SetOnItemClickLister(new ListDialog.Builder.OnItemClickLister() { builder1.SetOnItemClickLister(new ListDialog.Builder.OnItemClickLister() {
@Override @Override
public void onItemClick(Dialog dialog, View view, int position) { public void onItemClick(Dialog dialog, View view, int position) {
if (dialog_datas.size() == 2) {//不含取消关注 switch (position) {
switch (position) { case 0:
case 0: if (!shielding) {
if (shielding == false) { shieldHint();
shieldHint(); } else {
} else { RemoveShielding();
RemoveShielding(); }
} break;
break; case 1:
case 1: report();
report(); break;
break; case 2:
} ARouter.getInstance().build("/mine/FeedBackActivity").navigation();
break;
} }
dialog.dismiss(); dialog.dismiss();
} }
...@@ -738,7 +731,7 @@ public class MembersActivity extends BaseActivity implements View.OnClickListene ...@@ -738,7 +731,7 @@ public class MembersActivity extends BaseActivity implements View.OnClickListene
members_information_tv.setTextColor(getResources().getColor(R.color.platform_main_theme)); members_information_tv.setTextColor(getResources().getColor(R.color.platform_main_theme));
members_information_hint_tv.setBackgroundColor(getResources().getColor(R.color.platform_main_theme)); members_information_hint_tv.setBackgroundColor(getResources().getColor(R.color.platform_main_theme));
if (memberfragment == null) { if (memberfragment == null) {
memberfragment = MemberFragment.newInstance(age, emotional_state, job, address, introduction); memberfragment = MemberFragment.newInstance(age, emotional_state, job, address, introduction, ipProvince);
transaction.add(R.id.members_content_frm, memberfragment); transaction.add(R.id.members_content_frm, memberfragment);
} else { } else {
transaction.show(memberfragment); transaction.show(memberfragment);
......
...@@ -35,6 +35,7 @@ public class CommentBean { ...@@ -35,6 +35,7 @@ public class CommentBean {
private ShareData share_data; private ShareData share_data;
private int isAvailable; //是否空闲 0-否 1-是 private int isAvailable; //是否空闲 0-否 1-是
private int isOpenListen; //是否开通倾诉 0-否 1-是 private int isOpenListen; //是否开通倾诉 0-否 1-是
private String ipProvince;
private String listenLinkUrl; //统一路由url private String listenLinkUrl; //统一路由url
...@@ -52,6 +53,14 @@ public class CommentBean { ...@@ -52,6 +53,14 @@ public class CommentBean {
return isOpenListen; return isOpenListen;
} }
public String getIpProvince() {
return ipProvince;
}
public void setIpProvince(String ipProvince) {
this.ipProvince = ipProvince;
}
public ShareData getShare_data() { public ShareData getShare_data() {
return share_data; return share_data;
} }
......
...@@ -24,5 +24,7 @@ public class MemberInfoBean { ...@@ -24,5 +24,7 @@ public class MemberInfoBean {
public String description; public String description;
public String address; public String address;
public String bg; public String bg;
public String ipProvince;
} }
} }
...@@ -76,6 +76,7 @@ public class TrendsDetailInfoBean { ...@@ -76,6 +76,7 @@ public class TrendsDetailInfoBean {
public String uid; public String uid;
public String multitextType;//动态类型 public String multitextType;//动态类型
public ExtAd ext; public ExtAd ext;
public String ipProvince;
} }
//图片 //图片
......
...@@ -948,6 +948,7 @@ public class TrendsDetailActivity extends BaseMvpActivity<ITrendsDetailView, ITr ...@@ -948,6 +948,7 @@ public class TrendsDetailActivity extends BaseMvpActivity<ITrendsDetailView, ITr
holder.setHeadImageWithUrl(R.id.item_recommend_trend_user_head_iv, data.getHeader()); //头像 holder.setHeadImageWithUrl(R.id.item_recommend_trend_user_head_iv, data.getHeader()); //头像
holder.setText(R.id.text_userName, data.getName()); //用户名 holder.setText(R.id.text_userName, data.getName()); //用户名
holder.setText(R.id.text_time, data.getTime_str()); //发布时间 holder.setText(R.id.text_time, data.getTime_str()); //发布时间
if (!TextUtils.isEmpty(data.getIpProvince())) holder.setText(R.id.tv_ip, "IP属地: " + data.getIpProvince()); // IP属地
holder.setImageResource(R.id.img_comment_sex, data.getGender() == 1 ? R.drawable.dynamic_male : R.drawable.dynamic_female); holder.setImageResource(R.id.img_comment_sex, data.getGender() == 1 ? R.drawable.dynamic_male : R.drawable.dynamic_female);
holder.setImageResource(R.id.img_comment_zan, data.getIs_zan() == 1 ? R.drawable.dynamic_reply_zan_sel : R.drawable.dynamic_reply_zan); holder.setImageResource(R.id.img_comment_zan, data.getIs_zan() == 1 ? R.drawable.dynamic_reply_zan_sel : R.drawable.dynamic_reply_zan);
showCommentItemContent(holder, data); showCommentItemContent(holder, data);
...@@ -1406,6 +1407,7 @@ public class TrendsDetailActivity extends BaseMvpActivity<ITrendsDetailView, ITr ...@@ -1406,6 +1407,7 @@ public class TrendsDetailActivity extends BaseMvpActivity<ITrendsDetailView, ITr
return commentCount > commentListAdapter.getDatas().size(); return commentCount > commentListAdapter.getDatas().size();
} }
@SuppressLint("SetTextI18n")
private void fillContent() { private void fillContent() {
linComment.setVisibility(VISIBLE); linComment.setVisibility(VISIBLE);
linContent.setVisibility(View.VISIBLE); linContent.setVisibility(View.VISIBLE);
...@@ -1420,8 +1422,8 @@ public class TrendsDetailActivity extends BaseMvpActivity<ITrendsDetailView, ITr ...@@ -1420,8 +1422,8 @@ public class TrendsDetailActivity extends BaseMvpActivity<ITrendsDetailView, ITr
tvContent.setVisibility(View.GONE); tvContent.setVisibility(View.GONE);
} }
tvUserName.setText(mTrendBody.name); tvUserName.setText(mTrendBody.name);
tvTime.setText(mTrendBody.timeStr + "-"); //发布时间 tvTime.setText(mTrendBody.timeStr); //发布时间
tvFrom.setText(mTrendBody.from); //来源 if (!TextUtils.isEmpty(mTrendBody.ipProvince)) tvFrom.setText("IP属地: " + mTrendBody.ipProvince); // IP属地
if (TextUtils.isEmpty(mTrendBody.title)) { if (TextUtils.isEmpty(mTrendBody.title)) {
tvTrendInfoTitle.setVisibility(GONE); tvTrendInfoTitle.setVisibility(GONE);
......
package com.yidianling.dynamic.trendsHome; package com.yidianling.dynamic.trendsHome;
import static com.yidianling.dynamic.bean.DynamicConstants.YDL_USER_ASK_PAGE_STAY_VISIT;
import static com.yidianling.dynamic.bean.DynamicConstants.YDL_USER_ASK_PAGE_VISIT;
import static com.yidianling.dynamic.bean.DynamicConstants.YDL_USER_ASK_QUESTIONS_BUTTON_CLICK;
import static com.yidianling.dynamic.bean.DynamicConstants.YDL_USER_ASK_TYPE_CLICK;
import static com.yidianling.dynamic.bean.DynamicConstants.YDL_USER_THOUGHTS_GROUP_MORE_CLICK;
import static com.yidianling.dynamic.bean.DynamicConstants.YDL_USER_THOUGHTS_GROUP_TYPE_CLICK;
import android.content.Intent; import android.content.Intent;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import androidx.appcompat.widget.Toolbar;
import android.view.View; import android.view.View;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import androidx.appcompat.widget.Toolbar;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.fragment.app.Fragment;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import androidx.viewpager.widget.ViewPager;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.ydl.ydl_image.module.GlideApp; import com.ydl.ydl_image.module.GlideApp;
import com.ydl.ydlcommon.base.BaseFragment; import com.ydl.ydlcommon.base.BaseFragment;
import com.ydl.ydlcommon.utils.BuryPointUtils; import com.ydl.ydlcommon.utils.BuryPointUtils;
...@@ -43,13 +50,6 @@ import java.util.List; ...@@ -43,13 +50,6 @@ import java.util.List;
import jp.wasabeef.glide.transformations.RoundedCornersTransformation; import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
import static com.yidianling.dynamic.bean.DynamicConstants.YDL_USER_ASK_PAGE_STAY_VISIT;
import static com.yidianling.dynamic.bean.DynamicConstants.YDL_USER_ASK_PAGE_VISIT;
import static com.yidianling.dynamic.bean.DynamicConstants.YDL_USER_ASK_QUESTIONS_BUTTON_CLICK;
import static com.yidianling.dynamic.bean.DynamicConstants.YDL_USER_ASK_TYPE_CLICK;
import static com.yidianling.dynamic.bean.DynamicConstants.YDL_USER_THOUGHTS_GROUP_MORE_CLICK;
import static com.yidianling.dynamic.bean.DynamicConstants.YDL_USER_THOUGHTS_GROUP_TYPE_CLICK;
/** /**
* Created by Jim on 2017/9/22 0022. * Created by Jim on 2017/9/22 0022.
* 首页问答fragment * 首页问答fragment
...@@ -151,14 +151,13 @@ public class TrendsHomeFragment extends BaseFragment implements ITrendHomeView, ...@@ -151,14 +151,13 @@ public class TrendsHomeFragment extends BaseFragment implements ITrendHomeView,
} }
private void initStatus() { private void initStatus() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//4.4以下不支持状态栏变色 //4.4以下不支持状态栏变色
int statusBarHeight = ScreenUtil.getStatusBarHeight(getActivity()); int statusBarHeight = ScreenUtil.getStatusBarHeight(getActivity());
CollapsingToolbarLayout.LayoutParams layoutParams = (CollapsingToolbarLayout.LayoutParams) mToolBarTv.getLayoutParams(); CollapsingToolbarLayout.LayoutParams layoutParams = (CollapsingToolbarLayout.LayoutParams) mToolBarTv.getLayoutParams();
layoutParams.height = (int) (getResources().getDimension(R.dimen.title_bar_height) + statusBarHeight); layoutParams.height = (int) (getResources().getDimension(R.dimen.title_bar_height) + statusBarHeight);
mToolBarTv.setPadding(0, statusBarHeight, 0, 0); mToolBarTv.setPadding(0, statusBarHeight, 0, 0);
mToolBarTv.setLayoutParams(layoutParams); mToolBarTv.setLayoutParams(layoutParams);
}
} }
private void initDatas() { private void initDatas() {
...@@ -336,6 +335,7 @@ public class TrendsHomeFragment extends BaseFragment implements ITrendHomeView, ...@@ -336,6 +335,7 @@ public class TrendsHomeFragment extends BaseFragment implements ITrendHomeView,
intent.putExtra("bundle", bundle); intent.putExtra("bundle", bundle);
startActivity(intent); startActivity(intent);
// PublishTrendActivityTrends.Companion.start(requireContext(),"44","今日打卡"); // PublishTrendActivityTrends.Companion.start(requireContext(),"44","今日打卡");
trendsAndQuestionDialog.dismiss();
} }
@Override @Override
...@@ -350,6 +350,7 @@ public class TrendsHomeFragment extends BaseFragment implements ITrendHomeView, ...@@ -350,6 +350,7 @@ public class TrendsHomeFragment extends BaseFragment implements ITrendHomeView,
bundle.putInt("dynamic_question", 2); bundle.putInt("dynamic_question", 2);
intent.putExtra("bundle", bundle); intent.putExtra("bundle", bundle);
startActivity(intent); startActivity(intent);
trendsAndQuestionDialog.dismiss();
} }
}); });
trendsAndQuestionDialog.show(); trendsAndQuestionDialog.show();
......
...@@ -309,15 +309,15 @@ ...@@ -309,15 +309,15 @@
android:layout_weight="1"> android:layout_weight="1">
<TextView <TextView
android:id="@+id/members_information_tv" android:id="@+id/members_information_tv"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerInParent="true" android:layout_centerInParent="true"
android:paddingLeft="15dp" android:paddingLeft="15dp"
android:paddingRight="15dp" android:paddingRight="15dp"
android:text="个人资料" android:text="个人资料"
android:textColor="@color/dynamic_text_gray" android:textColor="@color/dynamic_text_gray"
android:textSize="18sp" /> android:textSize="18sp" />
<TextView <TextView
android:id="@+id/members_information_hint_tv" android:id="@+id/members_information_hint_tv"
......
...@@ -61,6 +61,7 @@ ...@@ -61,6 +61,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
tools:visibility="visible"
android:visibility="gone"> android:visibility="gone">
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
...@@ -148,7 +149,6 @@ ...@@ -148,7 +149,6 @@
</RelativeLayout> </RelativeLayout>
<TextView <TextView
android:id="@+id/text_time" android:id="@+id/text_time"
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -166,11 +166,12 @@ ...@@ -166,11 +166,12 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/text_userName_rel" android:layout_below="@+id/text_userName_rel"
android:layout_marginStart="10dp"
android:layout_marginTop="7dp" android:layout_marginTop="7dp"
android:layout_toRightOf="@id/text_time" android:layout_toRightOf="@id/text_time"
android:textColor="@color/dynamic_text_trend_defult" android:textColor="@color/dynamic_text_trend_defult"
android:textSize="12sp" android:textSize="12sp"
tools:text=" - 来自安卓客户端" /> tools:text="IP属地: XX" />
<TextView <TextView
android:id="@+id/text_guanzhu" android:id="@+id/text_guanzhu"
...@@ -498,6 +499,7 @@ ...@@ -498,6 +499,7 @@
<com.ydl.ydlcommon.ui.LogoLoadingView <com.ydl.ydlcommon.ui.LogoLoadingView
android:id="@+id/v_loading" android:id="@+id/v_loading"
tools:visibility="gone"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"/> android:layout_height="match_parent"/>
......
...@@ -114,4 +114,25 @@ ...@@ -114,4 +114,25 @@
android:text="" android:text=""
android:textSize="18sp"/> android:textSize="18sp"/>
</LinearLayout> </LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="15dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/dynamic_black"
android:text="IP属地"
android:textSize="18sp"
android:layout_marginRight="15dp"/>
<TextView
android:id="@+id/member_ip_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/dynamic_black"
android:textSize="18sp"/>
</LinearLayout>
</LinearLayout> </LinearLayout>
...@@ -112,6 +112,17 @@ ...@@ -112,6 +112,17 @@
tools:text="23分钟前" /> tools:text="23分钟前" />
<TextView <TextView
android:id="@+id/tv_ip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/color_9d9ea7"
android:layout_toEndOf="@id/text_time"
android:layout_marginStart="10dp"
android:textSize="12sp"
android:layout_alignBaseline="@id/text_time"
tools:text="IP属地: XX"/>
<TextView
android:id="@+id/text_chat" android:id="@+id/text_chat"
android:layout_width="60dp" android:layout_width="60dp"
android:layout_height="30dp" android:layout_height="30dp"
......
...@@ -5,9 +5,7 @@ import android.annotation.SuppressLint; ...@@ -5,9 +5,7 @@ import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import androidx.cardview.widget.CardView;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.View; import android.view.View;
...@@ -21,6 +19,8 @@ import android.widget.RelativeLayout; ...@@ -21,6 +19,8 @@ import android.widget.RelativeLayout;
import android.widget.SeekBar; import android.widget.SeekBar;
import android.widget.TextView; import android.widget.TextView;
import androidx.cardview.widget.CardView;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
import com.ydl.media.audio.AudioPlayer; import com.ydl.media.audio.AudioPlayer;
import com.ydl.media.audio.OnPlayerEventListener; import com.ydl.media.audio.OnPlayerEventListener;
...@@ -269,18 +269,12 @@ public class FMDetailActivity extends BaseActivity implements View.OnClickListen ...@@ -269,18 +269,12 @@ public class FMDetailActivity extends BaseActivity implements View.OnClickListen
int changeProgress = 0; int changeProgress = 0;
void init() { void init() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Window window = getWindow();
Window window = getWindow(); window.setStatusBarColor(Color.TRANSPARENT);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(Color.TRANSPARENT); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
} else {
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
}
fm_progress.setMax(max_progress); fm_progress.setMax(max_progress);
tb_title.setDivideVisible(View.GONE); tb_title.setDivideVisible(View.GONE);
tb_title.setLeftListener(new View.OnClickListener() { tb_title.setLeftListener(new View.OnClickListener() {
......
...@@ -270,15 +270,14 @@ open class HomeBaseImpl : IHomeBaseEvent { ...@@ -270,15 +270,14 @@ open class HomeBaseImpl : IHomeBaseEvent {
} else if (data.goType.equals("h5")) { } else if (data.goType.equals("h5")) {
NewH5Activity.start(mContext, H5Params(data.goUrl.toString(), "")) NewH5Activity.start(mContext, H5Params(data.goUrl.toString(), ""))
} else if (data.goType.equals("special_categories")) { } else if (data.goType.equals("special_categories")) {
ARouter.getInstance().build("/consult/list") //全部
.withInt(IYDLRouterConstant.EXTRA_SHOWTYPE, 0) ARouter.getInstance().build("/consult/eightcategory")
.withString(IYDLRouterConstant.EXTRA_CATETITLE, data.title)
.withSerializable(IYDLRouterConstant.GO_CRITERIA, data.goCriteriaMap)
.navigation() .navigation()
} else { } else {
ARouter.getInstance().build("/consult/list") ARouter.getInstance().build("/consult/list")
.withInt(IYDLRouterConstant.EXTRA_SHOWTYPE, 0) .withInt(IYDLRouterConstant.EXTRA_SHOWTYPE, 0)
.withString(IYDLRouterConstant.EXTRA_CATETITLE, data.title) .withString(IYDLRouterConstant.EXTRA_CATETITLE, data.title)
.withString(IYDLRouterConstant.HASCATEID, data.cateId)
.withSerializable(IYDLRouterConstant.GO_CRITERIA, data.goCriteriaMap) .withSerializable(IYDLRouterConstant.GO_CRITERIA, data.goCriteriaMap)
.navigation() .navigation()
} }
......
...@@ -69,6 +69,7 @@ class HomeHeaderBean : HomeItemBaseBean { ...@@ -69,6 +69,7 @@ class HomeHeaderBean : HomeItemBaseBean {
var icon: String? = "", var icon: String? = "",
var goType: String? = "", var goType: String? = "",
var goUrl: String? = "", var goUrl: String? = "",
var cateId: String? = "",
var goCriteriaMap: HashMap<String, Any>? = null var goCriteriaMap: HashMap<String, Any>? = null
) : Serializable ) : Serializable
......
...@@ -2,18 +2,16 @@ package com.yidianling.home.ui.view ...@@ -2,18 +2,16 @@ package com.yidianling.home.ui.view
import android.content.Context import android.content.Context
import android.graphics.Typeface import android.graphics.Typeface
import android.os.Build
import com.google.android.material.tabs.TabLayout
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.tabs.TabLayout
import com.yidianling.common.tools.LogUtil import com.yidianling.common.tools.LogUtil
import com.yidianling.home.R import com.yidianling.home.R
import com.yidianling.home.event.HomeImpl import com.yidianling.home.event.HomeImpl
import com.yidianling.home.event.IHomeBaseEvent
import com.yidianling.home.model.bean.HomeConfideBean import com.yidianling.home.model.bean.HomeConfideBean
import com.yidianling.home.model.bean.HomeHeaderBean import com.yidianling.home.model.bean.HomeHeaderBean
import kotlinx.android.synthetic.xlzx.home_confide_view.view.* import kotlinx.android.synthetic.xlzx.home_confide_view.view.*
...@@ -83,11 +81,9 @@ class HomeConfideView(private val mContext: Context, private var homeEvent: Home ...@@ -83,11 +81,9 @@ class HomeConfideView(private val mContext: Context, private var homeEvent: Home
textView.setTextColor(ContextCompat.getColor(mContext, R.color.platform_color_242424)) textView.setTextColor(ContextCompat.getColor(mContext, R.color.platform_color_242424))
textView.typeface = Typeface.defaultFromStyle(Typeface.BOLD) textView.typeface = Typeface.defaultFromStyle(Typeface.BOLD)
} }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { tab_layout.setOnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY ->
tab_layout.setOnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY -> LogUtil.e("scrollX=$scrollX")
LogUtil.e("scrollX=$scrollX") LogUtil.e("oldScrollX=$oldScrollX")
LogUtil.e("oldScrollX=$oldScrollX")
}
} }
} }
......
...@@ -3,7 +3,6 @@ package com.yidianling.home.ui.view ...@@ -3,7 +3,6 @@ package com.yidianling.home.ui.view
import android.content.Context import android.content.Context
import android.graphics.Color import android.graphics.Color
import android.graphics.Typeface import android.graphics.Typeface
import android.os.Build
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.LinearLayout import android.widget.LinearLayout
...@@ -98,12 +97,11 @@ class HomeConsultView(private val mContext: Context, private var homeEvent: IHom ...@@ -98,12 +97,11 @@ class HomeConsultView(private val mContext: Context, private var homeEvent: IHom
try { try {
var textView = tab_layout.getTabAt(0) as TextView var textView = tab_layout.getTabAt(0) as TextView
updateText(textView, true) updateText(textView, true)
} catch (e: Exception) {} } catch (e: Exception) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { }
tab_layout.setOnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY -> tab_layout.setOnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY ->
LogUtil.e("scrollX=$scrollX") LogUtil.e("scrollX=$scrollX")
LogUtil.e("oldScrollX=$oldScrollX") LogUtil.e("oldScrollX=$oldScrollX")
}
} }
} }
......
...@@ -6,7 +6,6 @@ import android.view.View ...@@ -6,7 +6,6 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.FrameLayout import android.widget.FrameLayout
import android.widget.LinearLayout import android.widget.LinearLayout
import com.ydl.ydlcommon.utils.YdlBuryPointUtil
import com.ydl.ydlcommon.view.banner.GlideImageLoader import com.ydl.ydlcommon.view.banner.GlideImageLoader
import com.yidianling.common.tools.RxDeviceTool import com.yidianling.common.tools.RxDeviceTool
import com.yidianling.common.tools.RxImageTool import com.yidianling.common.tools.RxImageTool
...@@ -68,10 +67,6 @@ class HomeImageBannerView(val mContext: Context, val homeEvent: IHomeBaseEvent) ...@@ -68,10 +67,6 @@ class HomeImageBannerView(val mContext: Context, val homeEvent: IHomeBaseEvent)
.setImages(imageViews).start() .setImages(imageViews).start()
banner_search.setOnBannerListener { banner_search.setOnBannerListener {
homeEvent?.bannerClick(cacheList!![it]) homeEvent?.bannerClick(cacheList!![it])
YdlBuryPointUtil.sendClick(
"ydl-xinlizixun-home-banner$it",
"${cacheList[it].imageUrl}"
)
} }
} }
} }
......
...@@ -9,6 +9,7 @@ import android.view.ViewGroup ...@@ -9,6 +9,7 @@ import android.view.ViewGroup
import android.widget.ImageView import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.ydl.ydl_image.module.GlideApp import com.ydl.ydl_image.module.GlideApp
import com.ydl.ydlcommon.data.PlatformDataManager
import com.yidianling.home.R import com.yidianling.home.R
import com.yidianling.home.constract.HomeViewConfig import com.yidianling.home.constract.HomeViewConfig
import com.yidianling.home.event.HomeImpl import com.yidianling.home.event.HomeImpl
...@@ -133,7 +134,7 @@ class YdlHomeAdapter(private val mContext: Context, ...@@ -133,7 +134,7 @@ class YdlHomeAdapter(private val mContext: Context,
when (viewType) { when (viewType) {
//顶部ViewPager与分类模块 //顶部ViewPager与分类模块
HomeViewConfig.getOrder().bannerIndex -> { HomeViewConfig.getOrder().bannerIndex -> {
if (viewType == -1){ if (viewType == -1) {
//空布局 //空布局
val view = View(mContext) val view = View(mContext)
val layoutParams = ViewGroup.LayoutParams( val layoutParams = ViewGroup.LayoutParams(
...@@ -141,8 +142,13 @@ class YdlHomeAdapter(private val mContext: Context, ...@@ -141,8 +142,13 @@ class YdlHomeAdapter(private val mContext: Context,
ViewGroup.LayoutParams.MATCH_PARENT ViewGroup.LayoutParams.MATCH_PARENT
) )
view.layoutParams = layoutParams view.layoutParams = layoutParams
//抑郁焦虑测试适配代码
if (PlatformDataManager.getRam().getChannelName().contains("yyjlcs")) {
view.layoutParams =
ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 1)
}
view.visibility = View.GONE view.visibility = View.GONE
return HomePagerBannerViewHolder(view,viewType) return HomePagerBannerViewHolder(view, viewType)
} }
return HomePagerBannerViewHolder(HomePagerBannerView(mContext, homeEvent),viewType) return HomePagerBannerViewHolder(HomePagerBannerView(mContext, homeEvent),viewType)
} }
......
...@@ -20,7 +20,6 @@ import io.reactivex.android.schedulers.AndroidSchedulers ...@@ -20,7 +20,6 @@ import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.functions.Action import io.reactivex.functions.Action
import io.reactivex.functions.Consumer import io.reactivex.functions.Consumer
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import java.util.*
/** /**
...@@ -106,13 +105,6 @@ class HomePresenterImpl: BaseHomePresenterImpl<IHomeContract.View, IHomeContract ...@@ -106,13 +105,6 @@ class HomePresenterImpl: BaseHomePresenterImpl<IHomeContract.View, IHomeContract
homeList.add(getHomeItemFromTempData(it, HomeViewConfig.getOrder().dynamicIndex!!)) homeList.add(getHomeItemFromTempData(it, HomeViewConfig.getOrder().dynamicIndex!!))
} }
val museObservable = mModel.museRequest()
.compose(RxUtils.applySchedulers(mView)).map {
//首页冥想数据
homeList.add(getHomeItemFromTempData(it, HomeViewConfig.getOrder().museIndex!!))
}
val meditationObservable = mModel.getMeditation() val meditationObservable = mModel.getMeditation()
.compose(RxUtils.applySchedulers(mView)).map { .compose(RxUtils.applySchedulers(mView)).map {
homeList.add(getHomeItemFromTempData(it,HomeViewConfig.getOrder().museIndex!!)) homeList.add(getHomeItemFromTempData(it,HomeViewConfig.getOrder().museIndex!!))
...@@ -159,9 +151,6 @@ class HomePresenterImpl: BaseHomePresenterImpl<IHomeContract.View, IHomeContract ...@@ -159,9 +151,6 @@ class HomePresenterImpl: BaseHomePresenterImpl<IHomeContract.View, IHomeContract
if (HomeViewConfig.getOrder().museIndex!=null){ if (HomeViewConfig.getOrder().museIndex!=null){
mergeArrays.add(meditationObservable) mergeArrays.add(meditationObservable)
} }
// if (HomeViewConfig.getOrder().museIndex!=null){
// mergeArrays.add(museObservable)
// }
if (HomeViewConfig.getOrder().fmIndex!=null){ if (HomeViewConfig.getOrder().fmIndex!=null){
mergeArrays.add(fmObservable) mergeArrays.add(fmObservable)
} }
...@@ -205,12 +194,6 @@ class HomePresenterImpl: BaseHomePresenterImpl<IHomeContract.View, IHomeContract ...@@ -205,12 +194,6 @@ class HomePresenterImpl: BaseHomePresenterImpl<IHomeContract.View, IHomeContract
) )
} }
}) })
//长日志打印
// HomeLogPrinter.printLongLog(
// HomePresenterImpl::class.java.simpleName,
// Gson().toJson(homeList)
// )
}) })
} }
...@@ -307,10 +290,6 @@ class HomePresenterImpl: BaseHomePresenterImpl<IHomeContract.View, IHomeContract ...@@ -307,10 +290,6 @@ class HomePresenterImpl: BaseHomePresenterImpl<IHomeContract.View, IHomeContract
if (dataBean.isRealEmpty || dataBean !is HomeAskBean) homeTempData.askBean else dataBean if (dataBean.isRealEmpty || dataBean !is HomeAskBean) homeTempData.askBean else dataBean
mHomeAskBean = item.askBean mHomeAskBean = item.askBean
} }
// HomeViewConfig.getOrder().museIndex -> {
// item.museBean =
// if (dataBean.isRealEmpty || dataBean !is MuseModuleBean) homeTempData.museBean else dataBean
// }
HomeViewConfig.getOrder().museIndex -> { HomeViewConfig.getOrder().museIndex -> {
item.meditationBean = item.meditationBean =
if (dataBean.isRealEmpty || dataBean !is MeditationModuleBean) homeTempData.meditationBean else dataBean if (dataBean.isRealEmpty || dataBean !is MeditationModuleBean) homeTempData.meditationBean else dataBean
......
...@@ -23,7 +23,9 @@ import com.ydl.ydl_image.module.GlideApp ...@@ -23,7 +23,9 @@ import com.ydl.ydl_image.module.GlideApp
import com.ydl.ydl_router.manager.YDLRouterManager import com.ydl.ydl_router.manager.YDLRouterManager
import com.ydl.ydlcommon.base.BaseMvpFragment import com.ydl.ydlcommon.base.BaseMvpFragment
import com.ydl.ydlcommon.modular.ModularServiceManager import com.ydl.ydlcommon.modular.ModularServiceManager
import com.ydl.ydlcommon.utils.* import com.ydl.ydlcommon.utils.SharedPreferencesEditor
import com.ydl.ydlcommon.utils.StatusBarUtils
import com.ydl.ydlcommon.utils.Utils
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import com.yidianling.consultant.OnBottomWordListener import com.yidianling.consultant.OnBottomWordListener
import com.yidianling.consultant.api.IConsultantService import com.yidianling.consultant.api.IConsultantService
...@@ -698,7 +700,11 @@ open class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterIm ...@@ -698,7 +700,11 @@ open class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterIm
} }
textView.typeface = Typeface.defaultFromStyle(Typeface.BOLD) textView.typeface = Typeface.defaultFromStyle(Typeface.BOLD)
} }
list?.get(tab.position)?.let { homeEvent?.getConfideData(it, tab.position) }
val minus = list?.size ?: -1
if (minus != -1 && tab.position < minus) {
list?.get(tab.position)?.let { homeEvent?.getConfideData(it, tab.position) }
}
} }
} }
......
...@@ -72,17 +72,18 @@ class HomeConfideView(private val mContext: Context, private var homeEvent: IHom ...@@ -72,17 +72,18 @@ class HomeConfideView(private val mContext: Context, private var homeEvent: IHom
} }
listener = ConfideExpertTabSelectedListener(list, tab_layout) listener = ConfideExpertTabSelectedListener(list, tab_layout)
tab_layout.addOnTabSelectedListener(listener!!) tab_layout.addOnTabSelectedListener(listener!!)
var textView = ((tab_layout!!.getChildAt(0) as LinearLayout).getChildAt(lastPosition) as LinearLayout).getChildAt(1) var textView =
((tab_layout!!.getChildAt(0) as LinearLayout).getChildAt(lastPosition) as LinearLayout).getChildAt(
1
)
if (textView != null && textView is TextView) { if (textView != null && textView is TextView) {
textView.textSize = 17f textView.textSize = 17f
textView.setTextColor(ContextCompat.getColor(mContext, R.color.platform_color_242424)) textView.setTextColor(ContextCompat.getColor(mContext, R.color.platform_color_242424))
textView.typeface = Typeface.defaultFromStyle(Typeface.BOLD) textView.typeface = Typeface.defaultFromStyle(Typeface.BOLD)
} }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { tab_layout.setOnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY ->
tab_layout.setOnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY -> LogUtil.e("scrollX=$scrollX")
LogUtil.e("scrollX=$scrollX") LogUtil.e("oldScrollX=$oldScrollX")
LogUtil.e("oldScrollX=$oldScrollX")
}
} }
} }
......
...@@ -9,15 +9,18 @@ import android.widget.FrameLayout ...@@ -9,15 +9,18 @@ import android.widget.FrameLayout
import com.ydl.ydl_image.config.SimpleImageOpConfiger import com.ydl.ydl_image.config.SimpleImageOpConfiger
import com.ydl.ydl_image.manager.YDLImageCacheManager import com.ydl.ydl_image.manager.YDLImageCacheManager
import com.ydl.ydlcommon.modular.ModularServiceManager import com.ydl.ydlcommon.modular.ModularServiceManager
import com.ydl.ydlcommon.modular.findRouteService
import com.ydl.ydlcommon.utils.StringUtils import com.ydl.ydlcommon.utils.StringUtils
import com.ydl.ydlcommon.utils.URLUtils import com.ydl.ydlcommon.utils.URLUtils
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import com.ydl.ydlcommon.view.dialog.CommonDialog
import com.yidianling.common.tools.RxImageTool import com.yidianling.common.tools.RxImageTool
import com.yidianling.consultant.api.IConsultantService import com.yidianling.consultant.api.IConsultantService
import com.yidianling.home.R import com.yidianling.home.R
import com.yidianling.home.constants.HomeBIConstants import com.yidianling.home.constants.HomeBIConstants
import com.yidianling.home.event.IHomeBaseEvent import com.yidianling.home.event.IHomeBaseEvent
import com.yidianling.home.model.bean.HomeConsultBean import com.yidianling.home.model.bean.HomeConsultBean
import com.yidianling.user.api.service.IUserService
import kotlinx.android.synthetic.ydl.home_consult_item_view.view.* import kotlinx.android.synthetic.ydl.home_consult_item_view.view.*
/** /**
...@@ -72,7 +75,6 @@ class HomeConsultItemView(private var mContext: Context, private var homeEvent: ...@@ -72,7 +75,6 @@ class HomeConsultItemView(private var mContext: Context, private var homeEvent:
)*/ )*/
//补充点击事件埋点 //补充点击事件埋点
ActionCountUtils.count(HomeBIConstants.YDL_USER_EXPERT_INTRODUCTION_CLICK, bean.uid.toString()) ActionCountUtils.count(HomeBIConstants.YDL_USER_EXPERT_INTRODUCTION_CLICK, bean.uid.toString())
val url = URLUtils.appendParmas(bean.linkUrl,"cateId",cateId)
ModularServiceManager.provide(IConsultantService::class.java).dueToTypeJumpAutoOrGuide( ModularServiceManager.provide(IConsultantService::class.java).dueToTypeJumpAutoOrGuide(
mContext as Activity, mContext as Activity,
11, 11,
...@@ -134,6 +136,18 @@ class HomeConsultItemView(private var mContext: Context, private var homeEvent: ...@@ -134,6 +136,18 @@ class HomeConsultItemView(private var mContext: Context, private var homeEvent:
*/ */
private fun setConfideButton(bodyBean: HomeConsultBean.ListBean) { private fun setConfideButton(bodyBean: HomeConsultBean.ListBean) {
tv_consult_chat.setOnClickListener { tv_consult_chat.setOnClickListener {
val userService = findRouteService(IUserService::class.java)
if (!userService.isBindPhone() && context is Activity) {
CommonDialog(context)
.setMessage("为了及时接收消息通知,请立即绑定手机")
.setLeftOnclick("忍痛放弃") {}
.setRightClick("果断绑定") {
userService.wxBindToInputhonePage(context as Activity) // 跳转绑定手机号页面
}
.setCancelAble(false)
.show()
return@setOnClickListener
}
ModularServiceManager.provide(IConsultantService::class.java).dueToTypeJumpAutoOrGuide( ModularServiceManager.provide(IConsultantService::class.java).dueToTypeJumpAutoOrGuide(
mContext as Activity, mContext as Activity,
11, 11,
......
...@@ -75,17 +75,18 @@ class HomeConsultView(private val mContext: Context, private var homeEvent: IHom ...@@ -75,17 +75,18 @@ class HomeConsultView(private val mContext: Context, private var homeEvent: IHom
} }
listener = ConsultTabSelectedListener(list, tab_layout) listener = ConsultTabSelectedListener(list, tab_layout)
tab_layout.addOnTabSelectedListener(listener!!) tab_layout.addOnTabSelectedListener(listener!!)
val textView = ((tab_layout!!.getChildAt(0) as LinearLayout).getChildAt(lastPosition) as LinearLayout).getChildAt(1) val textView =
((tab_layout!!.getChildAt(0) as LinearLayout).getChildAt(lastPosition) as LinearLayout).getChildAt(
1
)
if (textView != null && textView is TextView) { if (textView != null && textView is TextView) {
textView.textSize = 17f textView.textSize = 17f
textView.setTextColor(ContextCompat.getColor(mContext, R.color.platform_color_242424)) textView.setTextColor(ContextCompat.getColor(mContext, R.color.platform_color_242424))
textView.typeface = Typeface.defaultFromStyle(Typeface.BOLD) textView.typeface = Typeface.defaultFromStyle(Typeface.BOLD)
} }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { tab_layout.setOnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY ->
tab_layout.setOnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY -> LogUtil.e("scrollX=$scrollX")
LogUtil.e("scrollX=$scrollX") LogUtil.e("oldScrollX=$oldScrollX")
LogUtil.e("oldScrollX=$oldScrollX")
}
} }
} }
......
...@@ -5,13 +5,12 @@ import android.view.View ...@@ -5,13 +5,12 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.FrameLayout import android.widget.FrameLayout
import android.widget.RelativeLayout import android.widget.RelativeLayout
import com.ydl.ydlcommon.utils.YdlBuryPointUtil
import com.ydl.ydlcommon.view.banner.GlideImageLoader import com.ydl.ydlcommon.view.banner.GlideImageLoader
import com.yidianling.common.tools.RxDeviceTool
import com.yidianling.common.tools.RxImageTool
import com.yidianling.home.R import com.yidianling.home.R
import com.yidianling.home.event.IHomeBaseEvent import com.yidianling.home.event.IHomeBaseEvent
import com.yidianling.home.model.bean.HomeHeaderBean import com.yidianling.home.model.bean.HomeHeaderBean
import com.yidianling.common.tools.RxDeviceTool
import com.yidianling.common.tools.RxImageTool
import kotlinx.android.synthetic.ydl.home_pager_banner_view.view.* import kotlinx.android.synthetic.ydl.home_pager_banner_view.view.*
...@@ -115,7 +114,6 @@ class HomePagerBannerView(private val mContext: Context, private var homeEvent: ...@@ -115,7 +114,6 @@ class HomePagerBannerView(private val mContext: Context, private var homeEvent:
homeModulePagerBannerViewBanner.setOnBannerListener { homeModulePagerBannerViewBanner.setOnBannerListener {
if (it < cacheList?.size) { if (it < cacheList?.size) {
homeEvent?.bannerClick(cacheList[it]) homeEvent?.bannerClick(cacheList[it])
YdlBuryPointUtil.sendClick("ydl-user-home-banner$it","${cacheList[it].imageUrl}")
} }
} }
} }
......
...@@ -165,6 +165,7 @@ ...@@ -165,6 +165,7 @@
android:layout_width="45dp" android:layout_width="45dp"
android:layout_height="@dimen/platform_dp_22" android:layout_height="@dimen/platform_dp_22"
android:visibility="visible" android:visibility="visible"
android:layout_marginStart="@dimen/platform_dp_8"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
......
...@@ -17,8 +17,8 @@ ...@@ -17,8 +17,8 @@
android:id="@+id/tv_consult_chat" android:id="@+id/tv_consult_chat"
android:layout_width="44dp" android:layout_width="44dp"
android:layout_height="44dp" android:layout_height="44dp"
android:layout_alignParentEnd="true"
android:layout_alignTop="@+id/img_consult_head" android:layout_alignTop="@+id/img_consult_head"
android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/platform_dp_13" android:layout_marginTop="@dimen/platform_dp_13"
android:layout_marginEnd="@dimen/platform_dp_15" android:layout_marginEnd="@dimen/platform_dp_15"
android:background="@drawable/home_consult_chat_bg" android:background="@drawable/home_consult_chat_bg"
......
...@@ -14,7 +14,6 @@ android { ...@@ -14,7 +14,6 @@ android {
compileSdkVersion rootProject.ext.android["compileSdkVersion"] compileSdkVersion rootProject.ext.android["compileSdkVersion"]
buildToolsVersion rootProject.ext.android["buildToolsVersion"] buildToolsVersion rootProject.ext.android["buildToolsVersion"]
defaultConfig { defaultConfig {
minSdkVersion rootProject.ext.android["minSdkVersion"] minSdkVersion rootProject.ext.android["minSdkVersion"]
targetSdkVersion rootProject.ext.android["targetSdkVersion"] targetSdkVersion rootProject.ext.android["targetSdkVersion"]
...@@ -52,22 +51,20 @@ android { ...@@ -52,22 +51,20 @@ android {
dependencies { dependencies {
api fileTree(dir: 'libs', include: ['*.aar','*.jar']) api fileTree(dir: 'libs', include: ['*.aar','*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.0' implementation 'androidx.appcompat:appcompat:1.2.0'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
kapt 'com.alibaba:arouter-compiler:1.2.2' kapt 'com.alibaba:arouter-compiler:1.2.2'
implementation 'com.ydl:nim-base:1.1.0.7' implementation 'com.ydl:nim-base:1.1.1.2'
// implementation 'com.netease.nimlib:basesdk:8.5.0' implementation 'com.netease.nimlib:avchat:9.2.1'
implementation 'com.netease.nimlib:avchat:9.1.1' implementation 'com.netease.nimlib:nrtc:9.2.1'
implementation 'com.netease.nimlib:nrtc:9.1.1'
api rootProject.ext.dependencies["ydl-user-router"] api rootProject.ext.dependencies["ydl-user-router"]
implementation rootProject.ext.dependencies["BaseRecyclerViewAdapterHelper"] implementation rootProject.ext.dependencies["BaseRecyclerViewAdapterHelper"]
api 'com.tencent.tbs.tbssdk:sdk:43903'
implementation('com.netease.yunxin.kit:call-ui:1.5.9-SNAPSHOT') { implementation('com.netease.yunxin.kit:call-ui:1.5.9-SNAPSHOT') {
exclude group: "com.netease.nimlib", module: "avsignalling" exclude group: "com.netease.nimlib", module: "avsignalling"
exclude group: "com.netease.nimlib", module: "basesdk" exclude group: "com.netease.nimlib", module: "basesdk"
} }
implementation "com.netease.nimlib:avsignalling:9.1.1" implementation "com.netease.nimlib:avsignalling:9.2.1"
api project(':ydl-webview') api project(':ydl-webview')
api project(':ydl-platform') api project(':ydl-platform')
......
...@@ -118,6 +118,7 @@ ...@@ -118,6 +118,7 @@
<activity <activity
android:name="com.yidianling.avchatkit.activity.AVChatActivity" android:name="com.yidianling.avchatkit.activity.AVChatActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:launchMode="singleTask"
android:theme="@style/FullScreenTheme" android:theme="@style/FullScreenTheme"
android:windowSoftInputMode="stateAlwaysHidden" /> android:windowSoftInputMode="stateAlwaysHidden" />
......
package com.yidianling.avchatkit; package com.yidianling.avchatkit;
import android.app.NotificationManager; import android.app.NotificationManager;
import android.app.PendingIntent; import android.os.Build;
import android.content.Intent;
import android.os.Handler; import android.os.Handler;
import android.text.TextUtils; import android.text.TextUtils;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.core.app.NotificationCompat;
import com.netease.nimlib.app.AppForegroundWatcherCompat;
import com.netease.nimlib.sdk.avchat.model.AVChatData; import com.netease.nimlib.sdk.avchat.model.AVChatData;
import com.yidianling.avchatkit.activity.AVChatActivity; import com.yidianling.avchatkit.activity.AVChatActivity;
import com.yidianling.avchatkit.common.Handlers; import com.yidianling.avchatkit.common.Handlers;
...@@ -24,6 +23,18 @@ public class AVChatProfile { ...@@ -24,6 +23,18 @@ public class AVChatProfile {
private boolean isAVChatting = false; // 是否正在音视频通话 private boolean isAVChatting = false; // 是否正在音视频通话
private NotificationManager notificationManager; private NotificationManager notificationManager;
public static AVChatProfile getInstance() {
return InstanceHolder.instance;
}
public boolean isAVChatting() {
return isAVChatting;
}
public void setAVChatting(boolean chating) {
isAVChatting = chating;
}
@Nullable @Nullable
private AVChatData backgroundIncomingCallData; private AVChatData backgroundIncomingCallData;
@Nullable @Nullable
...@@ -36,7 +47,12 @@ public class AVChatProfile { ...@@ -36,7 +47,12 @@ public class AVChatProfile {
return TextUtils.equals(backgroundIncomingCallData.getAccount(), account); return TextUtils.equals(backgroundIncomingCallData.getAccount(), account);
} }
public void removeBackgroundIncomingCall(boolean activeMissCall) {
private static class InstanceHolder {
public final static AVChatProfile instance = new AVChatProfile();
}
public void removeBackgroundIncomingCall(boolean activeMissCall) {
backgroundIncomingCallData = null; backgroundIncomingCallData = null;
if (backgroundIncomingCallNotification != null) { if (backgroundIncomingCallNotification != null) {
...@@ -52,7 +68,9 @@ public class AVChatProfile { ...@@ -52,7 +68,9 @@ public class AVChatProfile {
Runnable runnable = new Runnable() { Runnable runnable = new Runnable() {
@Override @Override
public void run() { public void run() {
/* if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && AppForegroundWatcherCompat.isBackground()) { // 启动,如果 task正在启动,则稍等一下
if (Build.VERSION.SDK_INT >= 29 && AppForegroundWatcherCompat.isBackground()) {
backgroundIncomingCallData = data; backgroundIncomingCallData = data;
backgroundIncomingCallNotification = new AVChatNotification(AVChatKit.getContext()); backgroundIncomingCallNotification = new AVChatNotification(AVChatKit.getContext());
...@@ -65,34 +83,15 @@ public class AVChatProfile { ...@@ -65,34 +83,15 @@ public class AVChatProfile {
} else { } else {
launchActivityTimeout(); launchActivityTimeout();
AVChatActivity.incomingCall(AVChatKit.getContext(), data, displayName, source); AVChatActivity.incomingCall(AVChatKit.getContext(), data, displayName, source);
}}*/ }
// 启动,如果 task正在启动,则稍等一下
if (AVChatKit.isMainTaskLaunching()) {
launchIncomingCall(data, displayName, source);
} else {
launchActivityTimeout();
AVChatActivity.incomingCall(AVChatKit.getContext(), data, displayName, source);
} }
} }
}; };
Handlers.sharedHandler(AVChatKit.getContext()).postDelayed(runnable, 200); Handlers.sharedHandler(AVChatKit.getContext()).postDelayed(runnable, 200);
} }
public static AVChatProfile getInstance() {
return InstanceHolder.instance;
}
public boolean isAVChatting() {
return isAVChatting;
}
public void setAVChatting(boolean chating) {
isAVChatting = chating;
}
private static class InstanceHolder {
public final static AVChatProfile instance = new AVChatProfile();
}
public void launchActivity(final AVChatData data, final String displayName, final int source) { public void launchActivity(final AVChatData data, final String displayName, final int source) {
Runnable runnable = new Runnable() { Runnable runnable = new Runnable() {
......
package com.yidianling.avchatkit.activity; package com.yidianling.avchatkit.activity;
import android.Manifest; import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.SystemClock; import android.os.SystemClock;
import android.view.LayoutInflater; import android.view.LayoutInflater;
...@@ -118,13 +120,7 @@ public class AVChatActivity extends AVChatBaseUI implements AVChatVideoUI.TouchZ ...@@ -118,13 +120,7 @@ public class AVChatActivity extends AVChatBaseUI implements AVChatVideoUI.TouchZ
// 接听来电 // 接听来电
public static void incomingCall(Context context, AVChatData config, String displayName, int source) { public static void incomingCall(Context context, AVChatData config, String displayName, int source) {
needFinish = false; needFinish = false;
Intent intent = new Intent(); Intent intent = incomingCallIntent(context, config, displayName, source);
intent.setClass(context, AVChatActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(KEY_CALL_CONFIG, config);
intent.putExtra(KEY_DISPLAY_NAME, displayName);
intent.putExtra(KEY_IN_CALLING, true);
intent.putExtra(KEY_SOURCE, source);
context.startActivity(intent); context.startActivity(intent);
} }
@NonNull @NonNull
...@@ -143,6 +139,10 @@ public class AVChatActivity extends AVChatBaseUI implements AVChatVideoUI.TouchZ ...@@ -143,6 +139,10 @@ public class AVChatActivity extends AVChatBaseUI implements AVChatVideoUI.TouchZ
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
if (getIntent().hasExtra(KEY_NEED_FINISH)) {
needFinish = getIntent().getBooleanExtra(KEY_NEED_FINISH, false);
}
// 若来电或去电未接通时,点击home。另外一方挂断通话。从最近任务列表恢复,则finish // 若来电或去电未接通时,点击home。另外一方挂断通话。从最近任务列表恢复,则finish
if (needFinish) { if (needFinish) {
finish(); finish();
...@@ -175,7 +175,6 @@ public class AVChatActivity extends AVChatBaseUI implements AVChatVideoUI.TouchZ ...@@ -175,7 +175,6 @@ public class AVChatActivity extends AVChatBaseUI implements AVChatVideoUI.TouchZ
cancelCallingNotifier(); cancelCallingNotifier();
if (hasOnPause) { if (hasOnPause) {
avChatVideoUI.onResume();
avChatController.resumeVideo(); avChatController.resumeVideo();
hasOnPause = false; hasOnPause = false;
} }
...@@ -184,8 +183,7 @@ public class AVChatActivity extends AVChatBaseUI implements AVChatVideoUI.TouchZ ...@@ -184,8 +183,7 @@ public class AVChatActivity extends AVChatBaseUI implements AVChatVideoUI.TouchZ
@Override @Override
protected void onPause() { protected void onPause() {
super.onPause(); super.onPause();
// avChatController.pauseVideo(); hasOnPause = true;
// hasOnPause = true;
} }
@Override @Override
...@@ -663,6 +661,7 @@ public class AVChatActivity extends AVChatBaseUI implements AVChatVideoUI.TouchZ ...@@ -663,6 +661,7 @@ public class AVChatActivity extends AVChatBaseUI implements AVChatVideoUI.TouchZ
avChatData != null ? avChatData.getAccount() : receiverId); avChatData != null ? avChatData.getAccount() : receiverId);
} }
@SuppressLint("CheckResult")
@Override @Override
public void onAudioToVideo() { public void onAudioToVideo() {
new RxPermissions(this) new RxPermissions(this)
...@@ -730,7 +729,11 @@ public class AVChatActivity extends AVChatBaseUI implements AVChatVideoUI.TouchZ ...@@ -730,7 +729,11 @@ public class AVChatActivity extends AVChatBaseUI implements AVChatVideoUI.TouchZ
@Override @Override
public void finish() { public void finish() {
isUserFinish = true; isUserFinish = true;
super.finish(); if (mIsInComingCall && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
super.finishAndRemoveTask();
} else {
super.finish();
}
} }
......
package com.yidianling.avchatkit.common.activity; package com.yidianling.avchatkit.common.activity;
import android.annotation.TargetApi;
import android.content.Context; import android.content.Context;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import com.yidianling.avchatkit.common.TFragment; import com.yidianling.avchatkit.common.TFragment;
import com.yidianling.avchatkit.common.log.LogUtil; import com.yidianling.avchatkit.common.log.LogUtil;
import com.yidianling.avchatkit.common.util.ReflectionUtil; import com.yidianling.avchatkit.common.util.ReflectionUtil;
...@@ -183,14 +183,9 @@ public abstract class AVChatBaseUI extends AppCompatActivity { ...@@ -183,14 +183,9 @@ public abstract class AVChatBaseUI extends AppCompatActivity {
public boolean isDestroyedCompatible() { public boolean isDestroyedCompatible() {
if (Build.VERSION.SDK_INT >= 17) { return isDestroyedCompatible17();
return isDestroyedCompatible17();
} else {
return destroyed || super.isFinishing();
}
} }
@TargetApi(17)
private boolean isDestroyedCompatible17() { private boolean isDestroyedCompatible17() {
return super.isDestroyed(); return super.isDestroyed();
} }
......
package com.yidianling.avchatkit.common.permission; package com.yidianling.avchatkit.common.permission;
import android.annotation.TargetApi;
import android.app.Activity; import android.app.Activity;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.os.Build;
import androidx.fragment.app.Fragment;
import android.util.Log; import android.util.Log;
import androidx.fragment.app.Fragment;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -18,10 +17,6 @@ public class BaseMPermission { ...@@ -18,10 +17,6 @@ public class BaseMPermission {
GRANTED, DENIED, DENIED_NEVER_ASK_AGAIN GRANTED, DENIED, DENIED_NEVER_ASK_AGAIN
} }
static boolean isOverMarshmallow() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M;
}
static Activity getActivity(Object object) { static Activity getActivity(Object object) {
if (object instanceof Fragment) { if (object instanceof Fragment) {
return ((Fragment) object).getActivity(); return ((Fragment) object).getActivity();
...@@ -42,23 +37,17 @@ public class BaseMPermission { ...@@ -42,23 +37,17 @@ public class BaseMPermission {
return findPermissionResult(fragment.getActivity(), permissions); return findPermissionResult(fragment.getActivity(), permissions);
} }
@TargetApi(value = Build.VERSION_CODES.M)
private static List<MPermissionResultEnum> findPermissionResult(Activity activity, String... permissions) { private static List<MPermissionResultEnum> findPermissionResult(Activity activity, String... permissions) {
boolean overM = isOverMarshmallow();
List<MPermissionResultEnum> result = new ArrayList<>(); List<MPermissionResultEnum> result = new ArrayList<>();
for (String p : permissions) { for (String p : permissions) {
if (overM) { if (activity.checkSelfPermission(p) == PackageManager.PERMISSION_GRANTED) {
if (activity.checkSelfPermission(p) == PackageManager.PERMISSION_GRANTED) { result.add(MPermissionResultEnum.GRANTED);
result.add(MPermissionResultEnum.GRANTED); } else {
if (!activity.shouldShowRequestPermissionRationale(p)) {
result.add(MPermissionResultEnum.DENIED_NEVER_ASK_AGAIN);
} else { } else {
if (!activity.shouldShowRequestPermissionRationale(p)) { result.add(MPermissionResultEnum.DENIED);
result.add(MPermissionResultEnum.DENIED_NEVER_ASK_AGAIN);
} else {
result.add(MPermissionResultEnum.DENIED);
}
} }
} else {
result.add(MPermissionResultEnum.GRANTED);
} }
} }
...@@ -76,12 +65,7 @@ public class BaseMPermission { ...@@ -76,12 +65,7 @@ public class BaseMPermission {
return findDeniedPermissions(fragment.getActivity(), permissions); return findDeniedPermissions(fragment.getActivity(), permissions);
} }
@TargetApi(value = Build.VERSION_CODES.M)
static List<String> findDeniedPermissions(Activity activity, String... permissions) { static List<String> findDeniedPermissions(Activity activity, String... permissions) {
if (!isOverMarshmallow()) {
return null;
}
List<String> denyPermissions = new ArrayList<>(); List<String> denyPermissions = new ArrayList<>();
for (String value : permissions) { for (String value : permissions) {
if (activity.checkSelfPermission(value) != PackageManager.PERMISSION_GRANTED) { if (activity.checkSelfPermission(value) != PackageManager.PERMISSION_GRANTED) {
...@@ -103,12 +87,7 @@ public class BaseMPermission { ...@@ -103,12 +87,7 @@ public class BaseMPermission {
return findNeverAskAgainPermissions(fragment.getActivity(), permissions); return findNeverAskAgainPermissions(fragment.getActivity(), permissions);
} }
@TargetApi(value = Build.VERSION_CODES.M)
private static List<String> findNeverAskAgainPermissions(Activity activity, String... permissions) { private static List<String> findNeverAskAgainPermissions(Activity activity, String... permissions) {
if (!isOverMarshmallow()) {
return null;
}
List<String> neverAskAgainPermission = new ArrayList<>(); List<String> neverAskAgainPermission = new ArrayList<>();
for (String value : permissions) { for (String value : permissions) {
if (activity.checkSelfPermission(value) != PackageManager.PERMISSION_GRANTED && if (activity.checkSelfPermission(value) != PackageManager.PERMISSION_GRANTED &&
...@@ -122,12 +101,7 @@ public class BaseMPermission { ...@@ -122,12 +101,7 @@ public class BaseMPermission {
return neverAskAgainPermission; return neverAskAgainPermission;
} }
@TargetApi(value = Build.VERSION_CODES.M)
static boolean hasNeverAskAgainPermission(Activity activity, List<String> permission) { static boolean hasNeverAskAgainPermission(Activity activity, List<String> permission) {
if (!isOverMarshmallow()) {
return false;
}
for (String value : permission) { for (String value : permission) {
if (activity.checkSelfPermission(value) != PackageManager.PERMISSION_GRANTED && if (activity.checkSelfPermission(value) != PackageManager.PERMISSION_GRANTED &&
!activity.shouldShowRequestPermissionRationale(value)) { !activity.shouldShowRequestPermissionRationale(value)) {
...@@ -149,12 +123,7 @@ public class BaseMPermission { ...@@ -149,12 +123,7 @@ public class BaseMPermission {
return findDeniedPermissionWithoutNeverAskAgain(fragment.getActivity(), permissions); return findDeniedPermissionWithoutNeverAskAgain(fragment.getActivity(), permissions);
} }
@TargetApi(value = Build.VERSION_CODES.M)
private static List<String> findDeniedPermissionWithoutNeverAskAgain(Activity activity, String... permission) { private static List<String> findDeniedPermissionWithoutNeverAskAgain(Activity activity, String... permission) {
if (!isOverMarshmallow()) {
return null;
}
List<String> denyPermissions = new ArrayList<>(); List<String> denyPermissions = new ArrayList<>();
for (String value : permission) { for (String value : permission) {
if (activity.checkSelfPermission(value) != PackageManager.PERMISSION_GRANTED && if (activity.checkSelfPermission(value) != PackageManager.PERMISSION_GRANTED &&
...@@ -162,7 +131,6 @@ public class BaseMPermission { ...@@ -162,7 +131,6 @@ public class BaseMPermission {
denyPermissions.add(value); // 上次申请被用户拒绝了 denyPermissions.add(value); // 上次申请被用户拒绝了
} }
} }
return denyPermissions; return denyPermissions;
} }
......
package com.yidianling.avchatkit.common.permission; package com.yidianling.avchatkit.common.permission;
import android.annotation.TargetApi;
import android.app.Activity; import android.app.Activity;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.os.Build;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
...@@ -49,18 +48,11 @@ public class MPermission extends BaseMPermission { ...@@ -49,18 +48,11 @@ public class MPermission extends BaseMPermission {
* ********************* request ********************* * ********************* request *********************
*/ */
@TargetApi(value = Build.VERSION_CODES.M)
public void request() { public void request() {
doRequestPermissions(object, requestCode, permissions); doRequestPermissions(object, requestCode, permissions);
} }
@TargetApi(value = Build.VERSION_CODES.M)
private static void doRequestPermissions(Object object, int requestCode, String[] permissions) { private static void doRequestPermissions(Object object, int requestCode, String[] permissions) {
if (!isOverMarshmallow()) {
doExecuteSuccess(object, requestCode);
return;
}
List<String> deniedPermissions = findDeniedPermissions(getActivity(object), permissions); List<String> deniedPermissions = findDeniedPermissions(getActivity(object), permissions);
if (deniedPermissions != null && deniedPermissions.size() > 0) { if (deniedPermissions != null && deniedPermissions.size() > 0) {
if (object instanceof Activity) { if (object instanceof Activity) {
......
...@@ -20,14 +20,9 @@ import android.graphics.Bitmap; ...@@ -20,14 +20,9 @@ import android.graphics.Bitmap;
import android.graphics.Paint; import android.graphics.Paint;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Build;
import androidx.annotation.DrawableRes;
import androidx.annotation.StringRes;
import androidx.recyclerview.widget.RecyclerView;
import android.text.util.Linkify; import android.text.util.Linkify;
import android.util.SparseArray; import android.util.SparseArray;
import android.view.View; import android.view.View;
import android.view.animation.AlphaAnimation;
import android.widget.Adapter; import android.widget.Adapter;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.CheckedTextView; import android.widget.CheckedTextView;
...@@ -37,6 +32,10 @@ import android.widget.ProgressBar; ...@@ -37,6 +32,10 @@ import android.widget.ProgressBar;
import android.widget.RatingBar; import android.widget.RatingBar;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.DrawableRes;
import androidx.annotation.StringRes;
import androidx.recyclerview.widget.RecyclerView;
import java.util.HashSet; import java.util.HashSet;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
...@@ -179,15 +178,7 @@ public class BaseViewHolder extends RecyclerView.ViewHolder { ...@@ -179,15 +178,7 @@ public class BaseViewHolder extends RecyclerView.ViewHolder {
* Alpha between 0-1. * Alpha between 0-1.
*/ */
public BaseViewHolder setAlpha(int viewId, float value) { public BaseViewHolder setAlpha(int viewId, float value) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { getView(viewId).setAlpha(value);
getView(viewId).setAlpha(value);
} else {
// Pre-honeycomb hack to set Alpha value
AlphaAnimation alpha = new AlphaAnimation(value, value);
alpha.setDuration(0);
alpha.setFillAfter(true);
getView(viewId).startAnimation(alpha);
}
return this; return this;
} }
......
package com.yidianling.avchatkit.ui; package com.yidianling.avchatkit.ui;
import android.Manifest; import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
...@@ -8,15 +8,16 @@ import android.view.View; ...@@ -8,15 +8,16 @@ import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.Chronometer; import android.widget.Chronometer;
import android.widget.TextView; import android.widget.TextView;
import com.blankj.utilcode.constant.PermissionConstants;
import com.blankj.utilcode.util.PermissionUtils;
import com.netease.nimlib.sdk.avchat.AVChatCallback; import com.netease.nimlib.sdk.avchat.AVChatCallback;
import com.netease.nimlib.sdk.avchat.AVChatManager; import com.netease.nimlib.sdk.avchat.AVChatManager;
import com.netease.nimlib.sdk.avchat.constant.AVChatControlCommand; import com.netease.nimlib.sdk.avchat.constant.AVChatControlCommand;
import com.netease.nimlib.sdk.avchat.constant.AVChatType; import com.netease.nimlib.sdk.avchat.constant.AVChatType;
import com.netease.nimlib.sdk.avchat.model.AVChatData; import com.netease.nimlib.sdk.avchat.model.AVChatData;
import com.tbruyelle.rxpermissions2.Permission; import com.ydl.ydlcommon.utils.DeviceTool;
import com.tbruyelle.rxpermissions2.RxPermissions;
import com.yidianling.avchatkit.AVChatKit; import com.yidianling.avchatkit.AVChatKit;
import com.yidianling.im.R;
import com.yidianling.avchatkit.activity.AVChatActivity; import com.yidianling.avchatkit.activity.AVChatActivity;
import com.yidianling.avchatkit.common.imageview.HeadImageView; import com.yidianling.avchatkit.common.imageview.HeadImageView;
import com.yidianling.avchatkit.common.log.LogUtil; import com.yidianling.avchatkit.common.log.LogUtil;
...@@ -30,9 +31,9 @@ import com.yidianling.avchatkit.controll.AVChatController; ...@@ -30,9 +31,9 @@ import com.yidianling.avchatkit.controll.AVChatController;
import com.yidianling.avchatkit.module.AVChatControllerCallback; import com.yidianling.avchatkit.module.AVChatControllerCallback;
import com.yidianling.avchatkit.module.AVSwitchListener; import com.yidianling.avchatkit.module.AVSwitchListener;
import com.yidianling.common.tools.ToastUtil; import com.yidianling.common.tools.ToastUtil;
import com.ydl.ydlcommon.utils.DeviceTool; import com.yidianling.im.R;
import io.reactivex.functions.Consumer; import java.util.List;
/** /**
* 音频界面显示变化以及点击事件 * 音频界面显示变化以及点击事件
...@@ -379,23 +380,23 @@ public class AVChatAudioUI implements View.OnClickListener, ToggleListener { ...@@ -379,23 +380,23 @@ public class AVChatAudioUI implements View.OnClickListener, ToggleListener {
}); });
} }
@SuppressLint("CheckResult")
private void requestPermission() { private void requestPermission() {
new RxPermissions((Activity) this.context) PermissionUtils
.requestEach(Manifest.permission.RECORD_AUDIO,Manifest.permission.CAMERA) .permission(PermissionConstants.MICROPHONE, PermissionConstants.CAMERA)
.subscribe(new Consumer<Permission>() { .callback(new PermissionUtils.FullCallback() {
@Override
public void onGranted(List<String> permissionsGranted) {
doReceiveCall();
}
@Override @Override
public void accept(Permission permission) throws Exception { public void onDenied(List<String> permissionsDeniedForever, List<String> permissionsDenied) {
if (permission.granted) { ToastUtil.toastLong(context, "请开启相机和麦克风权限后重试");
doReceiveCall(); DeviceTool.openPersisonSetting((Activity) AVChatAudioUI.this.context);
} else if (permission.shouldShowRequestPermissionRationale){ ((Activity) AVChatAudioUI.this.context).finish();
requestPermission();
}else {
ToastUtil.toastLong(context,"请开启相机和麦克风权限后重试");
DeviceTool.openPersisonSetting((Activity) AVChatAudioUI.this.context);
((Activity) AVChatAudioUI.this.context).finish();
}
} }
} ); }).request();
} }
// 接听来电 // 接听来电
......
...@@ -4,7 +4,6 @@ import android.Manifest; ...@@ -4,7 +4,6 @@ import android.Manifest;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.graphics.Rect; import android.graphics.Rect;
import android.os.Build;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.Gravity; import android.view.Gravity;
import android.view.MotionEvent; import android.view.MotionEvent;
...@@ -16,6 +15,7 @@ import android.widget.FrameLayout; ...@@ -16,6 +15,7 @@ import android.widget.FrameLayout;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.netease.nimlib.sdk.avchat.AVChatManager; import com.netease.nimlib.sdk.avchat.AVChatManager;
import com.netease.nimlib.sdk.avchat.constant.AVChatType; import com.netease.nimlib.sdk.avchat.constant.AVChatType;
import com.netease.nimlib.sdk.avchat.constant.AVChatVideoScalingType; import com.netease.nimlib.sdk.avchat.constant.AVChatVideoScalingType;
...@@ -25,8 +25,8 @@ import com.netease.nimlib.sdk.avchat.video.AVChatSurfaceViewRenderer; ...@@ -25,8 +25,8 @@ import com.netease.nimlib.sdk.avchat.video.AVChatSurfaceViewRenderer;
import com.netease.nrtc.video.render.IVideoRender; import com.netease.nrtc.video.render.IVideoRender;
import com.tbruyelle.rxpermissions2.Permission; import com.tbruyelle.rxpermissions2.Permission;
import com.tbruyelle.rxpermissions2.RxPermissions; import com.tbruyelle.rxpermissions2.RxPermissions;
import com.ydl.ydlcommon.utils.DeviceTool;
import com.yidianling.avchatkit.AVChatKit; import com.yidianling.avchatkit.AVChatKit;
import com.yidianling.im.R;
import com.yidianling.avchatkit.common.imageview.HeadImageView; import com.yidianling.avchatkit.common.imageview.HeadImageView;
import com.yidianling.avchatkit.common.permission.BaseMPermission; import com.yidianling.avchatkit.common.permission.BaseMPermission;
import com.yidianling.avchatkit.common.util.ScreenUtil; import com.yidianling.avchatkit.common.util.ScreenUtil;
...@@ -38,7 +38,7 @@ import com.yidianling.avchatkit.controll.AVChatController; ...@@ -38,7 +38,7 @@ import com.yidianling.avchatkit.controll.AVChatController;
import com.yidianling.avchatkit.module.AVChatControllerCallback; import com.yidianling.avchatkit.module.AVChatControllerCallback;
import com.yidianling.avchatkit.module.AVSwitchListener; import com.yidianling.avchatkit.module.AVSwitchListener;
import com.yidianling.common.tools.ToastUtil; import com.yidianling.common.tools.ToastUtil;
import com.ydl.ydlcommon.utils.DeviceTool; import com.yidianling.im.R;
import java.util.List; import java.util.List;
...@@ -334,10 +334,6 @@ public class AVChatVideoUI implements View.OnClickListener, ToggleListener { ...@@ -334,10 +334,6 @@ public class AVChatVideoUI implements View.OnClickListener, ToggleListener {
videoInit = true; videoInit = true;
} }
public void onResume() {
surfaceViewFixBefore43(smallSizePreviewLayout, largeSizePreviewLayout);
}
public void onDestroy() { public void onDestroy() {
if (time != null) { if (time != null) {
time.stop(); time.stop();
...@@ -848,20 +844,5 @@ public class AVChatVideoUI implements View.OnClickListener, ToggleListener { ...@@ -848,20 +844,5 @@ public class AVChatVideoUI implements View.OnClickListener, ToggleListener {
return avChatData; return avChatData;
} }
private void surfaceViewFixBefore43(ViewGroup front, ViewGroup back) {
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN_MR2) {
if (back.getChildCount() > 0) {
View child = back.getChildAt(0);
back.removeView(child);
back.addView(child);
}
if (front.getChildCount() > 0) {
View child = front.getChildAt(0);
front.removeView(child);
front.addView(child);
}
}
}
} }
package com.yidianling.im.session.viewholder; package com.yidianling.im.session.viewholder;
import android.os.Build;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
...@@ -180,15 +179,11 @@ public class MsgViewHolderLingxiWhichQuestion extends MsgViewHolderBase implemen ...@@ -180,15 +179,11 @@ public class MsgViewHolderLingxiWhichQuestion extends MsgViewHolderBase implemen
if (multipleAnswers.size()>0){ if (multipleAnswers.size()>0){
confirm_multiple_choice.setEnabled(true); confirm_multiple_choice.setEnabled(true);
confirm_multiple_choice.setText(String.format("确定(%d)", multipleAnswers.size())); confirm_multiple_choice.setText(String.format("确定(%d)", multipleAnswers.size()));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { confirm_multiple_choice.setBackground(context.getResources().getDrawable(R.drawable.im_background_18dp_1da1f2));
confirm_multiple_choice.setBackground(context.getResources().getDrawable(R.drawable.im_background_18dp_1da1f2));
}
}else{ }else{
confirm_multiple_choice.setEnabled(false); confirm_multiple_choice.setEnabled(false);
confirm_multiple_choice.setText("确定"); confirm_multiple_choice.setText("确定");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { confirm_multiple_choice.setBackground(context.getDrawable(R.drawable.im_background_18dp_ebebeb));
confirm_multiple_choice.setBackground(context.getDrawable(R.drawable.im_background_18dp_ebebeb));
}
} }
} }
...@@ -197,9 +192,7 @@ public class MsgViewHolderLingxiWhichQuestion extends MsgViewHolderBase implemen ...@@ -197,9 +192,7 @@ public class MsgViewHolderLingxiWhichQuestion extends MsgViewHolderBase implemen
if (!singleOrMultipletype.contains("radio")){ if (!singleOrMultipletype.contains("radio")){
confirm_multiple_choice.setEnabled(false); confirm_multiple_choice.setEnabled(false);
confirm_multiple_choice.setText("确定"); confirm_multiple_choice.setText("确定");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { confirm_multiple_choice.setBackground(context.getDrawable(R.drawable.im_background_18dp_ebebeb));
confirm_multiple_choice.setBackground(context.getDrawable(R.drawable.im_background_18dp_ebebeb));
}
} }
} }
} catch (Exception e) { } catch (Exception e) {
...@@ -365,15 +358,11 @@ public class MsgViewHolderLingxiWhichQuestion extends MsgViewHolderBase implemen ...@@ -365,15 +358,11 @@ public class MsgViewHolderLingxiWhichQuestion extends MsgViewHolderBase implemen
confirm_multiple_choice.setText(String.format("确定(%d)", selectedStr.size())); confirm_multiple_choice.setText(String.format("确定(%d)", selectedStr.size()));
if (selectedStr.size() > 0) { if (selectedStr.size() > 0) {
confirm_multiple_choice.setEnabled(true); confirm_multiple_choice.setEnabled(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { confirm_multiple_choice.setBackground(context.getResources().getDrawable(R.drawable.im_background_18dp_1da1f2));
confirm_multiple_choice.setBackground(context.getResources().getDrawable(R.drawable.im_background_18dp_1da1f2));
}
} else { } else {
confirm_multiple_choice.setEnabled(false); confirm_multiple_choice.setEnabled(false);
confirm_multiple_choice.setText("确定"); confirm_multiple_choice.setText("确定");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { confirm_multiple_choice.setBackground(context.getDrawable(R.drawable.im_background_18dp_ebebeb));
confirm_multiple_choice.setBackground(context.getDrawable(R.drawable.im_background_18dp_ebebeb));
}
} }
stringBuffer.delete(3, stringBuffer.length()); stringBuffer.delete(3, stringBuffer.length());
for (int i = 0; i < selectedStr.size(); i++) { for (int i = 0; i < selectedStr.size(); i++) {
......
...@@ -15,7 +15,6 @@ import com.ydl.ydlcommon.data.http.RxUtils ...@@ -15,7 +15,6 @@ import com.ydl.ydlcommon.data.http.RxUtils
import com.ydl.ydlcommon.utils.log.LogHelper import com.ydl.ydlcommon.utils.log.LogHelper
import com.ydl.ydlcommon.utils.remind.ToastHelper import com.ydl.ydlcommon.utils.remind.ToastHelper
import com.ydl.ydlcommon.view.ListNoCancelDialog import com.ydl.ydlcommon.view.ListNoCancelDialog
import com.yidianling.common.tools.ToastUtil
import com.yidianling.im.api.param.RmHistoryParam import com.yidianling.im.api.param.RmHistoryParam
import com.yidianling.im.api.param.RmTalkParam import com.yidianling.im.api.param.RmTalkParam
import com.yidianling.im.api.param.TopMessageParam import com.yidianling.im.api.param.TopMessageParam
...@@ -24,15 +23,11 @@ import com.yidianling.im.event.UpdateTabUnreadNumEvent ...@@ -24,15 +23,11 @@ import com.yidianling.im.event.UpdateTabUnreadNumEvent
import com.yidianling.im.helper.IMChatUtil import com.yidianling.im.helper.IMChatUtil
import com.yidianling.im.helper.MsgReceiveHelper import com.yidianling.im.helper.MsgReceiveHelper
import com.yidianling.im.http.ImHttpImpl import com.yidianling.im.http.ImHttpImpl
import com.yidianling.im.router.ImIn
import com.yidianling.im.session.SessionHelper import com.yidianling.im.session.SessionHelper
import com.yidianling.im.ui.page.fragment.bean.ChatItemBean import com.yidianling.im.ui.page.fragment.bean.ChatItemBean
import com.yidianling.im.ui.page.fragment.bean.ChatModelBean
import com.yidianling.im.ui.page.fragment.view.ChatItemView import com.yidianling.im.ui.page.fragment.view.ChatItemView
import com.yidianling.im.ui.page.fragment.view.ChatTimeItemView import com.yidianling.im.ui.page.fragment.view.ChatTimeItemView
import com.yidianling.im.ui.param.ChatParam
import de.greenrobot.event.EventBus import de.greenrobot.event.EventBus
import kotlinx.android.synthetic.main.im_chat_fragment_layout.*
/** /**
* 互动列表适配器 * 互动列表适配器
...@@ -94,7 +89,7 @@ class ChatAdapter(var context: Context, private var mList: ArrayList<ChatItemBea ...@@ -94,7 +89,7 @@ class ChatAdapter(var context: Context, private var mList: ArrayList<ChatItemBea
name.add("标记为已读") name.add("标记为已读")
} }
val builder = ListNoCancelDialog.Builder(context, name, 0) val builder = ListNoCancelDialog.Builder(context, name, 0)
builder.SetOnItemClickLister(object : ListNoCancelDialog.Builder.OnItemClickLister { builder.setOnItemClickLister(object : ListNoCancelDialog.Builder.OnItemClickLister {
override fun onItemClick(dialog: Dialog, view: View, position1: Int) { override fun onItemClick(dialog: Dialog, view: View, position1: Int) {
val tag = name[position1] val tag = name[position1]
when (tag) { when (tag) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment