/* * Copyright 2015 Fabian Schultis, Hauke Oldsen * Copyright 2016 Hauke Oldsen * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.gebatzens.sia.fragment; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.support.v7.app.AlertDialog; import android.text.Html; import android.text.method.LinkMovementMethod; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.ScrollView; import android.widget.TextView; import de.gebatzens.sia.MainActivity; import de.gebatzens.sia.NewsFragmentDatabaseHelper; import de.gebatzens.sia.R; import de.gebatzens.sia.data.News; public class NewsFragment extends RemoteDataFragment { public ListView lv; private NewsFragmentListAdapter nfla; private NewsFragmentDatabaseHelper mDatabaseHelper; @Override public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle bundle) { ((MainActivity) getActivity()).updateMenu(R.menu.toolbar_menu); ViewGroup vg = (ViewGroup) inflater.inflate(R.layout.fragment_news, group, false); if(getFragment().getData() != null) createRootView(inflater, vg); mDatabaseHelper = new NewsFragmentDatabaseHelper(getActivity().getApplicationContext()); return vg; } @Override public void createView(final LayoutInflater inflater, ViewGroup view) { LinearLayout lroot = (LinearLayout) view.findViewById(R.id.news_content); if(((News) getFragment().getData()).isEmpty()) { ScrollView sv = new ScrollView(getActivity()); sv.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); sv.setTag("gg_scroll"); LinearLayout l = new LinearLayout(getActivity()); createRootLayout(l); lroot.addView(sv); sv.addView(l); createNoEntriesCard(l, inflater); } else { lv = new ListView(getActivity()); lv.setDrawSelectorOnTop(true); lroot.addView(lv); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { News news = ((News) getFragment().getData()); String title = news.get(position).title; String content = news.get(position).text; AlertDialog.Builder ad = new AlertDialog.Builder(getActivity()); ad.setView(inflater.inflate(R.layout.news_dialog, null)); ad.setTitle(title); ad.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); Dialog d = ad.create(); d.show(); TextView tv = (TextView) d.findViewById(R.id.newsd_text); tv.setMovementMethod(LinkMovementMethod.getInstance()); tv.setText(Html.fromHtml(content, null, null)); if (!mDatabaseHelper.checkNewsRead(title)) { mDatabaseHelper.addReadNews(title); nfla.notifyDataSetChanged(); } } }); nfla = new NewsFragmentListAdapter(getActivity(), ((News) getFragment().getData())); lv.setAdapter(nfla); } } @Override public ViewGroup getContentView() { return (ViewGroup) getView().findViewById(R.id.news_content); } }