1
+ package com .example .promptimagegenerator ;
2
+
3
+ import android .content .Context ;
4
+ import android .graphics .Bitmap ;
5
+ import android .view .LayoutInflater ;
6
+ import android .view .View ;
7
+ import android .view .ViewGroup ;
8
+ import android .widget .ImageButton ;
9
+ import android .widget .ImageView ;
10
+ import android .widget .Toast ;
11
+
12
+ import androidx .annotation .NonNull ;
13
+ import androidx .annotation .Nullable ;
14
+ import androidx .recyclerview .widget .RecyclerView ;
15
+
16
+ import com .bumptech .glide .Glide ;
17
+ import com .bumptech .glide .load .DataSource ;
18
+ import com .bumptech .glide .load .engine .GlideException ;
19
+ import com .bumptech .glide .request .RequestListener ;
20
+ import com .bumptech .glide .request .target .Target ;
21
+
22
+ import java .io .BufferedOutputStream ;
23
+ import java .io .File ;
24
+ import java .io .FileNotFoundException ;
25
+ import java .io .FileOutputStream ;
26
+ import java .io .IOException ;
27
+ import java .io .OutputStream ;
28
+ import java .util .ArrayList ;
29
+
30
+ public class ImageAdapter extends RecyclerView .Adapter <ImageAdapter .ViewHolder > {
31
+ Context context ;
32
+ ArrayList <String > arrayList ;
33
+
34
+ public ImageAdapter (Context context , ArrayList <String > arrayList ) {
35
+ this .context = context ;
36
+ this .arrayList = arrayList ;
37
+ }
38
+
39
+ @ NonNull
40
+ @ Override
41
+ public ViewHolder onCreateViewHolder (@ NonNull ViewGroup parent , int viewType ) {
42
+ View view = LayoutInflater .from (context ).inflate (R .layout .image_list_item , parent , false );
43
+ return new ViewHolder (view );
44
+ }
45
+
46
+ @ Override
47
+ public void onBindViewHolder (@ NonNull ViewHolder holder , int position ) {
48
+ Glide .with (context ).asBitmap ().load (arrayList .get (position )).addListener (new RequestListener <Bitmap >() {
49
+ @ Override
50
+ public boolean onLoadFailed (@ Nullable GlideException e , Object model , Target <Bitmap > target , boolean isFirstResource ) {
51
+ return false ;
52
+ }
53
+
54
+ @ Override
55
+ public boolean onResourceReady (Bitmap resource , Object model , Target <Bitmap > target , DataSource dataSource , boolean isFirstResource ) {
56
+ holder .imageView .setImageBitmap (resource );
57
+ holder .download .setOnClickListener (new View .OnClickListener () {
58
+ @ Override
59
+ public void onClick (View view ) {
60
+ if (resource != null ) {
61
+ File file = new File ("/storage/emulated/0/Pictures/Generated/image" + position + ".png" );
62
+ OutputStream outputStream ;
63
+ try {
64
+ outputStream = new BufferedOutputStream (new FileOutputStream (file ));
65
+ resource .compress (Bitmap .CompressFormat .PNG , 100 , outputStream );
66
+ outputStream .close ();
67
+ Toast .makeText (context , "Image Saved at: " + file .getPath (), Toast .LENGTH_SHORT ).show ();
68
+ } catch (IOException e ) {
69
+ e .printStackTrace ();
70
+ }
71
+ }
72
+ }
73
+ });
74
+ return true ;
75
+ }
76
+ }).into (holder .imageView );
77
+ }
78
+
79
+ @ Override
80
+ public int getItemCount () {
81
+ return arrayList .size ();
82
+ }
83
+
84
+ public static class ViewHolder extends RecyclerView .ViewHolder {
85
+ ImageView imageView ;
86
+ ImageButton download ;
87
+ public ViewHolder (@ NonNull View itemView ) {
88
+ super (itemView );
89
+ imageView = itemView .findViewById (R .id .list_item_image );
90
+ download = itemView .findViewById (R .id .list_item_download );
91
+ }
92
+ }
93
+ }
0 commit comments