From 644f4c28457681c451973fa0a3cfb130aa10cca5 Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Mon, 17 Oct 2016 13:40:03 +0300 Subject: [PATCH] ImageSource was reset in CreateUI wrongly. (#2910) TabView doesn't save/restore its visual hierarchy. Cuteness.io source changed to use https. --- apps/app/cuteness.io/reddit-app-view-model.ts | 5 +---- tests/app/ui/image/image-tests.ts | 10 ++++++++++ tns-core-modules/ui/image/image.android.ts | 2 +- tns-core-modules/ui/tab-view/tab-view.android.ts | 10 +++++----- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/apps/app/cuteness.io/reddit-app-view-model.ts b/apps/app/cuteness.io/reddit-app-view-model.ts index 666eb08df..d5bf4087c 100644 --- a/apps/app/cuteness.io/reddit-app-view-model.ts +++ b/apps/app/cuteness.io/reddit-app-view-model.ts @@ -10,7 +10,7 @@ var aboutText = "Cuteness is a proof of concept app demonstrating the Telerik's export var defaultThumbnailImageSource = imageSourceFromFile("~/cuteness.io/res/reddit-logo.png"); export var defaultNoThumbnailImageSource = imageSourceFromFile("~/cuteness.io/res/no-image.png"); -var redditUrl = "http://www.reddit.com/r/aww.json?limit="; +var redditUrl = "https://www.reddit.com/r/aww.json?limit="; var after: string; var ISSCROLLING = "isLoading"; @@ -40,9 +40,6 @@ export class AppViewModel extends Observable { if (lastItem) { after = itemsToLoad[itemsToLoad.length - 1].source.name; } - - }).catch(e => { - setTimeout(() => { throw e; }); }); }); } diff --git a/tests/app/ui/image/image-tests.ts b/tests/app/ui/image/image-tests.ts index cac12ae90..68c1a3180 100644 --- a/tests/app/ui/image/image-tests.ts +++ b/tests/app/ui/image/image-tests.ts @@ -139,6 +139,16 @@ export var test_SettingImageSrcToFileWithinAppAsync = function (done) { runImageTest(done, image, image.src) } +export function test_imageSourceNotResetAfterCreateUI() { + let image = new ImageModule.Image(); + let imageSource = ImageSourceModule.fromResource("splashscreen.9"); + image.imageSource = imageSource; + helper.buildUIAndRunTest(image, (img, page) => { + TKUnit.waitUntilReady(() => image.isLoaded); + TKUnit.assertEqual(image.imageSource, imageSource); + }); +} + export var test_SettingImageSrcToDataURIAsync = function (done) { var image = new ImageModule.Image(); image.loadMode = "async"; diff --git a/tns-core-modules/ui/image/image.android.ts b/tns-core-modules/ui/image/image.android.ts index 002d161f2..3027014c7 100644 --- a/tns-core-modules/ui/image/image.android.ts +++ b/tns-core-modules/ui/image/image.android.ts @@ -120,7 +120,7 @@ export class Image extends imageCommon.Image { public _createImageSourceFromSrc() { let imageView = this._android; - if (!imageView) { + if (!imageView || !this.src) { return; } diff --git a/tns-core-modules/ui/tab-view/tab-view.android.ts b/tns-core-modules/ui/tab-view/tab-view.android.ts index 582a940c0..983351311 100644 --- a/tns-core-modules/ui/tab-view/tab-view.android.ts +++ b/tns-core-modules/ui/tab-view/tab-view.android.ts @@ -227,17 +227,17 @@ export class TabView extends common.TabView { this._tabLayout.setBackgroundColor(primaryColor); } + if (this._androidViewId < 0) { + this._androidViewId = android.view.View.generateViewId(); + } + this._viewPager = new android.support.v4.view.ViewPager(this._context); + this._viewPager.setId(this._androidViewId); var lp = new org.nativescript.widgets.CommonLayoutParams(); lp.row = 1; this._viewPager.setLayoutParams(lp); this._grid.addView(this._viewPager); - if (this._androidViewId < 0) { - this._androidViewId = android.view.View.generateViewId(); - } - this._grid.setId(this._androidViewId); - ensurePageChangedListenerClass(); this._pageChagedListener = new PageChangedListenerClass(this); (this._viewPager).addOnPageChangeListener(this._pageChagedListener);