@@ -21,14 +21,15 @@ public enum CacheType {
21
21
VIDEO
22
22
}
23
23
24
- static final String MAP_KEY_PATH = "path" ;
25
24
static final String MAP_KEY_PATH_LIST = "pathList" ;
26
25
static final String MAP_KEY_MAX_WIDTH = "maxWidth" ;
27
26
static final String MAP_KEY_MAX_HEIGHT = "maxHeight" ;
28
27
static final String MAP_KEY_IMAGE_QUALITY = "imageQuality" ;
29
- private static final String MAP_KEY_TYPE = "type" ;
30
- private static final String MAP_KEY_ERROR_CODE = "errorCode" ;
31
- private static final String MAP_KEY_ERROR_MESSAGE = "errorMessage" ;
28
+ static final String MAP_KEY_TYPE = "type" ;
29
+ static final String MAP_KEY_ERROR = "error" ;
30
+
31
+ private static final String MAP_TYPE_VALUE_IMAGE = "image" ;
32
+ private static final String MAP_TYPE_VALUE_VIDEO = "video" ;
32
33
33
34
private static final String FLUTTER_IMAGE_PICKER_IMAGE_PATH_KEY =
34
35
"flutter_image_picker_image_path" ;
@@ -50,7 +51,7 @@ public enum CacheType {
50
51
@ VisibleForTesting
51
52
static final String SHARED_PREFERENCES_NAME = "flutter_image_picker_shared_preference" ;
52
53
53
- private SharedPreferences prefs ;
54
+ private final SharedPreferences prefs ;
54
55
55
56
ImagePickerCache (Context context ) {
56
57
prefs = context .getSharedPreferences (SHARED_PREFERENCES_NAME , Context .MODE_PRIVATE );
@@ -59,10 +60,10 @@ public enum CacheType {
59
60
void saveType (CacheType type ) {
60
61
switch (type ) {
61
62
case IMAGE :
62
- setType ("image" );
63
+ setType (MAP_TYPE_VALUE_IMAGE );
63
64
break ;
64
65
case VIDEO :
65
- setType ("video" );
66
+ setType (MAP_TYPE_VALUE_VIDEO );
66
67
break ;
67
68
}
68
69
}
@@ -71,16 +72,17 @@ private void setType(String type) {
71
72
prefs .edit ().putString (SHARED_PREFERENCE_TYPE_KEY , type ).apply ();
72
73
}
73
74
74
- void saveDimensionWithOutputOptions (ImageOutputOptions options ) {
75
+ void saveDimensionWithOutputOptions (Messages . ImageSelectionOptions options ) {
75
76
SharedPreferences .Editor editor = prefs .edit ();
76
- if (options .maxWidth != null ) {
77
- editor .putLong (SHARED_PREFERENCE_MAX_WIDTH_KEY , Double .doubleToRawLongBits (options .maxWidth ));
77
+ if (options .getMaxWidth () != null ) {
78
+ editor .putLong (
79
+ SHARED_PREFERENCE_MAX_WIDTH_KEY , Double .doubleToRawLongBits (options .getMaxWidth ()));
78
80
}
79
- if (options .maxHeight != null ) {
81
+ if (options .getMaxHeight () != null ) {
80
82
editor .putLong (
81
- SHARED_PREFERENCE_MAX_HEIGHT_KEY , Double .doubleToRawLongBits (options .maxHeight ));
83
+ SHARED_PREFERENCE_MAX_HEIGHT_KEY , Double .doubleToRawLongBits (options .getMaxHeight () ));
82
84
}
83
- editor .putInt (SHARED_PREFERENCE_IMAGE_QUALITY_KEY , options .quality );
85
+ editor .putInt (SHARED_PREFERENCE_IMAGE_QUALITY_KEY , options .getQuality (). intValue () );
84
86
editor .apply ();
85
87
}
86
88
@@ -115,35 +117,37 @@ void clear() {
115
117
}
116
118
117
119
Map <String , Object > getCacheMap () {
118
-
119
120
Map <String , Object > resultMap = new HashMap <>();
120
- ArrayList <String > pathList = new ArrayList <>();
121
121
boolean hasData = false ;
122
122
123
123
if (prefs .contains (FLUTTER_IMAGE_PICKER_IMAGE_PATH_KEY )) {
124
124
final Set <String > imagePathList =
125
125
prefs .getStringSet (FLUTTER_IMAGE_PICKER_IMAGE_PATH_KEY , null );
126
126
if (imagePathList != null ) {
127
- pathList . addAll (imagePathList );
127
+ ArrayList < String > pathList = new ArrayList <> (imagePathList );
128
128
resultMap .put (MAP_KEY_PATH_LIST , pathList );
129
129
hasData = true ;
130
130
}
131
131
}
132
132
133
133
if (prefs .contains (SHARED_PREFERENCE_ERROR_CODE_KEY )) {
134
- final String errorCodeValue = prefs . getString ( SHARED_PREFERENCE_ERROR_CODE_KEY , "" );
135
- resultMap . put ( MAP_KEY_ERROR_CODE , errorCodeValue );
134
+ final Messages . CacheRetrievalError . Builder error = new Messages . CacheRetrievalError . Builder ( );
135
+ error . setCode ( prefs . getString ( SHARED_PREFERENCE_ERROR_CODE_KEY , "" ) );
136
136
hasData = true ;
137
137
if (prefs .contains (SHARED_PREFERENCE_ERROR_MESSAGE_KEY )) {
138
- final String errorMessageValue = prefs .getString (SHARED_PREFERENCE_ERROR_MESSAGE_KEY , "" );
139
- resultMap .put (MAP_KEY_ERROR_MESSAGE , errorMessageValue );
138
+ error .setMessage (prefs .getString (SHARED_PREFERENCE_ERROR_MESSAGE_KEY , "" ));
140
139
}
140
+ resultMap .put (MAP_KEY_ERROR , error .build ());
141
141
}
142
142
143
143
if (hasData ) {
144
144
if (prefs .contains (SHARED_PREFERENCE_TYPE_KEY )) {
145
145
final String typeValue = prefs .getString (SHARED_PREFERENCE_TYPE_KEY , "" );
146
- resultMap .put (MAP_KEY_TYPE , typeValue );
146
+ resultMap .put (
147
+ MAP_KEY_TYPE ,
148
+ typeValue .equals (MAP_TYPE_VALUE_VIDEO )
149
+ ? Messages .CacheRetrievalType .VIDEO
150
+ : Messages .CacheRetrievalType .IMAGE );
147
151
}
148
152
if (prefs .contains (SHARED_PREFERENCE_MAX_WIDTH_KEY )) {
149
153
final long maxWidthValue = prefs .getLong (SHARED_PREFERENCE_MAX_WIDTH_KEY , 0 );
@@ -153,12 +157,8 @@ Map<String, Object> getCacheMap() {
153
157
final long maxHeightValue = prefs .getLong (SHARED_PREFERENCE_MAX_HEIGHT_KEY , 0 );
154
158
resultMap .put (MAP_KEY_MAX_HEIGHT , Double .longBitsToDouble (maxHeightValue ));
155
159
}
156
- if (prefs .contains (SHARED_PREFERENCE_IMAGE_QUALITY_KEY )) {
157
- final int imageQuality = prefs .getInt (SHARED_PREFERENCE_IMAGE_QUALITY_KEY , 100 );
158
- resultMap .put (MAP_KEY_IMAGE_QUALITY , imageQuality );
159
- } else {
160
- resultMap .put (MAP_KEY_IMAGE_QUALITY , 100 );
161
- }
160
+ final int imageQuality = prefs .getInt (SHARED_PREFERENCE_IMAGE_QUALITY_KEY , 100 );
161
+ resultMap .put (MAP_KEY_IMAGE_QUALITY , imageQuality );
162
162
}
163
163
return resultMap ;
164
164
}
0 commit comments