package org.iilab.pb.fragment; import android.app.Activity; import android.content.Intent; 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.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnKeyListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import java.util.HashMap; import org.iilab.pb.R; import org.iilab.pb.WizardActivity; 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; /** * Created by aoe on 1/18/14. */ public class WizardTestDisguiseCodeFragment extends Fragment { private EditText passwordEditText; private TextView tvContent; private Button bAction; private static final String PAGE_ID = "page_id"; private HashMap<String, Drawable> mImageCache = new HashMap<String, Drawable>(); private Activity activity; DisplayMetrics metrics; Page currentPage; public static WizardTestDisguiseCodeFragment newInstance(String pageId) { WizardTestDisguiseCodeFragment f = new WizardTestDisguiseCodeFragment(); Bundle args = new Bundle(); args.putString(PAGE_ID, pageId); f.setArguments(args); return (f); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_type_interactive_disguise_test_code, container, false); passwordEditText = (EditText) view.findViewById(R.id.create_pin_edittext); passwordEditText.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { // If the event is a key-down event on the "enter" button if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) { // Perform action on key press String password = passwordEditText.getText().toString(); if (ApplicationSettings.passwordMatches(activity, password)) { String pageId = null; if (currentPage.getAction().size() > 0) pageId = currentPage.getAction().get(0).getLink(); else pageId = currentPage.getSuccessId(); Intent i = new Intent(activity, WizardActivity.class); i.putExtra("page_id", pageId); activity.startActivity(i); activity.finish(); return true; } AppUtil.setError(activity, passwordEditText, R.string.incorrect_pin); } return false; } }); passwordEditText.requestFocus(); tvContent = (TextView) view.findViewById(R.id.fragment_contents); bAction = (Button) view.findViewById(R.id.b_action); bAction.setText("Go"); bAction.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String password = passwordEditText.getText().toString(); if (ApplicationSettings.passwordMatches(activity, password)) { String pageId = null; if (currentPage.getAction().size() > 0) pageId = currentPage.getAction().get(0).getLink(); else pageId = currentPage.getSuccessId(); Intent i = new Intent(activity, WizardActivity.class); i.putExtra("page_id", pageId); activity.startActivity(i); activity.finish(); return; } AppUtil.setError(activity, passwordEditText, R.string.incorrect_pin); } }); 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(); bAction.setText(currentPage.getAction().get(0).getTitle()); if (currentPage.getContent() == null) tvContent.setVisibility(View.GONE); else { tvContent.setText(Html.fromHtml(currentPage.getContent(), null, new MyTagHandler())); AppUtil.updateImages(true, currentPage.getContent(), activity, metrics, tvContent, AppConstants.IMAGE_INLINE); } } } @Override public void onPause() { super.onPause(); Log.e(">>>>>", "onPause WizardTestDisguiseCodeFragment"); } @Override public void onResume() { super.onResume(); Log.e(">>>>>", "onResume WizardTestDisguiseCodeFragment"); } }