package com.sunvote.xpadapp.fragments; import com.sunvote.util.LogUtil; import com.sunvote.xpadapp.MainActivity; import com.sunvote.xpadapp.R; import com.sunvote.xpadapp.base.BaseFragment; import com.sunvote.xpadapp.db.modal.BillInfo; import com.sunvote.xpadcomm.XPadApi; import com.sunvote.xpadcomm.XPadApiInterface.EvaluateInfo; import com.sunvote.xpadcomm.XPadApiInterface.VoteInfo; import android.os.Bundle; import android.text.Html; import android.text.method.ScrollingMovementMethod; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebView.FindListener; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; public class ContentVoteFragment extends BaseFragment { private String TAG = "ContentVoteFragment"; private TextView tvTitle; private WebView tvContent; private TextView tvModify; private TextView tvTips; private TextView ivReuslt; private Button btnA; private Button btnB; private Button btnC; private Button btnModify; private RelativeLayout tipLayout; private RelativeLayout voteLayout; private RelativeLayout modifyLayout; private int scale = 0; private int originSize = 200; private BillInfo bill; private VoteInfo voteInfo; private EvaluateInfo evaluateInfo; private int modifyable; private int secret; private String[] options; private String DATABASE_PATH = android.os.Environment.getExternalStorageDirectory().getAbsolutePath(); public ContentVoteFragment() { super(); } public void setInfo(BillInfo info){ bill = info; options = bill.billOptions.split("/"); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { LogUtil.d("ContentVoteFragment", "onCreateView"); View view = inflater.inflate(R.layout.fragment_contentvote, container, false); tvModify = view.findViewById(R.id.contentvote_tvmodify); tvTitle = view.findViewById(R.id.contentvote_title); tvTitle.setText(mMainActivity.meetingInfo.meetingTitle); tvContent = view.findViewById(R.id.contentvote_content); String filename = "file:///" + DATABASE_PATH + "/sunvote/" + mMainActivity.meetingInfo.meetingID + "/" + bill.billFile; tvContent.loadUrl(filename); WebSettings mWebSettings = tvContent.getSettings(); tvContent.setInitialScale(originSize); mWebSettings.setSupportZoom(true); tvTips = (TextView) view.findViewById(R.id.contentvote_tv_tips); ivReuslt = (TextView) view.findViewById(R.id.contentvote_tv_result); ivReuslt.setVisibility(View.INVISIBLE); tipLayout = (RelativeLayout) view.findViewById(R.id.contentvote_pannal_tips); voteLayout = (RelativeLayout) view.findViewById(R.id.contentvote_pannal_vote); modifyLayout = (RelativeLayout) view.findViewById(R.id.contentvote_pannal_modify); // tvContent.setTextSize(originSize); ImageButton btnBigger = (ImageButton) view.findViewById(R.id.contentvote_bigger); btnBigger.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { scale++; if (scale > 10) { scale = 10; } int newsize = originSize + scale * 20; LogUtil.d(TAG, "old size = " + originSize + " new size = " + newsize); // tvContent.setTextSize(newsize); tvContent.setInitialScale(newsize); } }); ImageButton btnSmaller = (ImageButton) view.findViewById(R.id.contentvote_smaller); btnSmaller.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { scale--; if (scale < -3) { scale = -3; } int newsize = (originSize + scale * 20); LogUtil.d(TAG, "old size = " + originSize + " new size = " + newsize); tvContent.setInitialScale(newsize); } }); btnA = (Button) view.findViewById(R.id.contentvote_btnA); btnA.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { doVoteWithIndex(1); } }); btnB = (Button) view.findViewById(R.id.contentvote_btnB); btnB.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { doVoteWithIndex(2); } }); btnC = (Button) view.findViewById(R.id.contentvote_btnC); btnC.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (options.length == 2) { doVoteWithIndex(2); } else { doVoteWithIndex(3); } } }); btnModify = (Button) view.findViewById(R.id.contentvote_btn_modify); btnModify.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { showVote(); } }); if (options.length == 2) { btnA.setText(options[0]); btnB.setVisibility(View.INVISIBLE); btnC.setText(options[1]); } else if (options.length == 3) { btnA.setText(options[0]); btnB.setText(options[1]); btnC.setText(options[2]); } hideVote(); return view; } private void doVoteWithIndex(int index) { // tvModify.setText(getString(R.string.submiting)); mMainActivity.presenter.submitVote(XPadApi.AnsType_Single, String.valueOf(index)); if (secret == 0) { if (bill.billType == BillInfo.BillType_Vote) { ivReuslt.setText(""); ivReuslt.setBackgroundResource(getResultResourceByTitle(options[index - 1])); } else if (bill.billType == BillInfo.BillType_Evaluate) { ivReuslt.setText(options[index - 1]); ivReuslt.setBackgroundResource(R.drawable.voted_empty); } } else { ivReuslt.setText(""); ivReuslt.setBackgroundResource(R.drawable.voted); } ivReuslt.setVisibility(View.VISIBLE); if (modifyable == 1) { showModify(); } else { disableVote(); } } private void hideVote() { voteLayout.setVisibility(View.INVISIBLE); ivReuslt.setVisibility(View.INVISIBLE); // tvTips.setVisibility(View.INVISIBLE); } private void showVote() { voteLayout.setVisibility(View.VISIBLE); //tipLayout.setVisibility(View.VISIBLE); modifyLayout.setVisibility(View.INVISIBLE); ivReuslt.setVisibility(View.INVISIBLE); tvTips.setVisibility(View.VISIBLE); } private void disableVote() { // btnA.setVisibility(View.INVISIBLE); // btnB.setVisibility(View.INVISIBLE); // btnC.setVisibility(View.INVISIBLE); voteLayout.setVisibility(View.INVISIBLE); //tipLayout.setVisibility(View.INVISIBLE); modifyLayout.setVisibility(View.INVISIBLE); } private void showTips() { voteLayout.setVisibility(View.INVISIBLE); //tipLayout.setVisibility(View.VISIBLE); modifyLayout.setVisibility(View.INVISIBLE); } private void showModify() { voteLayout.setVisibility(View.INVISIBLE); tipLayout.setVisibility(View.INVISIBLE); modifyLayout.setVisibility(View.VISIBLE); } @Override public void onVoteEvent(int baseId, int iMode, Object info) { /* if (iMode == XPadApi.VoteType_Vote) { voteInfo = (VoteInfo) info; modifyable = voteInfo.modifyMode; secret = voteInfo.secretMode; if (modifyable == 1) { tvModify.setText(getString(R.string.please_vote_can_modify)); } else { tvModify.setText(getString(R.string.please_vote_can_not_modify)); } showVote(); } else if (iMode == XPadApi.VoteType_Evaluate) { evaluateInfo = (EvaluateInfo) info; modifyable = evaluateInfo.modify; secret = evaluateInfo.secrecy; showVote(); } else if (iMode == XPadApi.VoteType_Stop) { disableVote(); }*/ } @Override public void onVoteSubmitSuccess() { tvModify.setText(getString(R.string.submited)); super.onVoteSubmitSuccess(); } }