Skip to content
This repository was archived by the owner on Oct 13, 2022. It is now read-only.

Commit 69c5a78

Browse files
committed
Minor improvements to performance in adapters
Used fragments with glide instead of context
1 parent 87ead6b commit 69c5a78

File tree

9 files changed

+31
-22
lines changed

9 files changed

+31
-22
lines changed

app/app.iml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,9 @@
9999
<orderEntry type="library" exported="" name="material-dialogs-0.7.6.0" level="project" />
100100
<orderEntry type="library" exported="" name="commons-lang3-3.3.2" level="project" />
101101
<orderEntry type="library" exported="" name="support-annotations-22.2.1" level="project" />
102+
<orderEntry type="library" exported="" name="robospice-1.4.14" level="project" />
102103
<orderEntry type="library" exported="" name="commons-io-1.3.2" level="project" />
103104
<orderEntry type="library" exported="" name="robospice-cache-1.4.14" level="project" />
104-
<orderEntry type="library" exported="" name="robospice-1.4.14" level="project" />
105105
<orderEntry type="library" exported="" name="glide-3.6.0" level="project" />
106106
<orderEntry type="library" exported="" name="appcompat-v7-22.2.1" level="project" />
107107
<orderEntry type="module" module-name="imagepicker" exported="" />

imagepicker/imagepicker.iml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@
9595
<orderEntry type="library" exported="" name="recyclerview-v7-22.2.1" level="project" />
9696
<orderEntry type="library" exported="" name="support-annotations-22.2.1" level="project" />
9797
<orderEntry type="library" exported="" name="floatingactionbutton-1.3.0" level="project" />
98-
<orderEntry type="library" exported="" name="commons-io-1.3.2" level="project" />
9998
<orderEntry type="library" exported="" name="robospice-cache-1.4.14" level="project" />
99+
<orderEntry type="library" exported="" name="commons-io-1.3.2" level="project" />
100100
<orderEntry type="library" exported="" name="robospice-1.4.14" level="project" />
101101
<orderEntry type="library" exported="" name="appcompat-v7-22.2.1" level="project" />
102102
<orderEntry type="library" exported="" name="library-1.2.3" level="project" />

