android: Hide menu items depending on managed configuration
Hide and disable menu items when disabled by the managed configuration.
This commit is contained in:
committed by
Tobias Brunner
parent
4bfeb3b000
commit
fe13782e3c
@@ -28,6 +28,8 @@ import android.view.MenuItem;
|
||||
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;
|
||||
@@ -57,6 +59,8 @@ public class MainActivity extends AppCompatActivity implements OnVpnProfileSelec
|
||||
|
||||
private static final String DIALOG_TAG = "Dialog";
|
||||
|
||||
private ManagedConfigurationService mManagedConfigurationService;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState)
|
||||
{
|
||||
@@ -72,6 +76,8 @@ public class MainActivity extends AppCompatActivity implements OnVpnProfileSelec
|
||||
((StrongSwanApplication)getApplication()).getExecutor().execute(() -> {
|
||||
TrustedCertificateManager.getInstance().load();
|
||||
});
|
||||
|
||||
mManagedConfigurationService = StrongSwanApplication.getInstance().getManagedConfigurationService();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -81,6 +87,19 @@ public class MainActivity extends AppCompatActivity implements OnVpnProfileSelec
|
||||
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)
|
||||
{
|
||||
|
||||
+19
@@ -25,7 +25,10 @@ import com.google.android.material.tabs.TabLayout;
|
||||
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;
|
||||
@@ -51,6 +54,8 @@ public class TrustedCertificatesActivity extends AppCompatActivity implements Tr
|
||||
private ViewPager2 mPager;
|
||||
private boolean mSelect;
|
||||
|
||||
private ManagedConfigurationService mManagedConfigurationService;
|
||||
|
||||
private final ActivityResultLauncher<Intent> mImportCertificate = registerForActivityResult(
|
||||
new ActivityResultContracts.StartActivityForResult(),
|
||||
result -> {
|
||||
@@ -81,6 +86,7 @@ public class TrustedCertificatesActivity extends AppCompatActivity implements Tr
|
||||
}).attach();
|
||||
|
||||
mSelect = SELECT_CERTIFICATE.equals(getIntent().getAction());
|
||||
mManagedConfigurationService = StrongSwanApplication.getInstance().getManagedConfigurationService();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -90,6 +96,19 @@ public class TrustedCertificatesActivity extends AppCompatActivity implements Tr
|
||||
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)
|
||||
{
|
||||
|
||||
+19
@@ -40,9 +40,12 @@ import android.widget.ListView;
|
||||
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;
|
||||
|
||||
@@ -69,6 +72,8 @@ public class VpnProfileListFragment extends Fragment
|
||||
private Set<Integer> mSelected;
|
||||
private boolean mReadOnly;
|
||||
|
||||
private ManagedConfigurationService mManagedConfigurationService;
|
||||
|
||||
private final BroadcastReceiver mProfilesChanged = new BroadcastReceiver()
|
||||
{
|
||||
@Override
|
||||
@@ -175,6 +180,8 @@ public class VpnProfileListFragment extends Fragment
|
||||
mDataSource = new VpnProfileSource(this.getActivity());
|
||||
mDataSource.open();
|
||||
|
||||
mManagedConfigurationService = StrongSwanApplication.getInstance().getManagedConfigurationService();
|
||||
|
||||
/* cached list of profiles used as backend for the ListView */
|
||||
mVpnProfiles = mDataSource.getAllVpnProfiles();
|
||||
|
||||
@@ -216,6 +223,18 @@ public class VpnProfileListFragment extends Fragment
|
||||
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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user