public BearingWidget(Context context, FormEntryPrompt prompt) { super(context, prompt); setOrientation(LinearLayout.VERTICAL); TableLayout.LayoutParams params = new TableLayout.LayoutParams(); params.setMargins(7, 5, 7, 5); mGetBearingButton = new Button(getContext()); mGetBearingButton.setId(QuestionWidget.newUniqueId()); mGetBearingButton.setPadding(20, 20, 20, 20); mGetBearingButton.setText(getContext().getString(R.string.get_bearing)); mGetBearingButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, mAnswerFontsize); mGetBearingButton.setEnabled(!prompt.isReadOnly()); mGetBearingButton.setLayoutParams(params); if (prompt.isReadOnly()) { mGetBearingButton.setVisibility(View.GONE); } mStringAnswer = new TextView(getContext()); mStringAnswer.setId(QuestionWidget.newUniqueId()); mAnswerDisplay = new TextView(getContext()); mAnswerDisplay.setId(QuestionWidget.newUniqueId()); mAnswerDisplay.setTextSize(TypedValue.COMPLEX_UNIT_DIP, mAnswerFontsize); mAnswerDisplay.setGravity(Gravity.CENTER); String s = prompt.getAnswerText(); if (s != null && !s.equals("")) { mGetBearingButton.setText(getContext().getString(R.string.replace_bearing)); setBinaryData(s); } // when you press the button mGetBearingButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { Collect.getInstance() .getActivityLogger() .logInstanceAction(this, "recordBearing", "click", mPrompt.getIndex()); Intent i = null; i = new Intent(getContext(), BearingActivity.class); Collect.getInstance().getFormController().setIndexWaitingForData(mPrompt.getIndex()); ((Activity) getContext()).startActivityForResult(i, FormEntryActivity.BEARING_CAPTURE); } }); addView(mGetBearingButton); addView(mAnswerDisplay); }
public TriggerWidget(Context context, FormEntryPrompt prompt) { super(context, prompt); mPrompt = prompt; this.setOrientation(LinearLayout.VERTICAL); mTriggerButton = new CheckBox(getContext()); mTriggerButton.setId(QuestionWidget.newUniqueId()); mTriggerButton.setText(getContext().getString(R.string.trigger)); mTriggerButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, mAnswerFontsize); // mActionButton.setPadding(20, 20, 20, 20); mTriggerButton.setEnabled(!prompt.isReadOnly()); mTriggerButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { if (mTriggerButton.isChecked()) { mStringAnswer.setText(mOK); Collect.getInstance() .getActivityLogger() .logInstanceAction(TriggerWidget.this, "triggerButton", "OK", mPrompt.getIndex()); } else { mStringAnswer.setText(null); Collect.getInstance() .getActivityLogger() .logInstanceAction( TriggerWidget.this, "triggerButton", "null", mPrompt.getIndex()); } } }); mStringAnswer = new TextView(getContext()); mStringAnswer.setId(QuestionWidget.newUniqueId()); mStringAnswer.setTextSize(TypedValue.COMPLEX_UNIT_DIP, mAnswerFontsize); mStringAnswer.setGravity(Gravity.CENTER); String s = prompt.getAnswerText(); if (s != null) { if (s.equals(mOK)) { mTriggerButton.setChecked(true); } else { mTriggerButton.setChecked(false); } mStringAnswer.setText(s); } // finish complex layout this.addView(mTriggerButton); // this.addView(mStringAnswer); }
public UrlWidget(Context context, FormEntryPrompt prompt) { super(context, prompt); setOrientation(LinearLayout.VERTICAL); TableLayout.LayoutParams params = new TableLayout.LayoutParams(); params.setMargins(7, 5, 7, 5); // set button formatting mOpenUrlButton = new Button(getContext()); mOpenUrlButton.setId(QuestionWidget.newUniqueId()); mOpenUrlButton.setText(getContext().getString(R.string.open_url)); mOpenUrlButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, mAnswerFontsize); mOpenUrlButton.setPadding(20, 20, 20, 20); mOpenUrlButton.setEnabled(!prompt.isReadOnly()); mOpenUrlButton.setLayoutParams(params); mOpenUrlButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { Collect.getInstance() .getActivityLogger() .logInstanceAction(this, "openUrl", "click", mPrompt.getIndex()); if (mStringAnswer != null & mStringAnswer.getText() != null && !"".equalsIgnoreCase((String) mStringAnswer.getText())) { Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse((String) mStringAnswer.getText())); getContext().startActivity(i); } else { Toast.makeText(getContext(), "No URL set", Toast.LENGTH_SHORT).show(); } } }); // set text formatting mStringAnswer = new TextView(getContext()); mStringAnswer.setId(QuestionWidget.newUniqueId()); mStringAnswer.setTextSize(TypedValue.COMPLEX_UNIT_DIP, mAnswerFontsize); mStringAnswer.setGravity(Gravity.CENTER); String s = prompt.getAnswerText(); if (s != null) { mStringAnswer.setText(s); } // finish complex layout addView(mOpenUrlButton); addView(mStringAnswer); }
@Override public void cancelLongPress() { super.cancelLongPress(); mGetBearingButton.cancelLongPress(); mStringAnswer.cancelLongPress(); mAnswerDisplay.cancelLongPress(); }
@Override public void cancelLongPress() { super.cancelLongPress(); mSignButton.cancelLongPress(); if (mImageView != null) { mImageView.cancelLongPress(); } }
@Override public void cancelLongPress() { super.cancelLongPress(); mQuestionText.cancelLongPress(); if (mMissingImage != null) { mMissingImage.cancelLongPress(); } if (mImageView != null) { mImageView.cancelLongPress(); } if (label != null) { label.cancelLongPress(); } }
public ExPrinterWidget(Context context, FormEntryPrompt prompt) { super(context, prompt); TableLayout.LayoutParams params = new TableLayout.LayoutParams(); params.setMargins(7, 5, 7, 5); String appearance = prompt.getAppearanceHint(); String[] attrs = appearance.split(":"); final String intentName = (attrs.length < 2 || attrs[1].length() == 0) ? "org.opendatakit.sensors.ZebraPrinter" : attrs[1]; final String buttonText; final String errorString; String v = mPrompt.getSpecialFormQuestionText("buttonText"); buttonText = (v != null) ? v : context.getString(R.string.launch_printer); v = mPrompt.getSpecialFormQuestionText("noPrinterErrorString"); errorString = (v != null) ? v : context.getString(R.string.no_printer); // set button formatting mLaunchIntentButton = new Button(getContext()); mLaunchIntentButton.setId(QuestionWidget.newUniqueId()); mLaunchIntentButton.setText(buttonText); mLaunchIntentButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, mAnswerFontsize); mLaunchIntentButton.setPadding(20, 20, 20, 20); mLaunchIntentButton.setLayoutParams(params); mLaunchIntentButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { try { Collect.getInstance().getFormController().setIndexWaitingForData(mPrompt.getIndex()); firePrintingActivity(intentName); } catch (ActivityNotFoundException e) { Collect.getInstance().getFormController().setIndexWaitingForData(null); Toast.makeText(getContext(), errorString, Toast.LENGTH_SHORT).show(); } } }); // finish complex layout addView(mLaunchIntentButton); }
public SignatureWidget(Context context, FormEntryPrompt prompt) { super(context, prompt); mInstanceFolder = Collect.getInstance().getFormController().getInstancePath().getParent(); setOrientation(LinearLayout.VERTICAL); TableLayout.LayoutParams params = new TableLayout.LayoutParams(); params.setMargins(7, 5, 7, 5); mErrorTextView = new TextView(context); mErrorTextView.setId(QuestionWidget.newUniqueId()); mErrorTextView.setText("Selected file is not a valid image"); // setup Blank Image Button mSignButton = new Button(getContext()); mSignButton.setId(QuestionWidget.newUniqueId()); mSignButton.setText(getContext().getString(R.string.sign_button)); mSignButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, mAnswerFontsize); mSignButton.setPadding(20, 20, 20, 20); mSignButton.setEnabled(!prompt.isReadOnly()); mSignButton.setLayoutParams(params); // launch capture intent on click mSignButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { Collect.getInstance() .getActivityLogger() .logInstanceAction(this, "signButton", "click", mPrompt.getIndex()); launchSignatureActivity(); } }); // finish complex layout addView(mSignButton); addView(mErrorTextView); // and hide the sign button if read-only if (prompt.isReadOnly()) { mSignButton.setVisibility(View.GONE); } mErrorTextView.setVisibility(View.GONE); // retrieve answer from data model and update ui mBinaryName = prompt.getAnswerText(); // Only add the imageView if the user has signed if (mBinaryName != null) { mImageView = new ImageView(getContext()); mImageView.setId(QuestionWidget.newUniqueId()); Display display = ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)) .getDefaultDisplay(); int screenWidth = display.getWidth(); int screenHeight = display.getHeight(); File f = new File(mInstanceFolder + File.separator + mBinaryName); if (f.exists()) { Bitmap bmp = FileUtils.getBitmapScaledToDisplay(f, screenHeight, screenWidth); if (bmp == null) { mErrorTextView.setVisibility(View.VISIBLE); } mImageView.setImageBitmap(bmp); } else { mImageView.setImageBitmap(null); } mImageView.setPadding(10, 10, 10, 10); mImageView.setAdjustViewBounds(true); mImageView.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { Collect.getInstance() .getActivityLogger() .logInstanceAction(this, "viewImage", "click", mPrompt.getIndex()); launchSignatureActivity(); } }); addView(mImageView); } }
@Override public void cancelLongPress() { super.cancelLongPress(); mLaunchIntentButton.cancelLongPress(); }
@Override public void cancelLongPress() { super.cancelLongPress(); mTriggerButton.cancelLongPress(); mStringAnswer.cancelLongPress(); }
@Override public void cancelLongPress() { super.cancelLongPress(); mOpenUrlButton.cancelLongPress(); mStringAnswer.cancelLongPress(); }