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); +}