1
0
mirror of https://github.com/fumiama/copymanga.git synced 2026-06-28 06:40:29 +08:00

2.0.beta10

1. 修复安卓7及以下主页无限弹出搜索框
2. 修复记录历史错误
This commit is contained in:
fumiama
2022-02-16 18:11:04 +08:00
parent aa1fc1ddbc
commit cb666cb104
10 changed files with 94 additions and 94 deletions

3
.idea/misc.xml generated
View File

@@ -3,6 +3,7 @@
<component name="DesignSurface"> <component name="DesignSurface">
<option name="filePathToZoomLevelMap"> <option name="filePathToZoomLevelMap">
<map> <map>
<entry key="../../.gradle/caches/transforms-3/530137dbe1613faf299d06bd64f02665/transformed/jetified-search-2.4.1/res/layout/search_view.xml" value="0.46557971014492755" />
<entry key="app/src/main/res/drawable-anydpi/ic_like.xml" value="0.5572916666666666" /> <entry key="app/src/main/res/drawable-anydpi/ic_like.xml" value="0.5572916666666666" />
<entry key="app/src/main/res/drawable-anydpi/ic_setting_search.xml" value="0.5572916666666666" /> <entry key="app/src/main/res/drawable-anydpi/ic_setting_search.xml" value="0.5572916666666666" />
<entry key="app/src/main/res/layout/activity_login.xml" value="0.49592391304347827" /> <entry key="app/src/main/res/layout/activity_login.xml" value="0.49592391304347827" />
@@ -14,7 +15,7 @@
<entry key="app/src/main/res/layout/fragment_book.xml" value="0.49592391304347827" /> <entry key="app/src/main/res/layout/fragment_book.xml" value="0.49592391304347827" />
<entry key="app/src/main/res/layout/fragment_chapters.xml" value="0.49592391304347827" /> <entry key="app/src/main/res/layout/fragment_chapters.xml" value="0.49592391304347827" />
<entry key="app/src/main/res/layout/fragment_download.xml" value="0.49592391304347827" /> <entry key="app/src/main/res/layout/fragment_download.xml" value="0.49592391304347827" />
<entry key="app/src/main/res/layout/fragment_home.xml" value="0.5095108695652174" /> <entry key="app/src/main/res/layout/fragment_home.xml" value="0.4376278118609407" />
<entry key="app/src/main/res/layout/line_1bookline.xml" value="0.49592391304347827" /> <entry key="app/src/main/res/layout/line_1bookline.xml" value="0.49592391304347827" />
<entry key="app/src/main/res/layout/line_bookinfo.xml" value="0.49592391304347827" /> <entry key="app/src/main/res/layout/line_bookinfo.xml" value="0.49592391304347827" />
<entry key="app/src/main/res/layout/line_booktandb.xml" value="0.48596014492753625" /> <entry key="app/src/main/res/layout/line_booktandb.xml" value="0.48596014492753625" />

View File

