@@ -21,14 +21,15 @@ public enum CacheType {
2121 VIDEO
2222 }
2323
24- static final String MAP_KEY_PATH = "path" ;
2524 static final String MAP_KEY_PATH_LIST = "pathList" ;
2625 static final String MAP_KEY_MAX_WIDTH = "maxWidth" ;
2726 static final String MAP_KEY_MAX_HEIGHT = "maxHeight" ;
2827 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" ;
3233
3334 private static final String FLUTTER_IMAGE_PICKER_IMAGE_PATH_KEY =
3435 "flutter_image_picker_image_path" ;
@@ -50,7 +51,7 @@ public enum CacheType {
5051 @ VisibleForTesting
5152 static final String SHARED_PREFERENCES_NAME = "flutter_image_picker_shared_preference" ;
5253
53- private SharedPreferences prefs ;
54+ private final SharedPreferences prefs ;
5455
5556 ImagePickerCache (Context context ) {
5657 prefs = context .getSharedPreferences (SHARED_PREFERENCES_NAME , Context .MODE_PRIVATE );
@@ -59,10 +60,10 @@ public enum CacheType {
5960 void saveType (CacheType type ) {
6061 switch (type ) {
6162 case IMAGE :
62- setType ("image" );
63+ setType (MAP_TYPE_VALUE_IMAGE );
6364 break ;
6465 case VIDEO :
65- setType ("video" );
66+ setType (MAP_TYPE_VALUE_VIDEO );
6667 break ;
6768 }
6869 }
@@ -71,16 +72,17 @@ private void setType(String type) {
7172 prefs .edit ().putString (SHARED_PREFERENCE_TYPE_KEY , type ).apply ();
7273 }
7374
74- void saveDimensionWithOutputOptions (ImageOutputOptions options ) {
75+ void saveDimensionWithOutputOptions (Messages . ImageSelectionOptions options ) {
7576 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 ()));
7880 }
79- if (options .maxHeight != null ) {
81+ if (options .getMaxHeight () != null ) {
8082 editor .putLong (
81- SHARED_PREFERENCE_MAX_HEIGHT_KEY , Double .doubleToRawLongBits (options .maxHeight ));
83+ SHARED_PREFERENCE_MAX_HEIGHT_KEY , Double .doubleToRawLongBits (options .getMaxHeight () ));
8284 }
83- editor .putInt (SHARED_PREFERENCE_IMAGE_QUALITY_KEY , options .quality );
85+ editor .putInt (SHARED_PREFERENCE_IMAGE_QUALITY_KEY , options .getQuality (). intValue () );
8486 editor .apply ();
8587 }
8688
@@ -115,35 +117,37 @@ void clear() {
115117 }
116118
117119 Map <String , Object > getCacheMap () {
118-
119120 Map <String , Object > resultMap = new HashMap <>();
120- ArrayList <String > pathList = new ArrayList <>();
121121 boolean hasData = false ;
122122
123123 if (prefs .contains (FLUTTER_IMAGE_PICKER_IMAGE_PATH_KEY )) {
124124 final Set <String > imagePathList =
125125 prefs .getStringSet (FLUTTER_IMAGE_PICKER_IMAGE_PATH_KEY , null );
126126 if (imagePathList != null ) {
127- pathList . addAll (imagePathList );
127+ ArrayList < String > pathList = new ArrayList <> (imagePathList );
128128 resultMap .put (MAP_KEY_PATH_LIST , pathList );
129129 hasData = true ;
130130 }
131131 }
132132
133133 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 , "" ) );
136136 hasData = true ;
137137 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 , "" ));
140139 }
140+ resultMap .put (MAP_KEY_ERROR , error .build ());
141141 }
142142
143143 if (hasData ) {
144144 if (prefs .contains (SHARED_PREFERENCE_TYPE_KEY )) {
145145 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 );
147151 }
148152 if (prefs .contains (SHARED_PREFERENCE_MAX_WIDTH_KEY )) {
149153 final long maxWidthValue = prefs .getLong (SHARED_PREFERENCE_MAX_WIDTH_KEY , 0 );
@@ -153,12 +157,8 @@ Map<String, Object> getCacheMap() {
153157 final long maxHeightValue = prefs .getLong (SHARED_PREFERENCE_MAX_HEIGHT_KEY , 0 );
154158 resultMap .put (MAP_KEY_MAX_HEIGHT , Double .longBitsToDouble (maxHeightValue ));
155159 }
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 );
162162 }
163163 return resultMap ;
164164 }
0 commit comments