From: Tobias Brunner Date: Fri, 15 Jun 2018 09:00:08 +0000 (+0200) Subject: android: Show a retry button in the error banner X-Git-Tag: 5.7.0dr5~20^2~34 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f23b1078576b1d26f8fd4729e6c3dad45140dbc6;p=thirdparty%2Fstrongswan.git android: Show a retry button in the error banner The button to view the log is now below the status info. And since the IMC results are just below that we don't need a special handling for that anymore. --- diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnStateFragment.java b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnStateFragment.java index 0e4a583294..38549cb92c 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnStateFragment.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnStateFragment.java @@ -61,7 +61,7 @@ public class VpnStateFragment extends Fragment implements VpnStateListener private ProgressBar mProgress; private LinearLayout mErrorView; private TextView mErrorText; - private Button mErrorDetails; + private Button mErrorRetry; private Button mDismissError; private long mErrorConnectionID; private VpnStateService mService; @@ -81,6 +81,17 @@ public class VpnStateFragment extends Fragment implements VpnStateListener updateView(); } }; + private OnClickListener mDisconnectListener = new OnClickListener() + { + @Override + public void onClick(View v) + { + if (mService != null) + { + mService.disconnect(); + } + } + }; @Override public void onCreate(Bundle savedInstanceState) @@ -117,22 +128,11 @@ public class VpnStateFragment extends Fragment implements VpnStateListener View view = inflater.inflate(R.layout.vpn_state_fragment, null); mActionButton = (Button)view.findViewById(R.id.action); - mActionButton.setOnClickListener(new OnClickListener() - { - @Override - public void onClick(View v) - { - if (mService != null) - { - mService.disconnect(); - } - } - }); enableActionButton(null); mErrorView = view.findViewById(R.id.vpn_error); mErrorText = view.findViewById(R.id.vpn_error_text); - mErrorDetails = view.findViewById(R.id.error_details); + mErrorRetry = view.findViewById(R.id.retry); mDismissError = view.findViewById(R.id.dismiss_error); mProgress = (ProgressBar)view.findViewById(R.id.progress); mStateView = (TextView)view.findViewById(R.id.vpn_state); @@ -140,14 +140,13 @@ public class VpnStateFragment extends Fragment implements VpnStateListener mProfileView = (TextView)view.findViewById(R.id.vpn_profile_label); mProfileNameView = (TextView)view.findViewById(R.id.vpn_profile_name); - mDismissError.setOnClickListener(new OnClickListener() - { - @Override - public void onClick(View v) + mErrorRetry.setOnClickListener(v -> { + if (mService != null) { - clearError(); + mService.reconnect(); } }); + mDismissError.setOnClickListener(v -> clearError()); return view; } @@ -255,15 +254,19 @@ public class VpnStateFragment extends Fragment implements VpnStateListener mErrorView.setVisibility(View.GONE); return false; } - mErrorConnectionID = connectionID; mProfileNameView.setText(name); showProfile(true); mProgress.setVisibility(View.GONE); - enableActionButton(null); mStateView.setText(R.string.state_error); mStateView.setTextColor(mColorStateError); - showError(mService.getErrorText()); + enableActionButton(getString(R.string.show_log)); + mActionButton.setOnClickListener(v -> { + Intent intent = new Intent(getActivity(), LogActivity.class); + startActivity(intent); + }); + mErrorText.setText(getString(R.string.error_format, getString(mService.getErrorText()))); + mErrorView.setVisibility(View.VISIBLE); return true; } @@ -278,6 +281,7 @@ public class VpnStateFragment extends Fragment implements VpnStateListener mActionButton.setText(text); mActionButton.setEnabled(text != null); mActionButton.setVisibility(text != null ? View.VISIBLE : View.GONE); + mActionButton.setOnClickListener(mDisconnectListener); } private void clearError() @@ -292,34 +296,4 @@ public class VpnStateFragment extends Fragment implements VpnStateListener } updateView(); } - - private void showError(int textid) - { - final List instructions = mService.getRemediationInstructions(); - final boolean show_instructions = mService.getImcState() == ImcState.BLOCK && !instructions.isEmpty(); - int text = show_instructions ? R.string.show_remediation_instructions : R.string.show_log; - - mErrorText.setText(getString(R.string.error_format, getString(textid))); - mErrorDetails.setText(text); - mErrorDetails.setOnClickListener(new OnClickListener() - { - @Override - public void onClick(View v) - { - Intent intent; - if (show_instructions) - { - intent = new Intent(getActivity(), RemediationInstructionsActivity.class); - intent.putParcelableArrayListExtra(RemediationInstructionsFragment.EXTRA_REMEDIATION_INSTRUCTIONS, - new ArrayList(instructions)); - } - else - { - intent = new Intent(getActivity(), LogActivity.class); - } - startActivity(intent); - } - }); - mErrorView.setVisibility(View.VISIBLE); - } } diff --git a/src/frontends/android/app/src/main/res/layout/vpn_state_fragment.xml b/src/frontends/android/app/src/main/res/layout/vpn_state_fragment.xml index 6807ae39e1..adc9c8665b 100644 --- a/src/frontends/android/app/src/main/res/layout/vpn_state_fragment.xml +++ b/src/frontends/android/app/src/main/res/layout/vpn_state_fragment.xml @@ -60,10 +60,10 @@