summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Hennen <TomHennen@users.noreply.github.com>2015-12-13 18:58:32 -0500
committerTom Hennen <TomHennen@users.noreply.github.com>2015-12-13 18:58:32 -0500
commit755bdc5afbbfc18fa14657cbc343d61253874146 (patch)
tree56330e6508581620b41effe48ef74500468e9eb2
parent07be0e2cdb2e8e15de0af64ef6e9c4d754de892b (diff)
parent32648ba17f3a2503e87584493ad3dc4188dd85c8 (diff)
downloadAntennaPod-755bdc5afbbfc18fa14657cbc343d61253874146.zip
Merge pull request #1465 from mfietz/issue/1464-oom
Lower memory usage
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java18
-rw-r--r--app/src/main/res/layout/new_episodes_listitem.xml4
-rw-r--r--app/src/main/res/layout/queue_listitem.xml4
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java17
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java24
5 files changed, 40 insertions, 27 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
index c53a5257b..febaa68e5 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
@@ -1,10 +1,12 @@
package de.danoeh.antennapod.activity;
+import android.annotation.TargetApi;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.PixelFormat;
import android.media.AudioManager;
import android.net.Uri;
+import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.AlertDialog;
@@ -12,7 +14,6 @@ import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
-
import android.view.View;
import android.widget.ImageButton;
import android.widget.SeekBar;
@@ -20,9 +21,9 @@ import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
import com.afollestad.materialdialogs.MaterialDialog;
+import com.bumptech.glide.Glide;
import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.core.feed.FeedItem;
import de.danoeh.antennapod.core.feed.FeedMedia;
import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.service.playback.PlaybackService;
@@ -239,6 +240,19 @@ public abstract class MediaplayerActivity extends ActionBarActivity
Log.d(TAG, "onDestroy()");
}
+ @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
+ @Override
+ public void onTrimMemory(int level) {
+ super.onTrimMemory(level);
+ Glide.get(this).trimMemory(level);
+ }
+
+ @Override
+ public void onLowMemory() {
+ super.onLowMemory();
+ Glide.get(this).clearMemory();
+ }
+
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
diff --git a/app/src/main/res/layout/new_episodes_listitem.xml b/app/src/main/res/layout/new_episodes_listitem.xml
index cde1b4aa6..0f1e873f3 100644
--- a/app/src/main/res/layout/new_episodes_listitem.xml
+++ b/app/src/main/res/layout/new_episodes_listitem.xml
@@ -33,8 +33,8 @@
<ImageView
android:id="@+id/imgvCover"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
+ android:layout_height="64dp"
+ android:layout_width="64dp"
android:layout_alignLeft="@id/txtvPlaceholder"
android:layout_alignTop="@id/txtvPlaceholder"
android:layout_alignRight="@id/txtvPlaceholder"
diff --git a/app/src/main/res/layout/queue_listitem.xml b/app/src/main/res/layout/queue_listitem.xml
index d950f11d2..e55b254f3 100644
--- a/app/src/main/res/layout/queue_listitem.xml
+++ b/app/src/main/res/layout/queue_listitem.xml
@@ -46,8 +46,8 @@
android:ellipsize="end"/>
<ImageView
android:id="@+id/imgvCover"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
+ android:layout_width="64dp"
+ android:layout_height="64dp"
android:layout_alignLeft="@id/txtvPlaceholder"
android:layout_alignTop="@id/txtvPlaceholder"
android:layout_alignRight="@id/txtvPlaceholder"
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
index 1313d9607..129055f92 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
@@ -19,7 +19,7 @@ import android.os.Build;
import android.os.IBinder;
import android.os.Vibrator;
import android.preference.PreferenceManager;
-import android.support.v4.app.NotificationCompat;
+import android.support.v7.app.NotificationCompat;
import android.text.TextUtils;
import android.util.Log;
import android.util.Pair;
@@ -30,7 +30,6 @@ import android.widget.Toast;
import com.bumptech.glide.Glide;
import java.util.List;
-import java.util.concurrent.ExecutionException;
import de.danoeh.antennapod.core.ClientConfig;
import de.danoeh.antennapod.core.R;
@@ -808,14 +807,11 @@ public class PlaybackService extends Service {
.load(info.playable.getImageUri())
.asBitmap()
.diskCacheStrategy(ApGlideSettings.AP_DISK_CACHE_STRATEGY)
- .into(-1, -1) // this resizing would not be exact, so we have
- // scale the bitmap ourselves
+ .centerCrop()
+ .into(iconSize, iconSize)
.get();
- icon = Bitmap.createScaledBitmap(icon, iconSize, iconSize, true);
- } catch (InterruptedException e) {
- e.printStackTrace();
- } catch (ExecutionException e) {
- e.printStackTrace();
+ } catch(Throwable tr) {
+ Log.e(TAG, Log.getStackTraceString(tr));
}
}
}
@@ -835,7 +831,8 @@ public class PlaybackService extends Service {
String contentTitle = info.playable.getFeedTitle();
Notification notification = null;
- NotificationCompat.Builder notificationBuilder = new android.support.v7.app.NotificationCompat.Builder(
+ // Builder is v7, even if some not overwritten methods return its parent's v4 interface
+ NotificationCompat.Builder notificationBuilder = (NotificationCompat.Builder) new NotificationCompat.Builder(
PlaybackService.this)
.setContentTitle(contentTitle)
.setContentText(contentText)
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java
index 6ad376bf0..7fdf443c2 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java
@@ -17,12 +17,13 @@ import android.support.v4.media.session.PlaybackStateCompat;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.util.Pair;
+import android.view.Display;
import android.view.InputDevice;
import android.view.KeyEvent;
import android.view.SurfaceHolder;
+import android.view.WindowManager;
import com.bumptech.glide.Glide;
-import com.bumptech.glide.request.target.Target;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
@@ -292,20 +293,21 @@ public class PlaybackServiceMediaPlayer implements SharedPreferences.OnSharedPre
builder.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, p.getDuration());
builder.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE, p.getEpisodeTitle());
builder.putString(MediaMetadataCompat.METADATA_KEY_ALBUM, p.getFeedTitle());
- if (p.getImageUri() != null) {
- if (UserPreferences.setLockscreenBackground()) {
- builder.putString(MediaMetadataCompat.METADATA_KEY_ART_URI, p.getImageUri().toString());
- try {
- Bitmap art = Glide.with(context)
+ if (p.getImageUri() != null && UserPreferences.setLockscreenBackground()) {
+ builder.putString(MediaMetadataCompat.METADATA_KEY_ART_URI, p.getImageUri().toString());
+ try {
+ WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
+ Display display = wm.getDefaultDisplay();
+ Bitmap art = Glide.with(context)
.load(p.getImageUri())
.asBitmap()
.diskCacheStrategy(ApGlideSettings.AP_DISK_CACHE_STRATEGY)
- .into(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
+ .centerCrop()
+ .into(display.getWidth(), display.getHeight())
.get();
- builder.putBitmap(MediaMetadataCompat.METADATA_KEY_ART, art);
- } catch (Exception e) {
- Log.e(TAG, Log.getStackTraceString(e));
- }
+ builder.putBitmap(MediaMetadataCompat.METADATA_KEY_ART, art);
+ } catch (Throwable tr) {
+ Log.e(TAG, Log.getStackTraceString(tr));
}
}
mediaSession.setMetadata(builder.build());