package org.iilab.pb.fragment;
import org.iilab.pb.MainActivity;
import org.iilab.pb.R;
import org.iilab.pb.WizardActivity;
import org.iilab.pb.adapter.PageItemAdapter;
import org.iilab.pb.common.AppConstants;
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;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.text.Html;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class MainSetupAlertFragment extends Fragment implements OnClickListener{
private static final int EXACT_CHARACTERS = 4;
private TextView alertDelayEditText;
private static final String PAGE_ID = "page_id";
private static final String PARENT_ACTIVITY = "parent_activity";
private Activity activity;
private String[] time_options =
{"1", "2" , "3", "4", "5" , "6", "7", "8", "9" , "10",
"11", "12" , "13", "14", "15" , "16", "17", "18", "19" , "20",
"21", "22" , "23", "24", "25" , "26", "27", "28", "29" , "30",
"31", "32" , "33", "34", "35" , "36", "37", "38", "39" , "40",
"41", "42" , "43", "44", "45" , "46", "47", "48", "49" , "50",
"51", "52" , "53", "54", "55" , "56", "57", "58", "59" , "60",
"61", "62" , "63", "64", "65" , "66", "67", "68", "69" , "70",
"71", "72" , "73", "74", "75" , "76", "77", "78", "79" , "80",
"81", "82" , "83", "84", "85" , "86", "87", "88", "89" , "90",
"91", "92" , "93", "94", "95" , "96", "97", "98", "99" , "100",
"101", "102" , "103", "104", "105" , "106", "107", "108", "109" , "110",
"111", "112" , "113", "114", "115" , "116", "117", "118", "119" , "120",
};
AlertDialog actions;
TextView tvTitle, tvContent, tvIntro, tvWarning;
Button bAction;
ListView lvItems;
LinearLayout llWarning;
Page currentPage;
PageItemAdapter pageItemAdapter;
public static MainSetupAlertFragment newInstance(String pageId, int parentActivity) {
MainSetupAlertFragment f = new MainSetupAlertFragment();
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.fragment_type_interactive_alert, container, false);
alertDelayEditText = (TextView) view.findViewById(R.id.alertDelay_edittext);
alertDelayEditText.setText(String.valueOf(ApplicationSettings.getAlertDelay(getActivity()))+" min");
delayDialogSettings();
alertDelayEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
actions.show();
}
});
tvTitle = (TextView) view.findViewById(R.id.fragment_title);
tvIntro = (TextView) view.findViewById(R.id.fragment_intro);
tvContent = (TextView) view.findViewById(R.id.fragment_contents);
bAction = (Button) view.findViewById(R.id.fragment_action);
bAction.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e(">>>>", "action button pressed");
ApplicationSettings.setAlertDelay(getActivity(), ApplicationSettings.getAlertDelay(getActivity()));
String pageId = currentPage.getAction().get(0).getLink();
int parentActivity = getArguments().getInt(PARENT_ACTIVITY);
Intent i;
if(parentActivity == AppConstants.FROM_WIZARD_ACTIVITY){
i = new Intent(activity, WizardActivity.class);
} else{
// AppUtil.showToast("New frequency saved.", 1000, activity);
String confirmation = (currentPage.getAction().get(0).getConfirmation() == null)
? AppConstants.DEFAULT_CONFIRMATION_MESSAGE
: currentPage.getAction().get(0).getConfirmation();
Toast.makeText(activity, confirmation, Toast.LENGTH_SHORT).show();
i = new Intent(activity, MainActivity.class);
}
// Intent i = new Intent(activity, WizardActivity.class);
i.putExtra("page_id", pageId);
startActivity(i);
if(parentActivity == AppConstants.FROM_MAIN_ACTIVITY){
activity.finish();
}
}
});
lvItems = (ListView) view.findViewById(R.id.fragment_item_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();
int parentActivity = getArguments().getInt(PARENT_ACTIVITY);
Intent i;
if(parentActivity == AppConstants.FROM_WIZARD_ACTIVITY){
i = new Intent(activity, WizardActivity.class);
} else{
i = new Intent(activity, MainActivity.class);
}
// Intent i = new Intent(activity, WizardActivity.class);
i.putExtra("page_id", pageId);
startActivity(i);
}
});
return view;
}
public void delayDialogSettings() {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Choose an Option");
builder.setItems(time_options, actionListener);
builder.setNegativeButton("Cancel", null);
actions = builder.create();
}
DialogInterface.OnClickListener actionListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ApplicationSettings.setAlertDelay(getActivity(), which+1);
alertDelayEditText.setText(time_options[which].toString()+" min");
}
};
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
activity = getActivity();
if (activity != null) {
// bAction.setEnabled(isComplete());
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.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());
bAction.setText(currentPage.getAction().get(0).getTitle());
pageItemAdapter = new PageItemAdapter(activity, null);
lvItems.setAdapter(pageItemAdapter);
pageItemAdapter.setData(currentPage.getItems());
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
}