package com.abewy.android.apps.klyph.fragment; import android.app.Activity; import android.app.Fragment; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.URLUtil; import android.widget.EditText; import android.widget.ImageButton; import android.widget.ImageView; import com.abewy.android.apps.klyph.KlyphBundleExtras; import com.abewy.android.apps.klyph.R; import com.abewy.android.apps.klyph.app.AllPhotosActivity; import com.abewy.android.apps.klyph.core.imageloader.ImageLoader; import com.abewy.android.apps.klyph.core.util.AlertUtil; import com.abewy.android.apps.klyph.core.util.AttrUtil; public class PostLink extends Fragment { private static final int REQUEST_CODE = 9658; private static final String HTTP = "http://"; private static final String HTTPS = "https://"; private PostLinkListener listener; private EditText linkURL; private EditText linkImageURL; private EditText linkName; private EditText linkDesc; private ImageButton addButton; private ImageButton deleteButton; private ImageView linkImage; public interface PostLinkListener { public void onPostLinkDeleteClick(); } public PostLink() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_post_link, container, false); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); view.setBackgroundResource(AttrUtil.getResourceId(getActivity(), R.attr.actionBarStackedBackground)); deleteButton = (ImageButton) view.findViewById(R.id.delete_button); deleteButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (listener != null) listener.onPostLinkDeleteClick(); } }); addButton = (ImageButton) view.findViewById(R.id.add_button); addButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getActivity(), AllPhotosActivity.class); startActivityForResult(intent, REQUEST_CODE); } }); linkURL = (EditText) view.findViewById(R.id.link); linkName = (EditText) view.findViewById(R.id.name); linkDesc = (EditText) view.findViewById(R.id.desc); linkImage = (ImageView) view.findViewById(R.id.link_image); linkImageURL = (EditText) view.findViewById(R.id.link_image_url); reset(); } public void setUrl(String url) { if (url != null) linkURL.setText(url); } public void setTitle(String title) { if (title != null) linkName.setText(title); } public void initWithIntent(Intent intent) { String url = intent.getStringExtra(KlyphBundleExtras.SHARE_LINK_URL); String imageUrl = intent.getStringExtra(KlyphBundleExtras.SHARE_LINK_IMAGE_URL); String name = intent.getStringExtra(KlyphBundleExtras.SHARE_LINK_NAME); String desc = intent.getStringExtra(KlyphBundleExtras.SHARE_LINK_DESC); linkURL.setText(url); linkName.setText(name); linkDesc.setText(desc); linkImageURL.setText(imageUrl); ImageLoader.display(linkImage, imageUrl, true, AttrUtil.getResourceId(getActivity(), R.attr.squarePlaceHolderIcon)); linkImage.setVisibility(View.VISIBLE); linkURL.setEnabled(false); linkName.setEnabled(false); linkDesc.setEnabled(false); linkImageURL.setEnabled(false); addButton.setVisibility(View.GONE); deleteButton.setVisibility(View.GONE); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) { String url = data.getStringExtra(KlyphBundleExtras.URL); String thumbUrl = data.getStringExtra(KlyphBundleExtras.THUMB_URL); linkImageURL.setText(url); ImageLoader.display(linkImage, thumbUrl, true, AttrUtil.getResourceId(getActivity(), R.attr.squarePlaceHolderIcon)); linkImage.setVisibility(View.VISIBLE); } } public void reset() { linkURL.setText(HTTP); linkImageURL.setText(HTTP); linkName.setText(""); linkDesc.setText(""); addButton.setVisibility(View.VISIBLE); linkImage.setVisibility(View.GONE); linkImage.setImageDrawable(null); } public Bundle getParams() { String url = linkURL.getText().toString(); String imageUrl = linkImageURL.getText().toString(); if (!url.contains(HTTP) && !url.contains(HTTPS)) { url = HTTP + url; } /* * if (!imageUrl.contains(HTTP) && !imageUrl.contains(HTTPS)) * { * url = HTTP + url; * } */ Bundle bundle = new Bundle(); bundle.putString("link", url); if (!imageUrl.equals(HTTP) && imageUrl.length() > 0) { bundle.putString("picture", imageUrl); } bundle.putString("name", linkName.getText().toString()); bundle.putString("description", linkDesc.getText().toString()); return bundle; } public boolean checkEntries() { String linkUrl = linkURL.getText().toString(); String linkImageUrl = linkImageURL.getText().toString(); String name = linkName.getText().toString(); if (linkUrl.equals(HTTP) || linkURL.equals(HTTPS) || !URLUtil.isValidUrl(linkUrl)) { AlertUtil.showAlert(getActivity(), R.string.error, R.string.post_link_malformated_url, R.string.ok); return false; } if (!linkUrl.contains(HTTP) && !linkUrl.contains(HTTPS)) { linkUrl = HTTP + linkUrl; } if (!linkImageUrl.contains(HTTP) && !linkImageUrl.contains(HTTPS)) { linkImageUrl = HTTP + linkImageUrl; } if (!linkImageUrl.equals(HTTP) && !URLUtil.isValidUrl(linkUrl)) { AlertUtil.showAlert(getActivity(), R.string.error, R.string.post_link_malformated_image_url, R.string.ok); return false; } if (linkURL.isEnabled() && name.length() == 0) { AlertUtil.showAlert(getActivity(), R.string.error, R.string.post_link_empty_name, R.string.ok); return false; } return true; } @Override public void onAttach(Activity activity) { super.onAttach(activity); if (activity instanceof PostLinkListener) { listener = (PostLinkListener) activity; } } @Override public void onDetach() { super.onDetach(); listener = null; } @Override public void onDestroy() { super.onDestroy(); listener = null; linkURL = null; linkImageURL = null; linkName = null; linkDesc = null; addButton = null; deleteButton = null; linkImage = null; } }