@@ -9,8 +9,8 @@ android {
applicationId 'top.fumiama.copymanga' applicationId 'top.fumiama.copymanga'
minSdkVersion 23 minSdkVersion 23
targetSdkVersion 31 targetSdkVersion 31
versionCode 21 versionCode 22
versionName '2.0.beta9' versionName '2.0.beta10'
resConfigs "zh", "zh-rCN" resConfigs "zh", "zh-rCN"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -58,10 +58,10 @@ dependencies {
implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.material:material:1.5.0' implementation 'com.google.android.material:material:1.5.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5' implementation 'androidx.navigation:navigation-fragment-ktx:2.4.1'
implementation 'androidx.navigation:navigation-ui-ktx:2.3.5' implementation 'androidx.navigation:navigation-ui-ktx:2.4.1'
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5' implementation 'androidx.navigation:navigation-fragment-ktx:2.4.1'
implementation 'androidx.navigation:navigation-ui-ktx:2.3.5' implementation 'androidx.navigation:navigation-ui-ktx:2.4.1'
testImplementation 'junit:junit:4.13.2' testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

View File

@@ -0,0 +1,35 @@
package top.fumiama.copymanga.manga
import android.content.Context
import android.content.Intent
import androidx.core.content.edit
import top.fumiama.copymanga.MainActivity.Companion.mainWeakReference
import top.fumiama.copymanga.ui.vm.ViewMangaActivity
object Reader {
fun viewMangaAt(name: String, pos: Int, from_first_page: Boolean = false) {
mainWeakReference?.get()?.apply {
getPreferences(Context.MODE_PRIVATE)?.edit {
putInt(name, pos)
apply()
}
ViewMangaActivity.dlhandler = null
ViewMangaActivity.position = pos
ViewMangaActivity.comicName = name
val zipf = ViewMangaActivity.fileArray[pos]
val intent = Intent(this, ViewMangaActivity::class.java)
if(!from_first_page) {
intent.putExtra("function", "log")
ViewMangaActivity.pn = -2
}
if (zipf.exists()) {
ViewMangaActivity.zipFile = zipf
intent.putExtra("callFrom", "zipFirst")
startActivity(intent)
} else {
ViewMangaActivity.zipFile = null
startActivity(intent)
}
}
}
}

View File

@@ -20,7 +20,6 @@ object CMApi {
.build() .build()
return field return field
} }
fun getImgZipFileFromVM(exDir: File?, chapter2Return: Chapter2Return?) = File(exDir, "${chapter2Return?.results?.comic?.name}/${chapter2Return?.results?.chapter?.group_path_word}/${chapter2Return?.results?.chapter?.name}.zip")
fun getZipFile(exDir: File?, manga: String, caption: CharSequence, name: CharSequence) = File(exDir, "$manga/$caption/$name.zip") fun getZipFile(exDir: File?, manga: String, caption: CharSequence, name: CharSequence) = File(exDir, "$manga/$caption/$name.zip")
fun getApiUrl(id: Int, arg1: String?, arg2: String?) = MainActivity.mainWeakReference?.get()?.getString(id)?.let { String.format(it, arg1, arg2) } fun getApiUrl(id: Int, arg1: String?, arg2: String?) = MainActivity.mainWeakReference?.get()?.getString(id)?.let { String.format(it, arg1, arg2) }
fun getApiUrl(id: Int, arg1: String?, arg2: String?, arg3: Int? = 0) = MainActivity.mainWeakReference?.get()?.getString(id)?.let { String.format(it, arg1, arg2, arg3) } fun getApiUrl(id: Int, arg1: String?, arg2: String?, arg3: Int? = 0) = MainActivity.mainWeakReference?.get()?.getString(id)?.let { String.format(it, arg1, arg2, arg3) }

View File

@@ -10,6 +10,7 @@ import kotlinx.android.synthetic.main.app_bar_main.*
import kotlinx.android.synthetic.main.line_booktandb.* import kotlinx.android.synthetic.main.line_booktandb.*
import top.fumiama.dmzj.copymanga.R import top.fumiama.dmzj.copymanga.R
import top.fumiama.copymanga.MainActivity.Companion.mainWeakReference import top.fumiama.copymanga.MainActivity.Companion.mainWeakReference
import top.fumiama.copymanga.manga.Reader
import top.fumiama.copymanga.template.general.NoBackRefreshFragment import top.fumiama.copymanga.template.general.NoBackRefreshFragment
import java.lang.Thread.sleep import java.lang.Thread.sleep
import java.lang.ref.WeakReference import java.lang.ref.WeakReference
@@ -54,8 +55,8 @@ class BookFragment: NoBackRefreshFragment(R.layout.fragment_book) {
fun setStartRead() { fun setStartRead() {
mainWeakReference?.get()?.apply { mainWeakReference?.get()?.apply {
bookHandler.book?.results?.comic?.name?.let { bookHandler.book?.results?.comic?.name?.let { name ->
getPreferences(MODE_PRIVATE).getInt(it, -1).let { p -> getPreferences(MODE_PRIVATE).getInt(name, -1).let { p ->
this@BookFragment.lbbstart.apply { this@BookFragment.lbbstart.apply {
var i = 0 var i = 0
if(p >= 0) { if(p >= 0) {
@@ -63,7 +64,7 @@ class BookFragment: NoBackRefreshFragment(R.layout.fragment_book) {
i = p i = p
} }
setOnClickListener { setOnClickListener {
bookHandler.callViewManga(i) Reader.viewMangaAt(name, i)
} }
} }
} }

View File

@@ -32,6 +32,7 @@ import top.fumiama.copymanga.json.BookInfoStructure
import top.fumiama.copymanga.json.ChapterStructure import top.fumiama.copymanga.json.ChapterStructure
import top.fumiama.copymanga.json.ThemeStructure import top.fumiama.copymanga.json.ThemeStructure
import top.fumiama.copymanga.json.VolumeStructure import top.fumiama.copymanga.json.VolumeStructure
import top.fumiama.copymanga.manga.Reader
import top.fumiama.copymanga.template.http.AutoDownloadHandler import top.fumiama.copymanga.template.http.AutoDownloadHandler
import top.fumiama.copymanga.template.http.AutoDownloadThread import top.fumiama.copymanga.template.http.AutoDownloadThread
import top.fumiama.copymanga.tools.api.CMApi import top.fumiama.copymanga.tools.api.CMApi
@@ -249,19 +250,19 @@ class BookHandler(that: WeakReference<BookFragment>, private val path: String)
line = layoutInflater.inflate(R.layout.line_chapter, that.fbl, false) line = layoutInflater.inflate(R.layout.line_chapter, that.fbl, false)
line?.lcc?.apply { line?.lcc?.apply {
lct.text = it.name lct.text = it.name
setOnClickListener { callViewManga(i) } setOnClickListener { _ -> Reader.viewMangaAt(it.name, i) }
} }
fbl?.addView(line) fbl?.addView(line)
} else { } else {
line = layoutInflater.inflate(R.layout.line_2chapters, that.fbl, false) line = layoutInflater.inflate(R.layout.line_2chapters, that.fbl, false)
line?.l2cl?.apply { line?.l2cl?.apply {
lct.text = it.name lct.text = it.name
setOnClickListener { callViewManga( i) } setOnClickListener { _ -> Reader.viewMangaAt(it.name, i) }
} }
} }
} else line?.l2cr?.apply { } else line?.l2cr?.apply {
lct.text = it.name lct.text = it.name
setOnClickListener { callViewManga(i) } setOnClickListener { _ -> Reader.viewMangaAt(it.name, i) }
fbl?.addView(line) fbl?.addView(line)
line = null line = null
} }
@@ -362,26 +363,4 @@ class BookHandler(that: WeakReference<BookFragment>, private val path: String)
} }
vols = volumes vols = volumes
} }
fun callViewManga(pos: Int) {
book?.results?.comic?.name?.let {
mainWeakReference?.get()?.getPreferences(MODE_PRIVATE)?.edit {
putInt(it, pos)
apply()
}
}
ViewMangaActivity.dlhandler = null
ViewMangaActivity.position = pos
val zipf = ViewMangaActivity.fileArray[pos]
if (zipf.exists()) {
ViewMangaActivity.zipFile = zipf
that?.startActivity(
Intent(that.context, ViewMangaActivity::class.java)
.putExtra("callFrom", "zipFirst").putExtra("function", "log")
)
} else {
ViewMangaActivity.zipFile = null
that?.startActivity(Intent(that.context, ViewMangaActivity::class.java).putExtra("function", "log"))
}
}
} }

