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;
|
||||||
import static org.strongswan.android.utils.Constants.PREF_DEFAULT_VPN_PROFILE_MRU;
|
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.content.SharedPreferences;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import org.strongswan.android.R;
|
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.VpnProfile;
|
||||||
import org.strongswan.android.data.VpnProfileDataSource;
|
import org.strongswan.android.data.VpnProfileDataSource;
|
||||||
import org.strongswan.android.data.VpnProfileSource;
|
import org.strongswan.android.data.VpnProfileSource;
|
||||||
|
import org.strongswan.android.logic.StrongSwanApplication;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -37,14 +41,21 @@ import androidx.preference.ListPreference;
|
|||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceFragmentCompat;
|
import androidx.preference.PreferenceFragmentCompat;
|
||||||
import androidx.preference.PreferenceManager;
|
import androidx.preference.PreferenceManager;
|
||||||
|
import androidx.preference.SwitchPreference;
|
||||||
|
|
||||||
public class SettingsFragment extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener
|
public class SettingsFragment extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener
|
||||||
{
|
{
|
||||||
|
private ManagedConfigurationService mManagedConfigurationService;
|
||||||
|
|
||||||
private ListPreference mDefaultVPNProfile;
|
private ListPreference mDefaultVPNProfile;
|
||||||
|
private SwitchPreference mIgnorePowerWhitelist;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreatePreferences(Bundle bundle, String s)
|
public void onCreatePreferences(Bundle bundle, String s)
|
||||||
{
|
{
|
||||||
|
mManagedConfigurationService = StrongSwanApplication.getInstance().getManagedConfigurationService();
|
||||||
|
mManagedConfigurationService.updateSettings();
|
||||||
|
|
||||||
setPreferencesFromResource(R.xml.settings, s);
|
setPreferencesFromResource(R.xml.settings, s);
|
||||||
|
|
||||||
mDefaultVPNProfile = findPreference(PREF_DEFAULT_VPN_PROFILE);
|
mDefaultVPNProfile = findPreference(PREF_DEFAULT_VPN_PROFILE);
|
||||||
@ -53,6 +64,8 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer
|
|||||||
{
|
{
|
||||||
mDefaultVPNProfile.setEnabled(false);
|
mDefaultVPNProfile.setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mIgnorePowerWhitelist = findPreference(PREF_IGNORE_POWER_WHITELIST);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -86,7 +99,8 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer
|
|||||||
}
|
}
|
||||||
profiles.close();
|
profiles.close();
|
||||||
|
|
||||||
if (entries.size() <= 1)
|
final ManagedConfiguration managedConfiguration = mManagedConfigurationService.getManagedConfiguration();
|
||||||
|
if (entries.size() <= 1 || !managedConfiguration.isAllowSettingsAccess())
|
||||||
{
|
{
|
||||||
mDefaultVPNProfile.setEnabled(false);
|
mDefaultVPNProfile.setEnabled(false);
|
||||||
}
|
}
|
||||||
@ -96,6 +110,10 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer
|
|||||||
mDefaultVPNProfile.setEntries(entries.toArray(new CharSequence[0]));
|
mDefaultVPNProfile.setEntries(entries.toArray(new CharSequence[0]));
|
||||||
mDefaultVPNProfile.setEntryValues(entryvalues.toArray(new CharSequence[0]));
|
mDefaultVPNProfile.setEntryValues(entryvalues.toArray(new CharSequence[0]));
|
||||||
}
|
}
|
||||||
|
if (!managedConfiguration.isAllowSettingsAccess())
|
||||||
|
{
|
||||||
|
mIgnorePowerWhitelist.setEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||||
setCurrentProfileName(pref.getString(PREF_DEFAULT_VPN_PROFILE, PREF_DEFAULT_VPN_PROFILE_MRU));
|
setCurrentProfileName(pref.getString(PREF_DEFAULT_VPN_PROFILE, PREF_DEFAULT_VPN_PROFILE_MRU));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user