aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2013-05-30 11:18:24 +0200
committerTobias Brunner <tobias@strongswan.org>2013-07-08 18:49:29 +0200
commitea022bb194bcc2c1a891ac4fd2ae6540c89a87d3 (patch)
treec5c8301acd58ee4e054b07dfd6328beb6250b25b
parentc469cd2a669adc2b76931eb0a0654d7793bb6705 (diff)
downloadstrongswan-ea022bb194bcc2c1a891ac4fd2ae6540c89a87d3.tar.bz2
strongswan-ea022bb194bcc2c1a891ac4fd2ae6540c89a87d3.tar.xz
android: Add fragment that displays a single remediation instruction
-rw-r--r--src/frontends/android/res/layout/remediation_instruction.xml55
-rw-r--r--src/frontends/android/src/org/strongswan/android/ui/RemediationInstructionFragment.java109
2 files changed, 164 insertions, 0 deletions
diff --git a/src/frontends/android/res/layout/remediation_instruction.xml b/src/frontends/android/res/layout/remediation_instruction.xml
new file mode 100644
index 000000000..09c0d43a3
--- /dev/null
+++ b/src/frontends/android/res/layout/remediation_instruction.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2013 Tobias Brunner
+ Hochschule fuer Technik Rapperswil
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:padding="5dp" >
+
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="10dp"
+ android:textIsSelectable="true"
+ android:textAppearance="?android:attr/textAppearanceLarge" />
+
+ <TextView
+ android:id="@+id/description"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="10dp"
+ android:textIsSelectable="true"
+ android:textColor="?android:textColorSecondary"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+
+ <TextView
+ android:id="@+id/list_header"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="10dp"
+ android:layout_marginTop="20dp"
+ android:textIsSelectable="true"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+
+ <include
+ layout="@android:layout/list_content"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:layout_margin="5dp" />
+
+</LinearLayout>
diff --git a/src/frontends/android/src/org/strongswan/android/ui/RemediationInstructionFragment.java b/src/frontends/android/src/org/strongswan/android/ui/RemediationInstructionFragment.java
new file mode 100644
index 000000000..04c288bcf
--- /dev/null
+++ b/src/frontends/android/src/org/strongswan/android/ui/RemediationInstructionFragment.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2013 Tobias Brunner
+ * Hochschule fuer Technik Rapperswil
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ */
+
+package org.strongswan.android.ui;
+
+import org.strongswan.android.R;
+import org.strongswan.android.logic.imc.RemediationInstruction;
+
+import android.app.ListFragment;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.TextView;
+
+public class RemediationInstructionFragment extends ListFragment
+{
+ public static final String ARG_REMEDIATION_INSTRUCTION = "instruction";
+ private RemediationInstruction mInstruction = null;
+ private TextView mTitle;
+ private TextView mDescription;
+ private TextView mHeader;
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
+ {
+ return inflater.inflate(R.layout.remediation_instruction, container, false);
+ }
+
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState)
+ {
+ super.onActivityCreated(savedInstanceState);
+
+ if (savedInstanceState != null)
+ {
+ mInstruction = savedInstanceState.getParcelable(ARG_REMEDIATION_INSTRUCTION);
+ }
+ /* show dividers only between list items */
+ getListView().setHeaderDividersEnabled(false);
+ getListView().setFooterDividersEnabled(false);
+ /* don't show loader while adapter is not set */
+ setListShown(true);
+ mTitle = (TextView)getView().findViewById(R.id.title);
+ mDescription = (TextView)getView().findViewById(R.id.description);
+ mHeader = (TextView)getView().findViewById(R.id.list_header);
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle outState)
+ {
+ super.onSaveInstanceState(outState);
+ outState.putParcelable(ARG_REMEDIATION_INSTRUCTION, mInstruction);
+ }
+
+ @Override
+ public void onStart()
+ {
+ super.onStart();
+
+ Bundle args = getArguments();
+ if (args != null)
+ {
+ mInstruction = args.getParcelable(ARG_REMEDIATION_INSTRUCTION);
+ }
+ updateView(mInstruction);
+ }
+
+ public void updateView(RemediationInstruction instruction)
+ {
+ mInstruction = instruction;
+ if (mInstruction != null)
+ {
+ mTitle.setText(mInstruction.getTitle());
+ mDescription.setText(mInstruction.getDescription());
+ if (mInstruction.getHeader() != null)
+ {
+ mHeader.setText(mInstruction.getHeader());
+ setListAdapter(new ArrayAdapter<String>(getActivity(),
+ android.R.layout.simple_list_item_1, mInstruction.getItems()));
+ }
+ else
+ {
+ mHeader.setText("");
+ setListAdapter(null);
+ }
+ }
+ else
+ {
+ mTitle.setText("");
+ mDescription.setText("");
+ mHeader.setText("");
+ setListAdapter(null);
+ }
+ }
+}