mirror of
https://github.com/pebble-dev/clay.git
synced 2026-09-05 08:37:43 -04:00
add allowGray option to color picker
This commit is contained in:
@@ -300,7 +300,7 @@ A color picker that allows users to choose a color from the ones that are compat
|
|||||||
The color picker will automatically show a different layout depending on the watch connected:
|
The color picker will automatically show a different layout depending on the watch connected:
|
||||||
|
|
||||||
- Aplite (Firmware 2.x) - Black and white
|
- Aplite (Firmware 2.x) - Black and white
|
||||||
- Aplite (Firmware 3.x) - Black, white and gray
|
- Aplite (Firmware 3.x) - Black and white. Will also include gray (`#AAAAAA`) if `allowGray` is set to `true`
|
||||||
- Basalt/chalk - The 64 colors compatible with color Pebble smartwatches.
|
- Basalt/chalk - The 64 colors compatible with color Pebble smartwatches.
|
||||||
|
|
||||||
##### Properties
|
##### Properties
|
||||||
@@ -315,6 +315,7 @@ The color picker will automatically show a different layout depending on the wat
|
|||||||
| description | string | Optional sub-text to include below the component |
|
| description | string | Optional sub-text to include below the component |
|
||||||
| sunlight | boolean | Use the color-corrected sunlight color palette if `true`, else the uncorrected version. Defaults to `true` if not specified. |
|
| sunlight | boolean | Use the color-corrected sunlight color palette if `true`, else the uncorrected version. Defaults to `true` if not specified. |
|
||||||
| layout | string OR array | Optional. Use a custom layout for the color picker. Defaults to automatically choosing the most appropriate layout for the connected watch. The layout is represented by a two dimensional array. Use `false` to insert blank spaces. You may also use one of the preset layouts by setting `layout` to: `"COLOR"`, `"GRAY"` or `"BLACK_WHITE"` |
|
| layout | string OR array | Optional. Use a custom layout for the color picker. Defaults to automatically choosing the most appropriate layout for the connected watch. The layout is represented by a two dimensional array. Use `false` to insert blank spaces. You may also use one of the preset layouts by setting `layout` to: `"COLOR"`, `"GRAY"` or `"BLACK_WHITE"` |
|
||||||
|
| allowGray | boolean | Optional. Set this to `true` to include gray (`#AAAAAA`) in the color picker for aplite running on firmware 3 and above. This is optional because only a subset of the drawing operations support gray on aplite. Defaults to `false` |
|
||||||
|
|
||||||
##### Example
|
##### Example
|
||||||
|
|
||||||
@@ -346,6 +347,19 @@ The color picker will automatically show a different layout depending on the wat
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
##### Example
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
{
|
||||||
|
"type": "color",
|
||||||
|
"appKey": "background",
|
||||||
|
"defaultValue": "aaaaaa",
|
||||||
|
"label": "Background Color",
|
||||||
|
"sunlight": false,
|
||||||
|
"allowGray": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### Radio Group
|
#### Radio Group
|
||||||
|
|||||||
@@ -48,14 +48,15 @@ module.exports = {
|
|||||||
* @returns {Array}
|
* @returns {Array}
|
||||||
*/
|
*/
|
||||||
function autoLayout() {
|
function autoLayout() {
|
||||||
if (!clay.meta.activeWatchInfo) {
|
if (!clay.meta.activeWatchInfo ||
|
||||||
|
clay.meta.activeWatchInfo.firmware.major === 2 ||
|
||||||
|
clay.meta.activeWatchInfo.platform === 'aplite' &&
|
||||||
|
!self.config.allowGray) {
|
||||||
return standardLayouts.BLACK_WHITE;
|
return standardLayouts.BLACK_WHITE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (clay.meta.activeWatchInfo.platform === 'aplite') {
|
if (clay.meta.activeWatchInfo.platform === 'aplite' && self.config.allowGray) {
|
||||||
return clay.meta.activeWatchInfo.firmware.major === 2 ?
|
return standardLayouts.GRAY;
|
||||||
standardLayouts.BLACK_WHITE :
|
|
||||||
standardLayouts.GRAY;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return standardLayouts.COLOR;
|
return standardLayouts.COLOR;
|
||||||
|
|||||||
@@ -111,16 +111,24 @@ function testCustomLayout(layout, expectedColors) {
|
|||||||
/**
|
/**
|
||||||
* @param {string} platform
|
* @param {string} platform
|
||||||
* @param {Array} layout
|
* @param {Array} layout
|
||||||
* @param {string} [desc]
|
* @param {boolean} allowGray
|
||||||
|
* @param {string} desc
|
||||||
* @param {Object} activeWatchInfo
|
* @param {Object} activeWatchInfo
|
||||||
* @return {void}
|
* @return {void}
|
||||||
*/
|
*/
|
||||||
function testAutoLayout(platform, layout, desc, activeWatchInfo) {
|
function testAutoLayout(platform, layout, allowGray, desc, activeWatchInfo) {
|
||||||
it('chooses the best layout for the ' + (desc || platform) + ' platform',
|
it('chooses the best layout for the ' + (desc || platform) +
|
||||||
|
' platform when allowGray is ' + allowGray,
|
||||||
function() {
|
function() {
|
||||||
var clayConfig = fixture.clayConfig(['color'], true, true, {}, {
|
var clayConfig = fixture.clayConfig(
|
||||||
activeWatchInfo: activeWatchInfo
|
[{type: 'color', allowGray: allowGray}],
|
||||||
});
|
true,
|
||||||
|
true,
|
||||||
|
{},
|
||||||
|
{
|
||||||
|
activeWatchInfo: activeWatchInfo
|
||||||
|
}
|
||||||
|
);
|
||||||
var colorItem = clayConfig.getItemsByType('color')[0];
|
var colorItem = clayConfig.getItemsByType('color')[0];
|
||||||
assert.deepEqual(colorItem._layout, layout);
|
assert.deepEqual(colorItem._layout, layout);
|
||||||
});
|
});
|
||||||
@@ -285,8 +293,11 @@ describe('component - color', function() {
|
|||||||
|
|
||||||
describe('layouts', function() {
|
describe('layouts', function() {
|
||||||
|
|
||||||
testAutoLayout('aplite', standardLayouts.BLACK_WHITE, 'aplite (2.x)', null);
|
// allow gray does nothing for 2.x
|
||||||
testAutoLayout('aplite', standardLayouts.BLACK_WHITE, 'aplite (2.x)', {
|
testAutoLayout('aplite', standardLayouts.BLACK_WHITE, true, 'aplite (2.x)',
|
||||||
|
null
|
||||||
|
);
|
||||||
|
testAutoLayout('aplite', standardLayouts.BLACK_WHITE, true, 'aplite (2.x)', {
|
||||||
platform: 'aplite',
|
platform: 'aplite',
|
||||||
model: 'qemu_platform_aplite',
|
model: 'qemu_platform_aplite',
|
||||||
language: 'en_US',
|
language: 'en_US',
|
||||||
@@ -297,7 +308,21 @@ describe('component - color', function() {
|
|||||||
suffix: ''
|
suffix: ''
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
testAutoLayout('aplite', standardLayouts.GRAY, 'aplite (3.x)', {
|
testAutoLayout('aplite', standardLayouts.BLACK_WHITE, false, 'aplite (2.x)',
|
||||||
|
null
|
||||||
|
);
|
||||||
|
testAutoLayout('aplite', standardLayouts.BLACK_WHITE, false, 'aplite (2.x)', {
|
||||||
|
platform: 'aplite',
|
||||||
|
model: 'qemu_platform_aplite',
|
||||||
|
language: 'en_US',
|
||||||
|
firmware: {
|
||||||
|
major: 2,
|
||||||
|
minor: 10,
|
||||||
|
patch: 0,
|
||||||
|
suffix: ''
|
||||||
|
}
|
||||||
|
});
|
||||||
|
testAutoLayout('aplite', standardLayouts.BLACK_WHITE, false, 'aplite (3.x)', {
|
||||||
platform: 'aplite',
|
platform: 'aplite',
|
||||||
model: 'qemu_platform_aplite',
|
model: 'qemu_platform_aplite',
|
||||||
language: 'en_US',
|
language: 'en_US',
|
||||||
@@ -308,7 +333,18 @@ describe('component - color', function() {
|
|||||||
suffix: ''
|
suffix: ''
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
testAutoLayout('basalt', standardLayouts.COLOR, '', {
|
testAutoLayout('aplite', standardLayouts.GRAY, true, 'aplite (3.x)', {
|
||||||
|
platform: 'aplite',
|
||||||
|
model: 'qemu_platform_aplite',
|
||||||
|
language: 'en_US',
|
||||||
|
firmware: {
|
||||||
|
major: 3,
|
||||||
|
minor: 10,
|
||||||
|
patch: 0,
|
||||||
|
suffix: ''
|
||||||
|
}
|
||||||
|
});
|
||||||
|
testAutoLayout('basalt', standardLayouts.COLOR, true, '', {
|
||||||
platform: 'basalt',
|
platform: 'basalt',
|
||||||
model: 'qemu_platform_basalt',
|
model: 'qemu_platform_basalt',
|
||||||
language: 'en_US',
|
language: 'en_US',
|
||||||
@@ -319,7 +355,7 @@ describe('component - color', function() {
|
|||||||
suffix: ''
|
suffix: ''
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
testAutoLayout('chalk', standardLayouts.COLOR, '', {
|
testAutoLayout('chalk', standardLayouts.COLOR, true, '', {
|
||||||
platform: 'chalk',
|
platform: 'chalk',
|
||||||
model: 'qemu_platform_chalk',
|
model: 'qemu_platform_chalk',
|
||||||
language: 'en_US',
|
language: 'en_US',
|
||||||
|
|||||||
Reference in New Issue
Block a user