diff --git a/app/src/main/java/com/hippo/ehviewer/preference/VersionPreference.kt b/app/src/main/java/com/hippo/ehviewer/preference/VersionPreference.kt
index eb3b65be2..8860441d8 100644
--- a/app/src/main/java/com/hippo/ehviewer/preference/VersionPreference.kt
+++ b/app/src/main/java/com/hippo/ehviewer/preference/VersionPreference.kt
@@ -13,46 +13,34 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+package com.hippo.ehviewer.preference
-package com.hippo.ehviewer.preference;
+import android.content.Context
+import com.hippo.preference.MessagePreference
+import com.hippo.ehviewer.R
+import android.content.pm.PackageManager
+import android.util.AttributeSet
+import androidx.appcompat.app.AlertDialog
+import com.hippo.Native
-import android.content.Context;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.util.AttributeSet;
-
-import androidx.preference.Preference;
-
-import com.hippo.ehviewer.R;
-
-public class VersionPreference extends Preference {
-
- public VersionPreference(Context context) {
- super(context);
- init(context);
- }
-
- public VersionPreference(Context context, AttributeSet attrs) {
- super(context, attrs);
- init(context);
- }
-
- public VersionPreference(Context context, AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- init(context);
- }
-
- private void init(Context context) {
- setTitle(R.string.settings_about_version);
-
- String version;
- try {
- PackageInfo pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
- version = pInfo.versionName;
- } catch (PackageManager.NameNotFoundException e) {
- e.printStackTrace();
- version = context.getString(R.string.error_unknown);
+class VersionPreference @JvmOverloads constructor(
+ context: Context, attrs: AttributeSet? = null
+) : MessagePreference(context, attrs) {
+ init {
+ setTitle(R.string.settings_about_version)
+ val version: String = try {
+ val pInfo = context.packageManager.getPackageInfo(context.packageName, 0)
+ pInfo.versionName
+ } catch (e: PackageManager.NameNotFoundException) {
+ e.printStackTrace()
+ context.getString(R.string.error_unknown)
}
- setSummary(version);
+ summary = version
}
-}
+
+ override fun onPrepareDialogBuilder(builder: AlertDialog.Builder) {
+ super.onPrepareDialogBuilder(builder)
+ builder.setTitle(R.string.show_library_version)
+ builder.setMessage(Native.getlibarchiveVersion() + "\nlzma(xz-utils) " + Native.getliblzmaVersion() + "\nlibzstd " + Native.getlibzstdVersion() + "\nzlib " + Native.getzlibVersion() + "\nlibjpeg-turbo " + Native.getlibjpeg_turboVersion())
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 74d178e8e..b7b8f6af4 100755
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -759,4 +759,6 @@
对于 Android 12 及更新的版本,您需要手动添加链接到已验证链接才能在 EhViewer 中打开 E-Hentai 链接。
应用链接未验证
默认打开
+
+ 依赖库之版本
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9c2d81512..f945319ea 100755
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -823,4 +823,6 @@
For Android 12 and newer, you need to manually add link to verified links in order to open E-Hentai links in EhViewer.
App links not verified
Open by default
+
+ Library Version
diff --git a/native/src/main/java/com/hippo/Native.java b/native/src/main/java/com/hippo/Native.java
index 4449c4a37..92f8d41be 100644
--- a/native/src/main/java/com/hippo/Native.java
+++ b/native/src/main/java/com/hippo/Native.java
@@ -5,4 +5,9 @@ public class Native {
public static void initialize() {
System.loadLibrary("ehviewer");
}
+ public static native String getlibarchiveVersion();
+ public static native String getliblzmaVersion();
+ public static native String getlibzstdVersion();
+ public static native String getlibjpeg_turboVersion();
+ public static native String getzlibVersion();
}
diff --git a/native/src/main/jni/main.c b/native/src/main/jni/main.c
index 35d4b7f48..2a34ab182 100644
--- a/native/src/main/jni/main.c
+++ b/native/src/main/jni/main.c
@@ -1,4 +1,9 @@
#include
+#include
+#include
+#include
+#include
+#include "image/libjpeg-turbo/jconfigint.h"
#include "java_wrapper.h"
@@ -16,3 +21,28 @@ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved)
return JNI_VERSION_1_6;
}
+
+JNIEXPORT jstring JNICALL
+Java_com_hippo_Native_getlibarchiveVersion(JNIEnv *env, jclass clazz) {
+ return (*env)->NewStringUTF(env, ARCHIVE_VERSION_STRING);
+}
+
+JNIEXPORT jstring JNICALL
+Java_com_hippo_Native_getliblzmaVersion(JNIEnv *env, jclass clazz) {
+ return (*env)->NewStringUTF(env, lzma_version_string());
+}
+
+JNIEXPORT jstring JNICALL
+Java_com_hippo_Native_getlibjpeg_1turboVersion(JNIEnv *env, jclass clazz) {
+ return (*env)->NewStringUTF(env, VERSION);
+}
+
+JNIEXPORT jstring JNICALL
+Java_com_hippo_Native_getlibzstdVersion(JNIEnv *env, jclass clazz) {
+ return (*env)->NewStringUTF(env, ZSTD_VERSION_STRING);
+}
+
+JNIEXPORT jstring JNICALL
+Java_com_hippo_Native_getzlibVersion(JNIEnv *env, jclass clazz) {
+ return (*env)->NewStringUTF(env, ZLIB_VERSION);
+}