@@ -853,35 +853,65 @@ public boolean logEvents(LogBuilder[] logBuilders) {
853
853
854
854
@ Override
855
855
@ NonNull
856
- public UploadResult uploadFile (String filename ,
857
- @ NonNull InputStream file ,
858
- long dataLength ,
859
- String pageContents ,
860
- String editSummary ,
861
- Uri fileUri ,
862
- Uri contentProviderUri ,
863
- final ProgressListener progressListener ) throws IOException {
856
+ public Single <UploadStash > uploadFile (
857
+ String filename ,
858
+ @ NonNull InputStream file ,
859
+ long dataLength ,
860
+ Uri fileUri ,
861
+ Uri contentProviderUri ,
862
+ ProgressListener progressListener ) throws IOException {
863
+ return Single .fromCallable (() -> {
864
+ CustomApiResult result = api .uploadToStash (filename , file , dataLength , getEditToken (), progressListener ::onProgress );
865
+
866
+ Timber .wtf ("Result: " + result .toString ());
867
+
868
+ String resultStatus = result .getString ("/api/upload/@result" );
869
+ if (!resultStatus .equals ("Success" )) {
870
+ String errorCode = result .getString ("/api/error/@code" );
871
+ Timber .e (errorCode );
872
+
873
+ if (errorCode .equals (ERROR_CODE_BAD_TOKEN )) {
874
+ ViewUtil .showLongToast (context , R .string .bad_token_error_proposed_solution );
875
+ }
876
+ return new UploadStash (errorCode , resultStatus , filename , "" );
877
+ } else {
878
+ String filekey = result .getString ("/api/upload/@filekey" );
879
+ return new UploadStash ("" , resultStatus , filename , filekey );
880
+ }
881
+ });
882
+ }
864
883
865
- CustomApiResult result = api .upload (filename , file , dataLength , pageContents , editSummary , getEditToken (), progressListener ::onProgress );
866
884
867
- Timber .d ("Result: %s" , result .toString ());
885
+ @ Override
886
+ @ NonNull
887
+ public Single <UploadResult > uploadFileFinalize (
888
+ String filename ,
889
+ String filekey ,
890
+ String pageContents ,
891
+ String editSummary ) throws IOException {
892
+ return Single .fromCallable (() -> {
893
+ CustomApiResult result = api .uploadFromStash (
894
+ filename , filekey , pageContents , editSummary ,
895
+ getEditToken ());
868
896
869
- String resultStatus = result . getString ( "/api/upload/@result" );
897
+ Timber . d ( "Result: %s" , result . toString () );
870
898
871
- if (!resultStatus .equals ("Success" )) {
872
- String errorCode = result .getString ("/api/error/@code" );
873
- Timber .e (errorCode );
899
+ String resultStatus = result .getString ("/api/upload/@result" );
900
+ if (!resultStatus .equals ("Success" )) {
901
+ String errorCode = result .getString ("/api/error/@code" );
902
+ Timber .e (errorCode );
874
903
875
- if (errorCode .equals (ERROR_CODE_BAD_TOKEN )) {
876
- ViewUtil .showLongToast (context , R .string .bad_token_error_proposed_solution );
904
+ if (errorCode .equals (ERROR_CODE_BAD_TOKEN )) {
905
+ ViewUtil .showLongToast (context , R .string .bad_token_error_proposed_solution );
906
+ }
907
+ return new UploadResult (resultStatus , errorCode );
908
+ } else {
909
+ Date dateUploaded = parseMWDate (result .getString ("/api/upload/imageinfo/@timestamp" ));
910
+ String canonicalFilename = "File:" + result .getString ("/api/upload/@filename" ).replace ("_" , " " ); // Title vs Filename
911
+ String imageUrl = result .getString ("/api/upload/imageinfo/@url" );
912
+ return new UploadResult (resultStatus , dateUploaded , canonicalFilename , imageUrl );
877
913
}
878
- return new UploadResult (resultStatus , errorCode );
879
- } else {
880
- Date dateUploaded = parseMWDate (result .getString ("/api/upload/imageinfo/@timestamp" ));
881
- String canonicalFilename = "File:" + result .getString ("/api/upload/@filename" ).replace ("_" , " " ); // Title vs Filename
882
- String imageUrl = result .getString ("/api/upload/imageinfo/@url" );
883
- return new UploadResult (resultStatus , dateUploaded , canonicalFilename , imageUrl );
884
- }
914
+ });
885
915
}
886
916
887
917
/**
0 commit comments