Resolve #489
This commit is contained in:
1 parent
68d1e39410
commit
b69b72cd1b
18 files changed
+29
-30
No files matched your search
@@ -50,6 +50,12 @@ android {
|
||||
kotlinOptions {
|
||||
jvmTarget = '19'
|
||||
freeCompilerArgs += [
|
||||
// https://kotlinlang.org/docs/compiler-reference.html#progressive
|
||||
"-progressive",
|
||||
// Generate smaller bytecode by not generating runtime not-null assertions.
|
||||
"-Xno-call-assertions",
|
||||
"-Xno-param-assertions",
|
||||
"-Xno-receiver-assertions",
|
||||
"-P",
|
||||
"plugin:androidx.compose.compiler.plugins.kotlin:suppressKotlinVersionCompatibilityCheck=true"
|
||||
]
|
||||
|
||||
@@ -20,7 +20,6 @@ package com.hippo
|
||||
import java.io.FileDescriptor
|
||||
|
||||
object Native {
|
||||
@JvmStatic
|
||||
fun initialize() {
|
||||
System.loadLibrary("ehviewer")
|
||||
}
|
||||
|
||||
@@ -86,20 +86,16 @@ class EhApplication : SceneApplication() {
|
||||
val handler = Thread.getDefaultUncaughtExceptionHandler()
|
||||
Thread.setDefaultUncaughtExceptionHandler { t, e ->
|
||||
try {
|
||||
// Always save crash file if onCreate() is not done
|
||||
if (!initialized || Settings.getSaveCrashLog()) {
|
||||
if (Settings.getSaveCrashLog()) {
|
||||
Crash.saveCrashLog(application, e)
|
||||
}
|
||||
} catch (ignored: Throwable) {
|
||||
}
|
||||
|
||||
handler?.uncaughtException(t, e)
|
||||
}
|
||||
super.onCreate()
|
||||
Image.initialize(this)
|
||||
Native.initialize()
|
||||
GetText.initialize(this)
|
||||
StatusCodeException.initialize(this)
|
||||
Settings.initialize(this)
|
||||
ReadableTime.initialize(this)
|
||||
AppConfig.initialize(this)
|
||||
|
||||
@@ -131,7 +131,7 @@ public final class SignInScene extends SolidScene implements EditText.OnEditorAc
|
||||
mSignIn = ViewUtils.$$(loginForm, R.id.sign_in);
|
||||
mSignInViaWebView = (TextView) ViewUtils.$$(loginForm, R.id.sign_in_via_webview);
|
||||
mSignInViaCookies = (TextView) ViewUtils.$$(loginForm, R.id.sign_in_via_cookies);
|
||||
mSkipSigningIn = (TextView) ViewUtils.$$(loginForm, R.id.skip_signing_in);
|
||||
mSkipSigningIn = (TextView) ViewUtils.$$(loginForm, R.id.tourist_mode);
|
||||
|
||||
mSignInViaWebView.setPaintFlags(mSignInViaWebView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG);
|
||||
mSignInViaCookies.setPaintFlags(mSignInViaCookies.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG);
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
*/
|
||||
package com.hippo.image
|
||||
|
||||
import android.content.Context
|
||||
import android.content.res.Resources
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.Canvas
|
||||
@@ -32,6 +31,7 @@ import android.graphics.drawable.AnimatedImageDrawable
|
||||
import android.graphics.drawable.BitmapDrawable
|
||||
import android.graphics.drawable.Drawable
|
||||
import androidx.core.graphics.drawable.toDrawable
|
||||
import com.hippo.ehviewer.EhApplication
|
||||
import java.io.FileInputStream
|
||||
import java.nio.ByteBuffer
|
||||
import java.nio.channels.FileChannel
|
||||
@@ -169,8 +169,8 @@ class Image private constructor(
|
||||
var screenWidth: Int = 0
|
||||
var screenHeight: Int = 0
|
||||
|
||||
@JvmStatic
|
||||
fun initialize(context: Context) {
|
||||
init {
|
||||
val context = EhApplication.application
|
||||
screenWidth = context.resources.displayMetrics.widthPixels
|
||||
screenHeight = context.resources.displayMetrics.heightPixels
|
||||
}
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
*/
|
||||
package com.hippo.network
|
||||
|
||||
import android.content.Context
|
||||
import android.util.SparseArray
|
||||
import com.hippo.ehviewer.EhApplication
|
||||
import com.hippo.ehviewer.R
|
||||
|
||||
class StatusCodeException(val responseCode: Int) : Exception() {
|
||||
@@ -33,9 +33,8 @@ class StatusCodeException(val responseCode: Int) : Exception() {
|
||||
private val ERROR_MESSAGE_ARRAY = SparseArray<String>(24)
|
||||
private const val DEFAULT_ERROR_MESSAGE = "Error response code"
|
||||
|
||||
@JvmStatic
|
||||
fun initialize(context: Context) {
|
||||
val resources = context.applicationContext.resources
|
||||
init {
|
||||
val resources = EhApplication.application.resources
|
||||
ERROR_MESSAGE_ARRAY.append(400, resources.getString(R.string.error_status_code_400))
|
||||
ERROR_MESSAGE_ARRAY.append(401, resources.getString(R.string.error_status_code_401))
|
||||
ERROR_MESSAGE_ARRAY.append(402, resources.getString(R.string.error_status_code_402))
|
||||
@@ -62,5 +61,4 @@ class StatusCodeException(val responseCode: Int) : Exception() {
|
||||
ERROR_MESSAGE_ARRAY.append(505, resources.getString(R.string.error_status_code_505))
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -158,13 +158,13 @@
|
||||
android:text="@string/sign_in_via_cookies" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/skip_signing_in"
|
||||
android:id="@+id/tourist_mode"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:background="?selectableItemBackground"
|
||||
android:paddingHorizontal="8dp"
|
||||
android:text="@string/skip_signing_in" />
|
||||
android:text="@string/tourist_mode" />
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -160,13 +160,13 @@
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/skip_signing_in"
|
||||
android:id="@+id/tourist_mode"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:background="?selectableItemBackground"
|
||||
android:paddingHorizontal="8dp"
|
||||
android:text="@string/skip_signing_in" />
|
||||
android:text="@string/tourist_mode" />
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
||||
|
||||
@@ -395,7 +395,7 @@
|
||||
<string name="app_waring">Inhalt dieser App kommt aus dem Internet, von dem einige dir körperlichen oder emotionalen Schaden zufügen kann. Du hast es wirklich erfahrt und möchtest immer noch fortsetzen.</string>
|
||||
<string name="error_username_cannot_empty">Gibt den Nutzername ein</string>
|
||||
<string name="error_password_cannot_empty">Gibt das Passwort ein</string>
|
||||
<string name="skip_signing_in">Anmeldung überspringen</string>
|
||||
<string name="tourist_mode">Anmeldung überspringen</string>
|
||||
<string name="sign_in_failed">Anmeldung fehlgeschlagen</string>
|
||||
<string name="settings_advanced_clear_download_path_cache_summary">Wenn etwas dem Downloadpfad schiefgelaufen ist, den Downloadpfad reinigen, könnte das Problem lösen.</string>
|
||||
<string name="settings_advanced_clear_download_path_cache_message">Downloadpfadszwischenspeicher löschen?</string>
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
|
||||
<string name="app_waring">El contenido de esta aplicación es de Internet. Algunas de ellas pueden causarle daño psicológico. Ahora sabes los riesgos anteriormente mencionado y te gustaría asumirlos</string>
|
||||
<string name="error_username_cannot_empty">El usuario no puede estar vacío</string>
|
||||
<string name="skip_signing_in">Saltar inicio de sesión</string>
|
||||
<string name="tourist_mode">Saltar inicio de sesión</string>
|
||||
<string name="sign_in_failed">Inicio de sesión fallido</string>
|
||||
<string name="get_it">Entendido</string>
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
<string name="app_waring">Le contenu de l\'application provient de l\'Internet, dont quelque chose peut vous causer le dommage physique ou mentale. Vous l\'avez bien compris et voulez continuer quand même.</string>
|
||||
<string name="error_username_cannot_empty">Nom d\'ultilisateur ne doit pas être une chaîne vide</string>
|
||||
<string name="error_password_cannot_empty">Mot de passe ne doit pas être une chaîne vide</string>
|
||||
<string name="skip_signing_in">Continuer sans se connecter</string>
|
||||
<string name="tourist_mode">Continuer sans se connecter</string>
|
||||
<string name="sign_in_failed">Impossible de se connecter</string>
|
||||
<string name="get_it">Compris</string>
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
<string name="app_waring">このアプリの内容はインターネットから取得したものです。その内容の一部は使用者のお体や心理に傷つける恐れがあります。それでも続行しますか?</string>
|
||||
<string name="error_username_cannot_empty">ユーザー名を入力してください。</string>
|
||||
<string name="error_password_cannot_empty">パスワードを入力してください。</string>
|
||||
<string name="skip_signing_in">ログインをスキップ</string>
|
||||
<string name="tourist_mode">ログインをスキップ</string>
|
||||
<string name="sign_in_failed">ログインに失敗しました。</string>
|
||||
<string name="get_it">了解</string>
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
<string name="app_waring">이 앱의 내용은 인터넷에서 받아옵니다. 이 앱을 사용하기 위해서는 받아온 내용 중 일부가 사용자에게 가할 수 있는 신체적 또는 정신적 피해를 감수해야 합니다.</string>
|
||||
<string name="error_username_cannot_empty">사용자 이름은 비워둘 수 없습니다.</string>
|
||||
<string name="error_password_cannot_empty">비밀번호는 비워둘 수 없습니다.</string>
|
||||
<string name="skip_signing_in">로그인 없이 사용</string>
|
||||
<string name="tourist_mode">로그인 없이 사용</string>
|
||||
<string name="sign_in_failed">로그인 실패</string>
|
||||
<string name="get_it">알겠습니다</string>
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
<string name="app_waring">เนื้อหาภายในแอปพลิเคชั่นนี้มาจากอินเทอร์เน็ตทั้งหมด อาจมีเนื้อหาบางอย่างที่มีผลต่อร่างกายหรือจิตใจของคุณ คุณจะต้องยอมรับความเสี่ยงที่ดังกล่าว และดำเนินการต่อไป</string>
|
||||
<string name="error_username_cannot_empty">ชื่อผู้ใช้ห้ามเว้นว่างไว้</string>
|
||||
<string name="error_password_cannot_empty">รหัสผ่านห้ามเว้นว่างไว้</string>
|
||||
<string name="skip_signing_in">ดำเนินการต่อโดยไม่ต้องลงชื่อเข้าระบบ</string>
|
||||
<string name="tourist_mode">ดำเนินการต่อโดยไม่ต้องลงชื่อเข้าระบบ</string>
|
||||
<string name="sign_in_failed">การลงชื่อเข้าใช้ล้มเหลว</string>
|
||||
<string name="get_it">เข้าใจแล้ว ไม่ต้องแสดงอีก</string>
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
<string name="app_waring">本应用中内容来自互联网,部分内容可能对您的生理及心理造成难以恢复的伤害。本应用作者不会对由本应用造成的任何后果负责。\n\n未成年人应在监护人指导下使用本应用。\n\n继续使用即代表您同意上述条款。</string>
|
||||
<string name="error_username_cannot_empty">用户名不可为空</string>
|
||||
<string name="error_password_cannot_empty">密码不可为空</string>
|
||||
<string name="skip_signing_in">游客模式</string>
|
||||
<string name="tourist_mode">游客模式</string>
|
||||
<string name="sign_in_failed">登录失败</string>
|
||||
<string name="sign_in_failed_tip">若持续出错,请尝试“通过网页登录”或“通过 Cookie 登录”。</string>
|
||||
<string name="get_it">知道了</string>
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
<string name="app_waring">本應用中內容來自互聯網,部分內容可能對您的生理及心理造成難以恢復的傷害。本應用作者不會對由本應用造成的任何後果負責。\n\n未成年人應在監護人指導下使用本應用。</string>
|
||||
<string name="error_username_cannot_empty">用户名不可為空</string>
|
||||
<string name="error_password_cannot_empty">密碼不可為空</string>
|
||||
<string name="skip_signing_in">跳過登錄</string>
|
||||
<string name="tourist_mode">跳過登錄</string>
|
||||
<string name="sign_in_failed">登錄失敗</string>
|
||||
<string name="sign_in_failed_tip">若持續出錯,請嘗試“通過網頁登錄”或“通過 Cookie 登錄”。</string>
|
||||
<string name="get_it">知道了</string>
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
<string name="app_waring">本應用程式中內容來自網際網路,部分內容可能對您的生理及心理造成難以恢復的傷害。本應用程式的作者不會對由其所造成的任何影響負責。\n\n未成年人應在監護人指導下使用本應用程式。\n\n繼續使用即代表您同意上述條款。</string>
|
||||
<string name="error_username_cannot_empty">使用者名稱欄位不能為空</string>
|
||||
<string name="error_password_cannot_empty">密碼欄位不能為空</string>
|
||||
<string name="skip_signing_in">略過登入</string>
|
||||
<string name="tourist_mode">略過登入</string>
|
||||
<string name="sign_in_failed">登入失敗</string>
|
||||
<string name="sign_in_failed_tip">若持續出錯,請嘗試“通過網頁登入”或“通過 Cookie 登入”。</string>
|
||||
<string name="get_it">知道了</string>
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
<string name="app_waring">The content of this application is from the Internet. Some of it may do physical or mental harm to you. You have learnt the risks above and would like to undertake them. By continuing to use it, you agree to the above terms.</string>
|
||||
<string name="error_username_cannot_empty">Username cannot be an empty string</string>
|
||||
<string name="error_password_cannot_empty">Password cannot be an empty string</string>
|
||||
<string name="skip_signing_in">Continue without signing in</string>
|
||||
<string name="tourist_mode">Continue without signing in</string>
|
||||
<string name="sign_in_failed">Sign in failed</string>
|
||||
<string name="sign_in_failed_tip">If this issue continues, try \"Sign in via WebView\" or \"Sign in via cookies\"</string>
|
||||
<string name="get_it">Got it</string>
|
||||
|
||||
Reference in new issue
Block a user