Signin/Signup with: 
Welcome, Guest
Username: Password: Remember me
Questions about Android development and PDF

TOPIC:

attachments do not work!!! 8 years 2 months ago #10276

  • max.pfeiffer
  • max.pfeiffer's Avatar
  • Offline
  • New Member
  • New Member
  • Posts: 14
  • Thank you received: 1
:( attachments seem not to work in that forum.

I will see if I can post a github snippet tomorrow.

Please Log in or Create an account to join the conversation.

attachments do not work!!! 8 years 2 months ago #10277

  • max.pfeiffer
  • max.pfeiffer's Avatar
  • Offline
  • New Member
  • New Member
  • Posts: 14
  • Thank you received: 1
ok, to do it quick and dirty I just post my implemetation of onSingleTapUp() of PDFGestureListener.

I changed it so when setting m_status = STA_NONE or m_status = STA_ANNOT the tap on a text annotation causes the move.

m_status = STA_EDIT_TEXT is used to edit that text annotation. Works better for than the default behaviour of PDFLayoutView.
@Override
		public boolean onSingleTapUp(MotionEvent e) {
			if ( m_status == STA_NONE || m_status == STA_ANNOT || m_status == STA_EDIT_TEXT) {
				m_annot_pos = m_layout.vGetPos((int)e.getX(), (int)e.getY());
				m_annot_page = m_layout.vGetPage(m_annot_pos.pageno);
				Page page = m_doc.GetPage(m_annot_page.GetPageNo());

				if( page == null ) {
					m_annot = null;
				} else {
					m_annot = page.GetAnnotFromPoint(m_annot_pos.x, m_annot_pos.y);
				}

				if( m_annot == null ) { // No Annotation selected
					m_annot_page = null;
					m_annot_pos = null;
					m_annot_rect = null;
					if( m_listener != null )
					{
						if(m_status == STA_ANNOT)
							m_listener.OnPDFAnnotTapped(m_annot_page, null);
						else
							m_listener.OnPDFBlankTapped();
					}
					m_status = STA_NONE;
				} else { // Annotation selected
					page.ObjsStart();
					m_annot_rect = m_annot.GetRect();
					float tmp = m_annot_rect[1];
					m_annot_rect[0] = m_annot_page.GetVX(m_annot_rect[0]) - m_layout.vGetX();
					m_annot_rect[1] = m_annot_page.GetVY(m_annot_rect[3]) - m_layout.vGetY();
					m_annot_rect[2] = m_annot_page.GetVX(m_annot_rect[2]) - m_layout.vGetX();
					m_annot_rect[3] = m_annot_page.GetVY(tmp) - m_layout.vGetY();

					if ( m_status == STA_EDIT_TEXT){
						if( m_doc.CanSave() && m_annot.GetEditType() > 0 ) { // this annotation is a text-box.
							int[] location = new int[2];
							getLocationOnScreen(location);
							m_pEdit = new PopupWindow(LayoutInflater.from(getContext()).inflate(R.layout.pop_editbox, null) );
							Drawable dw = new ColorDrawable(0);
							m_pEdit.setFocusable(true);
							m_pEdit.setTouchable(true);
							m_pEdit.setBackgroundDrawable(dw);
							m_pEdit.setWidth((int)(m_annot_rect[2] - m_annot_rect[0]));
							m_pEdit.setHeight((int)(m_annot_rect[3] - m_annot_rect[1]));
							final EditText edit = (EditText)m_pEdit.getContentView().findViewById(R.id.pop_editbox_edittext);
							edit.setBackgroundColor(0xFFFFFFC0);
							float fsize = m_annot.GetEditTextSize() * m_layout.vGetScale();
							edit.setTextSize(TypedValue.COMPLEX_UNIT_PX, fsize);
							edit.setPadding(2, 2, 2, 2);
							switch( m_annot.GetEditType() )
							{
								case 1: //normal single line.
									edit.setSingleLine();
									edit.setInputType(InputType.TYPE_CLASS_TEXT + InputType.TYPE_TEXT_VARIATION_NORMAL);
									break;
								case 2: //password.
									edit.setSingleLine();
									edit.setInputType(InputType.TYPE_CLASS_TEXT + InputType.TYPE_TEXT_VARIATION_PASSWORD);
									break;
								case 3: //MultiLine edit area.
									edit.setSingleLine(false);
									edit.setInputType(InputType.TYPE_CLASS_TEXT + InputType.TYPE_TEXT_VARIATION_NORMAL);
									break;
							}
							int maxlen = m_annot.GetEditMaxlen();
							if( maxlen > 0 )
								edit.setFilters(new InputFilter[]{new InputFilter.LengthFilter(maxlen)});
							else
								edit.setFilters(new InputFilter[]{new InputFilter.LengthFilter(1020)});
							edit.setText(m_annot.GetEditText());
							m_edit_type = 1;
							m_pEdit.setOnDismissListener(new PopupWindow.OnDismissListener() {
								@Override
								public void onDismiss() {
									if( m_edit_type == 1 )//edit box
									{
										m_annot.SetEditText(edit.getText().toString());
										m_layout.vRenderSync(m_annot_page);
										if( m_listener != null )
											m_listener.OnPDFPageModified(m_annot_page.GetPageNo());
										PDFEndAnnot();
									}
									m_edit_type = 0;
								}
							});
							m_pEdit.showAtLocation(ExtendedPDFLayoutView.this, Gravity.NO_GRAVITY, (int)m_annot_rect[0] + location[0], (int)m_annot_rect[1] + location[1]);
						}
					} else if (m_status == STA_NONE) { // Annotation selected move to annotation state
						m_status = STA_ANNOT;

						if( m_doc.CanSave() && m_annot.GetComboItemCount() >= 0 ) //-1: this is not combo. otherwise: items count.
						{
							int[] location = new int[2];
							getLocationOnScreen(location);
							String opts[] = new String[m_annot.GetComboItemCount()];
							int cur = 0;
							while( cur < opts.length )
							{
								opts[cur] = m_annot.GetComboItem(cur);
								cur++;
							}
							m_pCombo = new PopupWindow(LayoutInflater.from(getContext()).inflate(com.radaee.viewlib.R.layout.pop_combo, null));
							Drawable dw = new ColorDrawable(0);
							m_pCombo.setFocusable(true);
							m_pCombo.setTouchable(true);
							m_pCombo.setBackgroundDrawable(dw);
							m_pCombo.setWidth((int)(m_annot_rect[2] - m_annot_rect[0]));
							if( (m_annot_rect[3] - m_annot_rect[1] - 4) * opts.length > 250 )
								m_pCombo.setHeight(250);
							else
								m_pCombo.setHeight((int)(m_annot_rect[3] - m_annot_rect[1] - 4) * opts.length);
							ComboList combo = (ComboList)m_pCombo.getContentView().findViewById(com.radaee.viewlib.R.id.annot_combo);
							combo.set_opts(opts);
							combo.setOnItemClickListener(new OnItemClickListener() {
								@Override
								public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
									m_combo_item = i;
									m_pCombo.dismiss();
								}
							});
							m_edit_type = 2;
							m_combo_item = -1;
							m_pCombo.setOnDismissListener(new PopupWindow.OnDismissListener() {
								@Override
								public void onDismiss() {
									if( m_edit_type == 2 )//combo
									{
										if( m_combo_item >= 0 )
										{
											m_annot.SetComboItem(m_combo_item);
											m_layout.vRenderSync(m_annot_page);
											if( m_listener != null )
												m_listener.OnPDFPageModified(m_annot_page.GetPageNo());
										}
										m_combo_item = -1;
										PDFEndAnnot();
									}
									m_edit_type = 0;

								}
							});
							m_pCombo.showAtLocation(ExtendedPDFLayoutView.this, Gravity.NO_GRAVITY, (int)m_annot_rect[0] + location[0], (int)(m_annot_rect[3] + location[1]));
						}

					} else if( m_listener != null ) {
						m_listener.OnPDFAnnotTapped(m_annot_page, m_annot);
					}

					invalidate();
				}

				return true;

			}
			return false;
		}
	

