From: Tobias Brunner Date: Thu, 30 May 2013 10:16:30 +0000 (+0200) Subject: android: IMC state fragment is a button that shows remediation instructions or log X-Git-Tag: 5.1.0dr2~2^2~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6e872fea7a6afb18e0945cf4a2ddb70515838691;p=thirdparty%2Fstrongswan.git android: IMC state fragment is a button that shows remediation instructions or log --- diff --git a/src/frontends/android/res/layout/imc_state_fragment.xml b/src/frontends/android/res/layout/imc_state_fragment.xml index 86853889a2..171c88d2d5 100644 --- a/src/frontends/android/res/layout/imc_state_fragment.xml +++ b/src/frontends/android/res/layout/imc_state_fragment.xml @@ -21,29 +21,48 @@ android:orientation="vertical" > + android:background="?android:attr/selectableItemBackground" + android:orientation="vertical" > - + android:layout_marginLeft="20dp" + android:layout_marginRight="20dp" + android:layout_marginTop="10dp" + android:orientation="horizontal" > + + + + + + + android:layout_marginBottom="10dp" + android:layout_marginLeft="20dp" + android:layout_marginRight="20dp" + android:text="@string/show_remediation_instructions" + android:textAppearance="?android:attr/textAppearanceSmall" + android:textColor="?android:attr/textColorSecondary" /> diff --git a/src/frontends/android/src/org/strongswan/android/ui/ImcStateFragment.java b/src/frontends/android/src/org/strongswan/android/ui/ImcStateFragment.java index 18893a3b6d..2b6c1466ef 100644 --- a/src/frontends/android/src/org/strongswan/android/ui/ImcStateFragment.java +++ b/src/frontends/android/src/org/strongswan/android/ui/ImcStateFragment.java @@ -15,9 +15,12 @@ package org.strongswan.android.ui; +import java.util.ArrayList; + import org.strongswan.android.R; import org.strongswan.android.logic.VpnStateService; import org.strongswan.android.logic.VpnStateService.VpnStateListener; +import org.strongswan.android.logic.imc.RemediationInstruction; import android.app.Fragment; import android.app.FragmentTransaction; @@ -30,12 +33,16 @@ import android.os.Bundle; import android.os.IBinder; import android.view.LayoutInflater; import android.view.View; +import android.view.View.OnClickListener; import android.view.ViewGroup; +import android.widget.LinearLayout; import android.widget.TextView; public class ImcStateFragment extends Fragment implements VpnStateListener { private TextView mStateView; + private TextView mAction; + private LinearLayout mButton; private VpnStateService mService; private final ServiceConnection mServiceConnection = new ServiceConnection() { @Override @@ -72,7 +79,28 @@ public class ImcStateFragment extends Fragment implements VpnStateListener { View view = inflater.inflate(R.layout.imc_state_fragment, null); + mButton = (LinearLayout)view.findViewById(R.id.imc_state_button); + mButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) + { + Intent intent; + if (mService != null && !mService.getRemediationInstructions().isEmpty()) + { + intent = new Intent(getActivity(), RemediationInstructionsActivity.class); + intent.putParcelableArrayListExtra(RemediationInstructionsFragment.EXTRA_REMEDIATION_INSTRUCTIONS, + new ArrayList(mService.getRemediationInstructions())); + } + else + { + intent = new Intent(getActivity(), LogActivity.class); + } + startActivity(intent); + } + }); + mStateView = (TextView)view.findViewById(R.id.imc_state); + mAction = (TextView)view.findViewById(R.id.action); return view; } @@ -116,5 +144,8 @@ public class ImcStateFragment extends Fragment implements VpnStateListener break; } ft.commit(); + + mAction.setText(mService.getRemediationInstructions().isEmpty() ? R.string.show_log + : R.string.show_remediation_instructions); } }