Content-Length: 527432 | pFad | http://github.com/NativeScript/NativeScript/commit/d74ce8529399c323259f402a07d0fd7ae5717c91

C7 Merge pull request #271 from NativeScript/segmented-bar-android-color · NativeScript/NativeScript@d74ce85 · GitHub
Skip to content

Commit d74ce85

Browse files
author
Vladimir Enchev
committed
Merge pull request #271 from NativeScript/segmented-bar-android-color
Segmented bar android color
2 parents aff562c + 46950ed commit d74ce85

5 files changed

+58
-3
lines changed

apps/tests/ui/segmented-bar/segmented-bar-tests-native.android.ts

+13
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,17 @@
22

33
export function getNativeItemsCount(bar: segmentedBarModule.SegmentedBar): number {
44
return (<android.widget.TabHost>bar.android).getTabWidget().getTabCount();
5+
}
6+
7+
export function checkNativeItemsTextColor(bar: segmentedBarModule.SegmentedBar): boolean {
8+
var isValid = true;
9+
10+
for (var tabIndex = 0; tabIndex < bar.android.getTabWidget().getTabCount(); tabIndex++) {
11+
var tabChild = <android.view.ViewGroup>bar.android.getTabWidget().getChildTabViewAt(tabIndex);
12+
var t = <android.widget.TextView>tabChild.getChildAt(1);
13+
14+
isValid = bar.color && bar.color.android === t.getCurrentTextColor();
15+
}
16+
17+
return isValid;
518
}

apps/tests/ui/segmented-bar/segmented-bar-tests-native.d.ts

+2
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@
22
import segmentedBarModule = require("ui/segmented-bar");
33

44
export declare function getNativeItemsCount(bar: segmentedBarModule.SegmentedBar): number;
5+
6+
export declare function checkNativeItemsTextColor(bar: segmentedBarModule.SegmentedBar): boolean;

apps/tests/ui/segmented-bar/segmented-bar-tests-native.ios.ts

+9
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,13 @@
22

33
export function getNativeItemsCount(bar: segmentedBarModule.SegmentedBar): number {
44
return (<UISegmentedControl>bar.ios).numberOfSegments;
5+
}
6+
7+
export function checkNativeItemsTextColor(bar: segmentedBarModule.SegmentedBar): boolean {
8+
var isValid = true;
9+
10+
var attrs = (<UISegmentedControl>bar.ios).titleTextAttributesForState(UIControlState.UIControlStateNormal);
11+
isValid = bar.color && attrs && attrs.valueForKey(NSForegroundColorAttributeName) === bar.color.ios;
12+
13+
return isValid;
514
}

apps/tests/ui/segmented-bar/segmented-bar-tests.ts

+21
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
import helper = require("../helper");
33
import viewModule = require("ui/core/view");
44
import segmentedBarTestsNative = require("./segmented-bar-tests-native");
5+
import bindable = require("ui/core/bindable");
6+
import observable = require("data/observable");
7+
import color = require("color");
58

69
// <snippet module="ui/segmented-bar" title="SegmentedBar">
710
// # SegmentedBar
@@ -57,6 +60,24 @@ export var testWhenSettingItemsToNonEmptyArrayTheSameAmountOfNativeItemsIsCreate
5760
});
5861
}
5962

63+
export var testWhenItemsAreBoundTheTextColorIsPreserved = function () {
64+
helper.buildUIAndRunTest(_createSegmentedBar(), function (views: Array<viewModule.View>) {
65+
var segmentedBar = <segmentedBarModule.SegmentedBar>views[0];
66+
segmentedBar.color = new color.Color("red");
67+
68+
var model = new observable.Observable();
69+
model.set("items", [{ title: "One" }, { title: "Two" }, { title: "Three" }]);
70+
var options: bindable.BindingOptions = {
71+
sourceProperty: "items",
72+
targetProperty: "items"
73+
}
74+
75+
segmentedBar.bind(options, model);
76+
77+
TKUnit.assert(segmentedBarTestsNative.checkNativeItemsTextColor(segmentedBar), "Items text color not preserved" + "; Expected: " + segmentedBar.color);
78+
});
79+
}
80+
6081
export var testWhenSettingItemsToEmptyArrayZeroNativeItemsAreCreated = function () {
6182
helper.buildUIAndRunTest(_createSegmentedBar(), function (views: Array<viewModule.View>) {
6283
var segmentedBar = <segmentedBarModule.SegmentedBar>views[0];

ui/segmented-bar/segmented-bar.android.ts

+13-3
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,11 @@ function onItemsPropertyChanged(data: dependencyObservable.PropertyChangeData) {
6464
view.android.setOnTabChangedListener(null);
6565
view.android.setOnTabChangedListener(view._listener);
6666

67-
if (view.selectedBackgroundColor) {
68-
var tabHost = <android.widget.TabHost>view.android;
67+
var tabHost = <android.widget.TabHost>view.android;
68+
var tabIndex: number;
6969

70-
for (var tabIndex = 0; tabIndex < tabHost.getTabWidget().getTabCount(); tabIndex++) {
70+
if (view.selectedBackgroundColor) {
71+
for (tabIndex = 0; tabIndex < tabHost.getTabWidget().getTabCount(); tabIndex++) {
7172
var vg = <android.view.ViewGroup>tabHost.getTabWidget().getChildTabViewAt(tabIndex);
7273

7374
var stateDrawable = new android.graphics.drawable.StateListDrawable();
@@ -82,6 +83,15 @@ function onItemsPropertyChanged(data: dependencyObservable.PropertyChangeData) {
8283
vg.setBackgroundDrawable(stateDrawable);
8384
}
8485
}
86+
87+
for (tabIndex = 0; tabIndex < tabHost.getTabWidget().getTabCount(); tabIndex++) {
88+
var tabChild = <android.view.ViewGroup>tabHost.getTabWidget().getChildTabViewAt(tabIndex);
89+
var t = <android.widget.TextView>tabChild.getChildAt(1);
90+
91+
if (view.color) {
92+
t.setTextColor(view.color.android);
93+
}
94+
}
8595
}
8696
}
8797
(<proxy.PropertyMetadata>common.SegmentedBar.itemsProperty.metadata).onSetNativeValue = onItemsPropertyChanged;

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/NativeScript/NativeScript/commit/d74ce8529399c323259f402a07d0fd7ae5717c91

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy