android: Show remediation instructions instead of log on failure

This commit is contained in:
Tobias Brunner
2013-07-08 18:49:29 +02:00
parent 873f389b37
commit 254d8679c6
6 changed files with 26 additions and 3 deletions
@@ -90,6 +90,7 @@
<string name="imc_state_label">Assessment:</string>
<string name="imc_state_isolate">Eingeschränkt</string>
<string name="imc_state_block">Fehlgeschlagen</string>
<string name="show_remediation_instructions">Korrekturanweisungen anzeigen</string>
<!-- Remediation instructions -->
<string name="remediation_instructions_title">Korrekturanweisungen</string>
@@ -90,6 +90,7 @@
<string name="imc_state_label">Assessment:</string>
<string name="imc_state_isolate">Restricted</string>
<string name="imc_state_block">Failed</string>
<string name="show_remediation_instructions">View remediation instructions</string>
<!-- Remediation instructions -->
<string name="remediation_instructions_title">Remediation instructions</string>
@@ -87,6 +87,7 @@
<string name="imc_state_label">Assessment:</string>
<string name="imc_state_isolate">Restricted</string>
<string name="imc_state_block">Failed</string>
<string name="show_remediation_instructions">View remediation instructions</string>
<!-- Remediation instructions -->
<string name="remediation_instructions_title">Remediation instructions</string>
@@ -88,6 +88,7 @@
<string name="imc_state_label">Assessment:</string>
<string name="imc_state_isolate">Restricted</string>
<string name="imc_state_block">Failed</string>
<string name="show_remediation_instructions">View remediation instructions</string>
<!-- Remediation instructions -->
<string name="remediation_instructions_title">Remediation instructions</string>
@@ -90,6 +90,7 @@
<string name="imc_state_label">Assessment:</string>
<string name="imc_state_isolate">Restricted</string>
<string name="imc_state_block">Failed</string>
<string name="show_remediation_instructions">View remediation instructions</string>
<!-- Remediation instructions -->
<string name="remediation_instructions_title">Remediation instructions</string>
@@ -17,6 +17,9 @@
package org.strongswan.android.ui;
import java.util.ArrayList;
import java.util.List;
import org.strongswan.android.R;
import org.strongswan.android.data.VpnProfile;
import org.strongswan.android.logic.VpnStateService;
@@ -24,6 +27,7 @@ import org.strongswan.android.logic.VpnStateService.ErrorState;
import org.strongswan.android.logic.VpnStateService.State;
import org.strongswan.android.logic.VpnStateService.VpnStateListener;
import org.strongswan.android.logic.imc.ImcState;
import org.strongswan.android.logic.imc.RemediationInstruction;
import android.app.AlertDialog;
import android.app.Fragment;
@@ -362,17 +366,31 @@ public class VpnStateFragment extends Fragment implements VpnStateListener
private void showErrorDialog(int textid)
{
final List<RemediationInstruction> instructions = mService.getRemediationInstructions();
final boolean show_instructions = mImcState == ImcState.BLOCK && !instructions.isEmpty();
int text = show_instructions ? R.string.show_remediation_instructions : R.string.show_log;
mErrorDialog = new AlertDialog.Builder(getActivity())
.setMessage(getString(R.string.error_introduction) + " " + getString(textid))
.setCancelable(false)
.setNeutralButton(R.string.show_log, new DialogInterface.OnClickListener() {
.setNeutralButton(text, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which)
{
clearError();
dialog.dismiss();
Intent logIntent = new Intent(getActivity(), LogActivity.class);
startActivity(logIntent);
Intent intent;
if (show_instructions)
{
intent = new Intent(getActivity(), RemediationInstructionsActivity.class);
intent.putParcelableArrayListExtra(RemediationInstructionsFragment.EXTRA_REMEDIATION_INSTRUCTIONS,
new ArrayList<RemediationInstruction>(instructions));
}
else
{
intent = new Intent(getActivity(), LogActivity.class);
}
startActivity(intent);
}
})
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {