From 6e872fea7a6afb18e0945cf4a2ddb70515838691 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Thu, 30 May 2013 12:16:30 +0200 Subject: android: IMC state fragment is a button that shows remediation instructions or log --- .../android/res/layout/imc_state_fragment.xml | 51 +++++++++++++++------- .../strongswan/android/ui/ImcStateFragment.java | 31 +++++++++++++ 2 files changed, 66 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/frontends/android/res/layout/imc_state_fragment.xml b/src/frontends/android/res/layout/imc_state_fragment.xml index 86853889a..171c88d2d 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 18893a3b6..2b6c1466e 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); } } -- cgit v1.2.3