Commit bed72fd5 authored by mengcuiguang's avatar mengcuiguang

首页视频 书城合并

parent 60ed9bb3
...@@ -166,6 +166,8 @@ dependencies { ...@@ -166,6 +166,8 @@ dependencies {
implementation 'com.daimajia.easing:library:2.0@aar' implementation 'com.daimajia.easing:library:2.0@aar'
implementation 'com.daimajia.androidanimations:library:2.3@aar' implementation 'com.daimajia.androidanimations:library:2.3@aar'
implementation 'com.romandanylyk:pageindicatorview:1.0.3' implementation 'com.romandanylyk:pageindicatorview:1.0.3'
// xtablayout
implementation 'com.androidkun:XTabLayout:1.1.4'
// 工具类 // 工具类
...@@ -227,6 +229,7 @@ dependencies { ...@@ -227,6 +229,7 @@ dependencies {
implementation 'androidx.fragment:fragment:1.0.0' implementation 'androidx.fragment:fragment:1.0.0'
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
......
...@@ -83,7 +83,7 @@ public class MintsApplication extends MultiDexApplication { ...@@ -83,7 +83,7 @@ public class MintsApplication extends MultiDexApplication {
e.printStackTrace(); e.printStackTrace();
} }
// ZhangyueManager.INSTANCE.attachBaseContextIreader(this); ZhangyueManager.INSTANCE.attachBaseContextIreader(this);
} }
/** /**
...@@ -119,7 +119,7 @@ public class MintsApplication extends MultiDexApplication { ...@@ -119,7 +119,7 @@ public class MintsApplication extends MultiDexApplication {
// LiebaoManager.getInstance().initCmGameSdk(); // LiebaoManager.getInstance().initCmGameSdk();
// 掌阅书城 // 掌阅书城
// ZhangyueManager.INSTANCE.onCreateIreader(this); ZhangyueManager.INSTANCE.onCreateIreader(this);
} }
/** /**
......
...@@ -12,10 +12,10 @@ object ZhangyueManager { ...@@ -12,10 +12,10 @@ object ZhangyueManager {
fun onCreateIreader(application: Application){ fun onCreateIreader(application: Application){
IreaderApi.onCreate(application, APPID) IreaderApi.onCreate(application, APPID)
IreaderApi.attachBaseContext(application)
} }
fun attachBaseContextIreader(application: Application){ fun attachBaseContextIreader(application: Application){
IreaderApi.attachBaseContext(application)
} }
} }
\ No newline at end of file
package com.mints.goodmoney.mvp.presenters
import com.mints.goodmoney.MintsApplication
import com.mints.goodmoney.common.Constant
import com.mints.goodmoney.common.DeviceInfo
import com.mints.goodmoney.manager.AppHttpManager
import com.mints.goodmoney.manager.ShumeiManager
import com.mints.goodmoney.manager.UserManager
import com.mints.goodmoney.mvp.model.BaseResponse
import com.mints.goodmoney.mvp.model.MainVedioMsgBean
import com.mints.goodmoney.mvp.model.UserBean
import com.mints.goodmoney.mvp.model.UserTaskMsgBean
import com.mints.goodmoney.mvp.views.BookView
import com.mints.goodmoney.mvp.views.HomeView
import com.mints.goodmoney.utils.DeviceUuidFactory
import com.mints.library.net.neterror.BaseSubscriber
import com.mints.library.net.neterror.Throwable
import net.grandcentrix.tray.AppPreferences
import java.util.*
class BookPresenter : BasePresenter<BookView>() {
fun addReadSeconds(seconds: Int) {
val vo = HashMap<String, Any>()
vo["seconds"] = seconds
AppHttpManager.getInstance(loanApplication)
.call(loanService.addReadSeconds(vo),
object : BaseSubscriber<BaseResponse<UserBean>>() {
override fun onCompleted() {
}
override fun onError(e: Throwable) {
}
override fun onNext(baseResponse: BaseResponse<UserBean>) {
val code = baseResponse.getStatus()
val message = baseResponse.getMessage()
val data: UserBean? = baseResponse.getData()
when (code) {
200 -> {
view.readSecondsSuc(12)
}
else -> view.showToast(message)
}
}
})
}
}
\ No newline at end of file
package com.mints.goodmoney.mvp.views
import com.mints.goodmoney.mvp.model.MainVedioMsgBean
import com.mints.goodmoney.mvp.model.UserTaskMsgBean
interface BookView : BaseView {
fun readSecondsSuc(coin:Int)
}
...@@ -320,6 +320,14 @@ public interface LoanService { ...@@ -320,6 +320,14 @@ public interface LoanService {
@POST("api/requestAddHomeVedioReward") @POST("api/requestAddHomeVedioReward")
Observable<BaseResponse<Object>> requestAddHomeVedioReward(); Observable<BaseResponse<Object>> requestAddHomeVedioReward();
/**
* 阅读时长
*
* @return
*/
@POST("api/addReadSeconds")
Observable<BaseResponse<Object>> addReadSeconds(@Body Map<String, Object> vo);
/** /**
* 默认http工厂 * 默认http工厂
*/ */
......
...@@ -27,7 +27,7 @@ class MainActivity : BaseActivity(), MainView, View.OnClickListener { ...@@ -27,7 +27,7 @@ class MainActivity : BaseActivity(), MainView, View.OnClickListener {
private val audioManager by lazy { getSystemService(Context.AUDIO_SERVICE) as AudioManager } private val audioManager by lazy { getSystemService(Context.AUDIO_SERVICE) as AudioManager }
// 底部标签切换的Fragment // 底部标签切换的Fragment
private var mainFragment: Fragment? = null private var moneyFragment: Fragment? = null
private var panFragment: Fragment? = null private var panFragment: Fragment? = null
private var friendsFragment: Fragment? = null private var friendsFragment: Fragment? = null
private var myFragment: Fragment? = null private var myFragment: Fragment? = null
...@@ -36,16 +36,16 @@ class MainActivity : BaseActivity(), MainView, View.OnClickListener { ...@@ -36,16 +36,16 @@ class MainActivity : BaseActivity(), MainView, View.OnClickListener {
override fun getContentViewLayoutID() = R.layout.activity_main override fun getContentViewLayoutID() = R.layout.activity_main
override fun initViewsAndEvents() { override fun initViewsAndEvents() {
if (mainFragment == null) { if (moneyFragment == null) {
mainFragment = MainFragment() moneyFragment = MoneyFragment()
} }
if (!mainFragment!!.isAdded) { if (!moneyFragment!!.isAdded) {
// 提交事务 // 提交事务
supportFragmentManager.beginTransaction() supportFragmentManager.beginTransaction()
.add(R.id.content_layout, mainFragment!!).commitAllowingStateLoss() .add(R.id.content_layout, moneyFragment!!).commitAllowingStateLoss()
// 记录当前Fragment // 记录当前Fragment
currentFragment = mainFragment currentFragment = moneyFragment
} }
tab_iv_main.setSelected(true) tab_iv_main.setSelected(true)
tab_tv_main.setSelected(true) tab_tv_main.setSelected(true)
...@@ -125,10 +125,10 @@ class MainActivity : BaseActivity(), MainView, View.OnClickListener { ...@@ -125,10 +125,10 @@ class MainActivity : BaseActivity(), MainView, View.OnClickListener {
*/ */
fun clickTab1Layout() { fun clickTab1Layout() {
AppConfig.fragmentClickFlag = Constant.FRAGMENT_CLICK_MAIN AppConfig.fragmentClickFlag = Constant.FRAGMENT_CLICK_MAIN
if (mainFragment == null) { if (moneyFragment == null) {
mainFragment = MainFragment() moneyFragment = MoneyFragment()
} }
addOrShowFragment(supportFragmentManager.beginTransaction(), mainFragment!!) addOrShowFragment(supportFragmentManager.beginTransaction(), moneyFragment!!)
tab_iv_main.setSelected(true) tab_iv_main.setSelected(true)
tab_tv_main.setSelected(true) tab_tv_main.setSelected(true)
......
package com.mints.goodmoney.ui.adapter;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.fragment.app.FragmentStatePagerAdapter;
import java.util.List;
public class MessageFragAdapter extends FragmentStatePagerAdapter {
private List<Fragment> fragments;
private List<String> tabs;
public MessageFragAdapter(FragmentManager fm) {
super(fm);
}
public MessageFragAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
public MessageFragAdapter(FragmentManager fm, List<Fragment> fragments, List<String> tabs) {
super(fm);
this.fragments = fragments;
this.tabs = tabs;
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return tabs.get(position);
}
}
...@@ -89,6 +89,9 @@ class MainFragment : BaseFragment(), HomeView, AdVideoCallback, View.OnClickList ...@@ -89,6 +89,9 @@ class MainFragment : BaseFragment(), HomeView, AdVideoCallback, View.OnClickList
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
if (AppConfig.fragmentClickFlag === Constant.FRAGMENT_CLICK_MAIN) { if (AppConfig.fragmentClickFlag === Constant.FRAGMENT_CLICK_MAIN) {
LogUtil.d("MainFragment onResume")
// 打开激活 // 打开激活
uploadDeviceInfo() uploadDeviceInfo()
...@@ -113,6 +116,8 @@ class MainFragment : BaseFragment(), HomeView, AdVideoCallback, View.OnClickList ...@@ -113,6 +116,8 @@ class MainFragment : BaseFragment(), HomeView, AdVideoCallback, View.OnClickList
override fun onPause() { override fun onPause() {
super.onPause() super.onPause()
LogUtil.d("MainFragment onPause")
littleVideoFragment?.onPause() littleVideoFragment?.onPause()
pauseDownloadTime() pauseDownloadTime()
} }
...@@ -398,5 +403,4 @@ class MainFragment : BaseFragment(), HomeView, AdVideoCallback, View.OnClickList ...@@ -398,5 +403,4 @@ class MainFragment : BaseFragment(), HomeView, AdVideoCallback, View.OnClickList
}) })
powerDialog!!.show() powerDialog!!.show()
} }
} }
\ No newline at end of file
package com.mints.goodmoney.ui.fragment
import androidx.fragment.app.Fragment
import androidx.viewpager.widget.ViewPager
import com.mints.goodmoney.R
import com.mints.goodmoney.mvp.presenters.MyPresenter
import com.mints.goodmoney.ui.adapter.MessageFragAdapter
import com.mints.goodmoney.ui.fragment.base.BaseFragment
import com.mints.goodmoney.ui.fragment.base.LazyLoadBaseFragment
import kotlinx.android.synthetic.main.fragment_main_money.*
import java.util.*
/**
* 描述:赚钱大厅
* 作者:孟崔广
* 时间:2020/10/29 13:48
*/
class MoneyFragment : BaseFragment() {
private var mainFragment: MainFragment? = null
override fun getContentViewLayoutID() = R.layout.fragment_main_money
override fun initViewsAndEvents() {
initView()
}
override fun onHiddenChanged(hidden: Boolean) {
mainFragment?.onHiddenChanged(hidden)
super.onHiddenChanged(hidden)
}
override fun setUserVisibleHint(isVisibleToUser: Boolean) {
super.setUserVisibleHint(isVisibleToUser)
mainFragment?.userVisibleHint=isVisibleToUser
}
private fun initView() {
//去除两侧应阴影
vpFragmentMoney.setOverScrollMode(ViewPager.OVER_SCROLL_NEVER)
val fragments: MutableList<Fragment> = ArrayList()
mainFragment = MainFragment()
fragments.add(mainFragment!!)
fragments.add(ZhangyueFragment())
val tabs: MutableList<String> = ArrayList()
tabs.add("视频")
tabs.add("书城")
val adapter = MessageFragAdapter(childFragmentManager, fragments, tabs)
vpFragmentMoney.setAdapter(adapter)
xtFragmentMoney.setupWithViewPager(vpFragmentMoney)
}
}
\ No newline at end of file
package com.mints.goodmoney.ui.fragment package com.mints.goodmoney.ui.fragment
import android.os.Bundle
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentTransaction import androidx.fragment.app.FragmentTransaction
import com.ireader.ireadersdk.IreaderApi import com.ireader.ireadersdk.IreaderApi
import com.mints.goodmoney.R import com.mints.goodmoney.R
import com.mints.goodmoney.manager.ZhangyueManager import com.mints.goodmoney.common.Constant
import com.mints.goodmoney.ui.fragment.base.BaseFragment import com.mints.goodmoney.mvp.presenters.BookPresenter
import com.mints.goodmoney.mvp.presenters.HomePresenter
import com.mints.goodmoney.mvp.views.BookView
import com.mints.goodmoney.mvp.views.HomeView
import com.mints.goodmoney.ui.activitys.AwardActivity
import com.mints.goodmoney.ui.fragment.base.LazyLoadBaseFragment
import com.mints.goodmoney.utils.LogUtil
/** /**
* 描述:掌阅书城 * 描述:掌阅书城
* 作者:孟崔广 * 作者:孟崔广
*/ */
class ZhangyueFragment : BaseFragment() { class ZhangyueFragment : LazyLoadBaseFragment(), BookView, IreaderApi.OnReadChangeListener {
private val TAG = ZhangyueFragment::class.java.simpleName
private val bookPresenter by lazy { BookPresenter() }
private var bookFragment: Fragment? = null private var bookFragment: Fragment? = null
override fun getContentViewLayoutID() = R.layout.fragment_main_zy override fun getContentViewLayoutID() = R.layout.fragment_main_zy
override fun initViewsAndEvents() { override fun initViewsAndEvents() {
ZhangyueManager.onCreateIreader(baseApplication)
}
override fun onFragmentFirstVisible() {
bookPresenter.attachView(this)
val transaction: FragmentTransaction = supportFragmentManager.beginTransaction() val transaction: FragmentTransaction = supportFragmentManager.beginTransaction()
if (bookFragment == null) { if (bookFragment == null) {
bookFragment = IreaderApi.getNovelBookStoreFragment() bookFragment = IreaderApi.getNovelBookStoreFragment()
transaction.add(R.id.fragment, bookFragment!!, bookFragment!!::class.java.simpleName) transaction.add(R.id.fragment, bookFragment!!, bookFragment!!::class.java.simpleName)
IreaderApi.setReadChangeListener(this)
} else { } else {
transaction.show(bookFragment!!) transaction.show(bookFragment!!)
} }
transaction.commitAllowingStateLoss() transaction.commitAllowingStateLoss()
}
override fun onDestroy() {
super.onDestroy()
IreaderApi.setReadChangeListener(null)
bookPresenter.detachView()
}
// supportFragmentManager.beginTransaction().replace(R.id.fragment, IreaderApi.getNovelBookStoreFragment()).commitAllowingStateLoss() override fun onReadStart() {
} }
override fun onReadEnd(time: Long) {
// LogUtil.d(TAG, "onReadEnd time:" + time)
// LogUtil.d(TAG, "onReadEnd time(Int):" + (time/1000).toInt())
val seconds = (time / 1000).toInt()
// 阅读5秒以上 保存时长
if (seconds > 5) {
bookPresenter.addReadSeconds(seconds)
}
}
override fun onReadPage(time: Long) {
}
override fun readSecondsSuc(coin: Int) {
if (coin > 0) {
val bundle = Bundle()
bundle.putInt(Constant.MAIN_CUR_COIN, coin)
readyGo(AwardActivity::class.java, bundle)
}
}
} }
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical">
<com.androidkun.xtablayout.XTabLayout
android:id="@+id/xtFragmentMoney"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:xTabDisplayNum="2"
android:layout_marginTop="20dp"
app:xTabIndicatorColor="#F28335"
app:xTabIndicatorHeight="4dp"
app:xTabMode="scrollable"
app:xTabSelectedTextColor="@color/main_mints"
app:xTabSelectedTextSize="20sp"
app:xTabTextColor="#000"
app:xTabIndicatorWidth="10dp"
app:xTabTextSize="15sp" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/vpFragmentMoney"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/fragment"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/white" android:background="@color/white"
android:orientation="vertical"> android:orientation="vertical">
<FrameLayout
android:id="@+id/fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="30dp" />
</FrameLayout> </FrameLayout>
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