Hide and disable menu items when disabled by the managed configuration.
import android.widget.Toast;
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.logic.StrongSwanApplication;
import org.strongswan.android.logic.TrustedCertificateManager;
private static final String DIALOG_TAG = "Dialog";
+ private ManagedConfigurationService mManagedConfigurationService;
+
@Override
public void onCreate(Bundle savedInstanceState)
{
((StrongSwanApplication)getApplication()).getExecutor().execute(() -> {
TrustedCertificateManager.getInstance().load();
});
+
+ mManagedConfigurationService = StrongSwanApplication.getInstance().getManagedConfigurationService();
}
@Override
return true;
}
+ @Override
+ public boolean onPrepareOptionsMenu(Menu menu)
+ {
+ final MenuItem importProfile = menu.findItem(R.id.menu_import_profile);
+ if (importProfile != null)
+ {
+ final ManagedConfiguration managedConfiguration = mManagedConfigurationService.getManagedConfiguration();
+ importProfile.setVisible(managedConfiguration.isAllowProfileImport());
+ importProfile.setEnabled(managedConfiguration.isAllowProfileImport());
+ }
+ return true;
+ }
+
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
import com.google.android.material.tabs.TabLayoutMediator;
import org.strongswan.android.R;
+import org.strongswan.android.data.ManagedConfiguration;
+import org.strongswan.android.data.ManagedConfigurationService;
import org.strongswan.android.data.VpnProfileDataSource;
+import org.strongswan.android.logic.StrongSwanApplication;
import org.strongswan.android.logic.TrustedCertificateManager;
import org.strongswan.android.logic.TrustedCertificateManager.TrustedCertificateSource;
import org.strongswan.android.security.TrustedCertificateEntry;
private ViewPager2 mPager;
private boolean mSelect;
+ private ManagedConfigurationService mManagedConfigurationService;
+
private final ActivityResultLauncher<Intent> mImportCertificate = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
result -> {
}).attach();
mSelect = SELECT_CERTIFICATE.equals(getIntent().getAction());
+ mManagedConfigurationService = StrongSwanApplication.getInstance().getManagedConfigurationService();
}
@Override
return true;
}
+ @Override
+ public boolean onPrepareOptionsMenu(Menu menu)
+ {
+ final MenuItem importCertificate = menu.findItem(R.id.menu_import_certificate);
+ if (importCertificate != null)
+ {
+ final ManagedConfiguration managedConfiguration = mManagedConfigurationService.getManagedConfiguration();
+ importCertificate.setVisible(managedConfiguration.isAllowCertificateImport());
+ importCertificate.setEnabled(managedConfiguration.isAllowCertificateImport());
+ }
+ return true;
+ }
+
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
import android.widget.Toast;
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 org.strongswan.android.ui.adapter.VpnProfileAdapter;
import org.strongswan.android.utils.Constants;
private Set<Integer> mSelected;
private boolean mReadOnly;
+ private ManagedConfigurationService mManagedConfigurationService;
+
private final BroadcastReceiver mProfilesChanged = new BroadcastReceiver()
{
@Override
mDataSource = new VpnProfileSource(this.getActivity());
mDataSource.open();
+ mManagedConfigurationService = StrongSwanApplication.getInstance().getManagedConfigurationService();
+
/* cached list of profiles used as backend for the ListView */
mVpnProfiles = mDataSource.getAllVpnProfiles();
inflater.inflate(R.menu.profile_list, menu);
}
+ @Override
+ public void onPrepareOptionsMenu(Menu menu)
+ {
+ final MenuItem addProfile = menu.findItem(R.id.add_profile);
+ if (addProfile != null)
+ {
+ final ManagedConfiguration managedConfiguration = mManagedConfigurationService.getManagedConfiguration();
+ addProfile.setVisible(managedConfiguration.isAllowProfileCreation());
+ addProfile.setEnabled(managedConfiguration.isAllowProfileCreation());
+ }
+ }
+
@Override
public boolean onOptionsItemSelected(MenuItem item)
{