Please Log in or Create an account to join the conversation.

attachments do not work!!! 8 years 2 months ago #10279

  • support
  • support's Avatar
  • Offline
  • Administrator
  • Administrator
  • Posts: 692
  • Thank you received: 59
You should try uploading your files right now.
The forum issue should be fixed.

Please Log in or Create an account to join the conversation.

how to move the added text at pdf 8 years 2 months ago #10280

  • ankur123987
  • ankur123987's Avatar Topic Author
  • Offline
  • Premium Member
  • Premium Member
  • Available as freelancer (ex website to app 30min)
  • Posts: 97
  • Thank you received: 0
Hey Max thank you so much.but i am getting problem that onSingleTapUp(MotionEvent e) method never calls . could you please send me your modified class file to my email id This email address is being protected from spambots. You need JavaScript enabled to view it. as i could not find the attachment here .

Please Log in or Create an account to join the conversation.

how to move the added text at pdf 8 years 2 months ago #10281

  • ankur123987
  • ankur123987's Avatar Topic Author
  • Offline
  • Premium Member
  • Premium Member
  • Available as freelancer (ex website to app 30min)
  • Posts: 97
  • Thank you received: 0
Thanks support team for your initiative to fix bug of attachment. please upload files here

Please Log in or Create an account to join the conversation.

how to move the added text at pdf 8 years 2 months ago #10283

  • max.pfeiffer
  • max.pfeiffer's Avatar
  • Offline
  • New Member
  • New Member
  • Posts: 14
  • Thank you received: 1
ok, trying to attach my class here.


File Attachment:

File Name: ExtendedPD...iew.java
File Size:59 KB
Attachments:
The following user(s) said Thank You: Davide

Please Log in or Create an account to join the conversation.

Powered by Kunena Forum