diff --git a/app/build.gradle b/app/build.gradle index b4fba75..11184bd 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -110,6 +110,9 @@ dependencies { if (isSaleModule.toBoolean()) { api project(':saleCenter') } + if (isLearnModule.toBoolean()) { + api project(':learnCenter') + } // compile(name: 'orderCenter-debug', ext: 'aar') // compile(name: 'userCenter-debug', ext: 'aar') // compile(name: 'messageCenter-debug', ext: 'aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ec11555..2e0924b 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -146,7 +146,9 @@ <activity android:name=".ui.MainActivity" android:launchMode="singleTask" - android:screenOrientation="portrait" /> + android:screenOrientation="portrait" + android:configChanges="orientation|screenSize|keyboardHidden" + /> <activity android:name="com.dayu.bigfish.ui.ManagerActivity" android:launchMode="singleTask" diff --git a/app/src/main/java/com/dayu/bigfish/ui/AboutUsActivity.java b/app/src/main/java/com/dayu/bigfish/ui/AboutUsActivity.java index ce3d9c5..2529dcf 100755 --- a/app/src/main/java/com/dayu/bigfish/ui/AboutUsActivity.java +++ b/app/src/main/java/com/dayu/bigfish/ui/AboutUsActivity.java @@ -3,6 +3,7 @@ package com.dayu.bigfish.ui; import com.dayu.base.ui.activity.DataBindingActivity; import com.dayu.bigfish.AboutUsBinding; import com.dayu.bigfish.R; +import com.dayu.utils.AppUtils; /** * 关于我们 @@ -19,6 +20,8 @@ public class AboutUsActivity extends DataBindingActivity<AboutUsBinding> { @Override public void initView() { mBind.ivBack.setOnClickListener(o -> finish()); + String versionCode = AppUtils.getPackageNum(); + mBind.tvVersion.setText(getString(R.string.tv_now_version)+versionCode); } } diff --git a/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java b/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java index 5b3d64a..f7feef1 100644 --- a/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java +++ b/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java @@ -3,7 +3,6 @@ package com.dayu.bigfish.ui; import android.app.NotificationManager; import android.content.Context; import android.content.Intent; -import android.graphics.Color; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -20,7 +19,8 @@ import android.widget.TextView; import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.launcher.ARouter; -import com.bigfish.salecenter.event.SaleTabNumEvent; +import com.dayu.event.LearnTabNumEvent; +import com.dayu.event.SaleTabNumEvent; import com.bigfish.salecenter.ui.fragment.HomeSaleFragment; import com.dayu.base.api.Api; import com.dayu.base.api.DownloadService; @@ -35,16 +35,14 @@ import com.dayu.bigfish.api.protocol.VersionInfo; import com.dayu.bigfish.databinding.ActivityMainBinding; import com.dayu.bigfish.presenter.main.MainContract; import com.dayu.bigfish.presenter.main.MainPresenter; -import com.dayu.bigfish.ui.fragment.HomeFirstTabFragment; import com.dayu.bigfish.ui.service.LocationService; import com.dayu.bigfish.utils.HxManager; import com.dayu.common.BaseApplication; import com.dayu.common.Constants; import com.dayu.event.DownloadBean; import com.dayu.event.UserInfo; +import com.dayu.learncenter.ui.fragment.HomeLearnFragment; import com.dayu.location.base.LocationUtils; -import com.dayu.managercenter.ui.fragment.ManagerFragment; -import com.dayu.message.ui.fragment.HomeMessageFragment; import com.dayu.order.common.TabNumEvent; import com.dayu.order.ui.activity.OrderDetailsActivity; import com.dayu.order.ui.activity.ReceivingActivity; @@ -54,12 +52,10 @@ import com.dayu.provider.event.RefreshReceivingNum; import com.dayu.provider.event.SwtichFragment; import com.dayu.provider.router.RouterPath; import com.dayu.usercenter.ui.activity2.BusinessTypeActivity; -import com.dayu.usercenter.ui.fragment.HomePersonFragment; import com.dayu.usercenter.ui.fragment.HomeUserFragment; import com.dayu.utils.LogUtils; import com.dayu.utils.SPUtils; import com.dayu.utils.TimeUtils; -import com.dayu.utils.ToastUtils; import com.dayu.utils.UserManager; import com.dayu.utils.badgeNumberManger.BadgeNumberManager; import com.dayu.widgets.BadgeView; @@ -73,8 +69,9 @@ import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import java.io.File; -import java.util.HashMap; -import java.util.Map; + +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; /** * Created by luofan @@ -92,6 +89,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin // private HomeFirstTabFragment firstFragment; private HomeSaleFragment saleFragment; private HomeOrderFragment secondFragment; + private HomeLearnFragment learnFragment; // private HomeMessageFragment thirdFragment; // private HomePersonFragment fourFragment; private HomeUserFragment fourFragment; @@ -99,6 +97,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin private BadgeView mBadgeView; private BadgeView mOrderBadgeView; private BadgeView mSaleBadgeView; + private BadgeView mLearnBadgeView; @Override public int getLayoutId() { @@ -119,24 +118,25 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin MobclickAgent.onEvent(this, "go_home"); saleFragment = HomeSaleFragment.newInstance(); secondFragment = HomeOrderFragment.newInstance(); + learnFragment = new HomeLearnFragment(); + fourFragment = HomeUserFragment.newInstance(); // thirdFragment = HomeMessageFragment.newInstance(); // fourFragment = HomePersonFragment.newInstance(); - fourFragment = HomeUserFragment.newInstance(); - if (UserManager.getInstance().getRole() == Constants.ENGINEER) { +// if (UserManager.getInstance().getRole() == Constants.ENGINEER) { // firstFragment = HomeFirstTabFragment.newInstance(); // mFragments = new Fragment[]{firstFragment, secondFragment, thirdFragment, fourFragment}; // mFirstPositon = 1; - mFragments = new Fragment[]{saleFragment, secondFragment, fourFragment}; + mFragments = new Fragment[]{saleFragment, secondFragment, learnFragment,fourFragment}; mFirstPositon = 0; - } else if (UserManager.getInstance().getRole() == Constants.MANAGER_ENGINEER) { +// } else if (UserManager.getInstance().getRole() == Constants.MANAGER_ENGINEER) { // managerFragment = ManagerFragment.newInstance(); // mFragments = new Fragment[]{managerFragment, secondFragment, thirdFragment, fourFragment}; - mFragments = new Fragment[]{saleFragment, secondFragment, fourFragment}; - mFirstPositon = 0; - mBind.tabFirst.setText(getString(R.string.send_order)); - } +// mFragments = new Fragment[]{saleFragment, secondFragment, learnFragment,fourFragment}; +// mFirstPositon = 0; +// mBind.tabFirst.setText(getString(R.string.send_order)); +// } // mTabs = new TextView[]{mBind.tabFirst, mBind.tabSecond, mBind.tabThird, mBind.tabFour}; - mTabs = new TextView[]{mBind.tabSale, mBind.tabSecond, mBind.tabFour}; + mTabs = new TextView[]{mBind.tabSale, mBind.tabSecond,mBind.tabLearn, mBind.tabFour}; addFragment(); initListener(); doAction(getIntent()); @@ -178,7 +178,8 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin } }); - mBind.tabFour.setOnClickListener(o -> showHideFragment(2, mPosition)); + mBind.tabLearn.setOnClickListener(o -> showHideFragment(2, mPosition)); + mBind.tabFour.setOnClickListener(o -> showHideFragment(3, mPosition)); } //提示去认证身份 @@ -225,6 +226,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin */ private void showHideFragment(int showPosition, int hidePosition) { if (showPosition == hidePosition) return; + if (showPosition != 2) JzvdStd.goOnPlayOnPause(); mFragmentManger.beginTransaction() .hide(mFragments[hidePosition]) .show(mFragments[showPosition]) @@ -314,6 +316,22 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin mSaleBadgeView.setText("99+"); } } + @Subscribe + public void changeLearnNum(LearnTabNumEvent event) { + if (event.num <= 0) + return; + if (mLearnBadgeView == null) { + mLearnBadgeView = new BadgeView(this); + mLearnBadgeView.setTargetView(mBind.tabLearn); + mLearnBadgeView.setBadgeGravity(Gravity.CENTER | Gravity.TOP); + mLearnBadgeView.setBadgeMargin(20, 0, 0, 0); + } + if (event.num < 100) { + mLearnBadgeView.setText(event.num + "", TextView.BufferType.NORMAL); + } else { + mLearnBadgeView.setText("99+"); + } + } @Override @@ -470,9 +488,11 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { - // 不退出程序,进入后台 - moveTaskToBack(true); - return true; + if (!Jzvd.backPress()) { + // 不退出程序,进入后台 + moveTaskToBack(true); + return true; + } } return super.onKeyDown(keyCode, event); } diff --git a/app/src/main/res/drawable/tab_learn_selector.xml b/app/src/main/res/drawable/tab_learn_selector.xml new file mode 100644 index 0000000..cb30144 --- /dev/null +++ b/app/src/main/res/drawable/tab_learn_selector.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:drawable="@mipmap/img_tab_learn_selected" android:state_selected="true"/> + <item android:drawable="@mipmap/img_tab_learn"/> +</selector> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 946278f..1acf9cc 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -79,6 +79,19 @@ android:textColor="#585858" android:textSize="10sp" /> + <TextView + android:id="@+id/tab_learn" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginTop="10dp" + android:layout_weight="1" + android:drawablePadding="2dp" + android:drawableTop="@drawable/tab_learn_selector" + android:gravity="center" + android:text="@string/learn_str" + android:textColor="#585858" + android:textSize="10sp" /> + <LinearLayout android:visibility="gone" android:id="@+id/tab_get_order" diff --git a/app/src/main/res/layout/app_activity_about_us.xml b/app/src/main/res/layout/app_activity_about_us.xml index b4b73b7..0089c1c 100755 --- a/app/src/main/res/layout/app_activity_about_us.xml +++ b/app/src/main/res/layout/app_activity_about_us.xml @@ -52,7 +52,7 @@ android:layout_width="@dimen/dp_205" android:layout_height="@dimen/dp_205" android:layout_centerHorizontal="true" - android:layout_marginTop="@dimen/dp_57" + android:layout_marginTop="40dp" android:src="@mipmap/about_us" /> @@ -82,12 +82,22 @@ android:textSize="@dimen/sp_15" /> + + + <TextView + android:id="@+id/tv_version" + style="@style/common_text_style" + android:layout_below="@id/about_main_text" + android:layout_centerHorizontal="true" + android:layout_marginTop="@dimen/dp_30" + android:text="@string/tv_now_version" + /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_below="@id/about_main_text" + android:layout_below="@id/tv_version" android:layout_centerHorizontal="true" - android:layout_marginTop="@dimen/dp_41" + android:layout_marginTop="@dimen/dp_20" android:text="@string/tv_about_dayu" android:textColor="@color/cl_selector_hui" android:textSize="@dimen/sp_12" diff --git a/baseSDK/build.gradle b/baseSDK/build.gradle index 838011e..5d23b4c 100644 --- a/baseSDK/build.gradle +++ b/baseSDK/build.gradle @@ -70,10 +70,7 @@ dependencies { api 'com.journeyapps:zxing-android-embedded:3.5.0' api project(':locationComponent') api project(':pickerview') - api 'cn.jzvd:jiaozivideoplayer:7.1.0' - // api 'tv.danmaku.ijk.media:ijkplayer-java:0.8.4' - // api 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.4' - // api 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.4' + api 'cn.jzvd:jiaozivideoplayer:7.2.4' api 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.35' api 'com.badoo.mobile:android-weak-handler:1.1' api 'com.youth.banner:banner:1.4.10' @@ -83,5 +80,6 @@ dependencies { api 'com.google.android:flexbox:1.0.0' api 'com.github.chrisbanes:PhotoView:2.0.0' + api project(':umeng') } diff --git a/baseSDK/src/main/java/com/dayu/common/Constants.java b/baseSDK/src/main/java/com/dayu/common/Constants.java index ff37887..f22e0cd 100755 --- a/baseSDK/src/main/java/com/dayu/common/Constants.java +++ b/baseSDK/src/main/java/com/dayu/common/Constants.java @@ -49,30 +49,30 @@ public class Constants { /** * uat环境配置. */ -// public static final String ENVIROMENT = "uat"; -// public static final int LOG_LEVEL = LogUtils.LEVEL_ALL; -// public static final String BASE_URL = "http://47.95.223.6:3112"; -// public final static String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply"; -// public final static String WEB_SOP = "http://47.95.223.6:9004/#/sop"; -// public final static String WEB_SOP_DETAIL = "http://47.95.223.6:9004/#/sopdetail"; -// public final static String WEB_ZHI_SHI = "http://47.95.223.6:9004/#/detail"; -// public final static String CHECK_MULTI_WEB_SOP = "http://47.95.223.6:9004/#/manyServiceResult"; -// public final static String MULTI_WEB_SOP = "http://47.95.223.6:9004/#/manySop"; -// public static final boolean IS_DEBUG = true; + public static final String ENVIROMENT = "uat"; + public static final int LOG_LEVEL = LogUtils.LEVEL_ALL; + public static final String BASE_URL = "http://47.95.223.6:3112"; + public final static String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply"; + public final static String WEB_SOP = "http://47.95.223.6:9004/#/sop"; + public final static String WEB_SOP_DETAIL = "http://47.95.223.6:9004/#/sopdetail"; + public final static String WEB_ZHI_SHI = "http://47.95.223.6:9004/#/detail"; + public final static String CHECK_MULTI_WEB_SOP = "http://47.95.223.6:9004/#/manyServiceResult"; + public final static String MULTI_WEB_SOP = "http://47.95.223.6:9004/#/manySop"; + public static final boolean IS_DEBUG = true; /** * 正式环境. */ - public static final String ENVIROMENT = "release"; - public static final int LOG_LEVEL = LogUtils.LEVEL_OFF; - public static final String BASE_URL = "https://mobile.kf.ai"; - public final static String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply"; - public final static String WEB_SOP = "https://sop.kf.ai/#/sop"; - public final static String WEB_SOP_DETAIL = "https://sop.kf.ai/#/sopdetail"; - public final static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail"; - public final static String CHECK_MULTI_WEB_SOP = "https://sop.kf.ai/#/manyServiceResult"; - public final static String MULTI_WEB_SOP = "https://sop.kf.ai/#/manySop"; - public static final boolean IS_DEBUG = false; +// public static final String ENVIROMENT = "release"; +// public static final int LOG_LEVEL = LogUtils.LEVEL_OFF; +// public static final String BASE_URL = "https://mobile.kf.ai"; +// public final static String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply"; +// public final static String WEB_SOP = "https://sop.kf.ai/#/sop"; +// public final static String WEB_SOP_DETAIL = "https://sop.kf.ai/#/sopdetail"; +// public final static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail"; +// public final static String CHECK_MULTI_WEB_SOP = "https://sop.kf.ai/#/manyServiceResult"; +// public final static String MULTI_WEB_SOP = "https://sop.kf.ai/#/manySop"; +// public static final boolean IS_DEBUG = false; /** * 统一配置. diff --git a/baseSDK/src/main/java/com/dayu/event/LearnTabNumEvent.java b/baseSDK/src/main/java/com/dayu/event/LearnTabNumEvent.java new file mode 100644 index 0000000..b1ec9db --- /dev/null +++ b/baseSDK/src/main/java/com/dayu/event/LearnTabNumEvent.java @@ -0,0 +1,10 @@ +package com.dayu.event; + +public class LearnTabNumEvent { + + public int num; + + public LearnTabNumEvent(int num) { + this.num = num; + } +} diff --git a/saleCenter/src/main/java/com/bigfish/salecenter/event/SaleTabNumEvent.java b/baseSDK/src/main/java/com/dayu/event/SaleTabNumEvent.java similarity index 90% rename from saleCenter/src/main/java/com/bigfish/salecenter/event/SaleTabNumEvent.java rename to baseSDK/src/main/java/com/dayu/event/SaleTabNumEvent.java index 0956730..e80d6ba 100644 --- a/saleCenter/src/main/java/com/bigfish/salecenter/event/SaleTabNumEvent.java +++ b/baseSDK/src/main/java/com/dayu/event/SaleTabNumEvent.java @@ -1,4 +1,4 @@ -package com.bigfish.salecenter.event; +package com.dayu.event; /** * Created by mReturn diff --git a/baseSDK/src/main/java/com/dayu/utils/MediaChooseUtils.java b/baseSDK/src/main/java/com/dayu/utils/MediaChooseUtils.java new file mode 100644 index 0000000..194cf24 --- /dev/null +++ b/baseSDK/src/main/java/com/dayu/utils/MediaChooseUtils.java @@ -0,0 +1,98 @@ +package com.dayu.utils; + +import android.app.Activity; +import android.os.Environment; + +import com.luck.picture.lib.PictureSelectionModel; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; + +import java.io.File; + +public class MediaChooseUtils { + + /** + * 选择单张图片 + */ + public static void chooseSigleImg(Activity activity) { + chooseMedia(activity,PictureMimeType.ofImage(),1,0); + } + + /** + * 选择头像图片并裁剪 + */ + public static void chooseAvatarImg(Activity activity) { + PictureSelectionModel selector = getPictureSelectionModel(activity, PictureMimeType.ofImage(), 1, 0); + selector.enableCrop(true)//是否裁剪 + .withAspectRatio(1, 1) + .freeStyleCropEnabled(false); + selector.forResult(PictureConfig.CHOOSE_REQUEST); + } + + /** + * 选择多张图片 + */ + public static void chooseImgs(Activity activity,int maxCount) { + chooseMedia(activity,PictureMimeType.ofImage(),maxCount,0); + } + + /** + * 选择单个视频 + */ + public static void chooseSigleVideo(Activity activity,int videoLength) { + chooseMedia(activity,PictureMimeType.ofVideo(),1,videoLength); + } + + /** + * 选择多个视频 + */ + public static void chooseVideos(Activity activity,int maxCount,int videoLength) { + chooseMedia(activity,PictureMimeType.ofVideo(),maxCount,videoLength); + } + + /** + * 选择多媒体文件 + * @param activity + * @param type + * @param maxCount + * @param videoLength + */ + public static void chooseMedia(Activity activity,int type,int maxCount,int videoLength) { + PictureSelectionModel selector = getPictureSelectionModel(activity, type, maxCount, videoLength); + selector.forResult(PictureConfig.CHOOSE_REQUEST); + } + + public static PictureSelectionModel getPictureSelectionModel(Activity activity, int type, int maxCount, int videoLength) { + return PictureSelector.create(activity) + .openGallery(type)//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo() + .maxSelectNum(maxCount)// 最大图片选择数量 int + .imageSpanCount(4)// 每行显示个数 int + .selectionMode(PictureConfig.MULTIPLE)// 多选 or 单选 PictureConfig.MULTIPLE or PictureConfig.SINGLE + .previewImage(true)// 是否可预览图片 true or false + .isCamera(true)// 是否显示拍照按钮 true or false + .recordVideoSecond(videoLength) //最大视频长度(秒) + .videoMaxSecond(videoLength) //最大视频长度(秒) + .isZoomAnim(true)// 图片列表点击 缩放效果 默认true + .sizeMultiplier(0.1f)// glide 加载图片大小 0~1之间 如设置 .glideOverride()无效 + .setOutputCameraPath("/CustomPath")// 自定义拍、照保存路径,可不填 + .compress(true)// 是否压缩 true or false + .glideOverride(300, 500)// int glide 加载宽高,越小图片列表越流畅,但会影响列表图片浏览的清晰度 + .hideBottomControls(true)// 是否显示uCrop工具栏,默认不显示 true or false + .compressSavePath(getPath())//压缩图片保存地址 + .previewEggs(true)// 预览图片时 是否增强左右滑动图片体验(图片滑动一半即可看到上一张是否选中) true or false + .minimumCompressSize(100)// 小于100kb的图片不压缩 + // .enableCrop(true)//是否裁剪 + // .freeStyleCropEnabled(true) + .synOrAsy(true); + } + + public static String getPath() { + String path = Environment.getExternalStorageDirectory() + "/dayu/image/"; + File file = new File(path); + if (file.mkdirs()) { + return path; + } + return path; + } +} diff --git a/baseSDK/src/main/java/com/dayu/widgets/MyJzvdStd.java b/baseSDK/src/main/java/com/dayu/widgets/MyJzvdStd.java new file mode 100644 index 0000000..e478470 --- /dev/null +++ b/baseSDK/src/main/java/com/dayu/widgets/MyJzvdStd.java @@ -0,0 +1,109 @@ +package com.dayu.widgets; + +import android.content.Context; +import android.util.AttributeSet; + +import com.dayu.baselibrary.R; + +import cn.jzvd.JzvdStd; + +public class MyJzvdStd extends JzvdStd { + public int curProgress; + public long curPosition; + private PlayCallBack callBack; + + public MyJzvdStd(Context context) { + super(context); + } + + public MyJzvdStd(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + public int getLayoutId() { + return R.layout.jz_layout_std; + } + + @Override + public void startVideo() { + super.startVideo(); + curProgress = 0; + curPosition = 0; + if (callBack != null) + callBack.onstart(); + } + + //onState 代表了播放器引擎的回调,播放视频各个过程的状态的回调 + + @Override + public void onProgress(int progress, long position, long duration) { + super.onProgress(progress, position, duration); + curProgress = progress; + curPosition = position; + } + + @Override + public void onStatePreparing() { + super.onStatePreparing(); + + } + + @Override + public void onStatePause() { + super.onStatePause(); + if (callBack != null) + callBack.onPause(); + } + + + @Override + public void onStateError() { + super.onStateError(); + } + + @Override + public void onStateAutoComplete() { + super.onStateAutoComplete(); + curProgress = 100; + curPosition = getDuration(); + if (callBack != null) + callBack.onComplete(); + } + + @Override + public void updateStartImage() { + if (state == STATE_PLAYING) { + startButton.setVisibility(VISIBLE); + startButton.setImageResource(cn.jzvd.R.drawable.jz_click_pause_selector); + replayTextView.setVisibility(GONE); + } else if (state == STATE_ERROR) { + startButton.setVisibility(INVISIBLE); + replayTextView.setVisibility(GONE); + } else if (state == STATE_AUTO_COMPLETE) { + startButton.setVisibility(VISIBLE); + startButton.setImageResource(cn.jzvd.R.drawable.jz_click_replay_selector); + replayTextView.setVisibility(VISIBLE); + } else { + startButton.setImageResource(cn.jzvd.R.drawable.jz_click_play_selector); + replayTextView.setVisibility(GONE); + if (state == 0 && callBack != null) + callBack.onPrepare(); + } + } + + + public void setPlayCallBack(PlayCallBack callBack) { + this.callBack = callBack; + } + + public interface PlayCallBack { + void onstart(); + + void onPrepare(); + + void onPause(); + + void onComplete(); + } +} diff --git a/baseSDK/src/main/res/drawable-hdpi/icon_like_gray.png b/baseSDK/src/main/res/drawable-hdpi/icon_like_gray.png new file mode 100644 index 0000000..bebbd48 Binary files /dev/null and b/baseSDK/src/main/res/drawable-hdpi/icon_like_gray.png differ diff --git a/baseSDK/src/main/res/drawable-hdpi/icon_like_red.png b/baseSDK/src/main/res/drawable-hdpi/icon_like_red.png new file mode 100644 index 0000000..8bd1c72 Binary files /dev/null and b/baseSDK/src/main/res/drawable-hdpi/icon_like_red.png differ diff --git a/baseSDK/src/main/res/drawable-hdpi/icon_looks.png b/baseSDK/src/main/res/drawable-hdpi/icon_looks.png new file mode 100644 index 0000000..38bc1f2 Binary files /dev/null and b/baseSDK/src/main/res/drawable-hdpi/icon_looks.png differ diff --git a/baseSDK/src/main/res/drawable-xhdpi/icon_add_blue.png b/baseSDK/src/main/res/drawable-xhdpi/icon_add_blue.png new file mode 100644 index 0000000..94aad6d Binary files /dev/null and b/baseSDK/src/main/res/drawable-xhdpi/icon_add_blue.png differ diff --git a/baseSDK/src/main/res/drawable-xhdpi/icon_video_default.png b/baseSDK/src/main/res/drawable-xhdpi/icon_video_default.png new file mode 100644 index 0000000..f9d175e Binary files /dev/null and b/baseSDK/src/main/res/drawable-xhdpi/icon_video_default.png differ diff --git a/baseSDK/src/main/res/drawable/bg_input_black_react.xml b/baseSDK/src/main/res/drawable/bg_input_black_react.xml new file mode 100644 index 0000000..a389645 --- /dev/null +++ b/baseSDK/src/main/res/drawable/bg_input_black_react.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + + <stroke + android:width="1dp" + android:color="#333" + /> + <corners android:radius="0.5dp"/> +</shape> \ No newline at end of file diff --git a/baseSDK/src/main/res/layout/layout_common_top_tab.xml b/baseSDK/src/main/res/layout/layout_common_top_tab.xml new file mode 100644 index 0000000..077dc9f --- /dev/null +++ b/baseSDK/src/main/res/layout/layout_common_top_tab.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:gravity="center" + android:orientation="vertical"> + <TextView + android:id="@+id/tabtext" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:gravity="center" + android:textStyle="bold" + android:textSize="30sp" + android:textColor="#585858" + /> + <TextView + android:id="@+id/tabicon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textColor="#585858" + android:textSize="13.3sp" + android:layout_gravity="center"/> + + +</LinearLayout> \ No newline at end of file diff --git a/baseSDK/src/main/res/values/strings.xml b/baseSDK/src/main/res/values/strings.xml index d5eaf06..a667e67 100644 --- a/baseSDK/src/main/res/values/strings.xml +++ b/baseSDK/src/main/res/values/strings.xml @@ -80,6 +80,7 @@ <string name="tv_about_us">扫码关注我们的微信服务号</string> <string name="tv_about_us_text">    传统低效的客服体系,正在成为厂商、服务商、消费者的包袱。大鱼准备以科技之力进行客服产业革命。运用Ai、云和大数据等技术,连接厂商、销售商、服务商和消费者,打造去中心化的智能共享客户服务解决方案。</string> <string name="tv_about_dayu">大鱼创想  版权所有</string> + <string name="tv_now_version">当前版本:</string> <string name="tv_about_user_feiyong">收取费用</string> <string name="tv_order_updoor_feiyong">上门费</string> <string name="tv_order_serve_feiyong">服务费用</string> @@ -973,7 +974,6 @@ C) 在甲方使用大鱼平台服务过程中产生的业务数据,客户数� <string name="save_str">保存</string> <string name="save_success">保存成功</string> <string name="save_fail">保存失败</string> - <string name="record_income_total">收入总额(元)</string> <string name="record_reward_total">收入总额(元)</string> <string name="record_done_service">完成服务工单</string> @@ -983,5 +983,29 @@ C) 在甲方使用大鱼平台服务过程中产生的业务数据,客户数� <string name="city_str">市</string> <string name="zone_str">区/县</string> + <!-- learn --> + <string name="learn_str">学习</string> + <string name="find_course">查找课程</string> + <array name="learn_top_tab_item"> + <item>公开课</item> + <item>已学习</item> + <item>已发布</item> + </array> + <string name="pub_course_title">我要开课</string> + <string name="course_theme">课程主题:</string> + <string name="pls_input_course_theme">请填写课程主题</string> + <string name="course_desc">课程简介:</string> + <string name="pls_input_course_desc">请填写课程简介</string> + <string name="upload_video">上传视频:</string> + <string name="pls_choose_video">请选择视频</string> + <string name="learn_tips">温馨提示:</string> + <string name="learn_tip1">1、请勿发布反动和涉黄内容的视频,平台有权下架并追究发布者的法律责任。</string> + <string name="learn_tip2">2、大鱼平台将对优质课程(点赞数)和热门课程(阅读数)的发布者进行现金奖励。</string> + <string name="confirm_pub">确认发布</string> + <string name="limit_10_words">限10个字</string> + <string name="limit_100_words">限100字</string> + <string name="course_detail">课程详情</string> + <string name="course_puber">发布方:</string> + </resources> diff --git a/baseSDK/src/main/res/values/styles.xml b/baseSDK/src/main/res/values/styles.xml index d5a7533..e4571bf 100755 --- a/baseSDK/src/main/res/values/styles.xml +++ b/baseSDK/src/main/res/values/styles.xml @@ -85,6 +85,35 @@ <item name="android:background">@drawable/bg_input_gray_react</item> </style> + <style name="learn_course_edit" parent="common_text_style"> + <item name="android:layout_width">match_parent</item> + <item name="android:layout_height">35dp</item> + <item name="android:padding">3dp</item> + <item name="android:layout_marginLeft">10dp</item> + <item name="android:gravity">left|center_vertical</item> + <item name="android:background">@drawable/bg_input_gray_react</item> + </style> + + <style name="ll_course_content" parent="common_text_style"> + <item name="android:layout_width">match_parent</item> + <item name="android:layout_height">wrap_content</item> + <item name="android:orientation">horizontal</item> + <item name="android:gravity">center_vertical</item> + <item name="android:layout_marginTop">15dp</item> + <item name="android:layout_marginLeft">5dp</item> + <item name="android:layout_marginRight">5dp</item> + </style> + + <style name="tv_course_left" parent="common_text_style"> + <item name="android:layout_width">60dp</item> + <item name="android:gravity">right</item> + </style> + + <style name="tv_course_content" parent="common_text_style"> + <item name="android:layout_marginLeft">10dp</item> + <item name="android:textColor">#8b8b8b</item> + </style> + <style name="sale_item_text" parent="common_text_style"> <item name="android:maxLines">1</item> </style> @@ -150,15 +179,27 @@ <item name="android:maxLines">1</item> </style> - <style name="btn_bottom_common"> - <item name="android:layout_width">match_parent</item> + <style name="btn_common"> + <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">45dp</item> - <item name="android:background">@drawable/tab_blue_react</item> <item name="android:textColor">@color/white</item> <item name="android:gravity">center</item> <item name="android:textSize">16sp</item> </style> + <style name="btn_bottom_common" parent="btn_common"> + <item name="android:layout_width">match_parent</item> + <item name="android:background">@drawable/tab_blue_react</item> + </style> + + + <style name="btn_common_gray" parent="btn_common"> + <item name="android:background">@drawable/tab_gray_react</item> + </style> + <style name="btn_common_blue" parent="btn_common"> + <item name="android:background">@drawable/tab_blue_react</item> + </style> + <style name="title"> <item name="android:layout_width">match_parent</item> diff --git a/gradle.properties b/gradle.properties index 81035b0..8183386 100755 --- a/gradle.properties +++ b/gradle.properties @@ -9,6 +9,9 @@ isOrderModule=true isManagerModule=true ##销售模块 isSaleModule=true +##培训模块 +isLearnModule=true + ##maven依赖 mavenMode=false BASE_URL=http://47.94.101.239:3112 diff --git a/learnCenter/.gitignore b/learnCenter/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/learnCenter/.gitignore @@ -0,0 +1 @@ +/build diff --git a/learnCenter/build.gradle b/learnCenter/build.gradle new file mode 100644 index 0000000..064f0b7 --- /dev/null +++ b/learnCenter/build.gradle @@ -0,0 +1,64 @@ +if (isLearnModule.toBoolean()) { + apply plugin: 'com.android.library' +} else { + apply plugin: 'com.android.application' +} + +android { + compileSdkVersion compile_sdk_version + buildToolsVersion build_tools_version + + defaultConfig { + minSdkVersion min_sdk_version + targetSdkVersion target_sdk_version + versionCode version_code + versionName verson_name + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + multiDexEnabled true + vectorDrawables.useSupportLibrary = true + + javaCompileOptions { + annotationProcessorOptions { + arguments = [moduleName: project.getName()] + } + } + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + buildTypes { + release { + minifyEnabled isReleaseMinify + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + + dataBinding { + enabled = true + } + + dexOptions { + preDexLibraries = false + } + + sourceSets { + main { + if (isLearnModule.toBoolean()) { + manifest.srcFile 'src/main/release/AndroidManifest.xml' + } else { + manifest.srcFile 'src/main/debug/AndroidManifest.xml' + } + } + } +} + +dependencies { + api fileTree(dir: 'libs', include: ['*.jar']) + + //ARouter + annotationProcessor "com.alibaba:arouter-compiler:$arouter_compiler_version" + api project(':provider') +} diff --git a/learnCenter/proguard-rules.pro b/learnCenter/proguard-rules.pro new file mode 100644 index 0000000..f1b4245 --- /dev/null +++ b/learnCenter/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/learnCenter/src/androidTest/java/com/dayu/learncenter/ExampleInstrumentedTest.java b/learnCenter/src/androidTest/java/com/dayu/learncenter/ExampleInstrumentedTest.java new file mode 100644 index 0000000..0c7112e --- /dev/null +++ b/learnCenter/src/androidTest/java/com/dayu/learncenter/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.dayu.learncenter; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.support.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getTargetContext(); + + assertEquals("com.dayu.learncenter.test", appContext.getPackageName()); + } +} diff --git a/learnCenter/src/main/debug/AndroidManifest.xml b/learnCenter/src/main/debug/AndroidManifest.xml new file mode 100644 index 0000000..aba1d20 --- /dev/null +++ b/learnCenter/src/main/debug/AndroidManifest.xml @@ -0,0 +1,2 @@ +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.dayu.learncenter" /> diff --git a/learnCenter/src/main/java/com/dayu/learncenter/adapter/LearnAdapter.java b/learnCenter/src/main/java/com/dayu/learncenter/adapter/LearnAdapter.java new file mode 100644 index 0000000..d2d6845 --- /dev/null +++ b/learnCenter/src/main/java/com/dayu/learncenter/adapter/LearnAdapter.java @@ -0,0 +1,54 @@ +package com.dayu.learncenter.adapter; + +import android.view.View; + +import com.dayu.base.ui.adapter.CoreAdapter; +import com.dayu.learncenter.R; +import com.dayu.learncenter.api.bean.CommonLearnBean; +import com.dayu.learncenter.databinding.ItemCommonLearnBinding; +import com.dayu.utils.GlideImageLoader; +import com.dayu.utils.LogUtils; +import com.dayu.utils.ToastUtils; +import com.dayu.widgets.MyJzvdStd; + +public class LearnAdapter extends CoreAdapter<CommonLearnBean,ItemCommonLearnBinding> { + private int type; + + public LearnAdapter(boolean needFoot,int type) { + super(needFoot); + this.type = type; + } + + @Override + protected void onBind(ItemCommonLearnBinding holder, CommonLearnBean item, int position) { + super.onBind(holder, item, position); + holder.tvTitle.setText(item.title); + holder.jzVideo.setUp(item.url,""); + GlideImageLoader.load(mContext, holder.jzVideo.posterImageView, item.url, R.drawable.icon_video_default); + holder.jzVideo.setPlayCallBack(new MyJzvdStd.PlayCallBack() { + @Override + public void onstart() { + LogUtils.e("videoState start "+item.id); + item.showDate = false; + holder.tvDate.setVisibility(View.GONE); + } + + @Override + public void onPrepare() { + LogUtils.e("videoState prepa3 "+item.id); + holder.tvDate.setVisibility(View.VISIBLE); + } + + @Override + public void onPause() { + LogUtils.e("videoState pause: "+item.id+" "+holder.jzVideo.curProgress + +" "+holder.jzVideo.curPosition+" "+holder.jzVideo.getDuration()); + } + + @Override + public void onComplete() { + LogUtils.e("videoState complete"); + } + }); + } +} diff --git a/learnCenter/src/main/java/com/dayu/learncenter/api/bean/CommonLearnBean.java b/learnCenter/src/main/java/com/dayu/learncenter/api/bean/CommonLearnBean.java new file mode 100644 index 0000000..50d3ae7 --- /dev/null +++ b/learnCenter/src/main/java/com/dayu/learncenter/api/bean/CommonLearnBean.java @@ -0,0 +1,14 @@ +package com.dayu.learncenter.api.bean; + +public class CommonLearnBean { + public int id; + public String url; + public String title; + public boolean showDate = true; + + public CommonLearnBean(int id, String url, String title) { + this.id = id; + this.url = url; + this.title = title; + } +} diff --git a/learnCenter/src/main/java/com/dayu/learncenter/presenter/common_learn/CommonLearnContract.java b/learnCenter/src/main/java/com/dayu/learncenter/presenter/common_learn/CommonLearnContract.java new file mode 100644 index 0000000..8780ed4 --- /dev/null +++ b/learnCenter/src/main/java/com/dayu/learncenter/presenter/common_learn/CommonLearnContract.java @@ -0,0 +1,12 @@ +package com.dayu.learncenter.presenter.common_learn; + +import com.dayu.base.ui.presenter.BaseListPresenter; +import com.dayu.common.BaseView; + +public interface CommonLearnContract { + interface View extends BaseView { + } + + abstract class Presenter extends BaseListPresenter<View> { + } +} diff --git a/learnCenter/src/main/java/com/dayu/learncenter/presenter/common_learn/CommonLearnPresenter.java b/learnCenter/src/main/java/com/dayu/learncenter/presenter/common_learn/CommonLearnPresenter.java new file mode 100644 index 0000000..3b56056 --- /dev/null +++ b/learnCenter/src/main/java/com/dayu/learncenter/presenter/common_learn/CommonLearnPresenter.java @@ -0,0 +1,28 @@ +package com.dayu.learncenter.presenter.common_learn; + +import android.databinding.ObservableField; + +import com.dayu.event.UserInfo; +import com.dayu.utils.UserManager; + +public class CommonLearnPresenter extends CommonLearnContract.Presenter{ + + private int mUserId; + private int type; + private ObservableField<Object> datas = new ObservableField<>(); + + public void setType(int type) { + this.type = type; + } + + @Override + public void onAttached() { + UserInfo userInfo = UserManager.getInstance().getUser(); + mUserId = Integer.parseInt(userInfo.getAccountId()); + } + + @Override + public ObservableField<Object> getSourceDatas() { + return datas; + } +} diff --git a/learnCenter/src/main/java/com/dayu/learncenter/ui/activity/CourseDetailActivity.java b/learnCenter/src/main/java/com/dayu/learncenter/ui/activity/CourseDetailActivity.java new file mode 100644 index 0000000..15fd43f --- /dev/null +++ b/learnCenter/src/main/java/com/dayu/learncenter/ui/activity/CourseDetailActivity.java @@ -0,0 +1,26 @@ +package com.dayu.learncenter.ui.activity; + +import com.dayu.base.ui.activity.BaseActivity; +import com.dayu.base.ui.presenter.SImplePresenter; +import com.dayu.learncenter.R; +import com.dayu.learncenter.databinding.ActivityCourseDetailBinding; + +/** + * 课程详情 + */ +public class CourseDetailActivity extends BaseActivity<SImplePresenter,ActivityCourseDetailBinding> { + @Override + public void setPresenter() { + + } + + @Override + public int getLayoutId() { + return R.layout.activity_course_detail; + } + + @Override + public void initView() { + mBind.titleBack.setOnClickListener(v->dumpBack()); + } +} diff --git a/learnCenter/src/main/java/com/dayu/learncenter/ui/activity/PubCourseActivity.java b/learnCenter/src/main/java/com/dayu/learncenter/ui/activity/PubCourseActivity.java new file mode 100644 index 0000000..8024e4e --- /dev/null +++ b/learnCenter/src/main/java/com/dayu/learncenter/ui/activity/PubCourseActivity.java @@ -0,0 +1,114 @@ +package com.dayu.learncenter.ui.activity; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; + +import com.dayu.base.ui.activity.BaseActivity; +import com.dayu.base.ui.presenter.SImplePresenter; +import com.dayu.learncenter.R; +import com.dayu.learncenter.databinding.ActivityPubCourseBinding; +import com.dayu.utils.GlideImageLoader; +import com.dayu.utils.MediaChooseUtils; +import com.dayu.utils.ToastUtils; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.compress.Luban; +import com.luck.picture.lib.compress.OnCompressListener; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.entity.LocalMedia; + +import java.util.List; + +/** + * 开课 + */ +public class PubCourseActivity extends BaseActivity<SImplePresenter, ActivityPubCourseBinding> { + private String theme; + private String desc; + private String videoPath; + + @Override + public void setPresenter() { + + } + + @Override + public int getLayoutId() { + return R.layout.activity_pub_course; + } + + @Override + public void initView() { + setListener(); + } + + private void setListener() { + mBind.titleBack.setOnClickListener(view -> dumpBack()); + mBind.btnCancle.setOnClickListener(view -> dumpBack()); + mBind.btnConfirm.setOnClickListener(view -> onConfimClick()); + mBind.rlVideo.setOnClickListener(v -> { + if (TextUtils.isEmpty(videoPath)) { + MediaChooseUtils.chooseSigleVideo(this, 180); + } + }); + mBind.ivDelete.setOnClickListener(v -> { + videoPath = ""; + setVideoView(); + }); + mBind.jzVideo.setOnClickListener(v->showToast("click")); + } + + private void onConfimClick() { + if (canSubmit()) { + showToast("submit"); + } + } + + //判断是否能提交 + private boolean canSubmit() { + String theme = mBind.edtTheme.getText().toString().trim(); + String desc = mBind.edtDesc.getText().toString(); + if (TextUtils.isEmpty(theme)) { + showToast(R.string.pls_input_course_theme); + return false; + } + if (TextUtils.isEmpty(desc) || TextUtils.isEmpty(desc.trim())) { + showToast(R.string.pls_input_course_desc); + return false; + } + if (TextUtils.isEmpty(videoPath)) { + showToast(R.string.pls_choose_video); + return false; + } + return true; + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List<LocalMedia> mSelectList = PictureSelector.obtainMultipleResult(data); + if (mSelectList != null) { + videoPath = mSelectList.get(0).getPath(); + setVideoView(); + } + break; + } + } + } + + //设置视频布局显示状态 + private void setVideoView() { + if (TextUtils.isEmpty(videoPath)) { + mBind.jzVideo.setVisibility(View.GONE); + mBind.ivDelete.setVisibility(View.GONE); + } else { + mBind.ivDelete.setVisibility(View.VISIBLE); + mBind.jzVideo.setVisibility(View.VISIBLE); + mBind.jzVideo.setUp(videoPath, ""); + GlideImageLoader.load(mActivity, mBind.jzVideo.posterImageView, videoPath, R.drawable.icon_video_default); + } + } +} diff --git a/learnCenter/src/main/java/com/dayu/learncenter/ui/fragment/CommonLearnFragment.java b/learnCenter/src/main/java/com/dayu/learncenter/ui/fragment/CommonLearnFragment.java new file mode 100644 index 0000000..6c835a6 --- /dev/null +++ b/learnCenter/src/main/java/com/dayu/learncenter/ui/fragment/CommonLearnFragment.java @@ -0,0 +1,90 @@ +package com.dayu.learncenter.ui.fragment; + +import android.os.Bundle; +import android.view.View; + +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.chad.library.adapter.base.BaseViewHolder; +import com.dayu.base.ui.fragment.BaseFragment; +import com.dayu.learncenter.R; +import com.dayu.learncenter.adapter.LearnAdapter; +import com.dayu.learncenter.api.bean.CommonLearnBean; +import com.dayu.learncenter.databinding.FragmentCommonLearnBinding; +import com.dayu.learncenter.databinding.ItemCommonLearnBinding; +import com.dayu.learncenter.presenter.common_learn.CommonLearnContract; +import com.dayu.learncenter.presenter.common_learn.CommonLearnPresenter; +import com.dayu.learncenter.ui.activity.CourseDetailActivity; +import com.dayu.learncenter.ui.activity.PubCourseActivity; +import com.dayu.widgets.listener.OnItemClickListener; + +import java.util.ArrayList; +import java.util.List; + +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; + +public class CommonLearnFragment extends BaseFragment<CommonLearnPresenter,FragmentCommonLearnBinding> + implements CommonLearnContract.View { + private int type; //1.商品 2.收藏 + + + public static CommonLearnFragment newInstance(int type) { + Bundle args = new Bundle(); + args.putInt("type", type); + CommonLearnFragment fragment = new CommonLearnFragment(); + fragment.setArguments(args); + return fragment; + } + + @Override + public void setPresenter() { + mBind.setPresenter(mPresenter); + } + + @Override + public int getLayoutId() { + return R.layout.fragment_common_learn; + } + + + @Override + protected void lazyLoad() { + super.lazyLoad(); + mPresenter.refresh(); + } + + @Override + public void initView() { + Bundle bundle = getArguments(); + type = bundle.getInt("type"); + mPresenter.setType(type); + mBind.edtSeacher.setText(getString(R.string.find_course)+type); + + mBind.rlSeacher.setVisibility(type==3?View.GONE:View.VISIBLE); + mBind.ivPubCourse.setOnClickListener(view -> startActivity(PubCourseActivity.class)); + + setAdapter(); + } + + private void setAdapter() { + List<CommonLearnBean> items = new ArrayList<>(); + String url = "http://dl.kf.ai/online/ka/spu/serviceDetailVideo/c8f6169b1272663588a24b48c6261a0f.mp4"; + for (int i=0;i<10;i++){ + items.add(new CommonLearnBean(i,url,"Video Title "+i)); + } + + LearnAdapter mAdapter = new LearnAdapter(true,type); + mAdapter.setViewType(R.layout.item_common_learn); + mBind.recyclerView.setAdapter(mAdapter); + mAdapter.setData(items); + mAdapter.setOnItemClickListener((item, bind) -> { + startActivity(CourseDetailActivity.class); + }); + } + + @Override + public void onPause() { + super.onPause(); + JzvdStd.goOnPlayOnPause(); + } +} diff --git a/learnCenter/src/main/java/com/dayu/learncenter/ui/fragment/HomeLearnFragment.java b/learnCenter/src/main/java/com/dayu/learncenter/ui/fragment/HomeLearnFragment.java new file mode 100644 index 0000000..74e3abc --- /dev/null +++ b/learnCenter/src/main/java/com/dayu/learncenter/ui/fragment/HomeLearnFragment.java @@ -0,0 +1,133 @@ +package com.dayu.learncenter.ui.fragment; + +import android.content.res.AssetManager; +import android.graphics.Typeface; +import android.support.design.widget.TabLayout; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.TextView; + +import com.dayu.base.ui.adapter.FragmentAdapter; +import com.dayu.base.ui.fragment.BaseFragment; +import com.dayu.base.ui.presenter.SImplePresenter; +import com.dayu.event.LearnTabNumEvent; +import com.dayu.learncenter.R; +import com.dayu.learncenter.databinding.FragmentHomeLearnBinding; +import com.dayu.utils.TabLayoutUtils; +import com.dayu.utils.UIUtils; +import com.umeng.analytics.MobclickAgent; + +import org.greenrobot.eventbus.EventBus; + +import java.util.ArrayList; +import java.util.List; + +public class HomeLearnFragment extends BaseFragment<SImplePresenter, FragmentHomeLearnBinding> { + public List<Fragment> list_fragments; + private FragmentAdapter adapter; + private TextView mTabNumTv; + private TextView mTabTextTv; + private boolean isFirstAddTab = true; + private String[] tabDesc; + + @Override + public void setPresenter() { + } + + @Override + public int getLayoutId() { + return R.layout.fragment_home_learn; + } + + @Override + public void initView() { + tabDesc = UIUtils.getStrings(R.array.learn_top_tab_item); + initData(); + } + + private void initData() { + list_fragments = new ArrayList<>(); + list_fragments.add(CommonLearnFragment.newInstance(1)); + list_fragments.add(CommonLearnFragment.newInstance(2)); + list_fragments.add(CommonLearnFragment.newInstance(3)); + adapter = new FragmentAdapter(getFragmentManager(), list_fragments); + mBind.vpLearn.setAdapter(adapter); + mBind.tabLearn.setupWithViewPager(mBind.vpLearn); + mBind.tabLearn.setTabMode(TabLayout.MODE_FIXED); + mBind.vpLearn.setOffscreenPageLimit(4); + mBind.tabLearn.post(() -> + TabLayoutUtils.setIndicator(mBind.tabLearn, 0, 0, R.color.cl_order_item_line_bg, mActivity)); + mBind.tabLearn.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { + @Override + public void onTabSelected(TabLayout.Tab tab) { + int temp = tab.getPosition(); + if (tab.getCustomView() == null) { + return; + } + mTabNumTv = tab.getCustomView().findViewById(R.id.tabtext); + mTabTextTv = tab.getCustomView().findViewById(R.id.tabicon); + mTabNumTv.setTextColor(getResources().getColor(R.color.bg_button)); + mTabTextTv.setTextColor(getResources().getColor(R.color.bg_button)); + mBind.vpLearn.setCurrentItem(temp); + MobclickAgent.onPageStart("HomeLearnFragment" + temp); + } + + @Override + public void onTabUnselected(TabLayout.Tab tab) { + if (mTabNumTv == null || mTabTextTv == null) { + return; + } + int temp = tab.getPosition(); + mTabNumTv.setTextColor(getResources().getColor(R.color.cl_tab_init)); + mTabTextTv.setTextColor(getResources().getColor(R.color.cl_tab_init)); + } + + @Override + public void onTabReselected(TabLayout.Tab tab) { + } + }); + + setTabNum(0); + +// mPresenter.chooseTab(0); + } + + public void setTabNum(int myTabIndex) { + EventBus.getDefault().post(new LearnTabNumEvent(1)); + String[] tabNum = new String[]{0 + "", 0 + "", 0 + ""}; + if (isFirstAddTab) { + mBind.tabLearn.removeAllTabs(); + mBind.tabLearn.addTab(mBind.tabLearn.newTab().setCustomView(CreatTab(0, tabNum[0], tabDesc[0]))); + mBind.tabLearn.addTab(mBind.tabLearn.newTab().setCustomView(CreatTab(1, tabNum[1], tabDesc[1]))); + mBind.tabLearn.addTab(mBind.tabLearn.newTab().setCustomView(CreatTab(2, tabNum[2], tabDesc[2]))); + isFirstAddTab = false; + } else { + for (int i = 0; i < mBind.tabLearn.getTabCount(); i++) { + TextView tv = mBind.tabLearn.getTabAt(i).getCustomView().findViewById(R.id.tabtext); + TextView tvIcon = mBind.tabLearn.getTabAt(i).getCustomView().findViewById(R.id.tabicon); + tv.setText(tabNum[i]); + tvIcon.setText(tabDesc[i]); + } + } + if (myTabIndex != -1) { +// mBind.vpLearn.setCurrentItem(myTabIndex); + mBind.tabLearn.getTabAt(myTabIndex).select(); + } + } + + private View CreatTab(int index, String number, String iconID) { + View newtab = LayoutInflater.from(mActivity).inflate(R.layout.layout_common_top_tab, null); + TextView textView_number = newtab.findViewById(R.id.tabtext); + AssetManager mgr = mActivity.getAssets(); + if (index == 0) { + textView_number.setTextColor(getResources().getColor(R.color.cl_tab_read)); + } + Typeface tf = Typeface.createFromAsset(mgr, "fonts/DIN Alternate Bold.ttf"); + textView_number.setTypeface(tf); + textView_number.setText(number); + TextView textView = newtab.findViewById(R.id.tabicon); + textView.setText(iconID); + return newtab; + } +} diff --git a/learnCenter/src/main/release/AndroidManifest.xml b/learnCenter/src/main/release/AndroidManifest.xml new file mode 100644 index 0000000..991443d --- /dev/null +++ b/learnCenter/src/main/release/AndroidManifest.xml @@ -0,0 +1,18 @@ +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.dayu.learncenter" > + <application + android:allowBackup="true" + android:label="@string/app_name" + android:supportsRtl="true"> + <activity android:name=".ui.activity.PubCourseActivity" + android:configChanges="orientation|screenSize|keyboardHidden" + android:screenOrientation="portrait" + /> + <activity android:name=".ui.activity.CourseDetailActivity" + android:configChanges="orientation|screenSize|keyboardHidden" + android:screenOrientation="portrait" + /> + + </application> +</manifest> + diff --git a/learnCenter/src/main/res/layout/activity_course_detail.xml b/learnCenter/src/main/res/layout/activity_course_detail.xml new file mode 100644 index 0000000..109ca3c --- /dev/null +++ b/learnCenter/src/main/res/layout/activity_course_detail.xml @@ -0,0 +1,191 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android"> + + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/white"> + + <RelativeLayout + android:id="@+id/rl_title" + style="@style/title"> + + <TextView + android:id="@+id/tv_title" + style="@style/text_title" + android:text="@string/course_detail" /> + + <ImageView + android:id="@+id/title_back" + style="@style/title_image_back" /> + + <ImageView + style="@style/card_line" + android:layout_alignParentBottom="true" /> + </RelativeLayout> + + <android.support.v4.widget.NestedScrollView + android:id="@+id/nsv_operate" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_below="@id/rl_title" + > + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + <LinearLayout style="@style/ll_course_content"> + + <TextView + style="@style/tv_course_left" + android:text="@string/course_theme" /> + + <TextView + android:id="@+id/tv_theme" + style="@style/tv_course_content" + /> + </LinearLayout> + <LinearLayout style="@style/ll_course_content"> + + <TextView + style="@style/tv_course_left" + android:text="@string/course_desc" + /> + + <TextView + android:id="@+id/tv_desc" + style="@style/tv_course_content" + /> + </LinearLayout> + <LinearLayout style="@style/ll_course_content"> + + <TextView + style="@style/tv_course_left" + android:text="@string/course_puber" + /> + + <TextView + android:id="@+id/tv_puber" + style="@style/tv_course_content" + /> + </LinearLayout> + + <LinearLayout + android:id="@+id/ll_video" + android:layout_width="match_parent" + android:layout_height="180dp" + android:layout_marginTop="15dp"> + + <cn.jzvd.JzvdStd + android:id="@+id/jz_video" + android:layout_width="match_parent" + android:layout_height="match_parent" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:gravity="center_vertical" + > + <TextView + android:id="@+id/tv_component" + android:layout_width="0dp" + android:layout_weight="1" + android:layout_height="43dp" + android:gravity="center_vertical" + android:text="留言" + android:textColor="@color/cl_home_title_text_color" + android:textSize="14sp" + android:textStyle="bold" /> + + <ImageView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/icon_looks" + android:layout_marginLeft="10dp" + /> + <TextView + android:id="@+id/tv_looks" + style="@style/common_text_style" + android:text="12345" + android:layout_marginLeft="5dp" + /> + <ImageView + android:id="@+id/iv_like" + android:layout_width="18dp" + android:layout_height="18dp" + android:src="@drawable/icon_like_gray" + android:layout_marginLeft="10dp" + /> + <TextView + android:id="@+id/tv_like" + style="@style/common_text_style" + android:text="12345" + android:layout_marginLeft="5dp" + android:layout_marginRight="10dp" + /> + </LinearLayout> + + + <View + android:layout_width="match_parent" + android:layout_height="1dp" + android:background="@color/color_ee" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_margin="10dp" + android:focusable="true" + android:focusableInTouchMode="true" + android:orientation="horizontal"> + + <ImageView + android:id="@+id/iv_avatar" + android:layout_width="35dp" + android:layout_height="35dp" + android:src="@drawable/icon_user_default" + android:layout_marginRight="10dp" /> + + <EditText + android:id="@+id/edt_comment" + android:layout_width="0dp" + android:layout_height="35dp" + android:layout_weight="1" + android:background="#f5f5f5" + android:hint="@string/ask_detail" + android:padding="5dp" + android:paddingLeft="5dp" + android:singleLine="true" + android:textSize="13sp" /> + + <Button + android:id="@+id/btn_send" + android:layout_width="80dp" + android:layout_height="35dp" + android:layout_gravity="center_vertical" + android:background="@color/cl_home_button" + android:gravity="center" + android:text="@string/send_str" + android:textColor="@color/white" + android:textSize="13sp" /> + </LinearLayout> + + + <android.support.v7.widget.RecyclerView + android:id="@+id/rv_component" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + /> + </LinearLayout> + </android.support.v4.widget.NestedScrollView> + + + </RelativeLayout> +</layout> \ No newline at end of file diff --git a/learnCenter/src/main/res/layout/activity_pub_course.xml b/learnCenter/src/main/res/layout/activity_pub_course.xml new file mode 100644 index 0000000..9528084 --- /dev/null +++ b/learnCenter/src/main/res/layout/activity_pub_course.xml @@ -0,0 +1,167 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android" + > + + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/white" + > + + <RelativeLayout + android:id="@+id/rl_title" + style="@style/title"> + + <TextView + android:id="@+id/tv_title" + style="@style/text_title" + android:text="@string/pub_course_title" /> + + <ImageView + android:id="@+id/title_back" + style="@style/title_image_back" /> + + <ImageView + style="@style/card_line" + android:layout_alignParentBottom="true" /> + </RelativeLayout> + + <ScrollView + android:layout_below="@+id/rl_title" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:overScrollMode="never" + android:padding="10dp" + android:layout_marginBottom="60dp" + android:scrollbars="none"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + <LinearLayout style="@style/ll_part_bottom"> + <TextView + style="@style/common_text_style" + android:drawableLeft="@drawable/icon_star_necessary" + android:text="@string/course_theme" /> + + <EditText + android:id="@+id/edt_theme" + style="@style/learn_course_edit" + android:maxLength="10" + android:hint="@string/limit_10_words" /> + </LinearLayout> + + <LinearLayout style="@style/ll_part_bottom"> + <TextView + style="@style/common_text_style" + android:drawableLeft="@drawable/icon_star_necessary" + android:text="@string/course_desc" /> + + <EditText + android:id="@+id/edt_desc" + style="@style/learn_course_edit" + android:layout_height="100dp" + android:maxLength="100" + android:hint="@string/limit_100_words" /> + </LinearLayout> + + + <TextView + style="@style/common_text_style" + android:layout_marginTop="20dp" + android:drawableLeft="@drawable/icon_star_necessary" + android:text="@string/upload_video" /> + + <RelativeLayout + android:id="@+id/rl_video" + android:layout_width="match_parent" + android:layout_height="180dp" + android:layout_margin="10dp" + android:background="@drawable/bg_input_gray_react" + > + + <TextView + style="@style/common_text_style" + android:textSize="30sp" + android:textColor="#999" + android:text="+" + android:layout_centerInParent="true" + /> + <cn.jzvd.JzvdStd + android:visibility="gone" + android:id="@+id/jz_video" + android:layout_width="match_parent" + android:layout_height="match_parent" /> + <ImageView + android:visibility="gone" + android:id="@+id/iv_delete" + android:layout_width="25dp" + android:layout_height="25dp" + android:layout_alignParentRight="true" + android:layout_alignParentTop="true" + android:src="@drawable/img_photo_delete" /> + + </RelativeLayout> + + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:background="#f2f2f2" + android:padding="2dp" + android:layout_marginTop="15dp" + > + <TextView + style="@style/common_text_style" + android:textSize="16sp" + android:text="@string/learn_tips" + android:textStyle="bold" + /> + <TextView + style="@style/common_text_style" + android:text="@string/learn_tip1" + android:layout_marginTop="25dp" + /> + <TextView + style="@style/common_text_style" + android:text="@string/learn_tip2" + android:layout_marginTop="25dp" + android:layout_marginBottom="15dp" + /> + + </LinearLayout> + + </LinearLayout> + + </ScrollView> + + <LinearLayout + android:layout_alignParentBottom="true" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:layout_marginBottom="15dp" + android:paddingLeft="15dp" + android:paddingRight="15dp" + > + <Button + android:id="@+id/btn_cancle" + style="@style/btn_common_gray" + android:layout_width="0dp" + android:layout_weight="1" + android:text="@string/cancle" + /> + <Button + android:id="@+id/btn_confirm" + android:layout_marginLeft="25dp" + style="@style/btn_common_blue" + android:layout_width="0dp" + android:text="@string/confirm_pub" + android:layout_weight="1.5" + /> + </LinearLayout> + </RelativeLayout> +</layout> \ No newline at end of file diff --git a/learnCenter/src/main/res/layout/fragment_common_learn.xml b/learnCenter/src/main/res/layout/fragment_common_learn.xml new file mode 100644 index 0000000..97cafa8 --- /dev/null +++ b/learnCenter/src/main/res/layout/fragment_common_learn.xml @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto"> + + <data> + + <variable + name="presenter" + type="com.dayu.base.ui.presenter.BaseListPresenter" /> + </data> + + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:focusable="true" + android:focusableInTouchMode="true" + android:background="#f5f5f5" + android:orientation="vertical"> + + <RelativeLayout + android:id="@+id/rl_seacher" + android:layout_width="match_parent" + android:layout_height="45dp" + android:background="@color/cl_white" + android:layout_marginLeft="13dp" + android:layout_marginRight="13dp" + > + + <EditText + android:id="@+id/edt_seacher" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_centerVertical="true" + android:layout_marginBottom="5dp" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:background="@null" + android:gravity="center" + android:hint="@string/find_course" + android:imeOptions="actionSearch" + android:inputType="text" + android:singleLine="true" + android:layout_toLeftOf="@+id/tv_cancel" + android:textSize="15sp" /> + + + <TextView + android:id="@+id/tv_cancel" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentRight="true" + android:layout_centerVertical="true" + android:layout_marginRight="20dp" + android:gravity="center" + android:text="@string/cancle" + android:textColor="@color/cl_black" + android:textSize="16sp" + android:textStyle="bold" + android:visibility="gone" + /> + + <ImageView + android:layout_width="match_parent" + android:layout_height="5dp" + android:layout_alignParentBottom="true" + android:src="@drawable/line_shape" /> + </RelativeLayout> + + + <com.dayu.widgets.LRecyclerView + android:layout_below="@id/rl_seacher" + android:id="@+id/recyclerView" + setPresenter="@{presenter}" + android:layout_width="match_parent" + android:layout_height="match_parent" /> + + <ImageView + android:id="@+id/iv_pub_course" + android:layout_width="50dp" + android:layout_height="50dp" + android:layout_alignParentBottom="true" + android:layout_alignParentRight="true" + android:layout_marginBottom="50dp" + android:layout_marginRight="30dp" + android:src="@drawable/icon_add_blue" + /> + </RelativeLayout> + +</layout> \ No newline at end of file diff --git a/learnCenter/src/main/res/layout/fragment_home_learn.xml b/learnCenter/src/main/res/layout/fragment_home_learn.xml new file mode 100644 index 0000000..300c33a --- /dev/null +++ b/learnCenter/src/main/res/layout/fragment_home_learn.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto"> + + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/cl_white" + android:orientation="vertical"> + + <RelativeLayout style="@style/title"> + + <TextView + style="@style/text_title" + android:text="@string/learn_str" /> + + </RelativeLayout> + + + <android.support.design.widget.TabLayout + android:id="@+id/tab_learn" + android:layout_width="match_parent" + android:layout_height="78dp" + app:tabIndicatorColor="@color/cl_tab_line" + app:tabMaxWidth="0dp" + app:tabIndicatorHeight="0dp" + app:tabBackground="@drawable/top_tab_selector" + app:tabMode="fixed" /> + + <ImageView style="@style/card_line" /> + + <android.support.v4.view.ViewPager + android:id="@+id/vp_learn" + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="1" /> + </LinearLayout> + +</layout> \ No newline at end of file diff --git a/learnCenter/src/main/res/layout/item_common_learn.xml b/learnCenter/src/main/res/layout/item_common_learn.xml new file mode 100644 index 0000000..65ebe5f --- /dev/null +++ b/learnCenter/src/main/res/layout/item_common_learn.xml @@ -0,0 +1,100 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto"> + + + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="@dimen/dp_13.3" + android:layout_marginTop="5dp" + android:layout_marginRight="@dimen/dp_13.3" + android:background="@drawable/item_shape"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <RelativeLayout + android:id="@+id/rl_video" + android:layout_width="match_parent" + android:layout_height="180dp"> + + <com.dayu.widgets.MyJzvdStd + android:id="@+id/jz_video" + android:layout_width="match_parent" + android:layout_height="match_parent" /> + </RelativeLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="45dp" + android:gravity="center_vertical" + android:orientation="horizontal"> + + <TextView + android:id="@+id/tv_title" + style="@style/common_text_style" + android:layout_width="0dp" + android:layout_marginLeft="5dp" + android:layout_weight="1" + android:maxLines="2" + android:text="标题" /> + + <ImageView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" + android:src="@drawable/icon_looks" /> + + <TextView + android:id="@+id/tv_looks" + style="@style/common_text_style" + android:layout_marginLeft="5dp" + android:text="12345" /> + + <ImageView + android:id="@+id/iv_like" + android:layout_width="18dp" + android:layout_height="18dp" + android:layout_marginLeft="10dp" + android:src="@drawable/icon_like_gray" /> + + <TextView + android:id="@+id/tv_like" + style="@style/common_text_style" + android:layout_marginLeft="5dp" + android:layout_marginRight="10dp" + android:text="12345" /> + </LinearLayout> + + </LinearLayout> + + <TextView + android:id="@+id/tv_progress" + style="@style/common_text_style" + android:padding="10dp" + android:text="学习进度 0%" + android:textColor="@color/text_common_blue" + android:textSize="20sp" + android:layout_marginTop="15dp" + android:visibility="gone" + android:layout_centerHorizontal="true" + /> + <TextView + android:id="@+id/tv_date" + style="@style/common_text_style" + android:height="36dp" + android:gravity="center" + android:paddingLeft="15dp" + android:paddingRight="15dp" + android:text="发布时间 2020-01-01" + android:background="#80ffffff" + android:layout_marginTop="130dp" + android:layout_centerHorizontal="true" + /> + + </RelativeLayout> + +</layout> \ No newline at end of file diff --git a/learnCenter/src/main/res/values/strings.xml b/learnCenter/src/main/res/values/strings.xml new file mode 100644 index 0000000..5c2a009 --- /dev/null +++ b/learnCenter/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ +<resources> + <string name="app_name">LearnCenter</string> +</resources> diff --git a/learnCenter/src/test/java/com/dayu/learncenter/ExampleUnitTest.java b/learnCenter/src/test/java/com/dayu/learncenter/ExampleUnitTest.java new file mode 100644 index 0000000..06242e5 --- /dev/null +++ b/learnCenter/src/test/java/com/dayu/learncenter/ExampleUnitTest.java @@ -0,0 +1,17 @@ +package com.dayu.learncenter; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() { + assertEquals(4, 2 + 2); + } +} \ No newline at end of file diff --git a/orderCenter/src/main/java/com/dayu/order/ui/fragment/OperateDetailFragment.java b/orderCenter/src/main/java/com/dayu/order/ui/fragment/OperateDetailFragment.java index a55c85e..ebb1903 100644 --- a/orderCenter/src/main/java/com/dayu/order/ui/fragment/OperateDetailFragment.java +++ b/orderCenter/src/main/java/com/dayu/order/ui/fragment/OperateDetailFragment.java @@ -89,7 +89,7 @@ public class OperateDetailFragment extends BaseFragment<SImplePresenter, Fragmen // String url = "http://jzvd.nathen.cn/c6e3dc12a1154626b3476d9bf3bd7266/6b56c5f0dc31428083757a45764763b0-5287d2089db37e62345123a1be272f8b.mp4"; String url = operateInfo.getVideoUrl(); mBind.jzVideo.setUp(url, ""); - GlideImageLoader.load(mActivity, mBind.jzVideo.thumbImageView, url, R.drawable.icon_app_logo); + GlideImageLoader.load(mActivity, mBind.jzVideo.posterImageView, url, R.drawable.icon_video_default); setListener(); } diff --git a/orderCenter/src/main/res/layout/fragment_order_home.xml b/orderCenter/src/main/res/layout/fragment_order_home.xml index cc10155..caf559b 100755 --- a/orderCenter/src/main/res/layout/fragment_order_home.xml +++ b/orderCenter/src/main/res/layout/fragment_order_home.xml @@ -64,6 +64,7 @@ android:layout_marginBottom="50dp" android:layout_marginRight="10dp" android:src="@drawable/icon_create_order" - android:visibility="gone" /> + android:visibility="gone" + /> </RelativeLayout> </layout> \ No newline at end of file diff --git a/saleCenter/src/main/java/com/bigfish/salecenter/api/SaleService.java b/saleCenter/src/main/java/com/bigfish/salecenter/api/SaleService.java index afbcbe2..56a9b6c 100644 --- a/saleCenter/src/main/java/com/bigfish/salecenter/api/SaleService.java +++ b/saleCenter/src/main/java/com/bigfish/salecenter/api/SaleService.java @@ -1,6 +1,5 @@ package com.bigfish.salecenter.api; -import com.bigfish.salecenter.event.SaleTabNumEvent; import com.bigfish.salecenter.model.CollectProductData; import com.bigfish.salecenter.model.CommentBean; import com.bigfish.salecenter.model.CommentPostData; diff --git a/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/HomeSaleFragment.java b/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/HomeSaleFragment.java index 60707dd..3586bd8 100644 --- a/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/HomeSaleFragment.java +++ b/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/HomeSaleFragment.java @@ -6,22 +6,18 @@ import android.os.Bundle; import android.support.design.widget.TabLayout; import android.view.LayoutInflater; import android.view.View; -import android.view.ViewGroup; import android.widget.TextView; import com.bigfish.salecenter.R; import com.bigfish.salecenter.databinding.FragmentHomeSaleBinding; import com.bigfish.salecenter.event.RefreshSaleTab; -import com.bigfish.salecenter.event.SaleTabNumEvent; +import com.dayu.event.SaleTabNumEvent; import com.bigfish.salecenter.model.SaleTab; import com.bigfish.salecenter.presenter.homesale.HomeSaleContract; import com.bigfish.salecenter.presenter.homesale.HomeSalePresenter; import com.dayu.base.ui.adapter.FragmentAdapter; import com.dayu.base.ui.fragment.BaseFragment; -import com.dayu.provider.event.RefreshTab; -import com.dayu.utils.LogUtils; import com.dayu.utils.TabLayoutUtils; -import com.dayu.utils.ToastUtils; import com.umeng.analytics.MobclickAgent; import android.support.v4.app.Fragment; diff --git a/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/ProductInstructionFragment.java b/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/ProductInstructionFragment.java index 5bd8bbf..d804087 100644 --- a/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/ProductInstructionFragment.java +++ b/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/ProductInstructionFragment.java @@ -117,7 +117,7 @@ public class ProductInstructionFragment extends BaseFragment<SImplePresenter, Fr } else { mBind.llVideo.setVisibility(View.VISIBLE); mBind.jzVideo.setUp(url, ""); - GlideImageLoader.load(mActivity, mBind.jzVideo.thumbImageView, url, R.drawable.icon_app_logo); + GlideImageLoader.load(mActivity, mBind.jzVideo.posterImageView, url, R.drawable.icon_video_default); } } diff --git a/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/SaleProductFragment.java b/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/SaleProductFragment.java index 93b6edf..a7e5199 100644 --- a/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/SaleProductFragment.java +++ b/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/SaleProductFragment.java @@ -56,6 +56,11 @@ public class SaleProductFragment extends BaseFragment<SaleProductPresent, Fragme } @Override + public int getLayoutId() { + return R.layout.fragment_common_sale; + } + + @Override protected void lazyLoad() { super.lazyLoad(); mPresenter.refresh(); @@ -85,8 +90,8 @@ public class SaleProductFragment extends BaseFragment<SaleProductPresent, Fragme } }); } - //搜索 + private void initSearchView() { mBind.edtSeacher.setHint(mActivity.getString(R.string.input_sale_product)); mBind.edtSeacher.addTextChangedListener(new MyTextWatcher(){ @@ -123,19 +128,14 @@ public class SaleProductFragment extends BaseFragment<SaleProductPresent, Fragme }); } - //跳转详情页 + private void toDetail(ProductListBean item) { Intent intent = new Intent(mActivity, ProductDetailActivity.class); intent.putExtra("id", item.getId()); mActivity.startActivity(intent); } - @Override - public int getLayoutId() { - return R.layout.fragment_common_sale; - } - @Subscribe public void onCollectChange(CollectChangedEvent event) { diff --git a/saleCenter/src/main/res/layout/fragment_common_sale.xml b/saleCenter/src/main/res/layout/fragment_common_sale.xml index 8bea08c..a24a5d5 100644 --- a/saleCenter/src/main/res/layout/fragment_common_sale.xml +++ b/saleCenter/src/main/res/layout/fragment_common_sale.xml @@ -12,6 +12,7 @@ <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" + android:background="#f5f5f5" android:focusable="true" android:focusableInTouchMode="true" android:orientation="vertical"> @@ -20,15 +21,19 @@ android:id="@+id/rl_seacher" android:layout_width="match_parent" android:layout_height="45dp" - android:background="@color/cl_white" - > + android:layout_marginLeft="13dp" + android:layout_marginRight="13dp" + android:background="@color/cl_white"> <EditText android:id="@+id/edt_seacher" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerVertical="true" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" android:layout_marginBottom="5dp" + android:layout_toLeftOf="@+id/tv_cancel" android:background="@null" android:gravity="center" android:hint="@string/input_sale_product" @@ -50,8 +55,7 @@ android:textColor="@color/cl_black" android:textSize="16sp" android:textStyle="bold" - android:visibility="gone" - /> + android:visibility="gone" /> <ImageView android:layout_width="match_parent" @@ -65,8 +69,7 @@ android:id="@+id/recyclerView" setPresenter="@{presenter}" android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="#f5f5f5" /> + android:layout_height="match_parent" /> </LinearLayout> </layout> \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index bcce3e4..02c9ce6 100755 --- a/settings.gradle +++ b/settings.gradle @@ -1,4 +1,4 @@ -include ':app', ':saleCenter', +include ':app', ':saleCenter', ':learnCenter', ':provider', ':baseSDK', ':messageCenter', @@ -8,4 +8,5 @@ include ':app', ':saleCenter', ':locationComponent', ':pickerview', ':wheelview', - ':IDCardLib', ':umeng' + ':IDCardLib', + ':umeng'