package org.iilab.pb.fragment; import android.app.Activity; import android.content.Intent; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.v4.app.Fragment; import android.text.Html; import android.util.DisplayMetrics; import android.util.Log; 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.TextView; import java.util.HashMap; import org.iilab.pb.R; import org.iilab.pb.WizardActivity; import org.iilab.pb.adapter.PageActionAdapter; import org.iilab.pb.adapter.PageItemAdapter; import org.iilab.pb.common.AppConstants; import org.iilab.pb.common.AppUtil; import org.iilab.pb.common.ApplicationSettings; import org.iilab.pb.common.MyTagHandler; import org.iilab.pb.data.PBDatabase; import org.iilab.pb.model.Page; import org.iilab.pb.model.PageItem; /** * Created by aoe on 1/31/14. */ public class WarningFragment extends Fragment { private static final String PAGE_ID = "page_id"; private static final String PARENT_ACTIVITY = "parent_activity"; private HashMap<String, Drawable> mImageCache = new HashMap<String, Drawable>(); private Activity activity; DisplayMetrics metrics; TextView tvTitle, tvContent, tvIntro, tvWarning, tvStatus; ListView lvItems, lvActions; LinearLayout llWarning, llStatus; Page currentPage; PageItemAdapter pageItemAdapter; PageActionAdapter pageActionAdapter; boolean isPageStatusAvailable; public static WarningFragment newInstance(String pageId, int parentActivity) { WarningFragment f = new WarningFragment(); Bundle args = new Bundle(); args.putString(PAGE_ID, pageId); args.putInt(PARENT_ACTIVITY, parentActivity); f.setArguments(args); return(f); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.layout_warning_fragment, container, false); tvTitle = (TextView) view.findViewById(R.id.fragment_title); tvIntro = (TextView) view.findViewById(R.id.fragment_intro); tvContent = (TextView) view.findViewById(R.id.fragment_contents); llStatus = (LinearLayout) view.findViewById(R.id.ll_fragment_status); tvStatus = (TextView) view.findViewById(R.id.fragment_status); llStatus.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String pageId = currentPage.getStatus().get(0).getLink(); Intent i= new Intent(activity, WizardActivity.class); i.putExtra("page_id", pageId); startActivity(i); } }); lvItems = (ListView) view.findViewById(R.id.fragment_item_list); lvActions = (ListView) view.findViewById(R.id.fragment_action_list); llWarning = (LinearLayout) view.findViewById(R.id.ll_fragment_warning); tvWarning = (TextView) view.findViewById(R.id.fragment_warning); lvItems.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { PageItem selectedItem = (PageItem) parent.getItemAtPosition(position); String pageId = selectedItem.getLink(); Intent i= new Intent(activity, WizardActivity.class); i.putExtra("page_id", pageId); startActivity(i); } }); return view; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); activity = getActivity(); if (activity != null) { metrics = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); String pageId = getArguments().getString(PAGE_ID); String selectedLang = ApplicationSettings.getSelectedLanguage(activity); PBDatabase dbInstance = new PBDatabase(activity); dbInstance.open(); currentPage = dbInstance.retrievePage(pageId, selectedLang); dbInstance.close(); tvTitle.setText(currentPage.getTitle()); if(currentPage.getStatus() == null || currentPage.getStatus().size() == 0){ isPageStatusAvailable = false; llStatus.setVisibility(View.GONE); } else{ isPageStatusAvailable = true; String color = currentPage.getStatus().get(0).getColor(); if(color.equals("red")) tvStatus.setTextColor(Color.RED); else tvStatus.setTextColor(Color.GREEN); tvStatus.setText(currentPage.getStatus().get(0).getTitle()); } if(currentPage.getContent() == null) tvContent.setVisibility(View.GONE); else{ tvContent.setText(Html.fromHtml(currentPage.getContent(), null, new MyTagHandler())); } if(currentPage.getIntroduction() == null) tvIntro.setVisibility(View.GONE); else tvIntro.setText(currentPage.getIntroduction()); if(currentPage.getWarning() == null) llWarning.setVisibility(View.GONE); else tvWarning.setText(currentPage.getWarning()); int parentActivity = getArguments().getInt(PARENT_ACTIVITY); pageActionAdapter = new PageActionAdapter(activity, null, isPageStatusAvailable, parentActivity); lvActions.setAdapter(pageActionAdapter); pageActionAdapter.setData(currentPage.getAction()); pageItemAdapter = new PageItemAdapter(activity, null); lvItems.setAdapter(pageItemAdapter); pageItemAdapter.setData(currentPage.getItems()); AppUtil.updateImages(true, currentPage.getContent(), activity, metrics, tvContent, AppConstants.IMAGE_INLINE); } } @Override public void onPause() { super.onPause(); Log.e(">>>>>", "onPause WarningFragment"); } @Override public void onStop(){ super.onStop(); Log.d(">>>>>>>>>>", "onStop WarningFragment"); } @Override public void onStart() { super.onStart(); Log.d(">>>>>>>>>>", "onStart WarningFragment"); } @Override public void onResume() { super.onResume(); Log.d(">>>>>>>>>>", "onResume WarningFragment"); } }