diff --git a/app/build.gradle b/app/build.gradle index 46ee687..3ba4f7f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,8 +20,8 @@ android { applicationId "com.hazz.kotlinmvp" minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion - versionCode 3 - versionName "1.2" + versionCode 4 + versionName "1.2.1" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" javaCompileOptions { annotationProcessorOptions { @@ -76,10 +76,6 @@ android { } } -//获取时间的方法 -def createDate() { - return new Date().format("MMdd_HHmm", TimeZone.getTimeZone("GMT+8")) -} dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') diff --git a/app/src/main/java/com/hazz/kotlinmvp/MyApplication.kt b/app/src/main/java/com/hazz/kotlinmvp/MyApplication.kt index 0f982e4..6dba093 100644 --- a/app/src/main/java/com/hazz/kotlinmvp/MyApplication.kt +++ b/app/src/main/java/com/hazz/kotlinmvp/MyApplication.kt @@ -72,8 +72,6 @@ class MyApplication : Application(){ return BuildConfig.DEBUG } }) - //测试阶段建议设置成true,发布时设置为false。 - CrashReport.initCrashReport(applicationContext, Constants.BUGLY_APPID, false) } diff --git a/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/CategoryDetailPresenter.kt b/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/CategoryDetailPresenter.kt index ca9ce21..14633f3 100644 --- a/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/CategoryDetailPresenter.kt +++ b/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/CategoryDetailPresenter.kt @@ -21,19 +21,16 @@ class CategoryDetailPresenter:BasePresenter<CategoryDetailContract.View>(),Categ */ override fun getCategoryDetailList(id: Long) { checkViewAttached() - mRootView?.showLoading() val disposable= categoryDetailModel.getCategoryDetailList(id) .subscribe({ issue -> mRootView?.apply { - dismissLoading() nextPageUrl = issue.nextPageUrl setCateDetailList(issue.itemList) } },{ throwable -> mRootView?.apply { - dismissLoading() showError(throwable.toString()) } }) diff --git a/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/CategoryPresenter.kt b/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/CategoryPresenter.kt index 5c58652..c4d0b34 100644 --- a/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/CategoryPresenter.kt +++ b/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/CategoryPresenter.kt @@ -29,7 +29,6 @@ class CategoryPresenter : BasePresenter<CategoryContract.View>(), CategoryContra } }, { t -> mRootView?.apply { - dismissLoading() //处理异常 showError(ExceptionHandle.handleException(t),ExceptionHandle.errorCode) } diff --git a/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/FollowPresenter.kt b/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/FollowPresenter.kt index 546353b..89abd11 100644 --- a/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/FollowPresenter.kt +++ b/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/FollowPresenter.kt @@ -32,7 +32,6 @@ class FollowPresenter : BasePresenter<FollowContract.View>(), FollowContract.Pre } }, { throwable -> mRootView?.apply { - dismissLoading() //处理异常 showError(ExceptionHandle.handleException(throwable),ExceptionHandle.errorCode) } diff --git a/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/HotTabPresenter.kt b/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/HotTabPresenter.kt index 0fda589..2df2a9a 100644 --- a/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/HotTabPresenter.kt +++ b/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/HotTabPresenter.kt @@ -16,6 +16,7 @@ class HotTabPresenter:BasePresenter<HotTabContract.View>(),HotTabContract.Presen override fun getTabInfo() { checkViewAttached() + mRootView?.showLoading() val disposable = hotTabModel.getTabInfo() .subscribe({ tabInfo-> diff --git a/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/RankPresenter.kt b/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/RankPresenter.kt index 1d31e52..45de239 100644 --- a/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/RankPresenter.kt +++ b/app/src/main/java/com/hazz/kotlinmvp/mvp/presenter/RankPresenter.kt @@ -28,7 +28,6 @@ class RankPresenter : BasePresenter<RankContract.View>(), RankContract.Presenter } }, { throwable -> mRootView?.apply { - dismissLoading() //处理异常 showError(ExceptionHandle.handleException(throwable),ExceptionHandle.errorCode) } diff --git a/app/src/main/java/com/hazz/kotlinmvp/ui/activity/CategoryDetailActivity.kt b/app/src/main/java/com/hazz/kotlinmvp/ui/activity/CategoryDetailActivity.kt index 6b99d22..9dc2447 100644 --- a/app/src/main/java/com/hazz/kotlinmvp/ui/activity/CategoryDetailActivity.kt +++ b/app/src/main/java/com/hazz/kotlinmvp/ui/activity/CategoryDetailActivity.kt @@ -91,12 +91,11 @@ class CategoryDetailActivity : BaseActivity(), CategoryDetailContract.View { } override fun showLoading() { -// multipleStatusView.showLoading() } override fun dismissLoading() { - multipleStatusView.showContent() + } override fun setCateDetailList(itemList: ArrayList<HomeBean.Issue.Item>) { diff --git a/app/src/main/java/com/hazz/kotlinmvp/ui/activity/MainActivity.kt b/app/src/main/java/com/hazz/kotlinmvp/ui/activity/MainActivity.kt index 6666f37..5980000 100644 --- a/app/src/main/java/com/hazz/kotlinmvp/ui/activity/MainActivity.kt +++ b/app/src/main/java/com/hazz/kotlinmvp/ui/activity/MainActivity.kt @@ -84,51 +84,12 @@ class MainActivity : BaseActivity() { private fun switchFragment(position: Int) { val transaction = supportFragmentManager.beginTransaction() hideFragments(transaction) -// showToast(supportFragmentManager.fragments.size.toString()) + showToast(supportFragmentManager.fragments.size.toString()) /*重复进入退出视频详情页会导致fragment不断增加*/ -// when (position) { -// 0 //首页 -// -> if (mHomeFragment == null) { -// -// mHomeFragment = HomeFragment.getInstance(mTitles[position]) -// transaction.add(R.id.fl_container, mHomeFragment, "home") -// } else { -// transaction.show(mHomeFragment) -// } -// 1 //发现 -// -> if (mDiscoveryFragment == null) { -// mDiscoveryFragment = DiscoveryFragment.getInstance(mTitles[position]) -// transaction.add(R.id.fl_container, mDiscoveryFragment, "discovery") -// } else { -// transaction.show(mDiscoveryFragment) -// } -// 2 //热门 -// -> if ( mHotFragment == null) { -// mHotFragment = HotFragment.getInstance(mTitles[position]) -// transaction.add(R.id.fl_container, mHotFragment, "hot") -// } -// else { -// transaction.show(mHotFragment) -// } -// -// 3 //我的 -// -> if (mMineFragment == null) { -// mMineFragment = MineFragment.getInstance(mTitles[position]) -// transaction.add(R.id.fl_container, mMineFragment, "mine") -// } else { -// transaction.show(mMineFragment) -// } -// else -> { -// -// } -// } when (position) { 0 //首页 -> if (mHomeFragment == null) { - var cacheMHomeFragment = supportFragmentManager.findFragmentByTag("home") - if(cacheMHomeFragment != null){ - transaction.remove(cacheMHomeFragment) - } + mHomeFragment = HomeFragment.getInstance(mTitles[position]) transaction.add(R.id.fl_container, mHomeFragment, "home") } else { @@ -136,10 +97,6 @@ class MainActivity : BaseActivity() { } 1 //发现 -> if (mDiscoveryFragment == null) { - var cacheMDiscoveryFragment = supportFragmentManager.findFragmentByTag("discovery") - if(cacheMDiscoveryFragment != null){ - transaction.remove(cacheMDiscoveryFragment) - } mDiscoveryFragment = DiscoveryFragment.getInstance(mTitles[position]) transaction.add(R.id.fl_container, mDiscoveryFragment, "discovery") } else { @@ -147,10 +104,6 @@ class MainActivity : BaseActivity() { } 2 //热门 -> if ( mHotFragment == null) { - var cacheMHotFragment = supportFragmentManager.findFragmentByTag("hot") - if(cacheMHotFragment != null){ - transaction.remove(cacheMHotFragment) - } mHotFragment = HotFragment.getInstance(mTitles[position]) transaction.add(R.id.fl_container, mHotFragment, "hot") } @@ -160,10 +113,6 @@ class MainActivity : BaseActivity() { 3 //我的 -> if (mMineFragment == null) { - var cacheMMineFragment = supportFragmentManager.findFragmentByTag("mine") - if(cacheMMineFragment != null){ - transaction.remove(cacheMMineFragment) - } mMineFragment = MineFragment.getInstance(mTitles[position]) transaction.add(R.id.fl_container, mMineFragment, "mine") } else { @@ -173,6 +122,7 @@ class MainActivity : BaseActivity() { } } + mIndex = position tab_layout.currentTab = mIndex transaction.commitAllowingStateLoss() @@ -184,54 +134,30 @@ class MainActivity : BaseActivity() { * @param transaction transaction */ private fun hideFragments(transaction: FragmentTransaction) { - /*mHomeFragment 丢失问题应该用全局查找替代*/ -// if (null != mHomeFragment) { -// transaction.hide(mHomeFragment) -// } -// if (null != mDiscoveryFragment) { -// transaction.hide(mDiscoveryFragment) -// } -// if (null != mHotFragment) { -// transaction.hide(mHotFragment) -// } -// if (null != mMineFragment) { -// transaction.hide(mMineFragment) -// } - var cacheMHomeFragment = supportFragmentManager.findFragmentByTag("home") - - var cacheMDiscoveryFragment = supportFragmentManager.findFragmentByTag("discovery") - var cacheMMineFragment = supportFragmentManager.findFragmentByTag("hot") - var cacheMHotFragment = supportFragmentManager.findFragmentByTag("mine") - if (null != cacheMHomeFragment) { - transaction.hide(cacheMHomeFragment) + if (null != mHomeFragment) { + transaction.hide(mHomeFragment) } - if (null != cacheMDiscoveryFragment) { - transaction.hide(cacheMDiscoveryFragment) + if (null != mDiscoveryFragment) { + transaction.hide(mDiscoveryFragment) } - if (null != cacheMMineFragment) { - transaction.hide(cacheMMineFragment) + if (null != mHotFragment) { + transaction.hide(mHotFragment) } - if (null != cacheMHotFragment) { - transaction.hide(cacheMHotFragment) + if (null != mMineFragment) { + transaction.hide(mMineFragment) } - } override fun onSaveInstanceState(outState: Bundle) { // showToast("onSaveInstanceState->"+mIndex) - super.onSaveInstanceState(outState) +// super.onSaveInstanceState(outState) //记录fragment的位置,防止崩溃 activity被系统回收时,fragment错乱 if (tab_layout != null) { outState.putInt("currTabIndex", mIndex) } } - override fun onRestoreInstanceState(savedInstanceState: Bundle?) { -// showToast("onRestoreInstanceState->"+mIndex) -// switchFragment(savedInstanceState!!.getInt( mIndex.toString() )); -// super.onRestoreInstanceState(savedInstanceState) - } override fun initView() { diff --git a/app/src/main/java/com/hazz/kotlinmvp/ui/fragment/DiscoveryFragment.kt b/app/src/main/java/com/hazz/kotlinmvp/ui/fragment/DiscoveryFragment.kt index 6771957..1e525b6 100644 --- a/app/src/main/java/com/hazz/kotlinmvp/ui/fragment/DiscoveryFragment.kt +++ b/app/src/main/java/com/hazz/kotlinmvp/ui/fragment/DiscoveryFragment.kt @@ -13,7 +13,7 @@ import kotlinx.android.synthetic.main.fragment_hot.* * Created by xuhao on 2017/12/7. * desc: 发现(和热门首页同样的布局) */ -class DiscoveryFragment:BaseFragment(){ +class DiscoveryFragment : BaseFragment() { private val tabList = ArrayList<String>() @@ -49,13 +49,11 @@ class DiscoveryFragment:BaseFragment(){ /** * getSupportFragmentManager() 替换为getChildFragmentManager() */ - mViewPager.adapter = BaseFragmentAdapter(childFragmentManager,fragments,tabList) + mViewPager.adapter = BaseFragmentAdapter(childFragmentManager, fragments, tabList) mTabLayout.setupWithViewPager(mViewPager) TabLayoutHelper.setUpIndicatorWidth(mTabLayout) - - } override fun lazyLoad() { diff --git a/app/src/main/java/com/hazz/kotlinmvp/ui/fragment/HomeFragment.kt b/app/src/main/java/com/hazz/kotlinmvp/ui/fragment/HomeFragment.kt index 5ec9d1c..635133f 100644 --- a/app/src/main/java/com/hazz/kotlinmvp/ui/fragment/HomeFragment.kt +++ b/app/src/main/java/com/hazz/kotlinmvp/ui/fragment/HomeFragment.kt @@ -168,13 +168,13 @@ class HomeFragment : BaseFragment(), HomeContract.View { */ override fun dismissLoading() { mRefreshLayout.finishRefresh() - mLayoutStatusView?.showContent() } /** * 设置首页数据 */ override fun setHomeData(homeBean: HomeBean) { + mLayoutStatusView?.showContent() Logger.d(homeBean) // Adapter diff --git a/app/src/main/java/com/hazz/kotlinmvp/ui/fragment/HotFragment.kt b/app/src/main/java/com/hazz/kotlinmvp/ui/fragment/HotFragment.kt index 27b14c8..96e23a2 100644 --- a/app/src/main/java/com/hazz/kotlinmvp/ui/fragment/HotFragment.kt +++ b/app/src/main/java/com/hazz/kotlinmvp/ui/fragment/HotFragment.kt @@ -62,15 +62,18 @@ class HotFragment : BaseFragment(), HotTabContract.View { override fun showLoading() { + multipleStatusView.showLoading() } override fun dismissLoading() { + } /** * 设置 TabInfo */ override fun setTabInfo(tabInfoBean: TabInfoBean) { + multipleStatusView.showContent() tabInfoBean.tabInfo.tabList.mapTo(mTabTitleList) { it.name } tabInfoBean.tabInfo.tabList.mapTo(mFragmentList) { RankFragment.getInstance(it.apiUrl) } diff --git a/app/src/main/java/com/hazz/kotlinmvp/ui/fragment/RankFragment.kt b/app/src/main/java/com/hazz/kotlinmvp/ui/fragment/RankFragment.kt index bed9165..51f293d 100644 --- a/app/src/main/java/com/hazz/kotlinmvp/ui/fragment/RankFragment.kt +++ b/app/src/main/java/com/hazz/kotlinmvp/ui/fragment/RankFragment.kt @@ -63,10 +63,12 @@ class RankFragment : BaseFragment(), RankContract.View { } override fun dismissLoading() { - multipleStatusView.showContent() + } override fun setRankList(itemList: ArrayList<HomeBean.Issue.Item>) { + multipleStatusView.showContent() + mAdapter.addData(itemList) }