@@ -4,13 +4,18 @@ import frame = require("ui/frame");
4
4
5
5
import image_source = require( "image-source" ) ;
6
6
7
+ interface ImageOptions {
8
+ maxWidth ?: number ;
9
+ maxHeight ?: number ;
10
+ }
11
+
7
12
export function create ( options ?) : ImagePicker {
8
13
if ( true /* TODO: iOS8+, consider implementation for iOS7. */ ) {
9
14
return new ImagePickerPH ( options ) ;
10
15
}
11
16
}
12
17
13
- export class ImagePicker extends data_observable . Observable {
18
+ export class ImagePicker extends data_observable . Observable {
14
19
private _selection : data_observablearray . ObservableArray < Asset > ;
15
20
private _albums : data_observablearray . ObservableArray < Album > ;
16
21
@@ -138,6 +143,14 @@ export class SelectedAsset extends data_observable.Observable {
138
143
get fileUri ( ) : string {
139
144
return null ;
140
145
}
146
+
147
+ getImage ( options ?: ImageOptions ) : Promise < image_source . ImageSource > {
148
+ return Promise . reject ( new Error ( "getImage() is not implemented in SelectedAsset. Derived classes should implement it to be fully functional." ) ) ;
149
+ }
150
+
151
+ getImageData ( ) : Promise < ArrayBuffer > {
152
+ return Promise . reject ( new Error ( "getImageData() is not implemented in SelectedAsset. Derived classes should implement it to be fully functional." ) ) ;
153
+ }
141
154
}
142
155
143
156
export class Asset extends SelectedAsset {
@@ -167,6 +180,18 @@ export class Asset extends SelectedAsset {
167
180
return this . _thumb ;
168
181
}
169
182
183
+ getImage ( options ?: ImageOptions ) : Promise < image_source . ImageSource > {
184
+ return new Promise < image_source . ImageSource > ( ( resolve , reject ) => {
185
+
186
+ } ) ;
187
+ }
188
+
189
+ getImageData ( ) : Promise < ArrayBuffer > {
190
+ return new Promise < ArrayBuffer > ( ( resolve , reject ) => {
191
+
192
+ } ) ;
193
+ }
194
+
170
195
get selected ( ) : boolean {
171
196
return ! ! this . _selected ;
172
197
}
@@ -236,7 +261,7 @@ class ImagePickerPH extends ImagePicker {
236
261
authorize ( ) : Thenable < void > {
237
262
return new Promise < void > ( ( resolve , reject ) => {
238
263
var runloop = CFRunLoopGetCurrent ( ) ;
239
- PHPhotoLibrary . requestAuthorization ( function ( result ) {
264
+ PHPhotoLibrary . requestAuthorization ( function ( result ) {
240
265
if ( result === PHAuthorizationStatus . PHAuthorizationStatusAuthorized ) {
241
266
invokeOnRunLoop ( runloop , resolve ) ;
242
267
} else {
@@ -274,7 +299,7 @@ class ImagePickerPH extends ImagePicker {
274
299
}
275
300
276
301
createPHImageThumb ( target , asset : PHAsset ) : void {
277
- PHImageManager . defaultManager ( ) . requestImageForAssetTargetSizeContentModeOptionsResultHandler ( asset , this . _thumbRequestSize , PHImageContentMode . PHImageContentModeAspectFill , this . _thumbRequestOptions , function ( target , uiImage , info ) {
302
+ PHImageManager . defaultManager ( ) . requestImageForAssetTargetSizeContentModeOptionsResultHandler ( asset , this . _thumbRequestSize , PHImageContentMode . PHImageContentModeAspectFill , this . _thumbRequestOptions , function ( target , uiImage , info ) {
278
303
var imageSource = new image_source . ImageSource ( ) ;
279
304
imageSource . setNativeSource ( uiImage ) ;
280
305
target . setThumb ( imageSource ) ;
0 commit comments