From: Tobias Brunner Date: Thu, 30 May 2013 09:18:24 +0000 (+0200) Subject: android: Add fragment that displays a single remediation instruction X-Git-Tag: 5.1.0dr2~2^2~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ea022bb194bcc2c1a891ac4fd2ae6540c89a87d3;p=thirdparty%2Fstrongswan.git android: Add fragment that displays a single remediation instruction --- 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 0000000000..09c0d43a3f --- /dev/null +++ b/src/frontends/android/res/layout/remediation_instruction.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + 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 0000000000..04c288bcfc --- /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 . + * + * 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(getActivity(), + android.R.layout.simple_list_item_1, mInstruction.getItems())); + } + else + { + mHeader.setText(""); + setListAdapter(null); + } + } + else + { + mTitle.setText(""); + mDescription.setText(""); + mHeader.setText(""); + setListAdapter(null); + } + } +}