From 7fe2cd567480ea613d0f56fac1c5e0266238539e Mon Sep 17 00:00:00 2001 From: lunaticbum Date: Sun, 25 Aug 2024 14:46:14 +0900 Subject: [PATCH] . --- app/bs_debug.keystore | Bin 0 -> 2618 bytes app/build.gradle | 11 ++++++- .../com/mime/dualscreenview/activity/Intro.kt | 25 ++++++++++---- .../dualscreenview/data/HistoryManager.kt | 31 +++++++++--------- .../webcontents/contentsinfo/Booktoki.kt | 2 +- build.gradle | 4 +-- 6 files changed, 47 insertions(+), 26 deletions(-) create mode 100644 app/bs_debug.keystore diff --git a/app/bs_debug.keystore b/app/bs_debug.keystore new file mode 100644 index 0000000000000000000000000000000000000000..d8a2f966236f307408b7e58c7261912a84cb6dc3 GIT binary patch literal 2618 zcma)8XH=637EM9|gciD>)XN`_uW z2#A76m0kh@QllU!=(1<`IA?$D{&?rTckg}g-@E4lcm@>+m+-`GylIHQ_*#mP5*qM+ACW zDn25l>MtFU$;gK;Xz7hsZGo7AsOlHvUc2vQN*Hb))Kp30EMF{3Macz$zWT7B##S2S z#paH^?WJFNB~@^EM0>>SlQRiHqJM6XIYnh-1{;8~Jj58g(A*O-CsE~ir%ae@=_B+);|gdG>3-w?`?-MN!k?jrqx+%M|VwkmX<=vV{4`X^VV|miFwEG zNwuC8Dv0}=MZUM_HfCME%lre^S-_Ihm>G3#X2$bS7#zB8ldjCXzO>tUPMA2cRIkqa7E-PG0Bz9t%Yhz2&+EDH!{8)MG- zyZkdTqW1`1K6=B)r&;#yqqGQ%gyHuyOH3>qb zk9CDA<9+;G&ddhaFj*+m0Zs)JMq$7`!9MtmyP-akuCg_Y%_KVibo548^;5XmWivjq zzM<3I?w*+;`|Z5?^vLlUF2!diVa}@MfwqUJqC3yg1tR)km}%j*VXRiVCjpmPyGd4( zI55lQuZ?&o)J)e|fvpq&%-Z!(U)p40{&q8}C-jd4JF8-6?LjA1dB?21Ilgt-@SU#rYDY8BpEBaLpL?$*nWv->)D8h>x{@@rbR|MTzb}s zrCAoHe1*q#%gs6Jodo6DFGVnSoQxRuY~c4`x5Utv{1oSS-C=**Zlb+6V;}BEi<+PA z!!!8ectlOjf|2jqYWFqpm_(uB-gH`e{Dhis^-di-46TP+<1rHlf_&C z=NQaKBNsq){i))%nFRNV$?Ir)*)B&f1|8X}Q0z=G+KGCSLrp6DO}~01JCWevFCH_p z(-MgcPUM>=Kb_j(2g|mE++>p$5VW|W90f<8w$-NWG98Djlm+xUj0JUp2)ymxk8icq zjy*_TYuH2t`CoeRX=)7DZq!~^;xl#xNc)jX_rlT+z9n8yK@NA^Rs_NPb4QybyOvNH z79?c%Bwhr@<68J!xDTdlj(!b4w=O))V9VPrWw3hxCQ`{P1Q+W{T=0k4(l<5*%Qd7+OX@npvfsgDFFZ;3jQggqbY$bZok@0*#Am23Dr=##|EVq$}4xLw)c*_PmU4?i~djVvl&m=)B z{8Iv$In2@$6h-=Nck4dCc8Ff{!4?C{#HZP9lp8BFy7r{C-k$F9Z}PG&rRb_n!E*1- z2UVp+CnZq&!17E-ma%5x^nU7AyNi#^ax!ko7oXaZXu&Z=xopd8L=uqLA5}h52=CcO zE_Oa#NHTbAOZ;XqvZZb{S`oyQ8B)LWWi7yD3a>tA1KCdd@aoHX6b?WI`ewN@9C4Ec zyArOrqjM4THr8#NGenMeBwbD+EHUUz<&;%m_}9u=&omYtkmeRP4dSe8ArNkPSx={D z4%e@)%y*M9Pm=R&RRKIo^Oo6{ZK|o+jrN%_job=ZuDPYw?n{OBq`2a}%_9HyL(hUq zS3BzyYN%Y?Wmnl69xTT|lG3G~%}8%b8~$8d?UoiLD_R8kF|mJK_EJFRikhexe+(vZU%F|n1)CTshEic!c$)=1Y zbl)@AcV=@NXU$3U1f`w(3e6FR2VZ>&>K>nMPO9m5Z3pc>*(}mQ98{1_k_;vgt}~p z_SL~v2DtfFlgFreCb7xUoP5iUQ=JDKci@}{7y|MD^Ur?@0)~O0LjH)1DRx!5^CH%+ zc<&vy#W?gt_S+I8m6sFkN8~z+D3lXq@V?%iJ9_zjxdgc{Ib);F`}ceQI{AMB&FZMo literal 0 HcmV?d00001 diff --git a/app/build.gradle b/app/build.gradle index bf9cf1b..57bd023 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,6 +18,15 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } + signingConfigs { + + debug { + storeFile = file("./bs_debug.keystore") + storePassword = "android" + keyAlias = "androiddebugkey" + keyPassword = "android" + } + } buildTypes { release { @@ -56,7 +65,7 @@ dependencies { // implementation files('libs/DualScreen.jar') - implementation 'io.realm.kotlin:library-base:1.16.0' + implementation 'io.realm.kotlin:library-base:2.0.0' diff --git a/app/src/main/java/com/mime/dualscreenview/activity/Intro.kt b/app/src/main/java/com/mime/dualscreenview/activity/Intro.kt index b49273b..7c29c3b 100644 --- a/app/src/main/java/com/mime/dualscreenview/activity/Intro.kt +++ b/app/src/main/java/com/mime/dualscreenview/activity/Intro.kt @@ -62,8 +62,10 @@ import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.MainScope import kotlinx.coroutines.launch import java.lang.System.currentTimeMillis +import java.text.Normalizer import java.text.SimpleDateFormat import java.util.Date +import java.util.regex.Pattern import kotlin.random.Random @@ -430,6 +432,20 @@ class Intro : Base() , MainControllInterface, PagedTextViewInterface { }) } } + val String.cleanTextContent: String + get() { + // strips off all non-ASCII characters + var text = this + text = text.replace("[^\\x00-\\x7F]".toRegex(), "") + + // erases all the ASCII control characters + text = text.replace("[\\p{Cntrl}&&[^\r\n\t]]".toRegex(), "") + + // removes non-printable characters from Unicode + text = text.replace("\\p{C}".toRegex(), "") + return text.trim() + } + var isLoading = false var saveClient = object : WebViewClient() { override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) { @@ -457,12 +473,10 @@ class Intro : Base() , MainControllInterface, PagedTextViewInterface { Blog.LOGE("saveClient contents >>> ${contents.length}") Uri.parse(url)?.let { it.path?.let { + HistoryManager.getBooPageInfoContentsSave(it, contents.replace(Char(0x20).toString()," ")) HistoryManager.getBooPageInfo(it) { info -> runOnUiThread { info?.let { - HistoryManager.openRealm.writeBlocking { - it.contents = contents - } var origin = info.getTitleItem() val biggerText = SpannableStringBuilder(origin) biggerText.setSpan(RelativeSizeSpan(1.6f), 0, origin.length, 0) @@ -473,6 +487,7 @@ class Intro : Base() , MainControllInterface, PagedTextViewInterface { } } } + } } var ramdomTime = 8000L + Random(System.currentTimeMillis()).nextLong().rem(7999) @@ -863,14 +878,12 @@ class Intro : Base() , MainControllInterface, PagedTextViewInterface { it.path?.let { HistoryManager.getBooPageInfo(it){ currentBooinfo = it - HistoryManager.openRealm.writeBlocking { - currentBooinfo?.contents = contents - } currentChapter = it?.chapterNum ?: 0 currentPage = it?.chapterNum ?: 0 HistoryManager.save(historyItem = HistoryItem().putHistory(it,mBaseWebContentsViewer.webview.url!!)) } } + HistoryManager.getBooPageInfoContentsSave(it!!.path!!,contents) } } } diff --git a/app/src/main/java/com/mime/dualscreenview/data/HistoryManager.kt b/app/src/main/java/com/mime/dualscreenview/data/HistoryManager.kt index b43864d..23e3d3b 100644 --- a/app/src/main/java/com/mime/dualscreenview/data/HistoryManager.kt +++ b/app/src/main/java/com/mime/dualscreenview/data/HistoryManager.kt @@ -21,7 +21,7 @@ object HistoryManager { val openRealm : Realm = Realm.open(RealmConfiguration.Builder(clazz as Set>) .schemaVersion(schemaVersion) - .log(LogLevel.ALL) + .deleteRealmIfMigrationNeeded() .build()) fun save(lastInfo: LastInfo) { @@ -58,13 +58,15 @@ object HistoryManager { openRealm.apply{ Blog.LOGE("get ${url}" ) Blog.LOGE("get ${this.query(BookPageInfo::class).count().find()}" ) - var bookPageInfo = this.query(BookPageInfo::class).query("pathUrl == $0","${url}").find().first() - if (bookPageInfo != null) { + var bookPageInfo = this.query(BookPageInfo::class).query("pathUrl == $0","${url}").find() + if (bookPageInfo != null && bookPageInfo.count() > 0) { Blog.LOGE("get ${bookPageInfo}" ) - this.query(BookPageInfos::class,"bookPageUrl == $0",bookPageInfo.bookPageUrl).find().first().let { + this.query(BookPageInfos::class,"bookPageUrl == $0",bookPageInfo.first().bookPageUrl).find().first().let { Blog.LOGE("get ${it} , ${it?.pages}" ) callback.invoke(this.copyFromRealm(it)) } + } else { + callback.invoke(null) } } } @@ -77,25 +79,22 @@ object HistoryManager { if (result.size > 0) { var bookPageInfo = result?.first() if (bookPageInfo != null) { - callback.invoke(this.copyFromRealm(bookPageInfo)) + callback.invoke(bookPageInfo) } } } } - suspend fun getBooPageInfoContentsSave(url : String, contents : String) { - val realm = openRealm - Blog.LOGE("get ${url}" ) - Blog.LOGE("get ${realm.query(BookPageInfo::class).count().find()}" ) - val result = realm.query(BookPageInfo::class).query("pathUrl == $0","${url}").find() - if (result.size > 0) { - val bookPageInfo = realm.copyFromRealm(result.first()) - realm.write { - bookPageInfo.contents = contents - copyToRealm(bookPageInfo, UpdatePolicy.ALL) + fun getBooPageInfoContentsSave(url : String, contents : String) { + openRealm.writeBlocking { + Blog.LOGE("get ${url}") + Blog.LOGE("get ${query(BookPageInfo::class).count().find()}") + val result = query(BookPageInfo::class).query("pathUrl == $0", "${url}").find() + if (result.size > 0) { + result.first().contents = contents + copyToRealm(result.first(), UpdatePolicy.ALL) } } - } diff --git a/app/src/main/java/com/mime/dualscreenview/webcontents/contentsinfo/Booktoki.kt b/app/src/main/java/com/mime/dualscreenview/webcontents/contentsinfo/Booktoki.kt index 64078eb..63bfbac 100644 --- a/app/src/main/java/com/mime/dualscreenview/webcontents/contentsinfo/Booktoki.kt +++ b/app/src/main/java/com/mime/dualscreenview/webcontents/contentsinfo/Booktoki.kt @@ -4,7 +4,7 @@ import com.mime.dualscreenview.webcontents.BaseWebContents object Booktoki : BaseWebContents() { - override var lastNumber : Int = 349 + override var lastNumber : Int = 350 override fun getWebcontentsName(): String { return "Booktoki" diff --git a/build.gradle b/build.gradle index d5a7d5b..2e41990 100644 --- a/build.gradle +++ b/build.gradle @@ -2,8 +2,8 @@ plugins { id 'com.android.application' version '8.5.2' apply false id 'com.android.library' version '8.5.2' apply false - id 'org.jetbrains.kotlin.android' version '1.9.22' apply false - id 'io.realm.kotlin' version '1.16.0' apply false + id 'org.jetbrains.kotlin.android' version '2.0.0' apply false + id 'io.realm.kotlin' version '2.0.0' apply false }