View File

@@ -102,6 +102,7 @@ class HomeFragment : NoBackRefreshFragment(R.layout.fragment_home) {
setOnFocusChangeListener(object : SearchLayout.OnFocusChangeListener { setOnFocusChangeListener(object : SearchLayout.OnFocusChangeListener {
override fun onFocusChange(hasFocus: Boolean) { override fun onFocusChange(hasFocus: Boolean) {
Log.d("MyHF", "fhs onFocusChange: $hasFocus")
navigationIconSupport = if (hasFocus) SearchLayout.NavigationIconSupport.ARROW navigationIconSupport = if (hasFocus) SearchLayout.NavigationIconSupport.ARROW
else { else {
micView.postDelayed({ micView.visibility = View.VISIBLE }, 233) micView.postDelayed({ micView.visibility = View.VISIBLE }, 233)
@@ -110,7 +111,8 @@ class HomeFragment : NoBackRefreshFragment(R.layout.fragment_home) {
} }
}) })
fhns.setOnTouchListener { _, e -> setOnTouchListener { _, e ->
Log.d("MyHF", "fhns on touch")
if (e.action == MotionEvent.ACTION_UP && mSearchEditText?.text?.isNotEmpty() == true) { if (e.action == MotionEvent.ACTION_UP && mSearchEditText?.text?.isNotEmpty() == true) {
ime?.hideSoftInputFromWindow(mainWeakReference?.get()?.window?.decorView?.windowToken, 0) ime?.hideSoftInputFromWindow(mainWeakReference?.get()?.window?.decorView?.windowToken, 0)
} }

View File

@@ -1,11 +1,10 @@
package top.fumiama.copymanga.ui.vm package top.fumiama.copymanga.ui.vm
import android.content.Intent
import android.widget.Toast import android.widget.Toast
import top.fumiama.copymanga.ui.vm.ViewMangaActivity.Companion.fileArray import top.fumiama.copymanga.manga.Reader
import top.fumiama.copymanga.ui.vm.ViewMangaActivity.Companion.comicName
import top.fumiama.copymanga.ui.vm.ViewMangaActivity.Companion.position import top.fumiama.copymanga.ui.vm.ViewMangaActivity.Companion.position
import top.fumiama.copymanga.ui.vm.ViewMangaActivity.Companion.urlArray import top.fumiama.copymanga.ui.vm.ViewMangaActivity.Companion.urlArray
import top.fumiama.copymanga.ui.vm.ViewMangaActivity.Companion.zipFile
import java.lang.ref.WeakReference import java.lang.ref.WeakReference
class PagesManager(w: WeakReference<ViewMangaActivity>) { class PagesManager(w: WeakReference<ViewMangaActivity>) {
@@ -38,18 +37,10 @@ class PagesManager(w: WeakReference<ViewMangaActivity>) {
urlArray.let { urlArray.let {
if(chapterPosition >= 0 && chapterPosition < it.size) it[chapterPosition].let { if(chapterPosition >= 0 && chapterPosition < it.size) it[chapterPosition].let {
if (if(goNext)isEndR else isEndL) { if (if(goNext)isEndR else isEndL) {
val f = fileArray[chapterPosition]
val intent = Intent(v, ViewMangaActivity::class.java)
//if(v.zipFirst) intent.putExtra("callFrom", "zipFirst") //if(v.zipFirst) intent.putExtra("callFrom", "zipFirst")
if(!goNext){
ViewMangaActivity.pn = -2
intent.putExtra("function", "log")
}
zipFile = if (f.exists()) f else null
position = chapterPosition
v.tt.canDo = false v.tt.canDo = false
//ViewMangaActivity.dlhandler = null //ViewMangaActivity.dlhandler = null
v.startActivity(intent) comicName?.let { it1 -> Reader.viewMangaAt(it1, chapterPosition, goNext) }
v.finish() v.finish()
} else { } else {
val hint = if(goNext) '下' else '上' val hint = if(goNext) '下' else '上'

View File

@@ -155,7 +155,9 @@ class VMHandler(activity: ViewMangaActivity, url: String) : AutoDownloadHandler(
@ExperimentalStdlibApi @ExperimentalStdlibApi
private fun prepareManga(){ private fun prepareManga(){
comicName = manga?.results?.comic?.name if(comicName == null) {
comicName = manga?.results?.comic?.name
}
wv.get()?.count = manga?.results?.chapter?.size?:0 wv.get()?.count = manga?.results?.chapter?.size?:0
wv.get()?.initManga() wv.get()?.initManga()
wv.get()?.vprog?.visibility = View.GONE wv.get()?.vprog?.visibility = View.GONE

View File

@@ -1,55 +1,45 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="top.fumiama.copymanga.ui.home.HomeFragment">
<androidx.core.widget.NestedScrollView <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fhns" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="top.fumiama.copymanga.ui.home.HomeFragment"
android:focusableInTouchMode="true">
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swiperefresh"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:fillViewport="true"> android:layout_marginTop="64dp">
<LinearLayout <top.fumiama.copymanga.views.ScrollRefreshView
android:id="@+id/fhov"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:orientation="vertical"> app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="SpeakableTextPresentCheck">
<com.lapism.search.widget.MaterialSearchView <LinearLayout
android:id="@+id/fhs" android:id="@+id/fhl"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_behavior="com.lapism.search.widget.SearchBehavior"> android:orientation="vertical">
</com.lapism.search.widget.MaterialSearchView> </LinearLayout>
</top.fumiama.copymanga.views.ScrollRefreshView>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout <com.lapism.search.widget.MaterialSearchView
android:id="@+id/swiperefresh" android:id="@+id/fhs"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="wrap_content"
app:layout_behavior="com.lapism.search.widget.SearchBehavior">
<top.fumiama.copymanga.views.ScrollRefreshView </com.lapism.search.widget.MaterialSearchView>
android:id="@+id/fhov" </FrameLayout>
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:id="@+id/fhl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
</top.fumiama.copymanga.views.ScrollRefreshView>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>