1
0
mirror of https://github.com/fumiama/copymanga.git synced 2026-06-28 14:50:29 +08:00
修复
1. 漫画下载页加载不全
2. 高版本安卓(>=11)阅览漫画无法隐藏导航栏
3. 主页设置搜索类别永为暗色
4. 获取头像失败则闪退
优化
1. 恢复沉浸式状态栏
2. 升级组件库
This commit is contained in:
源文雨
2023-10-30 02:03:21 +09:00
parent 6819a87f1c
commit b4242e7e0a
26 changed files with 118 additions and 62 deletions

View File

@@ -4,12 +4,12 @@ apply plugin: 'kotlin-android-extensions'
android { android {
defaultConfig { defaultConfig {
compileSdk 33 compileSdk 34
applicationId 'top.fumiama.copymanga' applicationId 'top.fumiama.copymanga'
minSdkVersion 23 minSdkVersion 23
targetSdkVersion 33 targetSdkVersion 33
versionCode 36 versionCode 37
versionName '2.0.0' versionName '2.0.1'
resConfigs 'zh', 'zh-rCN' resConfigs 'zh', 'zh-rCN'
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -55,15 +55,15 @@ android {
} }
dependencies { dependencies {
implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.core:core-ktx:1.12.0'
implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'androidx.appcompat:appcompat:1.6.1'
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.7.0' implementation 'com.google.android.material:material:1.10.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.navigation:navigation-fragment-ktx:2.5.3' implementation 'androidx.navigation:navigation-fragment-ktx:2.7.4'
implementation 'androidx.navigation:navigation-ui-ktx:2.5.3' implementation 'androidx.navigation:navigation-ui-ktx:2.7.4'
testImplementation 'junit:junit:4.13.2' testImplementation 'junit:junit:4.13.2'
implementation "androidx.preference:preference-ktx:1.2.0" implementation "androidx.preference:preference-ktx:1.2.1"
implementation 'com.afollestad.material-dialogs:input:3.3.0' implementation 'com.afollestad.material-dialogs:input:3.3.0'
implementation 'com.github.yalantis:ucrop:2.2.6' implementation 'com.github.yalantis:ucrop:2.2.6'
implementation 'com.to.aboomy:pager2banner:1.0.1' implementation 'com.to.aboomy:pager2banner:1.0.1'

View File

@@ -23,8 +23,7 @@
</provider> </provider>
<activity <activity
android:name="top.fumiama.copymanga.MainActivity" android:name="top.fumiama.copymanga.MainActivity"
android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar"
android:theme="@style/AppTheme.Default"
android:exported="true"> android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />

View File

@@ -41,9 +41,7 @@ import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.app_bar_main.* import kotlinx.android.synthetic.main.app_bar_main.*
import kotlinx.android.synthetic.main.nav_header_main.* import kotlinx.android.synthetic.main.nav_header_main.*
import top.fumiama.copymanga.manga.Shelf import top.fumiama.copymanga.manga.Shelf
import top.fumiama.copymanga.tools.api.CMApi import top.fumiama.copymanga.tools.ui.UITools
import top.fumiama.dmzj.copymanga.R
import top.fumiama.copymanga.tools.api.UITools
import top.fumiama.copymanga.ui.book.BookFragment.Companion.bookHandler import top.fumiama.copymanga.ui.book.BookFragment.Companion.bookHandler
import top.fumiama.copymanga.ui.cardflow.rank.RankFragment import top.fumiama.copymanga.ui.cardflow.rank.RankFragment
import top.fumiama.copymanga.ui.comicdl.ComicDlFragment import top.fumiama.copymanga.ui.comicdl.ComicDlFragment
@@ -52,6 +50,7 @@ import top.fumiama.copymanga.ui.download.NewDownloadFragment
import top.fumiama.copymanga.update.Update import top.fumiama.copymanga.update.Update
import top.fumiama.copymanga.user.Member import top.fumiama.copymanga.user.Member
import top.fumiama.dmzj.copymanga.BuildConfig import top.fumiama.dmzj.copymanga.BuildConfig
import top.fumiama.dmzj.copymanga.R
import java.io.File import java.io.File
import java.io.FileInputStream import java.io.FileInputStream
import java.lang.Thread.sleep import java.lang.Thread.sleep

View File

@@ -4,7 +4,7 @@ import android.app.Activity
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.core.content.edit import androidx.core.content.edit
import top.fumiama.copymanga.tools.api.UITools import top.fumiama.copymanga.tools.ui.UITools
open class ActivityTemplate:Activity() { open class ActivityTemplate:Activity() {
lateinit var toolsBox: UITools lateinit var toolsBox: UITools

View File

@@ -5,7 +5,6 @@ import android.content.Context
import android.net.ConnectivityManager import android.net.ConnectivityManager
import android.net.NetworkCapabilities import android.net.NetworkCapabilities
import android.os.Bundle import android.os.Bundle
import android.util.JsonReader
import android.util.Log import android.util.Log
import android.view.View import android.view.View
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
@@ -15,7 +14,7 @@ import kotlinx.android.synthetic.main.line_header.view.*
import kotlinx.android.synthetic.main.line_lazybooklines.* import kotlinx.android.synthetic.main.line_lazybooklines.*
import top.fumiama.copymanga.MainActivity import top.fumiama.copymanga.MainActivity
import top.fumiama.copymanga.template.ui.CardList import top.fumiama.copymanga.template.ui.CardList
import top.fumiama.copymanga.tools.api.UITools import top.fumiama.copymanga.tools.ui.UITools
import top.fumiama.dmzj.copymanga.R import top.fumiama.dmzj.copymanga.R
import java.lang.Thread.sleep import java.lang.Thread.sleep
import java.lang.ref.WeakReference import java.lang.ref.WeakReference

View File

@@ -14,7 +14,7 @@ import top.fumiama.copymanga.json.ShelfStructure
import top.fumiama.copymanga.json.TypeBookListStructure import top.fumiama.copymanga.json.TypeBookListStructure
import top.fumiama.copymanga.template.general.MangaPagesFragmentTemplate import top.fumiama.copymanga.template.general.MangaPagesFragmentTemplate
import top.fumiama.copymanga.template.http.AutoDownloadThread import top.fumiama.copymanga.template.http.AutoDownloadThread
import top.fumiama.copymanga.tools.api.Navigate import top.fumiama.copymanga.tools.ui.Navigate
import java.lang.ref.WeakReference import java.lang.ref.WeakReference
@ExperimentalStdlibApi @ExperimentalStdlibApi

View File

@@ -1,4 +1,4 @@
package top.fumiama.copymanga.tools.api package top.fumiama.copymanga.tools.ui
import android.graphics.Typeface import android.graphics.Typeface
import androidx.core.content.res.ResourcesCompat import androidx.core.content.res.ResourcesCompat

View File

@@ -1,4 +1,4 @@
package top.fumiama.copymanga.tools.api package top.fumiama.copymanga.tools.ui
import android.content.Context import android.content.Context
import android.graphics.Bitmap import android.graphics.Bitmap

View File

@@ -1,4 +1,4 @@
package top.fumiama.copymanga.tools.api package top.fumiama.copymanga.tools.ui
import android.os.Bundle import android.os.Bundle
import androidx.navigation.NavController import androidx.navigation.NavController

View File

@@ -1,4 +1,4 @@
package top.fumiama.copymanga.tools.api package top.fumiama.copymanga.tools.ui
import android.app.Activity import android.app.Activity
import android.app.AlertDialog import android.app.AlertDialog

View File

@@ -15,7 +15,7 @@ import top.fumiama.copymanga.MainActivity.Companion.mainWeakReference
import top.fumiama.copymanga.json.VolumeStructure import top.fumiama.copymanga.json.VolumeStructure
import top.fumiama.copymanga.manga.Reader import top.fumiama.copymanga.manga.Reader
import top.fumiama.copymanga.template.general.NoBackRefreshFragment import top.fumiama.copymanga.template.general.NoBackRefreshFragment
import top.fumiama.copymanga.tools.api.Navigate import top.fumiama.copymanga.tools.ui.Navigate
import top.fumiama.copymanga.ui.comicdl.ComicDlFragment import top.fumiama.copymanga.ui.comicdl.ComicDlFragment
import top.fumiama.dmzj.copymanga.R import top.fumiama.dmzj.copymanga.R
import java.io.File import java.io.File

View File

@@ -23,7 +23,6 @@ import kotlinx.android.synthetic.main.line_bookinfo.*
import kotlinx.android.synthetic.main.line_bookinfo_text.* import kotlinx.android.synthetic.main.line_bookinfo_text.*
import kotlinx.android.synthetic.main.line_caption.view.* import kotlinx.android.synthetic.main.line_caption.view.*
import kotlinx.android.synthetic.main.line_chapter.view.* import kotlinx.android.synthetic.main.line_chapter.view.*
import top.fumiama.copymanga.MainActivity
import top.fumiama.copymanga.MainActivity.Companion.mainWeakReference import top.fumiama.copymanga.MainActivity.Companion.mainWeakReference
import top.fumiama.copymanga.json.BookInfoStructure import top.fumiama.copymanga.json.BookInfoStructure
import top.fumiama.copymanga.json.ChapterStructure import top.fumiama.copymanga.json.ChapterStructure
@@ -33,8 +32,8 @@ 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
import top.fumiama.copymanga.tools.api.GlideBlurTransformation import top.fumiama.copymanga.tools.ui.GlideBlurTransformation
import top.fumiama.copymanga.tools.api.Navigate import top.fumiama.copymanga.tools.ui.Navigate
import top.fumiama.copymanga.ui.comicdl.ComicDlFragment import top.fumiama.copymanga.ui.comicdl.ComicDlFragment
import top.fumiama.copymanga.ui.comicdl.ComicDlFragment.Companion.json import top.fumiama.copymanga.ui.comicdl.ComicDlFragment.Companion.json
import top.fumiama.copymanga.ui.vm.ViewMangaActivity import top.fumiama.copymanga.ui.vm.ViewMangaActivity

View File

@@ -7,8 +7,7 @@ import kotlinx.android.synthetic.main.line_rank.view.*
import top.fumiama.copymanga.MainActivity import top.fumiama.copymanga.MainActivity
import top.fumiama.copymanga.template.ui.InfoCardLoader import top.fumiama.copymanga.template.ui.InfoCardLoader
import top.fumiama.copymanga.tools.api.CMApi import top.fumiama.copymanga.tools.api.CMApi
import top.fumiama.copymanga.tools.api.UITools import top.fumiama.copymanga.tools.ui.UITools
import top.fumiama.copymanga.ui.download.NewDownloadFragment
import top.fumiama.dmzj.copymanga.R import top.fumiama.dmzj.copymanga.R
import java.lang.Thread.sleep import java.lang.Thread.sleep
import java.lang.ref.WeakReference import java.lang.ref.WeakReference

View File

@@ -26,7 +26,7 @@ import top.fumiama.copymanga.json.ComicStructureOld
import top.fumiama.copymanga.json.VolumeStructure import top.fumiama.copymanga.json.VolumeStructure
import top.fumiama.copymanga.tools.api.CMApi import top.fumiama.copymanga.tools.api.CMApi
import top.fumiama.copymanga.manga.MangaDlTools import top.fumiama.copymanga.manga.MangaDlTools
import top.fumiama.copymanga.tools.api.UITools import top.fumiama.copymanga.tools.ui.UITools
import top.fumiama.copymanga.ui.comicdl.ComicDlFragment.Companion.json import top.fumiama.copymanga.ui.comicdl.ComicDlFragment.Companion.json
import top.fumiama.copymanga.ui.vm.ViewMangaActivity import top.fumiama.copymanga.ui.vm.ViewMangaActivity
import top.fumiama.copymanga.views.ChapterToggleButton import top.fumiama.copymanga.views.ChapterToggleButton

View File

@@ -12,7 +12,7 @@ import kotlinx.android.synthetic.main.app_bar_main.*
import kotlinx.android.synthetic.main.fragment_download.* import kotlinx.android.synthetic.main.fragment_download.*
import top.fumiama.copymanga.MainActivity.Companion.mainWeakReference import top.fumiama.copymanga.MainActivity.Companion.mainWeakReference
import top.fumiama.copymanga.template.general.NoBackRefreshFragment import top.fumiama.copymanga.template.general.NoBackRefreshFragment
import top.fumiama.copymanga.tools.api.Navigate import top.fumiama.copymanga.tools.ui.Navigate
import top.fumiama.copymanga.tools.file.FileUtils import top.fumiama.copymanga.tools.file.FileUtils
import top.fumiama.copymanga.ui.comicdl.ComicDlFragment import top.fumiama.copymanga.ui.comicdl.ComicDlFragment
import top.fumiama.copymanga.ui.vm.ViewMangaActivity import top.fumiama.copymanga.ui.vm.ViewMangaActivity
@@ -31,7 +31,7 @@ class DownloadFragment: NoBackRefreshFragment(R.layout.fragment_download) {
} }
} }
private fun scanFile(cd: File?){ private fun scanFile(cd: File?) {
val isRoot = cd == context?.getExternalFilesDir("") val isRoot = cd == context?.getExternalFilesDir("")
val jsonFile = File(cd, "info.bin") val jsonFile = File(cd, "info.bin")
if(isRoot || !jsonFile.exists()) cd?.list()?.sortedArrayWith { o1, o2 -> if(isRoot || !jsonFile.exists()) cd?.list()?.sortedArrayWith { o1, o2 ->

View File

@@ -1,20 +1,18 @@
package top.fumiama.copymanga.ui.download package top.fumiama.copymanga.ui.download
import android.app.Activity
import android.app.AlertDialog import android.app.AlertDialog
import android.os.Bundle import android.os.Bundle
import android.util.Log import android.util.Log
import android.view.View import android.view.View
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import com.google.gson.Gson
import kotlinx.android.synthetic.main.line_lazybooklines.* import kotlinx.android.synthetic.main.line_lazybooklines.*
import top.fumiama.copymanga.MainActivity import top.fumiama.copymanga.MainActivity
import top.fumiama.copymanga.manga.Reader import top.fumiama.copymanga.manga.Reader
import top.fumiama.copymanga.template.general.MangaPagesFragmentTemplate import top.fumiama.copymanga.template.general.MangaPagesFragmentTemplate
import top.fumiama.copymanga.template.ui.CardList import top.fumiama.copymanga.template.ui.CardList
import top.fumiama.copymanga.tools.api.Navigate import top.fumiama.copymanga.tools.ui.Navigate
import top.fumiama.copymanga.tools.api.UITools import top.fumiama.copymanga.tools.ui.UITools
import top.fumiama.copymanga.tools.file.FileUtils import top.fumiama.copymanga.tools.file.FileUtils
import top.fumiama.copymanga.ui.comicdl.ComicDlFragment import top.fumiama.copymanga.ui.comicdl.ComicDlFragment
import top.fumiama.dmzj.copymanga.R import top.fumiama.dmzj.copymanga.R
@@ -53,6 +51,10 @@ class NewDownloadFragment: MangaPagesFragmentTemplate(R.layout.fragment_newdownl
override fun addPage() { override fun addPage() {
super.addPage() super.addPage()
if(isRefresh){
page = 0
isRefresh = false
}
if(!isEnd) { if(!isEnd) {
if(sortedBookList == null || isContentChanged) { if(sortedBookList == null || isContentChanged) {
Log.d("MyNDF", "Sorting books...") Log.d("MyNDF", "Sorting books...")
@@ -67,6 +69,7 @@ class NewDownloadFragment: MangaPagesFragmentTemplate(R.layout.fragment_newdownl
} }
Log.d("MyNDF", "Start drawing cards") Log.d("MyNDF", "Start drawing cards")
cardList?.addCard(oldDlCardName, path = oldDlCardName) cardList?.addCard(oldDlCardName, path = oldDlCardName)
var cnt = 1
sortedBookList?.let { sortedBookList?.let {
for(i in it.listIterator(page)) { for(i in it.listIterator(page)) {
if(cardList?.exitCardList != false) return if(cardList?.exitCardList != false) return
@@ -79,8 +82,10 @@ class NewDownloadFragment: MangaPagesFragmentTemplate(R.layout.fragment_newdownl
newJson.exists() -> { newJson.exists() -> {
if(cardList?.exitCardList != false) return if(cardList?.exitCardList != false) return
cardList?.addCard(i.name, "\n${bookSize}MB") cardList?.addCard(i.name, "\n${bookSize}MB")
cnt++
} }
} }
if (cnt >= 21) break
} }
if(page >= it.size) { if(page >= it.size) {
isEnd = true isEnd = true

View File

@@ -29,7 +29,7 @@ import top.fumiama.copymanga.json.BookListStructure
import top.fumiama.copymanga.template.general.NoBackRefreshFragment import top.fumiama.copymanga.template.general.NoBackRefreshFragment
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
import top.fumiama.copymanga.tools.api.Navigate import top.fumiama.copymanga.tools.ui.Navigate
import top.fumiama.dmzj.copymanga.R import top.fumiama.dmzj.copymanga.R
import java.lang.Thread.sleep import java.lang.Thread.sleep
import java.lang.ref.WeakReference import java.lang.ref.WeakReference
@@ -91,7 +91,7 @@ class HomeFragment : NoBackRefreshFragment(R.layout.fragment_home) {
var i = 0 var i = 0
override fun onMicClick() { override fun onMicClick() {
val typeNames = resources.getStringArray(R.array.search_types) val typeNames = resources.getStringArray(R.array.search_types)
AlertDialog.Builder(ContextThemeWrapper(context, R.style.AlertDialogTheme)) AlertDialog.Builder(context)
.setTitle(R.string.set_search_types) .setTitle(R.string.set_search_types)
.setIcon(R.mipmap.ic_launcher) .setIcon(R.mipmap.ic_launcher)
.setSingleChoiceItems(ArrayAdapter(context, R.layout.line_choice_list, typeNames), i){ d, p -> .setSingleChoiceItems(ArrayAdapter(context, R.layout.line_choice_list, typeNames), i){ d, p ->
@@ -137,7 +137,7 @@ class HomeFragment : NoBackRefreshFragment(R.layout.fragment_home) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
val tb = mainWeakReference?.get()?.toolsBox val tb = mainWeakReference?.get()?.toolsBox
val netInfo = tb?.netInfo val netInfo = tb?.netInfo
if(netInfo != null && netInfo != tb.transportStringNull && netInfo != tb.transportStringError)Thread { if(netInfo != null && netInfo != tb.transportStringNull && netInfo != tb.transportStringError) Thread {
val l = MainActivity.member?.refreshAvatar() val l = MainActivity.member?.refreshAvatar()
if (l?.code != 200) { if (l?.code != 200) {
MainActivity.member?.logout() MainActivity.member?.logout()

View File

@@ -12,7 +12,6 @@ import android.widget.LinearLayout
import android.widget.Toast import android.widget.Toast
import androidx.cardview.widget.CardView import androidx.cardview.widget.CardView
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import androidx.navigation.Navigation
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.bumptech.glide.load.model.GlideUrl import com.bumptech.glide.load.model.GlideUrl
@@ -22,14 +21,13 @@ import com.to.aboomy.pager2banner.ScaleInTransformer
import kotlinx.android.synthetic.main.card_book.view.* import kotlinx.android.synthetic.main.card_book.view.*
import kotlinx.android.synthetic.main.fragment_home.* import kotlinx.android.synthetic.main.fragment_home.*
import kotlinx.android.synthetic.main.line_1bookline.view.* import kotlinx.android.synthetic.main.line_1bookline.view.*
import top.fumiama.copymanga.MainActivity.Companion.mainWeakReference
import top.fumiama.dmzj.copymanga.R import top.fumiama.dmzj.copymanga.R
import top.fumiama.copymanga.json.ComicStructure import top.fumiama.copymanga.json.ComicStructure
import top.fumiama.copymanga.json.IndexStructure import top.fumiama.copymanga.json.IndexStructure
import top.fumiama.copymanga.template.http.AutoDownloadHandler import top.fumiama.copymanga.template.http.AutoDownloadHandler
import top.fumiama.copymanga.tools.api.CMApi import top.fumiama.copymanga.tools.api.CMApi
import top.fumiama.copymanga.tools.api.Navigate import top.fumiama.copymanga.tools.ui.Navigate
import top.fumiama.copymanga.tools.api.UITools import top.fumiama.copymanga.tools.ui.UITools
import java.lang.Thread.sleep import java.lang.Thread.sleep
import java.lang.ref.WeakReference import java.lang.ref.WeakReference

View File

@@ -1,13 +1,68 @@
package top.fumiama.copymanga.ui.settings package top.fumiama.copymanga.ui.settings
import android.content.SharedPreferences import android.animation.ObjectAnimator
import android.graphics.Rect
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.view.Window
import androidx.annotation.Keep
import androidx.preference.EditTextPreference
import androidx.preference.EditTextPreferenceDialogFragmentCompat
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceManager
import top.fumiama.dmzj.copymanga.R import top.fumiama.dmzj.copymanga.R
import java.lang.Thread.sleep
class SettingsFragment: PreferenceFragmentCompat() { class SettingsFragment: PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.pref_setting, rootKey) setPreferencesFromResource(R.xml.pref_setting, rootKey)
} }
override fun onDisplayPreferenceDialog(preference: Preference) {
if (preference is EditTextPreference) {
Log.d("MySF", "preference is EditTextPreference")
val f = EditTextPreferenceDialogFragmentCompat.newInstance(preference.key)
f.setTargetFragment(this, 0)
f.show(parentFragmentManager, null)
Thread {
var diff = 0
var cnt = 0
while (diff == 0 && cnt++ < 20) {
sleep(50)
if (f.dialog == null) continue
val v = view?:return@Thread
// https://github.com/mikepenz/MaterialDrawer/blob/aa9136fb4f5b3a80460fe5f47213985026d20c88/library/src/main/java/com/mikepenz/materialdrawer/util/KeyboardUtil.java
val r = Rect()
//r will be populated with the coordinates of your view that area still visible.
v.getWindowVisibleDisplayFrame(r)
//get screen height and calculate the difference with the useable area from the r
val height = v.context.resources.displayMetrics.heightPixels
diff = height - r.bottom
Log.d("MySF", "diff: $diff")
}
Log.d("MySF", "diff out while: $diff")
if (diff == 0) return@Thread
Log.d("MySF", "f.dialog is ${f.dialog}")
f.activity?.runOnUiThread {
f.dialog?.window?.apply {
val attr = attributes
Log.d("MySF", "animate from ${attr.y} to ${attr.y-diff/2}")
ObjectAnimator.ofInt(WindowAttributeSetter(this), "y", attr.y, attr.y-diff/2).setDuration(233).start()
}
}
}.start()
return
}
super.onDisplayPreferenceDialog(preference)
}
inner class WindowAttributeSetter(private val window: Window) {
@Keep
fun setY(y: Int) {
val attr = window.attributes
attr.y = y
Log.d("MySF", "set y to $y")
window.attributes = attr
}
}
} }

View File

@@ -3,14 +3,11 @@ package top.fumiama.copymanga.ui.vm
import android.animation.ObjectAnimator import android.animation.ObjectAnimator
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Service import android.app.Service
import android.content.Context
import android.content.res.Resources
import android.graphics.Bitmap import android.graphics.Bitmap
import android.graphics.BitmapFactory import android.graphics.BitmapFactory
import android.graphics.Canvas import android.graphics.Canvas
import android.graphics.Paint import android.graphics.Paint
import android.graphics.drawable.BitmapDrawable import android.graphics.drawable.BitmapDrawable
import android.graphics.drawable.Drawable
import android.media.AudioManager import android.media.AudioManager
import android.os.Bundle import android.os.Bundle
import android.os.Handler import android.os.Handler
@@ -42,7 +39,7 @@ import top.fumiama.dmzj.copymanga.R
import top.fumiama.copymanga.template.general.TitleActivityTemplate import top.fumiama.copymanga.template.general.TitleActivityTemplate
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
import top.fumiama.copymanga.tools.api.Font import top.fumiama.copymanga.tools.ui.Font
import top.fumiama.copymanga.tools.http.DownloadTools import top.fumiama.copymanga.tools.http.DownloadTools
import top.fumiama.copymanga.tools.thread.TimeThread import top.fumiama.copymanga.tools.thread.TimeThread
import top.fumiama.copymanga.views.ScaleImageView import top.fumiama.copymanga.views.ScaleImageView
@@ -140,7 +137,7 @@ class ViewMangaActivity : TitleActivityTemplate() {
else { else {
window.setDecorFitsSystemWindows(false) window.setDecorFitsSystemWindows(false)
window.insetsController?.hide(WindowInsets.Type.statusBars()) window.insetsController?.hide(WindowInsets.Type.statusBars())
//window.insetsController?.hide(WindowInsets.Type.navigationBars()) window.insetsController?.hide(WindowInsets.Type.navigationBars())
} }
} }

View File

@@ -10,7 +10,7 @@ import android.widget.Toast
import androidx.core.content.FileProvider import androidx.core.content.FileProvider
import androidx.core.content.edit import androidx.core.content.edit
import kotlinx.android.synthetic.main.dialog_progress.view.* import kotlinx.android.synthetic.main.dialog_progress.view.*
import top.fumiama.copymanga.tools.api.UITools import top.fumiama.copymanga.tools.ui.UITools
import top.fumiama.dmzj.copymanga.BuildConfig import top.fumiama.dmzj.copymanga.BuildConfig
import top.fumiama.dmzj.copymanga.R import top.fumiama.dmzj.copymanga.R
import java.io.File import java.io.File

View File

@@ -41,13 +41,20 @@ class Member(private val pref: SharedPreferences, private val getString: (Int) -
} }
fun refreshAvatar() : LoginInfoStructure { fun refreshAvatar() : LoginInfoStructure {
DownloadTools.getHttpContent(getString(R.string.memberInfoApiUrl).format( try {
CMApi.myHostApiUrl))?.decodeToString()?.let { DownloadTools.getHttpContent(getString(R.string.memberInfoApiUrl).format(
val l = Gson().fromJson(it, LoginInfoStructure::class.java) CMApi.myHostApiUrl))?.decodeToString()?.let {
if(l.code == 200) pref.edit()?.apply { val l = Gson().fromJson(it, LoginInfoStructure::class.java)
putString("avatar", l.results.avatar) if(l.code == 200) pref.edit()?.apply {
apply() putString("avatar", l.results.avatar)
apply()
}
return l
} }
} catch (e: Exception) {
val l = LoginInfoStructure()
l.code = 400
l.message = "${getString(R.string.login_get_avatar_failed)}: ${e.localizedMessage}"
return l return l
} }
val l = LoginInfoStructure() val l = LoginInfoStructure()

View File

@@ -646,7 +646,7 @@ class ScaleImageView : ImageView {
private val mGestureDetector = private val mGestureDetector =
GestureDetector(this.context, object : SimpleOnGestureListener() { GestureDetector(this.context, object : SimpleOnGestureListener() {
override fun onFling( override fun onFling(
e1: MotionEvent, e1: MotionEvent?,
e2: MotionEvent, e2: MotionEvent,
velocityX: Float, velocityX: Float,
velocityY: Float velocityY: Float
@@ -657,7 +657,7 @@ class ScaleImageView : ImageView {
fling(velocityX, velocityY) fling(velocityX, velocityY)
//parent.requestDisallowInterceptTouchEvent(false) //触摸事件请求取消拦截 //parent.requestDisallowInterceptTouchEvent(false) //触摸事件请求取消拦截
} }
return true return super.onFling(e1, e2, velocityX, velocityY)
} }
override fun onLongPress(e: MotionEvent) { override fun onLongPress(e: MotionEvent) {

View File

@@ -17,7 +17,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="16dp" android:layout_height="16dp"
android:background="?attr/colorPrimarySurface" android:background="?attr/colorPrimarySurface"
android:visibility="gone" android:visibility="visible"
app:layout_scrollFlags="scroll|enterAlways" /> app:layout_scrollFlags="scroll|enterAlways" />
<androidx.appcompat.widget.Toolbar <androidx.appcompat.widget.Toolbar

View File

@@ -3,4 +3,5 @@
android:id="@+id/mylv" android:id="@+id/mylv"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:nestedScrollingEnabled="true" /> android:nestedScrollingEnabled="true"
android:paddingBottom="@dimen/global_content_padding_bottom"/>

View File

@@ -33,6 +33,4 @@
<style name="Widget.MPM.Menu.Dark.CustomBackground"> <style name="Widget.MPM.Menu.Dark.CustomBackground">
<item name="android:colorBackground">?attr/colorSurface</item> <item name="android:colorBackground">?attr/colorSurface</item>
</style> </style>
<style name="AlertDialogTheme" parent="Theme.MaterialComponents.Dialog.Alert"/>
</resources> </resources>