From: Markus Pfeiffer Date: Tue, 21 Nov 2023 14:37:22 +0000 (+0100) Subject: android: Disable access to settings depending on managed configuration X-Git-Tag: android-2.5.0^2~22 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0af501ef266e40e3e1bedd1c7ad340d117084542;p=thirdparty%2Fstrongswan.git android: Disable access to settings depending on managed configuration --- diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/SettingsFragment.java b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/SettingsFragment.java index 7f047ce6b4..771e5a20b2 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/SettingsFragment.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/SettingsFragment.java @@ -18,15 +18,19 @@ package org.strongswan.android.ui; import static org.strongswan.android.utils.Constants.PREF_DEFAULT_VPN_PROFILE; import static org.strongswan.android.utils.Constants.PREF_DEFAULT_VPN_PROFILE_MRU; +import static org.strongswan.android.utils.Constants.PREF_IGNORE_POWER_WHITELIST; import android.content.SharedPreferences; import android.os.Build; import android.os.Bundle; import org.strongswan.android.R; +import org.strongswan.android.data.ManagedConfiguration; +import org.strongswan.android.data.ManagedConfigurationService; import org.strongswan.android.data.VpnProfile; import org.strongswan.android.data.VpnProfileDataSource; import org.strongswan.android.data.VpnProfileSource; +import org.strongswan.android.logic.StrongSwanApplication; import java.util.ArrayList; import java.util.Collections; @@ -37,14 +41,21 @@ import androidx.preference.ListPreference; import androidx.preference.Preference; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceManager; +import androidx.preference.SwitchPreference; public class SettingsFragment extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener { + private ManagedConfigurationService mManagedConfigurationService; + private ListPreference mDefaultVPNProfile; + private SwitchPreference mIgnorePowerWhitelist; @Override public void onCreatePreferences(Bundle bundle, String s) { + mManagedConfigurationService = StrongSwanApplication.getInstance().getManagedConfigurationService(); + mManagedConfigurationService.updateSettings(); + setPreferencesFromResource(R.xml.settings, s); mDefaultVPNProfile = findPreference(PREF_DEFAULT_VPN_PROFILE); @@ -53,6 +64,8 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer { mDefaultVPNProfile.setEnabled(false); } + + mIgnorePowerWhitelist = findPreference(PREF_IGNORE_POWER_WHITELIST); } @Override @@ -86,7 +99,8 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer } profiles.close(); - if (entries.size() <= 1) + final ManagedConfiguration managedConfiguration = mManagedConfigurationService.getManagedConfiguration(); + if (entries.size() <= 1 || !managedConfiguration.isAllowSettingsAccess()) { mDefaultVPNProfile.setEnabled(false); } @@ -96,6 +110,10 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer mDefaultVPNProfile.setEntries(entries.toArray(new CharSequence[0])); mDefaultVPNProfile.setEntryValues(entryvalues.toArray(new CharSequence[0])); } + if (!managedConfiguration.isAllowSettingsAccess()) + { + mIgnorePowerWhitelist.setEnabled(false); + } SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getActivity()); setCurrentProfileName(pref.getString(PREF_DEFAULT_VPN_PROFILE, PREF_DEFAULT_VPN_PROFILE_MRU));