Skip to content

Commit 7d444ca

Browse files
author
SkyD666
committed
[optimize|fix]优化沉浸式padding添加位置;修复文件名过长导致无法下载的问题
1 parent 759799d commit 7d444ca

19 files changed

Lines changed: 49 additions & 47 deletions

app/src/main/java/com/skyd/imomoe/ext/ViewExt.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ fun View.addFitsSystemWindows(
9393
var newPaddingRight = v.paddingRight
9494
if (top) newPaddingTop = ins.getInsets(WindowInsetsCompat.Type.statusBars()).top
9595
if (bottom) newPaddingBottom = ins.getInsets(WindowInsetsCompat.Type.navigationBars()).bottom
96-
if (left) newPaddingLeft = ins.getInsets(WindowInsetsCompat.Type.statusBars()).left
96+
if (left) newPaddingLeft = ins.getInsets(WindowInsetsCompat.Type.displayCutout()).left
9797
if (right) newPaddingRight = ins.getInsets(WindowInsetsCompat.Type.navigationBars()).right
9898

9999
v.updatePadding(

app/src/main/java/com/skyd/imomoe/ext/ViewPagerExt.kt

Lines changed: 0 additions & 26 deletions
This file was deleted.

app/src/main/java/com/skyd/imomoe/util/download/downloadanime/AnimeDownloadService.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,13 @@ class AnimeDownloadService : LifecycleService() {
126126
val storeDirectoryPath = intent.getStringExtra(STORE_DIRECTORY_PATH_KEY).orEmpty()
127127
val animeTitle = intent.getStringExtra(ANIME_TITLE).orEmpty()
128128
val animeEpisode = intent.getStringExtra(ANIME_EPISODE).orEmpty()
129-
val fileName = downloadUrl.substringAfterLast("/", animeEpisode).ifBlank { animeEpisode }
130129

131130
coroutineScope.launch {
132131
runCatching {
132+
val fileName = downloadUrl
133+
.substringAfterLast("/", animeEpisode)
134+
.ifBlank { animeEpisode }
135+
.toMD5()
133136
val contentType = RetrofitManager
134137
.get()
135138
.create(HtmlService::class.java)

app/src/main/java/com/skyd/imomoe/view/activity/AnimeDetailActivity.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.skyd.imomoe.view.activity
22

33
import android.os.Bundle
44
import androidx.activity.viewModels
5+
import androidx.core.view.WindowInsetsControllerCompat
56
import androidx.recyclerview.widget.GridLayoutManager
67
import com.skyd.imomoe.R
78
import com.skyd.imomoe.config.Api
@@ -86,6 +87,7 @@ class AnimeDetailActivity : BaseActivity<ActivityAnimeDetailBinding>() {
8687

8788
override fun onCreate(savedInstanceState: Bundle?) {
8889
super.onCreate(savedInstanceState)
90+
WindowInsetsControllerCompat(window, mBinding.root).isAppearanceLightStatusBars = false
8991

9092
viewModel.partUrl = intent.getStringExtra("partUrl").orEmpty()
9193

app/src/main/java/com/skyd/imomoe/view/activity/ConfigDataSourceActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ class ConfigDataSourceActivity : BaseActivity<ActivityConfigDataSourceBinding>()
4343
mBinding.apply {
4444
ablConfigDataSourceActivity.hideToolbarWhenCollapsed(tbConfigDataSourceActivity)
4545
ablConfigDataSourceActivity.addFitsSystemWindows(right = true, top = true)
46-
vp2ConfigDataSourceActivity.fitsSystemWindows2()
4746

4847
tbConfigDataSourceActivity.apply {
4948
setNavigationOnClickListener { finish() }
@@ -65,11 +64,12 @@ class ConfigDataSourceActivity : BaseActivity<ActivityConfigDataSourceBinding>()
6564
vp2ConfigDataSourceActivity.adapter = adapter
6665

6766
val tabLayoutMediator = TabLayoutMediator(
68-
tlConfigDataSourceActivity, vp2ConfigDataSourceActivity//.getViewPager()
67+
tlConfigDataSourceActivity, vp2ConfigDataSourceActivity
6968
) { tab, position ->
7069
tab.text = tabLayoutTitle[position % 2]
7170
}
7271
tabLayoutMediator.attach()
72+
adapter.notifyDataSetChanged()
7373
}
7474

7575
viewModel.deleteSource.collectWithLifecycle(this) {

app/src/main/java/com/skyd/imomoe/view/activity/DownloadManagerActivity.kt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,16 @@ import android.content.ServiceConnection
77
import android.os.Bundle
88
import android.os.IBinder
99
import androidx.activity.viewModels
10+
import androidx.recyclerview.widget.GridLayoutManager
1011
import androidx.recyclerview.widget.LinearLayoutManager
1112
import com.arialyy.aria.core.task.DownloadTask
1213
import com.skyd.imomoe.databinding.ActivityDownloadManagerBinding
1314
import com.skyd.imomoe.ext.addFitsSystemWindows
1415
import com.skyd.imomoe.ext.collectWithLifecycle
1516
import com.skyd.imomoe.state.DataState
1617
import com.skyd.imomoe.util.download.downloadanime.AnimeDownloadService
18+
import com.skyd.imomoe.view.adapter.decoration.AnimeShowItemDecoration
19+
import com.skyd.imomoe.view.adapter.spansize.AnimeShowSpanSize
1720
import com.skyd.imomoe.view.adapter.variety.VarietyAdapter
1821
import com.skyd.imomoe.view.adapter.variety.proxy.AnimeDownload1Proxy
1922
import com.skyd.imomoe.viewmodel.DownloadManagerViewModel
@@ -46,8 +49,11 @@ class DownloadManagerActivity : BaseActivity<ActivityDownloadManagerBinding>() {
4649
ablDownloadManagerActivity.addFitsSystemWindows(right = true, top = true)
4750

4851
rvDownloadManagerActivity.addFitsSystemWindows(right = true, bottom = true)
49-
rvDownloadManagerActivity.layoutManager =
50-
LinearLayoutManager(this@DownloadManagerActivity)
52+
rvDownloadManagerActivity.layoutManager = GridLayoutManager(
53+
this@DownloadManagerActivity,
54+
AnimeShowSpanSize.MAX_SPAN_SIZE
55+
).apply { spanSizeLookup = AnimeShowSpanSize(adapter) }
56+
rvDownloadManagerActivity.addItemDecoration(AnimeShowItemDecoration())
5157
rvDownloadManagerActivity.adapter = adapter
5258
}
5359

app/src/main/java/com/skyd/imomoe/view/activity/MainActivity.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), EventBusSubscriber {
4444
val splashScreen = installSplashScreen()
4545
super.onCreate(savedInstanceState)
4646

47+
if (resources.getBoolean(R.bool.is_landscape)) {
48+
mBinding.nvMainActivity.addFitsSystemWindows(top = true, bottom = true, left = true)
49+
} else {
50+
mBinding.nvMainActivity.addFitsSystemWindows(bottom = true, left = true)
51+
}
52+
4753
if (lastReadUserNoticeVersion() < Const.Common.USER_NOTICE_VERSION) {
4854
showMessageDialog(
4955
title = getString(R.string.user_notice_update),
@@ -75,7 +81,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), EventBusSubscriber {
7581

7682
mBinding.vp2MainActivity.also {
7783
it.adapter = adapter
78-
it.fitsSystemWindows2()
7984
it.offscreenPageLimit = adapter.itemCount
8085
it.isUserInputEnabled = false
8186
}

app/src/main/java/com/skyd/imomoe/view/adapter/spansize/AnimeShowSpanSize.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ class AnimeShowSpanSize(val adapter: VarietyAdapter) : GridLayoutManager.SpanSiz
1919
is AnimeDescribe1Bean,
2020
is AnimeInfo1Bean,
2121
is SearchHistory1Bean,
22+
is AnimeDownload1Bean,
2223
is HorizontalRecyclerView1Bean -> MAX_SPAN_SIZE
2324
is AnimeEpisode1Bean,
2425
is AnimeCover8Bean,
@@ -40,6 +41,7 @@ class AnimeShowSpanSize(val adapter: VarietyAdapter) : GridLayoutManager.SpanSiz
4041
is AnimeCover5Bean,
4142
is AnimeCover11Bean,
4243
is SearchHistory1Bean,
44+
is AnimeDownload1Bean,
4345
is HorizontalRecyclerView1Bean -> MAX_SPAN_SIZE
4446
is AnimeEpisode1Bean,
4547
is AnimeCover8Bean,

app/src/main/java/com/skyd/imomoe/view/fragment/DataSourceMarketFragment.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@ import android.content.ComponentName
44
import android.content.Context
55
import android.content.Intent
66
import android.content.ServiceConnection
7+
import android.os.Bundle
78
import android.os.IBinder
89
import android.view.LayoutInflater
10+
import android.view.View
911
import android.view.ViewGroup
1012
import androidx.fragment.app.viewModels
1113
import androidx.recyclerview.widget.LinearLayoutManager
@@ -97,6 +99,11 @@ class DataSourceMarketFragment : BaseFragment<FragmentDataSourceMarketBinding>()
9799
)
98100
}
99101

102+
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
103+
super.onViewCreated(view, savedInstanceState)
104+
mBinding.root.addFitsSystemWindows(right = true, bottom = true)
105+
}
106+
100107
override fun onResume() {
101108
super.onResume()
102109
if (isFirstLoadData) {
@@ -107,7 +114,6 @@ class DataSourceMarketFragment : BaseFragment<FragmentDataSourceMarketBinding>()
107114

108115
private fun initData() {
109116
mBinding.apply {
110-
root.addFitsSystemWindows(right = true, bottom = true)
111117
rvDataSourceMarketFragment.layoutManager = LinearLayoutManager(activity)
112118
rvDataSourceMarketFragment.adapter = adapter
113119

app/src/main/java/com/skyd/imomoe/view/fragment/EverydayAnimeFragment.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import android.view.ViewStub
99
import androidx.fragment.app.viewModels
1010
import com.google.android.material.tabs.TabLayoutMediator
1111
import com.skyd.imomoe.databinding.FragmentEverydayAnimeBinding
12+
import com.skyd.imomoe.ext.addFitsSystemWindows
1213
import com.skyd.imomoe.ext.collectWithLifecycle
1314
import com.skyd.imomoe.ext.hideToolbarWhenCollapsed
1415
import com.skyd.imomoe.state.DataState
@@ -62,6 +63,8 @@ class EverydayAnimeFragment : BaseFragment<FragmentEverydayAnimeBinding>(), Even
6263
super.onViewCreated(view, savedInstanceState)
6364

6465
mBinding.run {
66+
ablEverydayAnimeFragment.addFitsSystemWindows(right = true, top = true)
67+
vp2EverydayAnimeFragment.addFitsSystemWindows(right = true)
6568
vp2EverydayAnimeFragment.offscreenPageLimit = offscreenPageLimit
6669
srlEverydayAnimeFragment.setOnRefreshListener { refresh() }
6770

0 commit comments

Comments
 (0)