diff options
Diffstat (limited to 'app/src/main/java/org/marcinzelent/liberavem/AboutFragment.java')
-rw-r--r-- | app/src/main/java/org/marcinzelent/liberavem/AboutFragment.java | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/app/src/main/java/org/marcinzelent/liberavem/AboutFragment.java b/app/src/main/java/org/marcinzelent/liberavem/AboutFragment.java new file mode 100644 index 0000000..eb7897c --- /dev/null +++ b/app/src/main/java/org/marcinzelent/liberavem/AboutFragment.java @@ -0,0 +1,142 @@ +package org.marcinzelent.liberavem; + +import android.content.Context; +import android.net.Uri; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.text.Html; +import android.text.Spanned; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import org.jetbrains.annotations.Nullable; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; + + +/** + * A simple {@link Fragment} subclass. + * Activities that contain this fragment must implement the + * {@link AboutFragment.OnFragmentInteractionListener} interface + * to handle interaction events. + * Use the {@link AboutFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class AboutFragment extends Fragment { + // TODO: Rename parameter arguments, choose names that match + // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER + private static final String ARG_PARAM1 = "param1"; + private static final String ARG_PARAM2 = "param2"; + + // TODO: Rename and change types of parameters + private String mParam1; + private String mParam2; + + private OnFragmentInteractionListener mListener; + + public AboutFragment() { + // Required empty public constructor + } + + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment AboutFragment. + */ + // TODO: Rename and change types and number of parameters + public static AboutFragment newInstance(String param1, String param2) { + AboutFragment fragment = new AboutFragment(); + Bundle args = new Bundle(); + args.putString(ARG_PARAM1, param1); + args.putString(ARG_PARAM2, param2); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + mParam1 = getArguments().getString(ARG_PARAM1); + mParam2 = getArguments().getString(ARG_PARAM2); + } + + ((MainActivity) getActivity()).setActionBarTitle("About"); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_about, container, false); + } + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + InputStream inputStream = this.getResources().openRawResource(R.raw.gpl_3); + + InputStreamReader inputreader = new InputStreamReader(inputStream); + BufferedReader buffreader = new BufferedReader(inputreader); + String line; + StringBuilder text = new StringBuilder(); + + try { + while (( line = buffreader.readLine()) != null) { + text.append(line); + text.append('\n'); + } + } catch (IOException e) { } + + Spanned license = Html.fromHtml(text.toString()); + + TextView aboutLicense = view.findViewById(R.id.about_license); + aboutLicense.setText(license); + } + + // TODO: Rename method, update argument and hook method into UI event + public void onButtonPressed(Uri uri) { + if (mListener != null) { + mListener.onFragmentInteraction(uri); + } + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + if (context instanceof OnFragmentInteractionListener) { + mListener = (OnFragmentInteractionListener) context; + } else { + throw new RuntimeException(context.toString() + + " must implement OnFragmentInteractionListener"); + } + } + + @Override + public void onDetach() { + super.onDetach(); + mListener = null; + } + + /** + * This interface must be implemented by activities that contain this + * fragment to allow an interaction in this fragment to be communicated + * to the activity and potentially other fragments contained in that + * activity. + * <p> + * See the Android Training lesson <a href= + * "http://developer.android.com/training/basics/fragments/communicating.html" + * >Communicating with Other Fragments</a> for more information. + */ + public interface OnFragmentInteractionListener { + // TODO: Update argument type and name + void onFragmentInteraction(Uri uri); + } +} |