imagepicker/src/main/java/net/yazeed44/imagepicker/model/ImageEntry.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public String toString() {
4141

4242
public static class Builder {
4343

44+
public static int count = -1;
4445
private final String mPath;
4546
private int mImageId;
4647

@@ -50,7 +51,9 @@ public Builder(final String path) {
5051

5152
public static Builder from(final Uri uri) {
5253

53-
return new Builder(uri.getPath());
54+
return new Builder(uri.getPath())
55+
.imageId(count--)
56+
;
5457

5558
}
5659

imagepicker/src/main/java/net/yazeed44/imagepicker/ui/AlbumsAdapter.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package net.yazeed44.imagepicker.ui;
22

3+
import android.support.v4.app.Fragment;
34
import android.support.v7.widget.RecyclerView;
45
import android.view.LayoutInflater;
56
import android.view.View;
@@ -29,11 +30,13 @@ public class AlbumsAdapter extends RecyclerView.Adapter<AlbumsAdapter.AlbumViewH
2930
public final RecyclerView mRecycler;
3031
protected final ArrayList<AlbumEntry> mAlbumList;
3132
protected final Picker mPickOptions;
33+
private final Fragment mFragment;
3234

33-
public AlbumsAdapter(final ArrayList<AlbumEntry> albums, RecyclerView mRecycler, Picker pickOptions) {
35+
public AlbumsAdapter(final Fragment fragment, final ArrayList<AlbumEntry> albums, final RecyclerView mRecycler) {
36+
mFragment = fragment;
3437
this.mAlbumList = albums;
3538
this.mRecycler = mRecycler;
36-
mPickOptions = pickOptions;
39+
mPickOptions = EventBus.getDefault().getStickyEvent(Events.OnPublishPickOptionsEvent.class).options;
3740
}
3841

3942

@@ -46,8 +49,9 @@ public AlbumViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
4649

4750
@Override
4851
public void onBindViewHolder(AlbumViewHolder holder, int position) {
52+
final AlbumEntry albumEntry = mAlbumList.get(position);
4953
setHeight(holder.itemView);
50-
setupAlbum(holder, mAlbumList.get(position));
54+
setupAlbum(holder, albumEntry);
5155

5256
}
5357

@@ -85,7 +89,7 @@ public void setupAlbum(final AlbumViewHolder holder, final AlbumEntry album) {
8589
holder.name.setText(album.name);
8690
holder.count.setText(album.imageList.size() + "");
8791

88-
Glide.with(mRecycler.getContext())
92+
Glide.with(mFragment)
8993
.load(album.coverImage.path)
9094
.asBitmap()
9195
.centerCrop()
@@ -95,7 +99,7 @@ public void setupAlbum(final AlbumViewHolder holder, final AlbumEntry album) {
9599
}
96100

97101

98-
class AlbumViewHolder extends RecyclerView.ViewHolder {
102+
static class AlbumViewHolder extends RecyclerView.ViewHolder {
99103
protected final ImageView thumbnail;
100104
protected final TextView count;
101105
protected final TextView name;

imagepicker/src/main/java/net/yazeed44/imagepicker/ui/AlbumsFragment.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
5555
}
5656

5757

58+
5859
}
5960

6061

@@ -97,7 +98,7 @@ public void onRequestSuccess(ArrayList albumEntries) {
9798

9899
EventBus.getDefault().postSticky(new Events.OnAlbumsLoadedEvent(mAlbumList));
99100

100-
final AlbumsAdapter albumsAdapter = new AlbumsAdapter(albumEntries, mAlbumsRecycler, mPickOptions);
101+
final AlbumsAdapter albumsAdapter = new AlbumsAdapter(this, albumEntries, mAlbumsRecycler);
101102
mAlbumsRecycler.setAdapter(albumsAdapter);
102103

103104

@@ -109,8 +110,6 @@ public void onRequestSuccess(ArrayList albumEntries) {
109110
protected void setupRecycler() {
110111

111112
mAlbumsRecycler.setHasFixedSize(true);
112-
113-
114113
final GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(), getResources().getInteger(R.integer.num_columns_albums));
115114
gridLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
116115

@@ -126,7 +125,7 @@ public void setupAdapter() {
126125
mSpiceManager.execute(loadingRequest, this);
127126
} else {
128127

129-
mAlbumsRecycler.setAdapter(new AlbumsAdapter(mAlbumList, mAlbumsRecycler, mPickOptions));
128+
mAlbumsRecycler.setAdapter(new AlbumsAdapter(this, mAlbumList, mAlbumsRecycler));
130129
}
131130

132131

imagepicker/src/main/java/net/yazeed44/imagepicker/ui/ImagePagerAdapter.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package net.yazeed44.imagepicker.ui;
22

3-
import android.content.Context;
3+
import android.support.v4.app.Fragment;
44
import android.support.v4.view.PagerAdapter;
55
import android.view.View;
66
import android.view.ViewGroup;
@@ -21,12 +21,12 @@ public class ImagePagerAdapter extends PagerAdapter {
2121

2222

2323
protected final AlbumEntry mAlbumEntry;
24-
protected final Context mContext;
24+
protected final Fragment mFragment;
2525
protected final PhotoViewAttacher.OnViewTapListener mTapListener;
2626

27-
public ImagePagerAdapter(final Context context, final AlbumEntry albumEntry, final PhotoViewAttacher.OnViewTapListener tapListener) {
27+
public ImagePagerAdapter(final Fragment fragment, final AlbumEntry albumEntry, final PhotoViewAttacher.OnViewTapListener tapListener) {
2828
mAlbumEntry = albumEntry;
29-
mContext = context;
29+
mFragment = fragment;
3030
mTapListener = tapListener;
3131
}
3232

@@ -43,11 +43,11 @@ public boolean isViewFromObject(View view, Object object) {
4343
@Override
4444
public Object instantiateItem(ViewGroup container, int position) {
4545
final ImageEntry imageEntry = mAlbumEntry.imageList.get(position);
46-
final PhotoView view = new PhotoView(mContext);
46+
final PhotoView view = new PhotoView(mFragment.getActivity());
4747
view.setOnViewTapListener(mTapListener);
4848

4949

50-
Glide.with(mContext)
50+
Glide.with(mFragment)
5151
.load(imageEntry.path)
5252
.asBitmap()
5353
.into(view);

imagepicker/src/main/java/net/yazeed44/imagepicker/ui/ImagesPagerFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ public void onEvent(final Events.OnPickImageEvent pickImageEvent) {
138138
if (mImagePager.getAdapter() != null) {
139139
return;
140140
}
141-
mImagePager.setAdapter(new ImagePagerAdapter(getActivity(), mSelectedAlbum, this));
141+
mImagePager.setAdapter(new ImagePagerAdapter(this, mSelectedAlbum, this));
142142
final int imagePosition = mSelectedAlbum.imageList.indexOf(pickImageEvent.imageEntry);
143143

144144
mImagePager.setCurrentItem(imagePosition);

imagepicker/src/main/java/net/yazeed44/imagepicker/ui/ImagesThumbnailAdapter.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import android.graphics.Color;
44
import android.graphics.drawable.Drawable;
5+
import android.support.v4.app.Fragment;
56
import android.support.v4.content.ContextCompat;
67
import android.support.v4.graphics.drawable.DrawableCompat;
78
import android.support.v7.widget.RecyclerView;
@@ -33,9 +34,11 @@ public class ImagesThumbnailAdapter extends RecyclerView.Adapter<ImagesThumbnail
3334
protected final Picker mPickOptions;
3435

3536
protected final Drawable mCheckIcon;
37+
protected final Fragment mFragment;
3638

3739

38-
public ImagesThumbnailAdapter(final AlbumEntry album, final RecyclerView recyclerView, Picker pickOptions) {
40+
public ImagesThumbnailAdapter(final Fragment fragment, final AlbumEntry album, final RecyclerView recyclerView, Picker pickOptions) {
41+
mFragment = fragment;
3942
this.mAlbum = album;
4043
this.mRecyclerView = recyclerView;
4144
mPickOptions = pickOptions;
@@ -89,7 +92,7 @@ public void setHeight(final View convertView) {
8992
public void displayThumbnail(final ImageViewHolder holder, final ImageEntry photo) {
9093

9194

92-
Glide.with(mRecyclerView.getContext())
95+
Glide.with(mFragment)
9396
.load(photo.path)
9497
.asBitmap()
9598
.centerCrop()

imagepicker/src/main/java/net/yazeed44/imagepicker/ui/ImagesThumbnailFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ protected void setupRecycler() {
6464

6565

6666
public void onEvent(final Events.OnClickAlbumEvent event) {
67-
mImagesRecycler.setAdapter(new ImagesThumbnailAdapter(event.albumEntry, mImagesRecycler, mPickOptions));
67+
mImagesRecycler.setAdapter(new ImagesThumbnailAdapter(this, event.albumEntry, mImagesRecycler, mPickOptions));
6868
}
6969

7070

0 commit comments

Comments
 (0)