From 0a9aa03cffba37502c7ba0991416849619386385 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Thu, 7 Jun 2018 03:27:06 +0200 Subject: VersionPreference: account for checking state and move away from tools installer --- .../android/preference/VersionPreference.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'app/src/main/java/com/wireguard/android/preference') diff --git a/app/src/main/java/com/wireguard/android/preference/VersionPreference.java b/app/src/main/java/com/wireguard/android/preference/VersionPreference.java index b1a1cf49..2cce769d 100644 --- a/app/src/main/java/com/wireguard/android/preference/VersionPreference.java +++ b/app/src/main/java/com/wireguard/android/preference/VersionPreference.java @@ -16,6 +16,14 @@ import com.wireguard.android.BuildConfig; import com.wireguard.android.R; import com.wireguard.android.backend.GoBackend; import com.wireguard.android.backend.WgQuickBackend; +import com.wireguard.android.util.RootShell; + +import java.util.ArrayList; +import java.util.List; + +import javax.inject.Inject; + +import java9.util.concurrent.CompletionStage; public class VersionPreference extends Preference { private String versionSummary; @@ -26,10 +34,17 @@ public class VersionPreference extends Preference { if (Application.getComponent().getBackendType() == GoBackend.class) { versionSummary = getContext().getString(R.string.version_userspace_summary, GoBackend.getVersion()); } else if (Application.getComponent().getBackendType() == WgQuickBackend.class) { - Application.getComponent().getToolsInstaller().getVersion().whenComplete((version, exception) -> { + versionSummary = getContext().getString(R.string.version_kernel_summary_checking); + Application.getComponent().getAsyncWorker().supplyAsync(() -> { + final List output = new ArrayList<>(); + if (Application.getComponent().getRootShell() + .run(output, "cat /sys/module/wireguard/version") != 0 || output.isEmpty()) + throw new RuntimeException("Unable to determine kernel module version"); + return output.get(0); + }).whenComplete((version, exception) -> { versionSummary = exception == null ? getContext().getString(R.string.version_kernel_summary, version) - : getContext().getString(R.string.version_kernel_unknown_summary); + : getContext().getString(R.string.version_kernel_summary_unknown); notifyChanged(); }); } -- cgit v1.2.3-59-g8ed1b