Feat[ui]: hide the system driver option when Vulkan is not available

This commit is contained in:
artdeell 2023-09-17 21:39:56 +03:00
parent 96ccf71509
commit 6dcf86ee9b
4 changed files with 18 additions and 11 deletions

View File

@ -1 +1 @@
1694961457757
1694975384776

View File

@ -41,7 +41,6 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.NotificationManagerCompat;
import androidx.core.content.res.TypedArrayUtils;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentTransaction;
@ -1091,20 +1090,21 @@ public final class Tools {
}
}
public static boolean checkVulkanSupport(PackageManager packageManager) {
if(SDK_INT >= Build.VERSION_CODES.N) {
return packageManager.hasSystemFeature(PackageManager.FEATURE_VULKAN_HARDWARE_LEVEL) &&
packageManager.hasSystemFeature(PackageManager.FEATURE_VULKAN_HARDWARE_VERSION);
}
return false;
}
/** Return the renderers that are compatible with this device */
public static RenderersList getCompatibleRenderers(Context context) {
if(sCompatibleRenderers != null) return sCompatibleRenderers;
Resources resources = context.getResources();
String[] defaultRenderers = resources.getStringArray(R.array.renderer_values);
String[] defaultRendererNames = resources.getStringArray(R.array.renderer);
PackageManager packageManager = context.getPackageManager();
boolean deviceHasVulkan;
if (SDK_INT >= Build.VERSION_CODES.N) {
deviceHasVulkan = packageManager.hasSystemFeature(PackageManager.FEATURE_VULKAN_HARDWARE_LEVEL) &&
packageManager.hasSystemFeature(PackageManager.FEATURE_VULKAN_HARDWARE_VERSION);
}else{
deviceHasVulkan = false;
}
boolean deviceHasVulkan = checkVulkanSupport(context.getPackageManager());
// Currently, only 32-bit x86 does not have the Zink binary
boolean deviceHasZinkBinary = !(Architecture.is32BitsDevice() && Architecture.isx86Device());
List<String> rendererIds = new ArrayList<>(defaultRenderers.length);

View File

@ -2,11 +2,18 @@ package net.kdt.pojavlaunch.prefs.screens;
import android.os.Bundle;
import androidx.preference.Preference;
import net.kdt.pojavlaunch.R;
import net.kdt.pojavlaunch.Tools;
public class LauncherPreferenceMiscellaneousFragment extends LauncherPreferenceFragment {
@Override
public void onCreatePreferences(Bundle b, String str) {
addPreferencesFromResource(R.xml.pref_misc);
Preference driverPreference = findPreference("zinkPreferSystemDriver");
if(!Tools.checkVulkanSupport(driverPreference.getContext().getPackageManager())) {
driverPreference.setVisible(false);
}
}
}

View File

@ -410,7 +410,7 @@
<string name="hint_search_modpack">Search for modpacks</string>
<string name="preference_vulkan_driver_system_title">Use system Vulkan driver</string>
<string name="preference_vulkan_driver_system_description">Force the launcher to use the system Vulkan driver instead of Turnip on Adreno GPUs. Only affects Zink.</string>
<string name="preference_vulkan_driver_system_description">Force the launcher to use the system Vulkan driver instead of Turnip on Adreno GPUs. Only affects Zink and mods that use Vulkan.</string>
<string name="generic_install">Install</string>
<string name="generic_apply">Apply</string>