Commit c3c82465 by 严久程

课程、支付

parent 3d7b3ccd
......@@ -22,30 +22,6 @@ import com.yidianling.course.widget.SearchBarView;
@Route(path = "/course/home")
public class CourseActivity extends BaseActivity {
@BindView(R2.id.content)
FrameLayout content;
@BindView(R2.id.iv_back)
ImageView ivBack;
@BindView(R2.id.tv_left_menu)
TextView leftMenu;
@BindView(R2.id.activity_course_search_bar)
SearchBarView activityCourseSearchBar;
private boolean isSplash;//是否从启动页进入
private final static String TAB = "tab";
public final static int TAB0 = 0;
private static final String IS_SPLASH = "isSplash";
public static void start(Context context, int tab) {
Intent intent = new Intent(context, CourseActivity.class);
Bundle bundle = new Bundle();
bundle.putInt(TAB, tab);
intent.putExtra("bundle", bundle);
context.startActivity(intent);
}
@Override
protected int layoutResId() {
......@@ -55,68 +31,20 @@ public class CourseActivity extends BaseActivity {
@Override
protected void initDataAndEvent() {
ButterKnife.bind(this);
Bundle bundle = getIntent().getBundleExtra("bundle");
if (bundle != null) {
isSplash = bundle.getBoolean("isSplash", false);
}
activityCourseSearchBar.initBarType(SearchBarView.JUMP_TO_SEARCH_COURSE, null);
init();
}
private void init() {
initTags();
ivBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
leftMenu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (CourseIn.INSTANCE.isLogin()) {
MyCourseActivity.start(CourseActivity.this);
} else {
startActivity(CourseIn.INSTANCE.loginWayIntent(CourseActivity.this));
}
}
});
}
/**
* 初始化tab
*/
private void initTags() {
//todo 引用flutter的课程频道页面
// Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.content);
// if (fragment == null) {
// fragment = new CourseHomeFragment();
// getSupportFragmentManager().beginTransaction()
// .add(R.id.content, fragment)
// .commit();
// }
}
@Override
protected void onResume() {
super.onResume();
}
public void disPro() {
dismissProgressDialog();
}
@Override
public void onBackPressed() {
super.onBackPressed();
if (isSplash) {
startActivity(CourseIn.INSTANCE.mainIntent(this));
finish();
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.content);
if (fragment == null) {
fragment = new FlutterCourseHomeFragment();
getSupportFragmentManager().beginTransaction()
.add(R.id.content, fragment)
.commit();
}
}
}
......@@ -7,21 +7,21 @@ import android.text.TextUtils
import com.alibaba.android.arouter.launcher.ARouter
import com.google.gson.Gson
import com.ydl.ydl_router.manager.YDLRouterManager
import com.ydl.ydlcommon.base.flutter.base.BaseFlutterFragment
import com.ydl.ydlcommon.data.http.BaseResponse
import com.ydl.ydlcommon.data.http.RxUtils
import com.ydl.ydlcommon.data.http.ThrowableConsumer
import com.ydl.ydlcommon.router.YdlCommonRouterManager
import com.ydl.ydlcommon.utils.YDLCacheUtils
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import com.ydl.ydlcommon.utils.actionutil.BIConstants
import com.ydl.ydlcommon.utils.remind.ToastHelper
import com.yidianling.common.tools.ToastUtil
import com.yidianling.course.bean.CourseCouponBean
import com.yidianling.course.net.CourseRetrofitUtils
import com.yidianling.course.constants.CourseBIConstants
import com.yidianling.course.flutterPlugin.CourseSendPlugin
import com.yidianling.course.net.CourseRetrofitUtils
import com.yidianling.course.widget.CourseCouponDialog
import com.yidianling.router.RouterManager
import com.yidianling.ydlcommon.flutter.base.BaseFlutterFragment
import io.flutter.view.FlutterView
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.functions.Consumer
......@@ -37,6 +37,7 @@ import java.util.*
* @date 2019/10/22
*/
class FlutterCourseHomeFragment : BaseFlutterFragment() {
private var hasRequestCoupon = false
private var dialog: CourseCouponDialog? = null
override fun initChannelPlugin(flutterView: FlutterView) {
......@@ -54,7 +55,7 @@ class FlutterCourseHomeFragment : BaseFlutterFragment() {
if (isVisibleToUser) {
prepareCoupon()
ActionCountUtils.count(BIConstants.CourseHomeEvent.POSITION_COURSE_HOME_PAGE_VISIT)
ActionCountUtils.count(CourseBIConstants.CourseHomeEvent.POSITION_COURSE_HOME_PAGE_VISIT)
}
}
......@@ -86,26 +87,26 @@ class FlutterCourseHomeFragment : BaseFlutterFragment() {
private fun getCouponData() {
val (userId) = YdlCommonRouterManager.getYdlCommonRoute().getUserInfo() ?: return
CourseRetrofitUtils.getCourseCoupons(userId, "3", "1", "3")
.compose(RxUtils.netCheck())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(Consumer {
hasRequestCoupon = true
val simpleFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")//如2016-08-10
val time = System.currentTimeMillis()
val date = Date()
date.time = time
val nowTime = simpleFormat.format(date)
if (it?.data != null && it.data.isNotEmpty()) {
YDLCacheUtils.saveCouponTime(userId, nowTime)
couponDataResponse(it.data)
}
}, object : ThrowableConsumer() {
override fun accept(msg: String) {
}
})
.compose(RxUtils.netCheck())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(Consumer {
hasRequestCoupon = true
val simpleFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")//如2016-08-10
val time = System.currentTimeMillis()
val date = Date()
date.time = time
val nowTime = simpleFormat.format(date)
if (it?.data != null && it.data.isNotEmpty()) {
YDLCacheUtils.saveCouponTime(userId, nowTime)
couponDataResponse(it.data)
}
}, object : ThrowableConsumer() {
override fun accept(msg: String) {
}
})
}
/**
......@@ -113,25 +114,28 @@ class FlutterCourseHomeFragment : BaseFlutterFragment() {
*/
private fun couponDataResponse(data: List<CourseCouponBean>) {
if (dialog == null) {
dialog = CourseCouponDialog(activity, data, object : CourseCouponDialog.OnClickEnsureListener {
override fun clickUse(toLink: String) {
YDLRouterManager.router(toLink)
dialog!!.dismiss()
}
override fun clickEnsure(status: Int) {
if (status == CourseCouponDialog.STATUS_RECEIVER) {
receiveCoupon(data)
} else {
dialog = CourseCouponDialog(
activity,
data,
object : CourseCouponDialog.OnClickEnsureListener {
override fun clickUse(toLink: String) {
YDLRouterManager.router(toLink)
dialog!!.dismiss()
}
override fun clickEnsure(status: Int) {
if (status == CourseCouponDialog.STATUS_RECEIVER) {
receiveCoupon(data)
} else {
dialog!!.dismiss()
//查看我的卡券
ARouter.getInstance().build("/mine/redpacket")
//查看我的卡券
ARouter.getInstance().build("/mine/redpacket")
.withString("is_from_main", "1")
.navigation()
}
}
}
})
})
}
dialog!!.show()
}
......@@ -152,16 +156,16 @@ class FlutterCourseHomeFragment : BaseFlutterFragment() {
bean.uid = userId
val couponIdsStr = Gson().toJson(bean)
CourseRetrofitUtils.receiveCoupon(couponIdsStr)
.compose(RxUtils.netCheck())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(Consumer {
receiveCouponResponse(it)
}, object : ThrowableConsumer() {
override fun accept(msg: String) {
ToastUtil.toastShort(msg)
}
})
.compose(RxUtils.netCheck())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(Consumer {
receiveCouponResponse(it)
}, object : ThrowableConsumer() {
override fun accept(msg: String) {
ToastUtil.toastShort(msg)
}
})
}
/**
......
......@@ -4,58 +4,6 @@
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/title_bar"
android:layout_width="0dp"
android:layout_height="@dimen/title_bar_height"
android:layout_weight="1"
android:background="@color/white">
<ImageView
android:id="@+id/iv_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:paddingLeft="15dp"
android:paddingRight="10dp"
android:src="@drawable/course_toolbar_back"/>
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="心理课程"
android:textColor="@color/color_333333"
android:textSize="18sp"/>
<TextView
android:id="@+id/tv_left_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="15dp"
android:src="@drawable/course_toolbar_back"
android:text="我的课程"
android:textColor="@color/right_text_color"/>
</RelativeLayout>
</LinearLayout>
<com.yidianling.course.widget.SearchBarView
android:id="@+id/activity_course_search_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<FrameLayout
android:id="@+id/content"
android:layout_width="match_parent"
......
......@@ -14,7 +14,7 @@ import android.widget.LinearLayout
import com.alipay.sdk.app.PayTask
import com.tencent.mm.opensdk.modelpay.PayReq
import com.tencent.mm.opensdk.openapi.WXAPIFactory
import com.ydl.ydl_pay.http.HttpUtils
import com.yidianling.ydl_pay.http.HttpUtils
import com.ydl.ydl_pay.toast.ToastHelper
import com.ydl.ydl_pay.widget.PayCouponView
import com.ydl.ydl_pay.widget.PayInfoDetailView
......
package com.ydl.ydl_pay.actionpoint
package com.yidianling.ydl_pay.actionpoint
import android.content.Context
import android.net.ConnectivityManager
import android.net.NetworkInfo
import com.ydl.ydl_pay.http.HttpUtils
import com.ydl.ydl_pay.http.utils.RxDeviceTool
import com.ydl.ydl_pay.actionpoint.ActionDataBean
import com.ydl.ydl_pay.actionpoint.BIConstants
import com.yidianling.ydl_pay.http.HttpUtils
import com.yidianling.ydl_pay.http.utils.RxDeviceTool
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
......
......@@ -7,7 +7,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import com.ydl.ydl_pay.actionpoint.ActionCountUtils
import com.yidianling.ydl_pay.actionpoint.ActionCountUtils
import com.ydl.ydl_pay.actionpoint.BIConstants
import com.ydl.ydl_pay.http.HttpConfig
import com.ydl.ydl_pay.widget.CouponInfoDetailView
......
package com.ydl.ydl_pay.http
package com.yidianling.ydl_pay.http
import com.google.gson.Gson
import com.ydl.ydl_pay.actionpoint.ActionDataBean
import com.ydl.ydl_pay.bean.*
import com.ydl.ydlcommon.data.http.BaseCommand
import com.ydl.ydlcommon.data.http.BaseResponse
import com.ydl.ydlcommon.utils.NetworkParamsUtils
......
package com.ydl.ydl_pay.http
package com.yidianling.ydl_pay.http
import com.ydl.ydl_pay.bean.*
import com.ydl.ydlcommon.base.config.YDL_DOMAIN
import com.ydl.ydlcommon.base.config.YDL_DOMAIN_JAVA
import com.ydl.ydlcommon.data.http.BaseResponse
......
......@@ -3,7 +3,7 @@ package com.yidianling.ydl_pay.http.log;
import android.util.Log;
import com.ydl.ydl_pay.BuildConfig;
import com.yidianling.ydl_pay.BuildConfig;
/**
......
......@@ -14,7 +14,7 @@ import android.widget.EditText
import android.widget.LinearLayout
import android.widget.TextView
import com.ydl.ydl_pay.adapter.SelectCouponAdapter
import com.ydl.ydl_pay.http.HttpUtils
import com.yidianling.ydl_pay.http.HttpUtils
import com.ydl.ydl_pay.toast.ToastHelper
import com.yidianling.ydl_pay.R
import com.yidianling.ydl_pay.bean.AllCouponListBean
......
......@@ -13,18 +13,15 @@ import io.flutter.view.FlutterView
*/
abstract class BaseFlutterFragment : FlutterFragment() {
private var mFlutterView: FlutterView? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): FlutterView {
return Flutter.createView(
activity!!,
lifecycle,
initialRoute())
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
initChannelPlugin()
mFlutterView=Flutter.createView(
activity!!,
lifecycle,
initialRoute())
initChannelPlugin(mFlutterView!!)
return mFlutterView!!
}
/**
......@@ -35,5 +32,5 @@ abstract class BaseFlutterFragment : FlutterFragment() {
/**
* 初始化flutter channel插件
*/
abstract fun initChannelPlugin()
abstract fun initChannelPlugin(flutterView: FlutterView)
}
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