Commit 8ad4332f by 严久程

Merge branch 'feature/v3' into course_bug_fix

parents 87eb5150 8a935f45
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
<!-- <activity android:name=".MainActivity"/> --> <!-- <activity android:name=".MainActivity"/> -->
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:launchMode="singleTask"
android:theme="@style/platform_NoTitleTheme"> android:theme="@style/platform_NoTitleTheme">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
......
package com.ydl.component package com.ydl.component
//import com.ydl.confide.home.ConfideHomeActivity
import android.Manifest import android.Manifest
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.ComponentName import android.content.ComponentName
...@@ -10,7 +11,7 @@ import android.net.Uri ...@@ -10,7 +11,7 @@ import android.net.Uri
import android.os.IBinder import android.os.IBinder
import android.provider.Settings import android.provider.Settings
import android.util.Log import android.util.Log
import android.widget.LinearLayout import com.alibaba.android.arouter.facade.annotation.Route
import com.alibaba.android.arouter.launcher.ARouter import com.alibaba.android.arouter.launcher.ARouter
import com.tbruyelle.rxpermissions2.RxPermissions import com.tbruyelle.rxpermissions2.RxPermissions
import com.umeng.analytics.MobclickAgent import com.umeng.analytics.MobclickAgent
...@@ -18,7 +19,6 @@ import com.ydl.component.home.HomeActivity ...@@ -18,7 +19,6 @@ import com.ydl.component.home.HomeActivity
import com.ydl.component.music.FragmentContainerActivity import com.ydl.component.music.FragmentContainerActivity
import com.ydl.component.mvp.DemoContract import com.ydl.component.mvp.DemoContract
import com.ydl.component.mvp.DemoPresenter import com.ydl.component.mvp.DemoPresenter
//import com.ydl.confide.home.ConfideHomeActivity
import com.ydl.media.audio.PlayService import com.ydl.media.audio.PlayService
import com.ydl.ydl_router.manager.YDLRouterManager import com.ydl.ydl_router.manager.YDLRouterManager
import com.ydl.ydl_router.manager.YDLRouterParams import com.ydl.ydl_router.manager.YDLRouterParams
...@@ -36,6 +36,7 @@ import kotlinx.android.synthetic.main.activity_main.* ...@@ -36,6 +36,7 @@ import kotlinx.android.synthetic.main.activity_main.*
* Created by haorui on 2019-09-01 . * Created by haorui on 2019-09-01 .
* Des: * Des:
*/ */
@Route(path = "/main/main")
class MainActivity : BaseLceActivity<DemoContract.View, DemoContract.Presenter>(), class MainActivity : BaseLceActivity<DemoContract.View, DemoContract.Presenter>(),
DemoContract.View { DemoContract.View {
......
...@@ -21,7 +21,7 @@ public final class DemoGlobalConfig implements IConfigModule { ...@@ -21,7 +21,7 @@ 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_AUTO_TEST; // public static String appEnv = YDLConstants.ENV_AUTO_TEST;
// public static String appEnv = YDLConstants.ENV_TEST; // public static String appEnv = YDLConstants.ENV_TEST;
public static String appEnv = YDLConstants.ENV_TEST; public static String appEnv = YDLConstants.ENV_PROD;
@Override @Override
public void injectAppLifecycle(@NotNull Context context, @NotNull List<IAppLifecycles> lifecycles) { public void injectAppLifecycle(@NotNull Context context, @NotNull List<IAppLifecycles> lifecycles) {
...@@ -31,7 +31,6 @@ public final class DemoGlobalConfig implements IConfigModule { ...@@ -31,7 +31,6 @@ public final class DemoGlobalConfig implements IConfigModule {
@Override @Override
public void applyOptions(@NotNull Context context, @NotNull GlobalConfig.Builder builder) { public void applyOptions(@NotNull Context context, @NotNull GlobalConfig.Builder builder) {
builder.setFrom("ydl".equals(BuildConfig.FLAVOR) ? YDLConstants.FROM_YDL : YDLConstants.FROM_XLZX) builder.setFrom("ydl".equals(BuildConfig.FLAVOR) ? YDLConstants.FROM_YDL : YDLConstants.FROM_XLZX)
.addUrl("github", APP_DOMAIN) .addUrl("github", APP_DOMAIN)
.setEnv(appEnv) .setEnv(appEnv)
......
...@@ -379,7 +379,9 @@ public class WVClickAbstractListener implements WebViewClientClickListener { ...@@ -379,7 +379,9 @@ public class WVClickAbstractListener implements WebViewClientClickListener {
@Override @Override
public void openRightTopMenu() { public void openRightTopMenu() {
if (mContext instanceof NewH5Activity) {
((NewH5Activity) mContext).openRightTopMenu();
}
} }
@Override @Override
...@@ -403,7 +405,7 @@ public class WVClickAbstractListener implements WebViewClientClickListener { ...@@ -403,7 +405,7 @@ public class WVClickAbstractListener implements WebViewClientClickListener {
final StringBuffer sb = new StringBuffer(); final StringBuffer sb = new StringBuffer();
sb.append(callbackFuncName); sb.append(callbackFuncName);
sb.append("('"); sb.append("('");
sb.append("333"); sb.append("33,125");
sb.append("')"); sb.append("')");
if (mContext instanceof NewH5Activity) { if (mContext instanceof NewH5Activity) {
((NewH5Activity) mContext).callJSFunc(sb.toString()); ((NewH5Activity) mContext).callJSFunc(sb.toString());
......
...@@ -43,18 +43,17 @@ ext { ...@@ -43,18 +43,17 @@ ext {
// -------------- 业务模块 -------------- // -------------- 业务模块 --------------
//第三步 若干 //第三步 若干
"m-confide" : "0.0.41.2", "m-confide" : "0.0.41.3",
"m-consultant" : "0.0.51.11", "m-consultant" : "0.0.51.14",
"m-fm" : "0.0.23.4", "m-fm" : "0.0.23.5",
"m-user" : "0.0.41.1", "m-user" : "0.0.41.3",
"m-home" : "0.0.6.25", "m-home" : "0.0.6.26",
"m-im" : "0.0.3.10",
"m-muse" : "0.0.20.4", "m-dynamic" : "0.0.1.7",
"m-tests" : "0.0.15.3",
"m-course" : "0.0.34.4", "m-muse" : "0.0.20.8",
"m-im" : "0.0.3.7", "m-tests" : "0.0.15.8",
"m-dynamic" : "0.0.1.3", "m-course" : "0.0.34.10",
//-------------- 业务模块 API 层 -------------- //-------------- 业务模块 API 层 --------------
"m-audioim-api" : "0.0.5", "m-audioim-api" : "0.0.5",
...@@ -71,36 +70,37 @@ ext { ...@@ -71,36 +70,37 @@ ext {
//-------------- 功能组件 -------------- //-------------- 功能组件 --------------
//第一步 //第一步
"ydl-platform" : "0.0.29.3", "ydl-platform" : "0.0.29.4",
//第二步 若干 //第二步 若干
"ydl-webview" : "0.0.28.11", "ydl-webview" : "0.0.28.14",
"ydl-media" : "0.0.14.4", "ydl-media" : "0.0.14.5",
"ydl-pay" : "0.0.11.5", "ydl-pay" : "0.0.11.6",
"m-audioim" : "0.0.40.4", "m-audioim" : "0.0.40.5",
//以下 几乎不会动 //以下 几乎不会动
"router" : "0.0.1", "router" : "0.0.1",
"ydl-net" : "0.0.3.1", "ydl-net" : "0.0.3.1",
"ydl-utils" : "0.0.3", "ydl-utils" : "0.0.3",
"ydl-flutter-base": "0.0.5.17", "ydl-flutter-base": "0.0.5.21",
] ]
ydlCompileVersion = [ ydlCompileVersion = [
// -------------- 业务模块 -------------- // -------------- 业务模块 --------------
//第三步 若干 //第三步 若干
"m-confide" : "0.0.40",
"m-consultant" : "0.0.28", "m-confide" : "0.0.41.3",
"m-course" : "0.0.22", "m-consultant" : "0.0.51.13",
"m-fm" : "0.0.15", "m-fm" : "0.0.23.5",
"m-user" : "0.0.25", "m-user" : "0.0.41.2",
"m-home" : "0.0.3", "m-home" : "0.0.6.26",
"m-im" : "0.0.1", "m-im" : "0.0.3.9",
"m-dynamic" : "0.0.1", "m-dynamic" : "0.0.1.7",
// 以下为接入flutter的模块 "m-muse" : "0.0.20.7",
"m-muse" : "0.0.7", "m-tests" : "0.0.15.7",
"m-tests" : "0.0.4", "m-course" : "0.0.34.7",
//-------------- 业务模块 API 层 -------------- //-------------- 业务模块 API 层 --------------
"m-audioim-api" : "0.0.5", "m-audioim-api" : "0.0.5",
"m-confide-api" : "0.0.1.1", "m-confide-api" : "0.0.1.1",
...@@ -116,20 +116,20 @@ ext { ...@@ -116,20 +116,20 @@ ext {
//-------------- 功能组件 -------------- //-------------- 功能组件 --------------
//第一步 //第一步
"ydl-platform" : "0.0.29.3", "ydl-platform" : "0.0.29.4",
//第二步 若干 //第二步 若干
"ydl-webview" : "0.0.28.9", "ydl-webview" : "0.0.28.13",
"ydl-media" : "0.0.14.4", "ydl-media" : "0.0.14.4",
"ydl-pay" : "0.0.11.5", "ydl-pay" : "0.0.11.6",
"m-audioim" : "0.0.40.4", "m-audioim" : "0.0.40.5",
//以下 几乎不会动 //以下 几乎不会动
"router" : "0.0.1", "router" : "0.0.1",
"ydl-net" : "0.0.3.1", "ydl-net" : "0.0.3.1",
"ydl-utils" : "0.0.3", "ydl-utils" : "0.0.3",
"ydl-flutter-base": "0.0.5.17", "ydl-flutter-base": "0.0.5.21",
] ]
dependencies = [ dependencies = [
...@@ -267,7 +267,7 @@ ext { ...@@ -267,7 +267,7 @@ ext {
//flutter功能组件升级===>发布ydl-flutter组件===>引用flutter相关的业务模块 //flutter功能组件升级===>发布ydl-flutter组件===>引用flutter相关的业务模块
"ydl-flutter-base" : "com.ydl:ydl-flutter-base:${ydlCompileVersion["ydl-flutter-base"]}", //组件化项目中的flutter base模块 "ydl-flutter-base" : "com.ydl:ydl-flutter-base:${ydlCompileVersion["ydl-flutter-base"]}", //组件化项目中的flutter base模块
"ydl-flutter" : "com.ydl:ydl-flutter:0.0.16.4@aar", //flutter aar "ydl-flutter" : "com.ydl:ydl-flutter:0.0.16.8@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
//基础组件 <<--- 先发这个,发完改这里的版本号 //基础组件 <<--- 先发这个,发完改这里的版本号
......
...@@ -215,9 +215,9 @@ class ExpertSearchAdapter(private val context: Context, private val expertSearch ...@@ -215,9 +215,9 @@ class ExpertSearchAdapter(private val context: Context, private val expertSearch
holder.tvChat.setTextColor(ContextCompat.getColor(context,R.color.platform_color_999999)) holder.tvChat.setTextColor(ContextCompat.getColor(context,R.color.platform_color_999999))
holder.tvChat.background = ContextCompat.getDrawable(context,R.drawable.consultant_expert_search_chat_rest) holder.tvChat.background = ContextCompat.getDrawable(context,R.drawable.consultant_expert_search_chat_rest)
} }
//月售时长 //服务时长
val durationStringBuffer = StringBuffer() val durationStringBuffer = StringBuffer()
holder.tvSaleDurationForMonth.text = durationStringBuffer.append(itemBean.saleDurationForMonth.toInt()).append("").toString() holder.tvSaleDurationForMonth.text = durationStringBuffer.append(itemBean.allSaleDuration.toInt()).append("").toString()
//价格 //价格
val sb = StringBuffer() val sb = StringBuffer()
holder.tvPrice.text = sb.append("").append(itemBean.minBookingPrice).toString() holder.tvPrice.text = sb.append("").append(itemBean.minBookingPrice).toString()
...@@ -308,7 +308,7 @@ class ExpertSearchAdapter(private val context: Context, private val expertSearch ...@@ -308,7 +308,7 @@ class ExpertSearchAdapter(private val context: Context, private val expertSearch
val tvOrderNum = itemView.tvOrderNum!! val tvOrderNum = itemView.tvOrderNum!!
//帮助人数文案 //帮助人数文案
val tvOrderNumContent = itemView.tvOrderNumContent val tvOrderNumContent = itemView.tvOrderNumContent
//月售时长 //服务时长
val tvSaleDurationForMonth = itemView.tvSaleDurationForMonth!! val tvSaleDurationForMonth = itemView.tvSaleDurationForMonth!!
//月售时长文案 //月售时长文案
val tvSaleDurationForMonthContent = itemView.tvSaleDurationForMonthContent val tvSaleDurationForMonthContent = itemView.tvSaleDurationForMonthContent
......
...@@ -10,42 +10,43 @@ import com.yidianling.consultant.bean.ExpertSearchTagsIconBean ...@@ -10,42 +10,43 @@ import com.yidianling.consultant.bean.ExpertSearchTagsIconBean
* @Company 壹点灵 * @Company 壹点灵
* @date 2018/12/11 * @date 2018/12/11
*/ */
data class DoctorServiceItem(/** data class DoctorServiceItem(
/**
* 专家ID * 专家ID
*/ */
val doctorId : String?, val doctorId: String?,
/** /**
* 专家uid * 专家uid
*/ */
val uid : String?, val uid: String?,
/** /**
* 专家名称 * 专家名称
*/ */
val name : String?, val name: String?,
/** /**
* 跳转路由地址(正常为专家主页地址) * 跳转路由地址(正常为专家主页地址)
*/ */
val linkUrl : String?, val linkUrl: String?,
/** /**
* 专家头像地址 * 专家头像地址
*/ */
val head : String?, val head: String?,
/** /**
* 专家是否在线 1.在线 * 专家是否在线 1.在线
*/ */
val isOnline : Int?, val isOnline: Int?,
/** /**
* 能力等级 1.实习 2.新手 3.精英 * 能力等级 1.实习 2.新手 3.精英
*/ */
val abilityLevel : Int?, val abilityLevel: Int?,
/** /**
* 有免费咨询:1.有,2.无 * 有免费咨询:1.有,2.无
*/ */
val hasServiceFree : Int?, val hasServiceFree: Int?,
/** /**
* 活动图标 * 活动图标
*/ */
val activityImg:String?, val activityImg: String?,
/** /**
* 是否参加活动 * 是否参加活动
*/ */
...@@ -53,51 +54,55 @@ data class DoctorServiceItem(/** ...@@ -53,51 +54,55 @@ data class DoctorServiceItem(/**
/** /**
* 是否新入驻:true:是,false:否 * 是否新入驻:true:是,false:否
*/ */
var isNewEnter : Boolean = false, var isNewEnter: Boolean = false,
/** /**
* 好评率(倾诉+咨询) * 好评率(倾诉+咨询)
*/ */
var feedbackRate : Float = 0f, var feedbackRate: Float = 0f,
/** /**
* 评价数(咨询订单数) * 评价数(咨询订单数)
*/ */
var zixunOrderNum : Int = 0, var zixunOrderNum: Int = 0,
/** /**
* 咨询最低价 * 咨询最低价
*/ */
val minBookingPrice : String?, val minBookingPrice: String?,
/** /**
* 资质材料 * 资质材料
*/ */
val teamCertifications : String?, val teamCertifications: String?,
/** /**
* 标签分类 * 标签分类
*/ */
val tags : String?, val tags: String?,
/** /**
* 已帮助人数(咨询人数) * 已帮助人数(咨询人数)
*/ */
val zixunOrderUser : String?, val zixunOrderUser: String?,
/** /**
* 月售时长 * 月售时长
*/ */
var saleDurationForMonth : Float = 0f, var saleDurationForMonth: Float = 0f,
/**
* 服务时长
*/
var allSaleDuration: Float = 0f,
/** /**
* 服务 * 服务
*/ */
val products : MutableList<ExpertSearchProductsBean>?, val products: MutableList<ExpertSearchProductsBean>?,
/** /**
* 标签图片 * 标签图片
*/ */
val tagsIcon : ExpertSearchTagsIconBean?, val tagsIcon: ExpertSearchTagsIconBean?,
/** /**
* 今日是否可约 * 今日是否可约
*/ */
val isTodayFree : Boolean?, val isTodayFree: Boolean?,
/** /**
* 是否咨询中 * 是否咨询中
*/ */
var inConsult : Boolean = false, var inConsult: Boolean = false,
/** /**
* 是否聆听中 * 是否聆听中
*/ */
...@@ -109,17 +114,17 @@ data class DoctorServiceItem(/** ...@@ -109,17 +114,17 @@ data class DoctorServiceItem(/**
/** /**
* 个人铭言 * 个人铭言
*/ */
val famousRemark : String?, val famousRemark: String?,
/** /**
* 省 * 省
*/ */
val province : String?, val province: String?,
/** /**
* 市 * 市
*/ */
val city : String?, val city: String?,
/** /**
* 私聊按钮的文案(如果不为空则取这个字段的值,如果为空 则默认为:“私聊”) * 私聊按钮的文案(如果不为空则取这个字段的值,如果为空 则默认为:“私聊”)
*/ */
val chatBtnText : String? val chatBtnText: String?
) )
\ No newline at end of file
...@@ -200,9 +200,10 @@ class RecommendListView : LinearLayout { ...@@ -200,9 +200,10 @@ class RecommendListView : LinearLayout {
recommendViewPager.adapter = RecommendViewPagerAdapter() recommendViewPager.adapter = RecommendViewPagerAdapter()
recommendViewPager.currentItem = 0 recommendViewPager.currentItem = 0
if (mSceneSpecialTopicList.size < 4) { if (mSceneSpecialTopicList.size <= 4) {
recommendViewPagerIndicator.visibility = View.GONE recommendViewPagerIndicator.visibility = View.GONE
} else { } else {
recommendViewPagerIndicator.visibility = View.VISIBLE
setSelectedIndex(0) // 默认为左边选中 setSelectedIndex(0) // 默认为左边选中
} }
......
...@@ -222,7 +222,7 @@ ...@@ -222,7 +222,7 @@
android:textColor="@color/platform_color_999999" android:textColor="@color/platform_color_999999"
tools:ignore="SpUsage" tools:ignore="SpUsage"
android:text="人" /> android:text="人" />
<!--月售时长--> <!--服务时长-->
<TextView <TextView
android:id="@+id/tvSaleDurationForMonthContent" android:id="@+id/tvSaleDurationForMonthContent"
android:layout_toRightOf="@+id/tvOrderNum" android:layout_toRightOf="@+id/tvOrderNum"
...@@ -233,7 +233,7 @@ ...@@ -233,7 +233,7 @@
android:textSize="@dimen/platform_dp_12" android:textSize="@dimen/platform_dp_12"
android:textColor="@color/platform_color_999999" android:textColor="@color/platform_color_999999"
tools:ignore="SpUsage" tools:ignore="SpUsage"
android:text="月售" /> android:text="服务" />
<TextView <TextView
android:id="@+id/tvSaleDurationForMonth" android:id="@+id/tvSaleDurationForMonth"
......
...@@ -10,7 +10,9 @@ ...@@ -10,7 +10,9 @@
<!--课程首页--> <!--课程首页-->
<activity <activity
android:name=".CourseActivity" android:name=".CourseActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait"
android:theme="@style/platform_NoTitleTheme"
/>
<activity <activity
android:name=".CoursePosterActivity" android:name=".CoursePosterActivity"
android:hardwareAccelerated="false" android:hardwareAccelerated="false"
...@@ -43,7 +45,9 @@ ...@@ -43,7 +45,9 @@
/> />
<activity <activity
android:name=".courseNew.mine.MyCourseActivity" android:name=".courseNew.mine.MyCourseActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait"
android:theme="@style/platform_NoTitleTheme"
/>
<activity <activity
android:name=".course_special_list.activity.CourseSpecialListActivity" android:name=".course_special_list.activity.CourseSpecialListActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
......
package com.yidianling.course; package com.yidianling.course;
import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
import com.ydl.ydlcommon.base.BaseActivity; import com.ydl.ydlcommon.base.BaseActivity;
import com.ydl.ydlcommon.utils.StatusBarUtils;
import org.jetbrains.annotations.Nullable;
/** /**
* 课程首页Activity(心理课程) * 课程首页Activity(心理课程)
...@@ -11,6 +16,13 @@ import com.ydl.ydlcommon.base.BaseActivity; ...@@ -11,6 +16,13 @@ import com.ydl.ydlcommon.base.BaseActivity;
public class CourseActivity extends BaseActivity { public class CourseActivity extends BaseActivity {
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
StatusBarUtils.Companion.setTransparentForImageView(this, null);
StatusBarUtils.Companion.statusBarLightMode(this);
super.onCreate(savedInstanceState);
}
@Override
protected int layoutResId() { protected int layoutResId() {
return R.layout.activity_course; return R.layout.activity_course;
} }
......
...@@ -38,6 +38,7 @@ import java.util.* ...@@ -38,6 +38,7 @@ import java.util.*
*/ */
class FlutterCourseHomeFragment : BaseFlutterFragment() { class FlutterCourseHomeFragment : BaseFlutterFragment() {
private var hasRequestCoupon = false private var hasRequestCoupon = false
private var dialog: CourseCouponDialog? = null private var dialog: CourseCouponDialog? = null
......
...@@ -15,12 +15,15 @@ import android.widget.LinearLayout; ...@@ -15,12 +15,15 @@ import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.ydl.ydlcommon.base.BaseActivity; import com.ydl.ydlcommon.base.BaseActivity;
import com.ydl.ydlcommon.bean.StatusBarOptions;
import com.ydl.ydlcommon.utils.DisplayUtils; import com.ydl.ydlcommon.utils.DisplayUtils;
import com.yidianling.course.CourseListFragment; import com.yidianling.course.CourseListFragment;
import com.yidianling.course.R; import com.yidianling.course.R;
import com.yidianling.course.widget.CourseRedPacketView; import com.yidianling.course.widget.CourseRedPacketView;
import com.yidianling.course.widget.SearchBarView; import com.yidianling.course.widget.SearchBarView;
import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Field; import java.lang.reflect.Field;
/** /**
...@@ -36,6 +39,11 @@ public class MyCourseActivity extends BaseActivity { ...@@ -36,6 +39,11 @@ public class MyCourseActivity extends BaseActivity {
private int tabIndex; private int tabIndex;
@NotNull
@Override
public StatusBarOptions getStatusViewOptions() {
return new StatusBarOptions(true,true);
}
public static void start(Context context) { public static void start(Context context) {
Intent i = new Intent(context, MyCourseActivity.class); Intent i = new Intent(context, MyCourseActivity.class);
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="19dp" android:layout_marginStart="19dp"
android:src="@drawable/course_toolbar_back" android:src="@drawable/platform_common_back"
app:layout_constraintBottom_toBottomOf="@+id/tv_title" app:layout_constraintBottom_toBottomOf="@+id/tv_title"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/tv_title" /> app:layout_constraintTop_toTopOf="@+id/tv_title" />
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingLeft="15dp" android:paddingLeft="15dp"
android:src="@drawable/course_toolbar_back" android:src="@drawable/platform_common_back"
app:layout_constraintBottom_toBottomOf="@+id/tv_title" app:layout_constraintBottom_toBottomOf="@+id/tv_title"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/tv_title" /> app:layout_constraintTop_toTopOf="@+id/tv_title" />
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="50dp" android:layout_height="50dp"
app:pa_title_text="课后笔记" app:pa_title_text="课后笔记"
app:pa_left_start_icon="@drawable/course_toolbar_back"/> app:pa_left_start_icon="@drawable/platform_common_back"/>
<android.support.v7.widget.RecyclerView <android.support.v7.widget.RecyclerView
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
android:id="@+id/activity_course_back_btn" android:id="@+id/activity_course_back_btn"
android:layout_width="13dp" android:layout_width="13dp"
android:layout_height="22dp" android:layout_height="22dp"
android:src="@drawable/course_toolbar_back" android:src="@drawable/platform_common_back"
android:visibility="gone"/> android:visibility="gone"/>
<com.yidianling.course.widget.SearchBarView <com.yidianling.course.widget.SearchBarView
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:paddingLeft="15dp" android:paddingLeft="15dp"
android:paddingRight="10dp" android:paddingRight="10dp"
android:src="@drawable/course_toolbar_back" /> android:src="@drawable/platform_common_back" />
<TextView <TextView
android:id="@+id/tv_title" android:id="@+id/tv_title"
......
...@@ -88,7 +88,6 @@ dependencies { ...@@ -88,7 +88,6 @@ dependencies {
implementation 'com.github.ksoichiro:android-observablescrollview:1.6.0' implementation 'com.github.ksoichiro:android-observablescrollview:1.6.0'
implementation 'com.pnikosis:materialish-progress:1.7' implementation 'com.pnikosis:materialish-progress:1.7'
implementation 'com.daimajia.numberprogressbar:library:1.4@aar' implementation 'com.daimajia.numberprogressbar:library:1.4@aar'
implementation 'me.relex:circleindicator:1.2.2@aar'
implementation 'com.github.faruktoptas:FancyShowCaseView:0.1.1' implementation 'com.github.faruktoptas:FancyShowCaseView:0.1.1'
kapt rootProject.ext.dependencies["butterknife-compiler"] kapt rootProject.ext.dependencies["butterknife-compiler"]
api rootProject.ext.dependencies["butterknife"] api rootProject.ext.dependencies["butterknife"]
......
...@@ -7,7 +7,6 @@ import android.animation.ObjectAnimator ...@@ -7,7 +7,6 @@ import android.animation.ObjectAnimator
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.os.Handler import android.os.Handler
import android.support.design.widget.CoordinatorLayout
import android.support.v4.view.animation.FastOutLinearInInterpolator import android.support.v4.view.animation.FastOutLinearInInterpolator
import android.support.v4.widget.SwipeRefreshLayout import android.support.v4.widget.SwipeRefreshLayout
import android.support.v7.widget.LinearLayoutManager import android.support.v7.widget.LinearLayoutManager
...@@ -17,14 +16,12 @@ import android.view.LayoutInflater ...@@ -17,14 +16,12 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.widget.ImageView import android.widget.ImageView
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.RelativeLayout
import android.widget.TextView import android.widget.TextView
import com.ydl.webview.H5Params import com.ydl.webview.H5Params
import com.ydl.webview.NewH5Activity import com.ydl.webview.NewH5Activity
import com.ydl.ydlcommon.utils.BuryPointUtils import com.ydl.ydlcommon.utils.BuryPointUtils
import com.ydl.ydlcommon.utils.SharedPreferencesEditor import com.ydl.ydlcommon.utils.SharedPreferencesEditor
import com.ydl.ydlcommon.view.WrapContentLinearLayoutManager import com.ydl.ydlcommon.view.WrapContentLinearLayoutManager
import com.ydl.ydlcommon.view.widgets.MultiSwipeRefreshLayout
import com.yidianling.common.tools.LogUtil import com.yidianling.common.tools.LogUtil
import com.yidianling.common.tools.ToastUtil import com.yidianling.common.tools.ToastUtil
import com.yidianling.dynamic.DynamicConstants import com.yidianling.dynamic.DynamicConstants
...@@ -54,17 +51,6 @@ import java.util.* ...@@ -54,17 +51,6 @@ import java.util.*
class TrendsListFragment : BaseLazyFragment(), ITrendsListView, class TrendsListFragment : BaseLazyFragment(), ITrendsListView,
SwipeRefreshLayout.OnRefreshListener { SwipeRefreshLayout.OnRefreshListener {
internal var trends_rcv: RecyclerView? = null
internal var trends_lastr_swl: MultiSwipeRefreshLayout? = null
internal var trend_list_no_datas_rel: RelativeLayout? = null
// @BindView(R2.id.trend_last_more_pro_lin)
// LinearLayout loadingDataLin;
internal var cdl: CoordinatorLayout? = null
private val REQUEST_CODE = 1001 private val REQUEST_CODE = 1001
private val eachPageDataNum = 20 private val eachPageDataNum = 20
...@@ -117,7 +103,8 @@ class TrendsListFragment : BaseLazyFragment(), ITrendsListView, ...@@ -117,7 +103,8 @@ class TrendsListFragment : BaseLazyFragment(), ITrendsListView,
//置顶帖Header View //置顶帖Header View
private val recommendTopHeaderView: View private val recommendTopHeaderView: View
get() { get() {
val view = LayoutInflater.from(activity).inflate(R.layout.dynamic_item_recommend_top, null) val view =
LayoutInflater.from(activity).inflate(R.layout.dynamic_item_recommend_top, null)
val linearLayoutManager = LinearLayoutManager(activity) val linearLayoutManager = LinearLayoutManager(activity)
mRecommendTopAdapter = RecommendTopAdapter<TrendsListBean.ExtData>(activity) mRecommendTopAdapter = RecommendTopAdapter<TrendsListBean.ExtData>(activity)
mRecommendTopRcv = view.findViewById<View>(R.id.recy_top) as RecyclerView mRecommendTopRcv = view.findViewById<View>(R.id.recy_top) as RecyclerView
...@@ -141,7 +128,8 @@ class TrendsListFragment : BaseLazyFragment(), ITrendsListView, ...@@ -141,7 +128,8 @@ class TrendsListFragment : BaseLazyFragment(), ITrendsListView,
val view: View val view: View
if (trends_rcv != null) { if (trends_rcv != null) {
view = view =
LayoutInflater.from(activity).inflate(R.layout.dynamic_progress_item, trends_rcv, false) LayoutInflater.from(activity)
.inflate(R.layout.dynamic_progress_item, trends_rcv, false)
} else { } else {
view = LayoutInflater.from(activity).inflate(R.layout.dynamic_progress_item, null) view = LayoutInflater.from(activity).inflate(R.layout.dynamic_progress_item, null)
} }
...@@ -152,9 +140,7 @@ class TrendsListFragment : BaseLazyFragment(), ITrendsListView, ...@@ -152,9 +140,7 @@ class TrendsListFragment : BaseLazyFragment(), ITrendsListView,
val isNeedLogin: Boolean val isNeedLogin: Boolean
get() { get() {
tab = arguments.getInt("tab") tab = arguments.getInt("tab")
return if (tab == 3) { return tab == 3
true
} else false
} }
private val lastId: Int private val lastId: Int
...@@ -173,7 +159,7 @@ class TrendsListFragment : BaseLazyFragment(), ITrendsListView, ...@@ -173,7 +159,7 @@ class TrendsListFragment : BaseLazyFragment(), ITrendsListView,
} }
override fun afterViewCreated(savedInstanceState: Bundle) { override fun afterViewCreated(savedInstanceState: Bundle?) {
isPrepared = true //View创建完成 isPrepared = true //View创建完成
lazyLoad() lazyLoad()
} }
......
package com.yidianling.dynamic.trendsDetail;
import android.animation.Animator;
import android.animation.AnimatorInflater;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.res.TypedArray;
import android.database.DataSetObserver;
import android.os.Build;
import android.support.annotation.AnimatorRes;
import android.support.annotation.DrawableRes;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.View;
import android.view.animation.Interpolator;
import android.widget.LinearLayout;
import com.yidianling.dynamic.R;
/**
* Created by haorui on 2019-12-23.
* Des:
*/
public class CircleIndicator extends LinearLayout {
private final static int DEFAULT_INDICATOR_WIDTH = 5;
private ViewPager mViewpager;
private int mIndicatorMargin = -1;
private int mIndicatorWidth = -1;
private int mIndicatorHeight = -1;
private int mAnimatorResId = R.animator.scale_with_alpha;
private int mAnimatorReverseResId = 0;
private int mIndicatorBackgroundResId = R.drawable.white_radius;
private int mIndicatorUnselectedBackgroundResId = R.drawable.white_radius;
private Animator mAnimatorOut;
private Animator mAnimatorIn;
private Animator mImmediateAnimatorOut;
private Animator mImmediateAnimatorIn;
private int mLastPosition = -1;
public CircleIndicator(Context context) {
super(context);
init(context, null);
}
public CircleIndicator(Context context, AttributeSet attrs) {
super(context, attrs);
init(context, attrs);
}
public CircleIndicator(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context, attrs);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public CircleIndicator(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init(context, attrs);
}
private void init(Context context, AttributeSet attrs) {
handleTypedArray(context, attrs);
checkIndicatorConfig(context);
}
private void handleTypedArray(Context context, AttributeSet attrs) {
if (attrs == null) {
return;
}
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.CircleIndicator);
mIndicatorWidth =
typedArray.getDimensionPixelSize(R.styleable.CircleIndicator_ci_width, -1);
mIndicatorHeight =
typedArray.getDimensionPixelSize(R.styleable.CircleIndicator_ci_height, -1);
mIndicatorMargin =
typedArray.getDimensionPixelSize(R.styleable.CircleIndicator_ci_margin, -1);
mAnimatorResId = typedArray.getResourceId(R.styleable.CircleIndicator_ci_animator,
R.animator.scale_with_alpha);
mAnimatorReverseResId =
typedArray.getResourceId(R.styleable.CircleIndicator_ci_animator_reverse, 0);
mIndicatorBackgroundResId =
typedArray.getResourceId(R.styleable.CircleIndicator_ci_drawable,
R.drawable.white_radius);
mIndicatorUnselectedBackgroundResId =
typedArray.getResourceId(R.styleable.CircleIndicator_ci_drawable_unselected,
mIndicatorBackgroundResId);
int orientation = typedArray.getInt(R.styleable.CircleIndicator_ci_orientation, -1);
setOrientation(orientation == VERTICAL ? VERTICAL : HORIZONTAL);
int gravity = typedArray.getInt(R.styleable.CircleIndicator_ci_gravity, -1);
setGravity(gravity >= 0 ? gravity : Gravity.CENTER);
typedArray.recycle();
}
/**
* Create and configure Indicator in Java code.
*/
public void configureIndicator(int indicatorWidth, int indicatorHeight, int indicatorMargin) {
configureIndicator(indicatorWidth, indicatorHeight, indicatorMargin,
R.animator.scale_with_alpha, 0, R.drawable.white_radius, R.drawable.white_radius);
}
public void configureIndicator(int indicatorWidth, int indicatorHeight, int indicatorMargin,
@AnimatorRes int animatorId, @AnimatorRes int animatorReverseId,
@DrawableRes int indicatorBackgroundId,
@DrawableRes int indicatorUnselectedBackgroundId) {
mIndicatorWidth = indicatorWidth;
mIndicatorHeight = indicatorHeight;
mIndicatorMargin = indicatorMargin;
mAnimatorResId = animatorId;
mAnimatorReverseResId = animatorReverseId;
mIndicatorBackgroundResId = indicatorBackgroundId;
mIndicatorUnselectedBackgroundResId = indicatorUnselectedBackgroundId;
checkIndicatorConfig(getContext());
}
private void checkIndicatorConfig(Context context) {
mIndicatorWidth = (mIndicatorWidth < 0) ? dip2px(DEFAULT_INDICATOR_WIDTH) : mIndicatorWidth;
mIndicatorHeight =
(mIndicatorHeight < 0) ? dip2px(DEFAULT_INDICATOR_WIDTH) : mIndicatorHeight;
mIndicatorMargin =
(mIndicatorMargin < 0) ? dip2px(DEFAULT_INDICATOR_WIDTH) : mIndicatorMargin;
mAnimatorResId = (mAnimatorResId == 0) ? R.animator.scale_with_alpha : mAnimatorResId;
mAnimatorOut = createAnimatorOut(context);
mImmediateAnimatorOut = createAnimatorOut(context);
mImmediateAnimatorOut.setDuration(0);
mAnimatorIn = createAnimatorIn(context);
mImmediateAnimatorIn = createAnimatorIn(context);
mImmediateAnimatorIn.setDuration(0);
mIndicatorBackgroundResId = (mIndicatorBackgroundResId == 0) ? R.drawable.white_radius
: mIndicatorBackgroundResId;
mIndicatorUnselectedBackgroundResId =
(mIndicatorUnselectedBackgroundResId == 0) ? mIndicatorBackgroundResId
: mIndicatorUnselectedBackgroundResId;
}
private Animator createAnimatorOut(Context context) {
return AnimatorInflater.loadAnimator(context, mAnimatorResId);
}
private Animator createAnimatorIn(Context context) {
Animator animatorIn;
if (mAnimatorReverseResId == 0) {
animatorIn = AnimatorInflater.loadAnimator(context, mAnimatorResId);
animatorIn.setInterpolator(new CircleIndicator.ReverseInterpolator());
} else {
animatorIn = AnimatorInflater.loadAnimator(context, mAnimatorReverseResId);
}
return animatorIn;
}
public void setViewPager(ViewPager viewPager) {
mViewpager = viewPager;
if (mViewpager != null && mViewpager.getAdapter() != null) {
mLastPosition = -1;
createIndicators();
mViewpager.removeOnPageChangeListener(mInternalPageChangeListener);
mViewpager.addOnPageChangeListener(mInternalPageChangeListener);
mInternalPageChangeListener.onPageSelected(mViewpager.getCurrentItem());
}
}
private final ViewPager.OnPageChangeListener mInternalPageChangeListener = new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override public void onPageSelected(int position) {
if (mViewpager.getAdapter() == null || mViewpager.getAdapter().getCount() <= 0) {
return;
}
if (mAnimatorIn.isRunning()) {
mAnimatorIn.end();
mAnimatorIn.cancel();
}
if (mAnimatorOut.isRunning()) {
mAnimatorOut.end();
mAnimatorOut.cancel();
}
View currentIndicator;
if (mLastPosition >= 0 && (currentIndicator = getChildAt(mLastPosition)) != null) {
currentIndicator.setBackgroundResource(mIndicatorUnselectedBackgroundResId);
mAnimatorIn.setTarget(currentIndicator);
mAnimatorIn.start();
}
View selectedIndicator = getChildAt(position);
if (selectedIndicator != null) {
selectedIndicator.setBackgroundResource(mIndicatorBackgroundResId);
mAnimatorOut.setTarget(selectedIndicator);
mAnimatorOut.start();
}
mLastPosition = position;
}
@Override public void onPageScrollStateChanged(int state) {
}
};
public DataSetObserver getDataSetObserver() {
return mInternalDataSetObserver;
}
private DataSetObserver mInternalDataSetObserver = new DataSetObserver() {
@Override public void onChanged() {
super.onChanged();
if (mViewpager == null) {
return;
}
int newCount = mViewpager.getAdapter().getCount();
int currentCount = getChildCount();
if (newCount == currentCount) { // No change
return;
} else if (mLastPosition < newCount) {
mLastPosition = mViewpager.getCurrentItem();
} else {
mLastPosition = -1;
}
createIndicators();
}
};
/**
* @deprecated User ViewPager addOnPageChangeListener
*/
@Deprecated public void setOnPageChangeListener(ViewPager.OnPageChangeListener onPageChangeListener) {
if (mViewpager == null) {
throw new NullPointerException("can not find Viewpager , setViewPager first");
}
mViewpager.removeOnPageChangeListener(onPageChangeListener);
mViewpager.addOnPageChangeListener(onPageChangeListener);
}
private void createIndicators() {
removeAllViews();
int count = mViewpager.getAdapter().getCount();
if (count <= 0) {
return;
}
int currentItem = mViewpager.getCurrentItem();
int orientation = getOrientation();
for (int i = 0; i < count; i++) {
if (currentItem == i) {
addIndicator(orientation, mIndicatorBackgroundResId, mImmediateAnimatorOut);
} else {
addIndicator(orientation, mIndicatorUnselectedBackgroundResId,
mImmediateAnimatorIn);
}
}
}
private void addIndicator(int orientation, @DrawableRes int backgroundDrawableId,
Animator animator) {
if (animator.isRunning()) {
animator.end();
animator.cancel();
}
View Indicator = new View(getContext());
Indicator.setBackgroundResource(backgroundDrawableId);
addView(Indicator, mIndicatorWidth, mIndicatorHeight);
LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) Indicator.getLayoutParams();
if (orientation == HORIZONTAL) {
lp.leftMargin = mIndicatorMargin;
lp.rightMargin = mIndicatorMargin;
} else {
lp.topMargin = mIndicatorMargin;
lp.bottomMargin = mIndicatorMargin;
}
Indicator.setLayoutParams(lp);
animator.setTarget(Indicator);
animator.start();
}
private class ReverseInterpolator implements Interpolator {
@Override public float getInterpolation(float value) {
return Math.abs(1.0f - value);
}
}
public int dip2px(float dpValue) {
final float scale = getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
}
package com.yidianling.dynamic.trendsDetail;
import android.content.Context;
import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.Snackbar;
import android.support.v4.view.ViewCompat;
import android.util.AttributeSet;
import android.view.View;
import java.util.List;
/**
* Created by haorui on 2019-12-23.
* Des:
*/
public class SnackbarBehavior extends CoordinatorLayout.Behavior<CircleIndicator> {
public SnackbarBehavior() {
}
public SnackbarBehavior(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
}
@Override public boolean layoutDependsOn(CoordinatorLayout parent, CircleIndicator child,
View dependency) {
return dependency instanceof Snackbar.SnackbarLayout;
}
@Override public boolean onDependentViewChanged(CoordinatorLayout parent, CircleIndicator child,
View dependency) {
float translationY = getTranslationYForSnackbar(parent, child);
child.setTranslationY(translationY);
return true;
}
private float getTranslationYForSnackbar(CoordinatorLayout parent, CircleIndicator ci) {
float minOffset = 0;
final List<View> dependencies = parent.getDependencies(ci);
for (int i = 0, z = dependencies.size(); i < z; i++) {
final View view = dependencies.get(i);
if (view instanceof Snackbar.SnackbarLayout && parent.doViewsOverlap(ci, view)) {
minOffset =
Math.min(minOffset, ViewCompat.getTranslationY(view) - view.getHeight());
}
}
return minOffset;
}
}
\ No newline at end of file
...@@ -100,7 +100,6 @@ import butterknife.OnClick; ...@@ -100,7 +100,6 @@ import butterknife.OnClick;
import io.reactivex.Observable; import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
import me.relex.circleindicator.CircleIndicator;
import static android.view.View.GONE; import static android.view.View.GONE;
import static android.view.View.VISIBLE; import static android.view.View.VISIBLE;
...@@ -1136,7 +1135,6 @@ public class TrendsDetailActivity extends BaseMvpActivity<ITrendsDetailView, ITr ...@@ -1136,7 +1135,6 @@ public class TrendsDetailActivity extends BaseMvpActivity<ITrendsDetailView, ITr
} else if (v.getId() == R.id.image_back) { } else if (v.getId() == R.id.image_back) {
if (isFromSplash) { if (isFromSplash) {
DynamicIn.INSTANCE.mainIntent(this); DynamicIn.INSTANCE.mainIntent(this);
finish();
} }
setResultForActivity(); setResultForActivity();
this.finish(); this.finish();
......
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_shortAnimTime">
<objectAnimator
android:propertyName="alpha"
android:valueType="floatType"
android:valueFrom="0.5"
android:valueTo="1.0"/>
<objectAnimator
android:propertyName="scaleX"
android:valueType="floatType"
android:valueFrom="1.0"
android:valueTo="1.8"/>
<objectAnimator
android:propertyName="scaleY"
android:valueType="floatType"
android:valueFrom="1.0"
android:valueTo="1.8"/>
</set>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="@android:color/white"/>
</shape>
\ No newline at end of file
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
android:gravity="center_vertical" android:gravity="center_vertical"
android:paddingRight="10dp" android:paddingRight="10dp"
android:visibility="gone" android:visibility="gone"
android:src="@drawable/dynamic_more12x" /> android:src="@drawable/platform_common_more" />
</RelativeLayout> </RelativeLayout>
......
...@@ -387,7 +387,7 @@ ...@@ -387,7 +387,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/dynamic_white" /> android:background="@color/dynamic_white" />
<me.relex.circleindicator.CircleIndicator <com.yidianling.dynamic.trendsDetail.CircleIndicator
android:id="@+id/circle_indicator" android:id="@+id/circle_indicator"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="28dp" android:layout_height="28dp"
......
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
android:gravity="center_vertical" android:gravity="center_vertical"
android:paddingRight="10dp" android:paddingRight="10dp"
android:visibility="gone" android:visibility="gone"
android:src="@drawable/dynamic_more12x" /> android:src="@drawable/platform_common_more" />
<ImageView <ImageView
android:layout_width="match_parent" android:layout_width="match_parent"
......
...@@ -64,5 +64,40 @@ ...@@ -64,5 +64,40 @@
<item name="android:backgroundDimEnabled">true</item> <item name="android:backgroundDimEnabled">true</item>
</style> </style>
<declare-styleable name="CircleIndicator"><attr format="dimension" name="ci_width"/><attr format="dimension" name="ci_height"/><attr format="dimension" name="ci_margin"/><attr format="reference" name="ci_animator"/><attr format="reference" name="ci_animator_reverse"/><attr format="reference" name="ci_drawable"/><attr format="reference" name="ci_drawable_unselected"/><attr format="enum" name="ci_orientation">
<enum name="horizontal" value="0"/>
<enum name="vertical" value="1"/>
</attr><attr name="ci_gravity">
<flag name="top" value="0x30"/>
<flag name="bottom" value="0x50"/>
<flag name="left" value="0x03"/>
<flag name="right" value="0x05"/>
<flag name="center_vertical" value="0x10"/>
<flag name="fill_vertical" value="0x70"/>
<flag name="center_horizontal" value="0x01"/>
<flag name="fill_horizontal" value="0x07"/>
<flag name="center" value="0x11"/>
<flag name="fill" value="0x77"/>
<flag name="clip_vertical" value="0x80"/>
<flag name="clip_horizontal" value="0x08"/>
<flag name="start" value="0x00800003"/>
<flag name="end" value="0x00800005"/>
</attr></declare-styleable>
</resources> </resources>
...@@ -125,15 +125,13 @@ public class MsgListAdapter extends CommonAdapter<MsgData> { ...@@ -125,15 +125,13 @@ public class MsgListAdapter extends CommonAdapter<MsgData> {
ToastHelper.Companion.show(msg); ToastHelper.Companion.show(msg);
} }
}); });
return;//如果是动态消息则到此结束,其它消息类型走下面流程 //如果是动态消息则到此结束,其它消息类型走下面流程
} }else {
((BaseActivity) context).showProgressDialog("正在中转");
Disposable di = httpHelper.getMsgDetail(new MsgDetailParam(mDataList.get(position).id)) Disposable di = httpHelper.getMsgDetail(new MsgDetailParam(mDataList.get(position).id))
.compose(RxUtils.applySchedulers(lifecycleable)) .compose(RxUtils.applySchedulers(lifecycleable))
.compose(RxUtils.resultData()) .compose(RxUtils.resultData())
.subscribe(msgDetail -> { .subscribe(msgDetail -> {
mDataList.get(position).is_read = 2; mDataList.get(position).is_read = 2;
((BaseActivity) context).dismissProgressDialog();
EventBus.getDefault().post(new UpdateTabUnreadNumEvent()); EventBus.getDefault().post(new UpdateTabUnreadNumEvent());
switch (msgDetail.type) { switch (msgDetail.type) {
case 1: case 1:
...@@ -182,6 +180,9 @@ public class MsgListAdapter extends CommonAdapter<MsgData> { ...@@ -182,6 +180,9 @@ public class MsgListAdapter extends CommonAdapter<MsgData> {
ToastHelper.Companion.show(msg); ToastHelper.Companion.show(msg);
} }
}); });
}
} }
}); });
return convertView; return convertView;
......
...@@ -39,6 +39,7 @@ import com.netease.nimlib.sdk.uinfo.model.NimUserInfo; ...@@ -39,6 +39,7 @@ import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
import com.ydl.ydl_image.module.GlideApp; import com.ydl.ydl_image.module.GlideApp;
import com.ydl.ydlcommon.modular.ModularServiceManager; import com.ydl.ydlcommon.modular.ModularServiceManager;
import com.ydl.ydlcommon.utils.SharedPreferencesEditor; import com.ydl.ydlcommon.utils.SharedPreferencesEditor;
import com.ydl.ydlcommon.utils.YdlBuryPointUtil;
import com.ydl.ydlcommon.utils.log.LogHelper; import com.ydl.ydlcommon.utils.log.LogHelper;
import com.ydl.ydlcommon.view.CircleImageView; import com.ydl.ydlcommon.view.CircleImageView;
import com.yidianling.common.tools.ToastUtil; import com.yidianling.common.tools.ToastUtil;
...@@ -178,7 +179,7 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy { ...@@ -178,7 +179,7 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
//和助理私聊时的常用语逻辑 //和助理私聊时的常用语逻辑
rl_common_question_enter = rootView.findViewById(R.id.rl_common_question); rl_common_question_enter = rootView.findViewById(R.id.rl_common_question);
fl_question_content = rootView.findViewById(R.id.fl_question_content); fl_question_content = rootView.findViewById(R.id.fl_question_content);
rl_common_question_enter.setVisibility(ActionHandlerStorage.getL(sessionId).getUserType() == 3 ? View.VISIBLE : View.GONE); rl_common_question_enter.setVisibility(ActionHandlerStorage.getL(sessionId) != null && ActionHandlerStorage.getL(sessionId).getUserType() == 3 ? View.VISIBLE : View.GONE);
if (ActionHandlerStorage.getL(sessionId) != null && ActionHandlerStorage.getL(sessionId).getUserType() == 3) { if (ActionHandlerStorage.getL(sessionId) != null && ActionHandlerStorage.getL(sessionId).getUserType() == 3) {
rl_common_question_enter.setOnClickListener(v -> { rl_common_question_enter.setOnClickListener(v -> {
...@@ -193,6 +194,12 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy { ...@@ -193,6 +194,12 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
rl_common_question_enter.postDelayed(() -> openOrCloseCommonQuestionLayout(true), 300); rl_common_question_enter.postDelayed(() -> openOrCloseCommonQuestionLayout(true), 300);
} else { } else {
getCommonQuestionListData(); getCommonQuestionListData();
try {
YdlBuryPointUtil.sendPv("快捷短语弹起");
}catch (Exception e){
}
} }
ChatStatusCacheHelper.clearDataByKey("chatEvent"); ChatStatusCacheHelper.clearDataByKey("chatEvent");
} }
...@@ -214,14 +221,23 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy { ...@@ -214,14 +221,23 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
} }
}); });
getUserInfoCollect(); getUserInfoCollect();
if (!getActivity().isFinishing()) {
collectInfoPopupWindow.show(top_expert_info_cl); collectInfoPopupWindow.show(top_expert_info_cl);
} }
try {
YdlBuryPointUtil.sendPv("用户信息收集页面");
}catch (Exception e){
}
}
ChatStatusCacheHelper.clearDataByKey("collectEvent"); ChatStatusCacheHelper.clearDataByKey("collectEvent");
} }
} }
// 初始化顶部专家信息栏 // 初始化顶部专家信息栏
if (ActionHandlerStorage.getL(sessionId).getUserType() == 2) { if (ActionHandlerStorage.getL(sessionId) != null && ActionHandlerStorage.getL(sessionId).getUserType() == 2) {
top_expert_info_cl.setVisibility(View.VISIBLE); top_expert_info_cl.setVisibility(View.VISIBLE);
initTopCustomBar(); initTopCustomBar();
} }
...@@ -506,7 +522,7 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy { ...@@ -506,7 +522,7 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
if (TextUtils.equals(userChatStatus, "true")) { if (TextUtils.equals(userChatStatus, "true")) {
messageListPanel = new MessageListPanelEx(container, rootView, anchor, false, true); messageListPanel = new MessageListPanelEx(container, rootView, anchor, false, true);
SharedPreferencesEditor.putString(chatStatusKey, "true"); SharedPreferencesEditor.putString(chatStatusKey, "true");
}else { } else {
messageListPanel = new MessageListPanelEx(container, rootView, anchor, false, false); messageListPanel = new MessageListPanelEx(container, rootView, anchor, false, false);
} }
} else { } else {
...@@ -849,4 +865,5 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy { ...@@ -849,4 +865,5 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
.subscribe(resp -> { .subscribe(resp -> {
}, throwable -> { }, throwable -> {
}); });
}} }
}
...@@ -4,6 +4,8 @@ import android.graphics.drawable.Drawable ...@@ -4,6 +4,8 @@ import android.graphics.drawable.Drawable
import com.google.gson.Gson import com.google.gson.Gson
import com.ydl.media.audio.AudioPlayer import com.ydl.media.audio.AudioPlayer
import com.ydl.media.audio.model.Music import com.ydl.media.audio.model.Music
import com.ydl.media.view.PlayTypeEnum
import com.ydl.media.view.PlayerFloatHelper
import com.ydl.ydlcommon.utils.YDLCacheUtils import com.ydl.ydlcommon.utils.YDLCacheUtils
import com.ydl.ydlcommon.view.dialog.YDLShareDialog import com.ydl.ydlcommon.view.dialog.YDLShareDialog
import com.yidianling.common.tools.ToastUtil import com.yidianling.common.tools.ToastUtil
...@@ -77,6 +79,7 @@ class MusePlugin : MethodChannel.MethodCallHandler { ...@@ -77,6 +79,7 @@ class MusePlugin : MethodChannel.MethodCallHandler {
music.artist = "" music.artist = ""
music.coverPath = "" music.coverPath = ""
music.title = "" music.title = ""
PlayerFloatHelper.playingType = PlayTypeEnum.PLAY_TYPE_MUSE
AudioPlayer.get().singleCirclePlay(music) AudioPlayer.get().singleCirclePlay(music)
} }
} }
......
...@@ -2,7 +2,6 @@ package com.yidianling.user.modular_service ...@@ -2,7 +2,6 @@ package com.yidianling.user.modular_service
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
import android.content.Intent
import android.os.Bundle import android.os.Bundle
import com.alibaba.android.arouter.facade.annotation.Route import com.alibaba.android.arouter.facade.annotation.Route
import com.alibaba.android.arouter.launcher.ARouter import com.alibaba.android.arouter.launcher.ARouter
...@@ -13,7 +12,9 @@ import com.yidianling.user.api.service.IAppService ...@@ -13,7 +12,9 @@ import com.yidianling.user.api.service.IAppService
class AppServiceImpl: IAppService { class AppServiceImpl: IAppService {
override fun mainIntent(activity: Activity) { override fun mainIntent(activity: Activity) {
ARouter.getInstance().build("/main/main").navigation() ARouter.getInstance()
.build("/main/main")
.navigation()
} }
override fun mainIntent(context: Context, selectTab: Int, animation: Boolean) { override fun mainIntent(context: Context, selectTab: Int, animation: Boolean) {
...@@ -22,7 +23,6 @@ class AppServiceImpl: IAppService { ...@@ -22,7 +23,6 @@ class AppServiceImpl: IAppService {
bundle.putBoolean("animation", animation) bundle.putBoolean("animation", animation)
ARouter.getInstance().build("/main/main") ARouter.getInstance().build("/main/main")
.withFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
.withBundle("bundle",bundle) .withBundle("bundle",bundle)
.navigation() .navigation()
} }
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
android:id="@+id/tb_title" android:id="@+id/tb_title"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/title_bar_height" android:layout_height="@dimen/title_bar_height"
app:pa_left_start_icon="@drawable/user_toolbar_back" android:background="@color/platform_white"
app:pa_left_start_icon="@drawable/platform_common_back"
app:pa_title_text="手机号" /> app:pa_title_text="手机号" />
<TextView <TextView
......
...@@ -7,9 +7,10 @@ ...@@ -7,9 +7,10 @@
android:orientation="vertical"> android:orientation="vertical">
<com.ydl.ydlcommon.view.TitleBar <com.ydl.ydlcommon.view.TitleBar
android:background="@color/platform_white"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/title_bar_height" android:layout_height="@dimen/title_bar_height"
app:pa_left_start_icon="@drawable/user_toolbar_back" app:pa_left_start_icon="@drawable/platform_common_back"
app:pa_title_text="填写手机号"/> app:pa_title_text="填写手机号"/>
<TextView <TextView
......
...@@ -9,7 +9,8 @@ ...@@ -9,7 +9,8 @@
<com.ydl.ydlcommon.view.TitleBar <com.ydl.ydlcommon.view.TitleBar
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="50dp" android:layout_height="50dp"
app:pa_left_start_icon="@drawable/user_toolbar_back" android:background="@color/platform_white"
app:pa_left_start_icon="@drawable/platform_common_back"
app:pa_title_text="隐私安全"> app:pa_title_text="隐私安全">
</com.ydl.ydlcommon.view.TitleBar> </com.ydl.ydlcommon.view.TitleBar>
......
...@@ -266,7 +266,7 @@ public class TitleBar extends RelativeLayout { ...@@ -266,7 +266,7 @@ public class TitleBar extends RelativeLayout {
if(mLeftStartIconColor != 0xffffff && mLeftStartIcon == null) { if(mLeftStartIconColor != 0xffffff && mLeftStartIcon == null) {
//动态设置返回图标颜色 //动态设置返回图标颜色
Resources resources = this.getResources(); Resources resources = this.getResources();
Bitmap bmp = BitmapFactory.decodeResource(resources, R.drawable.platform_toolbar_back); Bitmap bmp = BitmapFactory.decodeResource(resources, R.drawable.platform_common_back);
Bitmap colorBmp = BitmapUtils.tintBitmap(bmp, mLeftStartIconColor); Bitmap colorBmp = BitmapUtils.tintBitmap(bmp, mLeftStartIconColor);
return new BitmapDrawable(resources, colorBmp); return new BitmapDrawable(resources, colorBmp);
}else { }else {
......
...@@ -50,8 +50,12 @@ class MoreClickView @JvmOverloads constructor(private val mContext: Context, att ...@@ -50,8 +50,12 @@ class MoreClickView @JvmOverloads constructor(private val mContext: Context, att
un_read_num.visibility = View.GONE un_read_num.visibility = View.GONE
} }
else { else {
if (unreadNum > 99) {
un_read_num.text = "${unreadNum}+"
} else {
un_read_num.text = unreadNum.toString() un_read_num.text = unreadNum.toString()
} }
}
} }
......
...@@ -27,7 +27,6 @@ import com.alibaba.android.arouter.launcher.ARouter; ...@@ -27,7 +27,6 @@ import com.alibaba.android.arouter.launcher.ARouter;
import com.tencent.smtt.export.external.interfaces.JsResult; import com.tencent.smtt.export.external.interfaces.JsResult;
import com.tencent.smtt.export.external.interfaces.SslError; import com.tencent.smtt.export.external.interfaces.SslError;
import com.tencent.smtt.export.external.interfaces.SslErrorHandler; import com.tencent.smtt.export.external.interfaces.SslErrorHandler;
import com.tencent.smtt.sdk.CookieManager;
import com.tencent.smtt.sdk.CookieSyncManager; import com.tencent.smtt.sdk.CookieSyncManager;
import com.tencent.smtt.sdk.WebChromeClient; import com.tencent.smtt.sdk.WebChromeClient;
import com.tencent.smtt.sdk.WebSettings; import com.tencent.smtt.sdk.WebSettings;
...@@ -763,7 +762,7 @@ public class NewH5Activity extends BaseActivity implements PtrHandler { ...@@ -763,7 +762,7 @@ public class NewH5Activity extends BaseActivity implements PtrHandler {
tb_title.setImageVis(1); tb_title.setImageVis(1);
} }
} else { } else {
tb_title.setImage(getResources().getDrawable(YDLConstants.FROM_YDL.equals(appFrom) ? R.drawable.platform_toolbar_back : R.drawable.platform_toolbar_back_yellow)); tb_title.setImage(getResources().getDrawable(R.drawable.platform_common_back));
tb_title.setmLeftText(""); tb_title.setmLeftText("");
tb_title.setImageListener(v -> { tb_title.setImageListener(v -> {
if (h5Params.getShowUrlTitle()) { if (h5Params.getShowUrlTitle()) {
...@@ -1102,7 +1101,7 @@ public class NewH5Activity extends BaseActivity implements PtrHandler { ...@@ -1102,7 +1101,7 @@ public class NewH5Activity extends BaseActivity implements PtrHandler {
super.finish(); super.finish();
CookieSyncManager.createInstance(this); CookieSyncManager.createInstance(this);
CookieSyncManager.getInstance().startSync(); CookieSyncManager.getInstance().startSync();
CookieManager.getInstance().removeSessionCookie(); //CookieManager.getInstance().removeSessionCookie();
} }
private void openImageChooserActivity() { private void openImageChooserActivity() {
......
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