mirror of
https://github.com/strongswan/strongswan.git
synced 2025-10-04 00:00:14 -04:00
android: Disable access to settings depending on managed configuration
This commit is contained in:
parent
fe13782e3c
commit
0af501ef26
@ -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));
|
||||
|
Loading…
x
Reference in New Issue
Block a user