@@ -20,6 +20,7 @@ import { CoreFileHelperProvider } from '@providers/file-helper';
2020import { CoreSitesProvider } from '@providers/sites' ;
2121import { CoreDomUtilsProvider } from '@providers/utils/dom' ;
2222import { CoreMimetypeUtilsProvider } from '@providers/utils/mimetype' ;
23+ import { CoreUrlUtilsProvider } from '@providers/utils/url' ;
2324import { CoreUtilsProvider } from '@providers/utils/utils' ;
2425import { CoreTextUtilsProvider } from '@providers/utils/text' ;
2526import { CoreConstants } from '@core/constants' ;
@@ -57,16 +58,17 @@ export class CoreFileComponent implements OnInit, OnDestroy {
5758 protected timemodified : number ;
5859 protected observer ;
5960
60- constructor ( private sitesProvider : CoreSitesProvider ,
61- private utils : CoreUtilsProvider ,
62- private domUtils : CoreDomUtilsProvider ,
63- private filepoolProvider : CoreFilepoolProvider ,
64- private appProvider : CoreAppProvider ,
65- private fileHelper : CoreFileHelperProvider ,
66- private mimeUtils : CoreMimetypeUtilsProvider ,
67- private eventsProvider : CoreEventsProvider ,
68- private textUtils : CoreTextUtilsProvider ,
69- private pluginFileDelegate : CorePluginFileDelegate ) {
61+ constructor ( protected sitesProvider : CoreSitesProvider ,
62+ protected utils : CoreUtilsProvider ,
63+ protected domUtils : CoreDomUtilsProvider ,
64+ protected filepoolProvider : CoreFilepoolProvider ,
65+ protected appProvider : CoreAppProvider ,
66+ protected fileHelper : CoreFileHelperProvider ,
67+ protected mimeUtils : CoreMimetypeUtilsProvider ,
68+ protected eventsProvider : CoreEventsProvider ,
69+ protected textUtils : CoreTextUtilsProvider ,
70+ protected pluginFileDelegate : CorePluginFileDelegate ,
71+ protected urlUtils : CoreUrlUtilsProvider ) {
7072 this . onDelete = new EventEmitter ( ) ;
7173 }
7274
@@ -104,6 +106,8 @@ export class CoreFileComponent implements OnInit, OnDestroy {
104106 this . observer = this . eventsProvider . on ( eventName , ( ) => {
105107 this . calculateState ( ) ;
106108 } ) ;
109+ } ) . catch ( ( ) => {
110+ // File not downloadable.
107111 } ) ;
108112 }
109113 }
@@ -152,14 +156,14 @@ export class CoreFileComponent implements OnInit, OnDestroy {
152156 return ;
153157 }
154158
155- if ( ! this . canDownload ) {
159+ if ( ! this . canDownload || ! this . state || this . state == CoreConstants . NOT_DOWNLOADABLE ) {
156160 // File cannot be downloaded, just open it.
157161 if ( this . file . toURL ) {
158162 // Local file.
159163 this . utils . openFile ( this . file . toURL ( ) ) ;
160164 } else if ( this . fileUrl ) {
161165 if ( this . fileUrl . indexOf ( 'http' ) === 0 ) {
162- this . utils . openOnlineFile ( this . fileUrl ) ;
166+ this . utils . openOnlineFile ( this . urlUtils . unfixPluginfileURL ( this . fileUrl ) ) ;
163167 } else {
164168 this . utils . openFile ( this . fileUrl ) ;
165169 }
0 commit comments