From 726aad0e1d4a8a64664ff6c4b35874f4003fa676 Mon Sep 17 00:00:00 2001 From: Schoumi Date: Thu, 4 May 2017 18:23:39 +0200 Subject: [PATCH] Decrease memory usage Fixes #22 --- .../goblim/activity/HistoryActivity.java | 21 ++++++++++++------- .../java/fr/mobdev/goblim/objects/Img.java | 9 ++++---- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/fr/mobdev/goblim/activity/HistoryActivity.java b/app/src/main/java/fr/mobdev/goblim/activity/HistoryActivity.java index 35e31cd..0d6c50c 100644 --- a/app/src/main/java/fr/mobdev/goblim/activity/HistoryActivity.java +++ b/app/src/main/java/fr/mobdev/goblim/activity/HistoryActivity.java @@ -22,6 +22,7 @@ import android.content.Context; import android.content.Intent; import android.graphics.Typeface; import android.os.Bundle; +import android.support.annotation.NonNull; import android.support.design.widget.FloatingActionButton; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; @@ -50,7 +51,7 @@ import fr.mobdev.goblim.R; */ public class HistoryActivity extends AppCompatActivity { - private List images; + private List imagesIdx; @Override protected void onCreate(Bundle savedInstanceState) { @@ -78,9 +79,9 @@ public class HistoryActivity extends AppCompatActivity { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { Intent linkIntent = new Intent(HistoryActivity.this,LinkActivity.class); - if(position < images.size()) { - Img image = images.get(position); - linkIntent.putExtra("imageId", image.getId()); + if(position < imagesIdx.size()) { + Long img = imagesIdx.get(position); + linkIntent.putExtra("imageId", img); startActivity(linkIntent); } } @@ -99,7 +100,12 @@ public class HistoryActivity extends AppCompatActivity { { ListView historyList = (ListView) findViewById(R.id.history_list); - images = Database.getInstance(getApplicationContext()).getHistory(); + List images = Database.getInstance(getApplicationContext()).getHistory(); + if(imagesIdx == null) + imagesIdx = new ArrayList<>(); + imagesIdx.clear(); + for(Img img : images) + imagesIdx.add(img.getId()); HistoryAdapter adapter = new HistoryAdapter(this,R.layout.history_item,R.id.url_history_item,images); historyList.setAdapter(adapter); } @@ -112,15 +118,16 @@ public class HistoryActivity extends AppCompatActivity { private LayoutInflater mInflater; int resource; - public HistoryAdapter(Context context, int resource, int textViewResourceId, List objects) { + HistoryAdapter(Context context, int resource, int textViewResourceId, List objects) { super(context, resource, textViewResourceId, objects); images = new ArrayList<>(objects); this.resource = resource; mInflater = LayoutInflater.from(context); } + @NonNull @Override - public View getView(int position, View convertView, ViewGroup parent) + public View getView(int position, View convertView, @NonNull ViewGroup parent) { Img image = images.get(position); //reuse view or create a new one? diff --git a/app/src/main/java/fr/mobdev/goblim/objects/Img.java b/app/src/main/java/fr/mobdev/goblim/objects/Img.java index 33678b1..f3db319 100644 --- a/app/src/main/java/fr/mobdev/goblim/objects/Img.java +++ b/app/src/main/java/fr/mobdev/goblim/objects/Img.java @@ -31,7 +31,6 @@ public class Img { private Calendar date; private int storageDuration; private byte[] thumb; - private Bitmap image; private String shortHash; private String realShortHash; private String token; @@ -46,9 +45,6 @@ public class Img { this.storageDuration = storageDuration; this.token = token; thumb = thumbData; - if(thumb != null) { - image = BitmapFactory.decodeByteArray(thumb, 0, thumb.length); - } } public Long getId() @@ -68,6 +64,10 @@ public class Img { public Bitmap getThumb() { + Bitmap image = null; + if(thumb != null) { + image = BitmapFactory.decodeByteArray(thumb, 0, thumb.length); + } return image; } @@ -99,5 +99,4 @@ public class Img { return token; } - }