FrescoDrawee.prototype.initImage = function () {
     if (this._android) {
         this._android.setImageURI(null, null);
         if (this.src) {
             if (!utils.isFileOrResourcePath(this.src)) {
                 this._android.setImageURI(android.net.Uri.parse(this.src), null);
             }
             else {
                 var res = utils.ad.getApplicationContext().getResources();
                 if (!res) {
                     return;
                 }
                 if (!utils.isFileOrResourcePath(this.src)) {
                     throw new Error("Path \"" + "\" is not a valid file or resource.");
                 }
                 var path = this.src;
                 if (path.indexOf(utils.RESOURCE_PREFIX) === 0) {
                     var resName = path.substr(utils.RESOURCE_PREFIX.length);
                     var identifier = res.getIdentifier(resName, 'drawable', utils.ad.getApplication().getPackageName());
                     if (0 < identifier) {
                         var uri = new android.net.Uri.Builder()
                             .scheme(com.facebook.common.util.UriUtil.LOCAL_RESOURCE_SCHEME)
                             .path(java.lang.String.valueOf(identifier))
                             .build();
                         this._android.setImageURI(uri);
                     }
                 }
                 else {
                     this._android.setImageURI(android.net.Uri.parse((path.indexOf('file://') === 0 ? '' : 'file://') + path));
                 }
             }
         }
     }
 };
 StyleScope.createSelectorsFromImports = function (tree) {
     var selectors = new Array();
     if (!types.isNullOrUndefined(tree)) {
         var imports = tree["stylesheet"]["rules"].filter(function (r) { return r.type === "import"; });
         for (var i = 0; i < imports.length; i++) {
             var importItem = imports[i]["import"];
             var match = importItem && importItem.match(pattern);
             var url = match && match[2];
             if (!types.isNullOrUndefined(url)) {
                 if (utils.isFileOrResourcePath(url)) {
                     var fileName = types.isString(url) ? url.trim() : "";
                     if (fileName.indexOf("~/") === 0) {
                         fileName = fs.path.join(fs.knownFolders.currentApp().path, fileName.replace("~/", ""));
                     }
                     if (fs.File.exists(fileName)) {
                         var file = fs.File.fromPath(fileName);
                         var text = file.readTextSync();
                         if (text) {
                             selectors = StyleScope._joinCssSelectorsArrays([selectors, StyleScope.createSelectorsFromCss(text, fileName)]);
                         }
                     }
                 }
             }
         }
     }
     return selectors;
 };
Esempio n. 3
0
function onSrcPropertyChanged(data) {
    var webView = data.object;
    if (webView._suspendLoading) {
        return;
    }
    webView.stopLoading();
    var src = data.newValue;
    if (trace.enabled) {
        trace.write("WebView._loadSrc(" + src + ")", trace.categories.Debug);
    }
    if (utils.isFileOrResourcePath(src)) {
        ensureFS();
        if (src.indexOf("~/") === 0) {
            src = fs.path.join(fs.knownFolders.currentApp().path, src.replace("~/", ""));
        }
        if (fs.File.exists(src)) {
            var file = fs.File.fromPath(src);
            var content = file.readTextSync();
            webView._loadFileOrResource(src, content);
        }
    }
    else if (src.toLowerCase().indexOf("http://") === 0 || src.toLowerCase().indexOf("https://") === 0) {
        webView._loadHttp(src);
    }
    else {
        webView._loadData(src);
    }
}
function onBackgroundImagePropertyChanged(data) {
    var style = data.object;
    var url = data.newValue;
    var currentBackground = style._getValue(exports.backgroundInternalProperty);
    var isValid = false;
    if (types.isString(data.newValue)) {
        var pattern = /url\(('|")(.*?)\1\)/;
        var match = url.match(pattern);
        if (match && match[2]) {
            url = match[2];
        }
        if (utils.isDataURI(url)) {
            var base64Data = url.split(",")[1];
            if (types.isDefined(base64Data)) {
                style._setValue(exports.backgroundInternalProperty, currentBackground.withImage(imageSource.fromBase64(base64Data)));
                isValid = true;
            }
        }
        else if (utils.isFileOrResourcePath(url)) {
            style._setValue(exports.backgroundInternalProperty, currentBackground.withImage(imageSource.fromFileOrResource(url)));
            isValid = true;
        }
        else if (url.indexOf("http") !== -1) {
            style["_url"] = url;
            style._setValue(exports.backgroundInternalProperty, currentBackground.withImage(undefined));
            imageSource.fromUrl(url).then(function (r) {
                if (style && style["_url"] === url) {
                    style._setValue(exports.backgroundInternalProperty, currentBackground.withImage(r));
                }
            });
            isValid = true;
        }
    }
    if (!isValid) {
        style._setValue(exports.backgroundInternalProperty, currentBackground.withImage(undefined));
    }
}
function onBackgroundImagePropertyChanged(data) {
    var style = data.object;
    if (types.isString(data.newValue)) {
        var pattern = /url\(('|")(.*?)\1\)/;
        var match = data.newValue && data.newValue.match(pattern);
        var url = match && match[2];
        if (types.isDefined(url)) {
            if (utils.isDataURI(url)) {
                var base64Data = url.split(",")[1];
                if (types.isDefined(base64Data)) {
                    style._setValue(exports.backgroundImageSourceProperty, imageSource.fromBase64(base64Data), observable.ValueSource.Local);
                }
            }
            else if (utils.isFileOrResourcePath(url)) {
                style._setValue(exports.backgroundImageSourceProperty, imageSource.fromFileOrResource(url), observable.ValueSource.Local);
            }
            else {
                imageSource.fromUrl(url).then(function (r) {
                    style._setValue(exports.backgroundImageSourceProperty, r, observable.ValueSource.Local);
                });
            }
        }
    }
}
function isFileOrResourcePath(path) {
    return utils.isFileOrResourcePath(path);
}