Skip to content

Commit

Permalink
update v1.2.1
Browse files Browse the repository at this point in the history
1.优化了 部分加载页面;
2.解决内存不足时,重新打开 fragment 出现叠加;
3.注释Bugly;
  • Loading branch information
git-xuhao committed Dec 20, 2017
1 parent f299613 commit 9dc2fdd
Show file tree
Hide file tree
Showing 13 changed files with 25 additions and 108 deletions.
8 changes: 2 additions & 6 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -76,10 +76,6 @@ android {
}
}

//获取时间的方法
def createDate() {
return new Date().format("MMdd_HHmm", TimeZone.getTimeZone("GMT+8"))
}

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
Expand Down
2 changes: 0 additions & 2 deletions app/src/main/java/com/hazz/kotlinmvp/MyApplication.kt
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,6 @@ class MyApplication : Application(){
return BuildConfig.DEBUG
}
})
//测试阶段建议设置成true,发布时设置为false。
CrashReport.initCrashReport(applicationContext, Constants.BUGLY_APPID, false)
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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())
}
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ class CategoryPresenter : BasePresenter<CategoryContract.View>(), CategoryContra
}
}, { t ->
mRootView?.apply {
dismissLoading()
//处理异常
showError(ExceptionHandle.handleException(t),ExceptionHandle.errorCode)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ class FollowPresenter : BasePresenter<FollowContract.View>(), FollowContract.Pre
}
}, { throwable ->
mRootView?.apply {
dismissLoading()
//处理异常
showError(ExceptionHandle.handleException(throwable),ExceptionHandle.errorCode)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ class HotTabPresenter:BasePresenter<HotTabContract.View>(),HotTabContract.Presen

override fun getTabInfo() {
checkViewAttached()
mRootView?.showLoading()
val disposable = hotTabModel.getTabInfo()
.subscribe({
tabInfo->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ class RankPresenter : BasePresenter<RankContract.View>(), RankContract.Presenter
}
}, { throwable ->
mRootView?.apply {
dismissLoading()
//处理异常
showError(ExceptionHandle.handleException(throwable),ExceptionHandle.errorCode)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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>) {
Expand Down
98 changes: 12 additions & 86 deletions app/src/main/java/com/hazz/kotlinmvp/ui/activity/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -84,73 +84,26 @@ 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 {
transaction.show(mHomeFragment)
}
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 {
transaction.show(mDiscoveryFragment)
}
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")
}
Expand All @@ -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 {
Expand All @@ -173,6 +122,7 @@ class MainActivity : BaseActivity() {

}
}

mIndex = position
tab_layout.currentTab = mIndex
transaction.commitAllowingStateLoss()
Expand All @@ -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() {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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>()

Expand Down Expand Up @@ -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() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}

Expand Down

0 comments on commit 9dc2fdd

Please sign in to comment.