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 android.widget.Toast;
|
||||||
|
|
||||||
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.logic.StrongSwanApplication;
|
import org.strongswan.android.logic.StrongSwanApplication;
|
||||||
import org.strongswan.android.logic.TrustedCertificateManager;
|
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 static final String DIALOG_TAG = "Dialog";
|
||||||
|
|
||||||
|
private ManagedConfigurationService mManagedConfigurationService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState)
|
public void onCreate(Bundle savedInstanceState)
|
||||||
{
|
{
|
||||||
@@ -72,6 +76,8 @@ public class MainActivity extends AppCompatActivity implements OnVpnProfileSelec
|
|||||||
((StrongSwanApplication)getApplication()).getExecutor().execute(() -> {
|
((StrongSwanApplication)getApplication()).getExecutor().execute(() -> {
|
||||||
TrustedCertificateManager.getInstance().load();
|
TrustedCertificateManager.getInstance().load();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mManagedConfigurationService = StrongSwanApplication.getInstance().getManagedConfigurationService();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -81,6 +87,19 @@ public class MainActivity extends AppCompatActivity implements OnVpnProfileSelec
|
|||||||
return true;
|
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
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item)
|
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 com.google.android.material.tabs.TabLayoutMediator;
|
||||||
|
|
||||||
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.VpnProfileDataSource;
|
import org.strongswan.android.data.VpnProfileDataSource;
|
||||||
|
import org.strongswan.android.logic.StrongSwanApplication;
|
||||||
import org.strongswan.android.logic.TrustedCertificateManager;
|
import org.strongswan.android.logic.TrustedCertificateManager;
|
||||||
import org.strongswan.android.logic.TrustedCertificateManager.TrustedCertificateSource;
|
import org.strongswan.android.logic.TrustedCertificateManager.TrustedCertificateSource;
|
||||||
import org.strongswan.android.security.TrustedCertificateEntry;
|
import org.strongswan.android.security.TrustedCertificateEntry;
|
||||||
@@ -51,6 +54,8 @@ public class TrustedCertificatesActivity extends AppCompatActivity implements Tr
|
|||||||
private ViewPager2 mPager;
|
private ViewPager2 mPager;
|
||||||
private boolean mSelect;
|
private boolean mSelect;
|
||||||
|
|
||||||
|
private ManagedConfigurationService mManagedConfigurationService;
|
||||||
|
|
||||||
private final ActivityResultLauncher<Intent> mImportCertificate = registerForActivityResult(
|
private final ActivityResultLauncher<Intent> mImportCertificate = registerForActivityResult(
|
||||||
new ActivityResultContracts.StartActivityForResult(),
|
new ActivityResultContracts.StartActivityForResult(),
|
||||||
result -> {
|
result -> {
|
||||||
@@ -81,6 +86,7 @@ public class TrustedCertificatesActivity extends AppCompatActivity implements Tr
|
|||||||
}).attach();
|
}).attach();
|
||||||
|
|
||||||
mSelect = SELECT_CERTIFICATE.equals(getIntent().getAction());
|
mSelect = SELECT_CERTIFICATE.equals(getIntent().getAction());
|
||||||
|
mManagedConfigurationService = StrongSwanApplication.getInstance().getManagedConfigurationService();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -90,6 +96,19 @@ public class TrustedCertificatesActivity extends AppCompatActivity implements Tr
|
|||||||
return true;
|
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
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item)
|
public boolean onOptionsItemSelected(MenuItem item)
|
||||||
{
|
{
|
||||||
|
|||||||
+19
@@ -40,9 +40,12 @@ import android.widget.ListView;
|
|||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
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 org.strongswan.android.ui.adapter.VpnProfileAdapter;
|
import org.strongswan.android.ui.adapter.VpnProfileAdapter;
|
||||||
import org.strongswan.android.utils.Constants;
|
import org.strongswan.android.utils.Constants;
|
||||||
|
|
||||||
@@ -69,6 +72,8 @@ public class VpnProfileListFragment extends Fragment
|
|||||||
private Set<Integer> mSelected;
|
private Set<Integer> mSelected;
|
||||||
private boolean mReadOnly;
|
private boolean mReadOnly;
|
||||||
|
|
||||||
|
private ManagedConfigurationService mManagedConfigurationService;
|
||||||
|
|
||||||
private final BroadcastReceiver mProfilesChanged = new BroadcastReceiver()
|
private final BroadcastReceiver mProfilesChanged = new BroadcastReceiver()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@@ -175,6 +180,8 @@ public class VpnProfileListFragment extends Fragment
|
|||||||
mDataSource = new VpnProfileSource(this.getActivity());
|
mDataSource = new VpnProfileSource(this.getActivity());
|
||||||
mDataSource.open();
|
mDataSource.open();
|
||||||
|
|
||||||
|
mManagedConfigurationService = StrongSwanApplication.getInstance().getManagedConfigurationService();
|
||||||
|
|
||||||
/* cached list of profiles used as backend for the ListView */
|
/* cached list of profiles used as backend for the ListView */
|
||||||
mVpnProfiles = mDataSource.getAllVpnProfiles();
|
mVpnProfiles = mDataSource.getAllVpnProfiles();
|
||||||
|
|
||||||
@@ -216,6 +223,18 @@ public class VpnProfileListFragment extends Fragment
|
|||||||
inflater.inflate(R.menu.profile_list, menu);
|
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
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item)
|
public boolean onOptionsItemSelected(MenuItem item)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user