limit maximum height of flavor images and videos based on screen height

This commit is contained in:
Andrew Dolgov 2017-06-01 14:18:50 +03:00
parent a0bc87f85b
commit ab8d6d86ff
1 changed files with 48 additions and 84 deletions

View File

@ -739,6 +739,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
boolean showFlavorImage;
private int m_minimumHeightToEmbed;
boolean m_youtubeInstalled;
private int m_screenHeight;
public ArticleListAdapter(Context context, int textViewResourceId, ArrayList<Article> items) {
super(context, textViewResourceId, items);
@ -748,6 +749,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
Point size = new Point();
display.getSize(size);
m_minimumHeightToEmbed = size.y/3;
m_screenHeight = size.y;
String headlineMode = m_prefs.getString("headline_mode", "HL_DEFAULT");
showFlavorImage = "HL_DEFAULT".equals(headlineMode) || "HL_COMPACT".equals(headlineMode);
@ -839,52 +841,6 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
}
})
.into(holder.textImage);
/* if (!article.flavorImageUri.equals(holder.textImage.getTag())) {
ImageAware imageAware = new ImageViewAware(holder.textImage, false);
DisplayImageOptions options = new DisplayImageOptions.Builder()
.cacheInMemory(true)
.resetViewBeforeLoading(true)
.cacheOnDisk(true)
.showImageOnLoading(textDrawable)
.showImageOnFail(textDrawable)
.showImageForEmptyUri(textDrawable)
.displayer(new RoundedBitmapDisplayer(100))
.build();
m_imageLoader.displayImage(article.flavorImageUri, imageAware, options, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String s, View view) {
}
@Override
public void onLoadingFailed(String s, View view, FailReason failReason) {
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap bitmap) {
if (position == holder.position && bitmap != null) {
//holder.textImage.setTag(article.flavorImageUri);
if (bitmap.getWidth() < THUMB_IMG_MIN_SIZE || bitmap.getHeight() < THUMB_IMG_MIN_SIZE) {
holder.textImage.setImageDrawable(textDrawable);
}
}
}
@Override
public void onLoadingCancelled(String s, View view) {
}
}
);
} */
}
holder.textChecked.setVisibility(View.GONE);
@ -1184,16 +1140,18 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
});
}
Log.d(TAG, "IMG: " + article.flavorImageUri + " STREAM: " + article.flavorStreamUri);
//Log.d(TAG, "IMG: " + article.flavorImageUri + " STREAM: " + article.flavorStreamUri);
holder.flavorImageView.setVisibility(View.VISIBLE);
Log.d(TAG, "TAG:" + holder.flavorImageOverflow.getTag());
//Log.d(TAG, "TAG:" + holder.flavorImageOverflow.getTag());
if (!article.flavorImageUri.equals(holder.flavorImageOverflow.getTag())) {
holder.flavorImageLoadingBar.setVisibility(View.VISIBLE);
holder.flavorImageLoadingBar.setIndeterminate(true);
holder.flavorImageView.setMaxHeight((int)(m_screenHeight * 0.8f));
Glide.with(HeadlinesFragment.this)
.load(article.flavorImageUri)
.dontAnimate()
@ -1260,13 +1218,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
@Override
public boolean onLongClick(View v) {
if (m_mediaPlayer != null) {
m_mediaPlayer.release();
}
if (m_activeSurface != null) {
m_activeSurface.setVisibility(View.GONE);
}
releaseSurface();
openGalleryForType(article, holder, null);
@ -1278,17 +1230,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
@Override
public void onClick(View view) {
try {
if (m_mediaPlayer != null) {
m_mediaPlayer.release();
}
if (m_activeSurface != null) {
m_activeSurface.setVisibility(View.GONE);
}
} catch (IllegalStateException e) {
e.printStackTrace();
}
releaseSurface();
m_mediaPlayer = new MediaPlayer();
@ -1300,7 +1242,6 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
SurfaceHolder sh = holder.flavorVideoView.getHolder();
holder.flavorVideoView.setVisibility(View.VISIBLE);
final ProgressBar bar = holder.flavorImageLoadingBar;
@ -1319,12 +1260,26 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
m_activeSurface = holder.flavorVideoView;
android.view.ViewGroup.LayoutParams lp = m_activeSurface.getLayoutParams();
Drawable drawable = holder.flavorImageView.getDrawable();
if (drawable != null) {
float aspect = drawable.getIntrinsicWidth() / (float) drawable.getIntrinsicHeight();
lp.height = holder.flavorImageView.getMeasuredHeight();
lp.width = (int) (lp.height * aspect);
m_activeSurface.setLayoutParams(lp);
}
sh.addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder holder) {
m_mediaPlayer.setDisplay(holder);
public void surfaceCreated(SurfaceHolder sh) {
try {
m_mediaPlayer.setDisplay(sh);
m_mediaPlayer.prepareAsync();
} catch (IllegalStateException e) {
e.printStackTrace();
@ -1334,8 +1289,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
public void onPrepared(MediaPlayer mp) {
bar.setVisibility(View.GONE);
//resizeSurface();
//resizeSurface();
mp.setLooping(true);
mp.start();
}
@ -1352,7 +1306,11 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
public void surfaceDestroyed(SurfaceHolder holder) {
bar.setVisibility(View.GONE);
m_mediaPlayer.release();
try {
m_mediaPlayer.release();
} catch (IllegalStateException e) {
e.printStackTrace();
}
}
});
@ -1602,6 +1560,23 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
}
}
private void releaseSurface() {
try {
if (m_mediaPlayer != null) {
m_mediaPlayer.release();
}
} catch (IllegalStateException e) {
e.printStackTrace();
}
try {
if (m_activeSurface != null) {
m_activeSurface.setVisibility(View.GONE);
}
} catch (IllegalStateException e) {
e.printStackTrace();
}
}
public void notifyUpdated() {
m_adapter.notifyDataSetChanged();
@ -1782,18 +1757,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener,
public void onPause() {
super.onPause();
try {
if (m_mediaPlayer != null) {
m_mediaPlayer.release();
}
if (m_activeSurface != null) {
m_activeSurface.setVisibility(View.GONE);
}
} catch (IllegalStateException e) {
e.printStackTrace();
}
releaseSurface();
}
}