2014-10-29 13:23:07 +00:00
|
|
|
package org.fox.ttrss;
|
|
|
|
|
2014-10-29 14:01:47 +00:00
|
|
|
import android.annotation.SuppressLint;
|
2014-11-03 15:15:37 +00:00
|
|
|
import android.app.Dialog;
|
2014-10-29 13:23:07 +00:00
|
|
|
import android.content.Context;
|
|
|
|
import android.content.Intent;
|
|
|
|
import android.graphics.Bitmap;
|
|
|
|
import android.net.Uri;
|
2014-10-29 21:42:56 +00:00
|
|
|
import android.os.AsyncTask;
|
2014-10-29 13:23:07 +00:00
|
|
|
import android.os.Bundle;
|
2014-10-29 14:01:47 +00:00
|
|
|
import android.preference.PreferenceManager;
|
2015-02-12 11:06:17 +00:00
|
|
|
import android.support.v4.app.ActivityCompat;
|
2014-10-29 13:23:07 +00:00
|
|
|
import android.support.v4.view.PagerAdapter;
|
2015-02-12 07:48:50 +00:00
|
|
|
import android.support.v4.view.ViewCompat;
|
2014-10-29 13:23:07 +00:00
|
|
|
import android.support.v4.view.ViewPager;
|
2014-11-25 09:19:36 +00:00
|
|
|
import android.support.v7.app.ActionBar;
|
2014-10-29 13:23:07 +00:00
|
|
|
import android.util.Log;
|
2014-10-29 13:51:54 +00:00
|
|
|
import android.view.ContextMenu;
|
2014-11-25 09:19:36 +00:00
|
|
|
import android.view.GestureDetector;
|
2014-10-29 13:23:07 +00:00
|
|
|
import android.view.LayoutInflater;
|
2014-10-29 13:51:54 +00:00
|
|
|
import android.view.Menu;
|
|
|
|
import android.view.MenuItem;
|
2014-11-25 09:19:36 +00:00
|
|
|
import android.view.MotionEvent;
|
2014-10-29 13:23:07 +00:00
|
|
|
import android.view.View;
|
|
|
|
import android.view.ViewGroup;
|
2014-10-29 14:01:47 +00:00
|
|
|
import android.view.WindowManager;
|
2014-10-29 13:23:07 +00:00
|
|
|
import android.widget.FrameLayout;
|
|
|
|
import android.widget.ProgressBar;
|
2014-11-03 15:15:37 +00:00
|
|
|
import android.widget.TextView;
|
2014-10-29 13:23:07 +00:00
|
|
|
|
2015-02-11 11:59:15 +00:00
|
|
|
import com.ToxicBakery.viewpager.transforms.DepthPageTransformer;
|
2014-10-29 13:23:07 +00:00
|
|
|
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
|
|
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
|
|
|
import com.nostra13.universalimageloader.core.assist.FailReason;
|
|
|
|
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
|
|
|
|
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
|
|
|
|
import com.viewpagerindicator.UnderlinePageIndicator;
|
|
|
|
|
2014-11-03 15:15:37 +00:00
|
|
|
import org.jsoup.Jsoup;
|
|
|
|
import org.jsoup.nodes.Document;
|
2014-11-29 08:18:43 +00:00
|
|
|
import org.jsoup.nodes.Element;
|
2014-11-03 15:15:37 +00:00
|
|
|
import org.jsoup.select.Elements;
|
|
|
|
|
2014-10-29 13:23:07 +00:00
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
|
|
|
|
2014-11-25 09:19:36 +00:00
|
|
|
import it.sephiroth.android.library.imagezoom.ImageViewTouch;
|
|
|
|
|
|
|
|
public class ArticleImagesPagerActivity extends CommonActivity implements GestureDetector.OnDoubleTapListener {
|
2014-10-29 13:23:07 +00:00
|
|
|
private final String TAG = this.getClass().getSimpleName();
|
|
|
|
|
|
|
|
private ArrayList<String> m_urls;
|
2014-10-29 21:42:56 +00:00
|
|
|
private ArrayList<String> m_checkedUrls;
|
2014-10-29 13:23:07 +00:00
|
|
|
private String m_title;
|
2014-10-29 13:51:54 +00:00
|
|
|
private ArticleImagesPagerAdapter m_adapter;
|
2014-11-03 15:15:37 +00:00
|
|
|
private String m_content;
|
2014-11-25 09:19:36 +00:00
|
|
|
private GestureDetector m_detector;
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean onSingleTapConfirmed(MotionEvent motionEvent) {
|
|
|
|
ActionBar bar = getSupportActionBar();
|
|
|
|
|
|
|
|
if (bar.isShowing()) {
|
|
|
|
bar.hide();
|
|
|
|
} else {
|
|
|
|
bar.show();
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean onDoubleTap(MotionEvent motionEvent) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean onDoubleTapEvent(MotionEvent motionEvent) {
|
|
|
|
return false;
|
|
|
|
}
|
2014-10-29 13:23:07 +00:00
|
|
|
|
2014-10-29 16:47:28 +00:00
|
|
|
private class ArticleImagesPagerAdapter extends PagerAdapter {
|
2014-10-29 13:23:07 +00:00
|
|
|
private List<String> m_urls;
|
|
|
|
|
|
|
|
public ArticleImagesPagerAdapter(List<String> urls) {
|
|
|
|
super();
|
|
|
|
|
|
|
|
m_urls = urls;
|
|
|
|
}
|
|
|
|
|
|
|
|
public ArticleImagesPagerAdapter() {
|
|
|
|
super();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int getCount() {
|
|
|
|
return m_urls.size();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean isViewFromObject(View view, Object o) {
|
|
|
|
return view == o;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2014-10-29 20:40:03 +00:00
|
|
|
public Object instantiateItem(ViewGroup container, int position) {
|
2014-10-29 13:23:07 +00:00
|
|
|
String url = m_urls.get(position);
|
|
|
|
|
|
|
|
Log.d(TAG, "called for URL: " + url);
|
|
|
|
|
|
|
|
LayoutInflater inflater = (LayoutInflater) container.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
|
|
|
|
|
|
|
View view = inflater.inflate(R.layout.article_images_image, null);
|
|
|
|
|
2014-11-25 09:19:36 +00:00
|
|
|
m_detector = new GestureDetector(ArticleImagesPagerActivity.this, new GestureDetector.SimpleOnGestureListener());
|
|
|
|
|
|
|
|
m_detector.setOnDoubleTapListener(ArticleImagesPagerActivity.this);
|
|
|
|
|
|
|
|
ImageViewTouch imgView = (ImageViewTouch) view.findViewById(R.id.flavor_image);
|
|
|
|
|
|
|
|
imgView.setFitToScreen(true);
|
2014-11-29 08:31:45 +00:00
|
|
|
//imgView.setFitToWidth(true);
|
2014-11-25 09:19:36 +00:00
|
|
|
|
|
|
|
imgView.setOnTouchListener(new View.OnTouchListener() {
|
|
|
|
@Override
|
|
|
|
public boolean onTouch(View view, MotionEvent event) {
|
|
|
|
return m_detector.onTouchEvent(event);
|
|
|
|
}
|
|
|
|
});
|
2014-10-29 13:23:07 +00:00
|
|
|
|
2015-02-12 11:06:17 +00:00
|
|
|
if (position == 0) {
|
2015-02-12 07:48:50 +00:00
|
|
|
ViewCompat.setTransitionName(imgView, "TRANSITION:ARTICLE_IMAGES_PAGER");
|
2015-02-12 11:06:17 +00:00
|
|
|
}
|
2015-02-12 07:48:50 +00:00
|
|
|
|
2014-10-29 13:51:54 +00:00
|
|
|
registerForContextMenu(imgView);
|
|
|
|
|
2014-10-29 13:23:07 +00:00
|
|
|
DisplayImageOptions options = new DisplayImageOptions.Builder()
|
|
|
|
.cacheInMemory(true)
|
|
|
|
.resetViewBeforeLoading(true)
|
|
|
|
.cacheOnDisk(true)
|
|
|
|
.displayer(new FadeInBitmapDisplayer(200))
|
|
|
|
.build();
|
|
|
|
|
|
|
|
final ProgressBar progressBar = (ProgressBar) view.findViewById(R.id.flavor_image_progress);
|
|
|
|
final View errorMessage = view.findViewById(R.id.flavor_image_error);
|
|
|
|
|
2014-10-29 18:52:53 +00:00
|
|
|
ImageLoader.getInstance().displayImage(url, imgView, options, new ImageLoadingListener() {
|
2014-10-29 13:23:07 +00:00
|
|
|
@Override
|
|
|
|
public void onLoadingStarted(String s, View view) {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onLoadingFailed(String s, View view, FailReason failReason) {
|
|
|
|
progressBar.setVisibility(View.GONE);
|
|
|
|
errorMessage.setVisibility(View.VISIBLE);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onLoadingComplete(String s, View view, Bitmap bitmap) {
|
|
|
|
if (bitmap != null) {
|
2014-10-29 20:40:03 +00:00
|
|
|
view.setTag(s);
|
2014-10-29 13:23:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
progressBar.setVisibility(View.GONE);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onLoadingCancelled(String s, View view) {
|
|
|
|
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
((ViewPager) container).addView(view, 0);
|
|
|
|
|
2015-02-12 11:06:17 +00:00
|
|
|
if (position == 0) {
|
|
|
|
ActivityCompat.startPostponedEnterTransition(ArticleImagesPagerActivity.this);
|
|
|
|
}
|
|
|
|
|
2014-10-29 13:23:07 +00:00
|
|
|
return view;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void destroyItem(ViewGroup container, int position, Object object) {
|
|
|
|
container.removeView((FrameLayout)object);
|
|
|
|
}
|
2014-10-29 21:42:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private class ImageCheckTask extends AsyncTask<List<String>, String, Integer> {
|
|
|
|
@Override
|
|
|
|
protected Integer doInBackground(List<String>... urls) {
|
|
|
|
int position = 0;
|
|
|
|
|
|
|
|
for (String url : urls[0]) {
|
|
|
|
if (!isCancelled()) {
|
|
|
|
position++;
|
|
|
|
|
|
|
|
//Log.d(TAG, "checking: " + url);
|
|
|
|
|
|
|
|
DisplayImageOptions options = new DisplayImageOptions.Builder()
|
|
|
|
.cacheInMemory(true)
|
|
|
|
.cacheOnDisk(true)
|
|
|
|
.build();
|
2014-10-29 13:23:07 +00:00
|
|
|
|
2014-10-29 21:42:56 +00:00
|
|
|
Bitmap bmp = ImageLoader.getInstance().loadImageSync(url, options);
|
|
|
|
|
|
|
|
int progress = (int) ((position / (float)urls[0].size()) * 10000);
|
|
|
|
|
|
|
|
if (bmp != null && bmp.getWidth() > 128 && bmp.getHeight() > 128) {
|
|
|
|
publishProgress(url, String.valueOf(progress));
|
|
|
|
} else {
|
|
|
|
publishProgress(null, String.valueOf(progress));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return -1;
|
|
|
|
}
|
2014-10-29 13:23:07 +00:00
|
|
|
|
2014-10-29 21:42:56 +00:00
|
|
|
@Override
|
|
|
|
protected void onProgressUpdate(String... checkedUrl) {
|
2014-10-29 13:23:07 +00:00
|
|
|
|
2014-10-29 21:42:56 +00:00
|
|
|
if (!isFinishing() && m_adapter != null) {
|
|
|
|
if (checkedUrl[0] != null) {
|
|
|
|
m_checkedUrls.add(checkedUrl[0]);
|
|
|
|
m_adapter.notifyDataSetChanged();
|
2014-10-29 13:23:07 +00:00
|
|
|
}
|
|
|
|
|
2014-10-29 21:42:56 +00:00
|
|
|
setProgress(Integer.valueOf(checkedUrl[1]));
|
|
|
|
} else {
|
|
|
|
cancel(true);
|
2014-10-29 13:23:07 +00:00
|
|
|
}
|
2014-10-29 21:42:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void onPostExecute(Integer result) {
|
|
|
|
//
|
|
|
|
}
|
2014-10-29 13:23:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onCreate(Bundle savedInstanceState) {
|
2015-02-12 11:06:17 +00:00
|
|
|
ActivityCompat.postponeEnterTransition(this);
|
|
|
|
|
2014-10-29 14:01:47 +00:00
|
|
|
// we use that before parent onCreate so let's init locally
|
|
|
|
m_prefs = PreferenceManager
|
|
|
|
.getDefaultSharedPreferences(getApplicationContext());
|
2014-10-29 18:52:53 +00:00
|
|
|
setAppTheme(m_prefs);
|
2014-10-29 13:23:07 +00:00
|
|
|
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
|
|
|
|
setContentView(R.layout.article_images_pager);
|
|
|
|
|
|
|
|
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
2015-02-12 07:48:50 +00:00
|
|
|
getSupportActionBar().hide();
|
2014-10-29 13:23:07 +00:00
|
|
|
|
|
|
|
if (savedInstanceState == null) {
|
|
|
|
m_title = getIntent().getStringExtra("title");
|
2014-11-29 08:18:43 +00:00
|
|
|
//m_urls = getIntent().getStringArrayListExtra("urls");
|
2014-11-03 15:15:37 +00:00
|
|
|
m_content = getIntent().getStringExtra("content");
|
2014-11-29 08:18:43 +00:00
|
|
|
|
|
|
|
String imgSrcFirst = getIntent().getStringExtra("firstSrc");
|
|
|
|
|
|
|
|
m_urls = new ArrayList<String>();
|
|
|
|
|
|
|
|
Document doc = Jsoup.parse(m_content);
|
|
|
|
Elements imgs = doc.select("img");
|
|
|
|
|
|
|
|
boolean firstFound = false;
|
|
|
|
|
|
|
|
for (Element img : imgs) {
|
|
|
|
String imgSrc = img.attr("src");
|
|
|
|
|
|
|
|
if (imgSrcFirst.equals(imgSrc))
|
|
|
|
firstFound = true;
|
|
|
|
|
|
|
|
if (firstFound) {
|
|
|
|
if (imgSrc.indexOf("//") == 0)
|
|
|
|
imgSrc = "http:" + imgSrc;
|
|
|
|
|
|
|
|
m_urls.add(imgSrc);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-10-29 13:23:07 +00:00
|
|
|
} else {
|
|
|
|
m_urls = savedInstanceState.getStringArrayList("urls");
|
|
|
|
m_title = savedInstanceState.getString("title");
|
2014-11-03 15:15:37 +00:00
|
|
|
m_content = savedInstanceState.getString("content");
|
2014-10-29 13:23:07 +00:00
|
|
|
}
|
|
|
|
|
2014-10-29 21:42:56 +00:00
|
|
|
if (m_urls.size() > 1) {
|
2014-10-29 21:46:19 +00:00
|
|
|
m_checkedUrls = new ArrayList<String>();
|
|
|
|
|
2014-10-29 21:42:56 +00:00
|
|
|
ArrayList<String> tmp = new ArrayList<String>(m_urls);
|
|
|
|
|
|
|
|
m_checkedUrls.add(tmp.get(0));
|
|
|
|
tmp.remove(0);
|
2014-10-29 13:23:07 +00:00
|
|
|
|
2014-10-29 21:42:56 +00:00
|
|
|
ImageCheckTask ict = new ImageCheckTask();
|
|
|
|
ict.execute(tmp);
|
2014-10-29 21:46:19 +00:00
|
|
|
} else {
|
|
|
|
m_checkedUrls = new ArrayList<String>(m_urls);
|
2014-10-29 21:42:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
setTitle(m_title);
|
2014-10-29 13:23:07 +00:00
|
|
|
|
2014-10-29 21:42:56 +00:00
|
|
|
m_adapter = new ArticleImagesPagerAdapter(m_checkedUrls);
|
2014-10-29 13:23:07 +00:00
|
|
|
|
|
|
|
ViewPager pager = (ViewPager) findViewById(R.id.article_images_pager);
|
2014-10-29 13:51:54 +00:00
|
|
|
pager.setAdapter(m_adapter);
|
2015-02-11 11:59:15 +00:00
|
|
|
pager.setPageTransformer(true, new DepthPageTransformer());
|
2014-10-29 13:23:07 +00:00
|
|
|
|
|
|
|
UnderlinePageIndicator indicator = (UnderlinePageIndicator)findViewById(R.id.article_images_indicator);
|
|
|
|
indicator.setViewPager(pager);
|
|
|
|
}
|
|
|
|
|
2014-10-29 14:01:47 +00:00
|
|
|
@SuppressLint("NewApi")
|
|
|
|
@Override
|
|
|
|
public void onResume() {
|
|
|
|
super.onResume();
|
|
|
|
|
|
|
|
if (m_prefs.getBoolean("full_screen_mode", false)) {
|
|
|
|
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
|
|
|
|
WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
2014-10-29 16:53:13 +00:00
|
|
|
getSupportActionBar().hide();
|
2014-10-29 14:01:47 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2014-10-29 13:51:54 +00:00
|
|
|
@Override
|
|
|
|
public void onCreateContextMenu(ContextMenu menu, View v,
|
|
|
|
ContextMenu.ContextMenuInfo menuInfo) {
|
|
|
|
|
|
|
|
getMenuInflater().inflate(R.menu.article_content_img_context_menu, menu);
|
|
|
|
|
|
|
|
super.onCreateContextMenu(menu, v, menuInfo);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2014-10-29 13:23:07 +00:00
|
|
|
@Override
|
|
|
|
public void onSaveInstanceState(Bundle out) {
|
|
|
|
super.onSaveInstanceState(out);
|
|
|
|
|
|
|
|
out.putStringArrayList("urls", m_urls);
|
|
|
|
out.putString("title", m_title);
|
2014-11-03 15:15:37 +00:00
|
|
|
out.putString("content", m_content);
|
2014-10-29 13:23:07 +00:00
|
|
|
}
|
|
|
|
|
2014-10-29 13:51:54 +00:00
|
|
|
@Override
|
2014-10-29 13:23:07 +00:00
|
|
|
public boolean onCreateOptionsMenu(Menu menu) {
|
2014-10-29 13:51:54 +00:00
|
|
|
getMenuInflater().inflate(R.menu.article_content_img_context_menu, menu);
|
|
|
|
|
|
|
|
|
2014-10-29 13:23:07 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean onOptionsItemSelected(MenuItem item) {
|
2014-10-29 13:51:54 +00:00
|
|
|
return onContextItemSelected(item); // this is really bad :()
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean onContextItemSelected(android.view.MenuItem item) {
|
|
|
|
ViewPager pager = (ViewPager) findViewById(R.id.article_images_pager);
|
|
|
|
String url = null;
|
|
|
|
|
|
|
|
if (pager != null) {
|
|
|
|
int currentItem = pager.getCurrentItem();
|
|
|
|
url = m_urls.get(currentItem);
|
2014-10-29 13:23:07 +00:00
|
|
|
}
|
2014-10-29 13:51:54 +00:00
|
|
|
|
|
|
|
switch (item.getItemId()) {
|
2014-10-31 11:11:47 +00:00
|
|
|
case android.R.id.home:
|
2015-02-12 11:06:17 +00:00
|
|
|
onBackPressed();
|
2014-10-31 11:11:47 +00:00
|
|
|
return true;
|
2014-10-29 13:51:54 +00:00
|
|
|
case R.id.article_img_open:
|
|
|
|
if (url != null) {
|
|
|
|
try {
|
|
|
|
Intent intent = new Intent(Intent.ACTION_VIEW,
|
|
|
|
Uri.parse(url));
|
|
|
|
startActivity(intent);
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
toast(R.string.error_other_error);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
case R.id.article_img_copy:
|
|
|
|
if (url != null) {
|
|
|
|
copyToClipboard(url);
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
case R.id.article_img_share:
|
|
|
|
if (url != null) {
|
|
|
|
Intent intent = new Intent(Intent.ACTION_SEND);
|
|
|
|
|
|
|
|
intent.setType("image/png");
|
|
|
|
intent.putExtra(Intent.EXTRA_SUBJECT, url);
|
|
|
|
intent.putExtra(Intent.EXTRA_TEXT, url);
|
|
|
|
|
|
|
|
startActivity(Intent.createChooser(intent, url));
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
// TODO: this needs access to article text, I'm afraid
|
2014-11-03 15:15:37 +00:00
|
|
|
case R.id.article_img_view_caption:
|
2014-10-29 13:51:54 +00:00
|
|
|
if (url != null) {
|
|
|
|
|
|
|
|
// Android doesn't give us an easy way to access title tags;
|
|
|
|
// we'll use Jsoup on the body text to grab the title text
|
|
|
|
// from the first image tag with this url. This will show
|
|
|
|
// the wrong text if an image is used multiple times.
|
2014-11-03 15:15:37 +00:00
|
|
|
Document doc = Jsoup.parse(m_content);
|
2014-10-29 13:51:54 +00:00
|
|
|
Elements es = doc.getElementsByAttributeValue("src", url);
|
|
|
|
if (es.size() > 0) {
|
|
|
|
if (es.get(0).hasAttr("title")) {
|
|
|
|
Dialog dia = new Dialog(this);
|
|
|
|
if (es.get(0).hasAttr("alt")) {
|
|
|
|
dia.setTitle(es.get(0).attr("alt"));
|
|
|
|
} else {
|
|
|
|
dia.setTitle(es.get(0).attr("title"));
|
|
|
|
}
|
|
|
|
TextView titleText = new TextView(this);
|
|
|
|
|
|
|
|
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
|
|
|
|
titleText.setPaddingRelative(24, 24, 24, 24);
|
|
|
|
} else {
|
|
|
|
titleText.setPadding(24, 24, 24, 24);
|
|
|
|
}
|
|
|
|
|
|
|
|
titleText.setTextSize(16);
|
|
|
|
titleText.setText(es.get(0).attr("title"));
|
|
|
|
dia.setContentView(titleText);
|
|
|
|
dia.show();
|
|
|
|
} else {
|
|
|
|
toast(R.string.no_caption_to_display);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
toast(R.string.no_caption_to_display);
|
|
|
|
}
|
|
|
|
}
|
2014-11-03 15:15:37 +00:00
|
|
|
return true;
|
2014-10-29 13:51:54 +00:00
|
|
|
default:
|
|
|
|
Log.d(TAG, "onContextItemSelected, unhandled id=" + item.getItemId());
|
|
|
|
return super.onContextItemSelected(item);
|
|
|
|
}
|
|
|
|
}
|
2014-10-29 13:23:07 +00:00
|
|
|
}
|