Compare commits

Author SHA1 Message Date
Herrie c4fc23912a Test 2023-04-11 22:05:54 +02:00
Herman van Hazendonk 788b789e72 core-apps: Add additional permissions
Signed-off-by: Herman van Hazendonk <github.com@herrie.org>
2023-01-11 07:56:49 +01:00
Herman van Hazendonk 714494b996 com.palm.app.email: Add "application.operation"
Fixes:

2022-12-11T08:58:13.135430Z [640.612360515] user.warning sam [] <default-lib> LS_REQUIRES_SECURITY {"SERVICE":"com.palm.app.email-95802","CATEGORY":"/","METHOD":"getAppBasePath"} Service security groups don't allow method call.

Signed-off-by: Herman van Hazendonk <github.com@herrie.org>
2023-01-11 07:56:13 +01:00
Herman van Hazendonk 1940f5b399 core-apps: Add more requiredPermissions
Signed-off-by: Herman van Hazendonk <github.com@herrie.org>
2023-01-11 07:55:51 +01:00
Herman van Hazendonk c48d1204f0 core-apps: Add additional permissions
Fixes:

Line 4495: Dec 07 14:50:17 qemux86-64 service.accounts[1154]: [] [pmlog] <default-lib> LS_REQUIRES_SECURITY {"SERVICE":"com.palm.app.contacts-40040","CATEGORY":"/","METHOD":"listAccounts"} Service security groups don't allow method call.
	Line 5262: Dec 07 14:51:18 qemux86-64 imaccountvalidator[1228]: [] [pmlog] <default-lib> LS_REQUIRES_SECURITY {"SERVICE":"com.palm.app.accounts-21830","CATEGORY":"/","METHOD":"getOptions"} Service security groups don't allow method call.

Signed-off-by: Herman van Hazendonk <github.com@herrie.org>
2023-01-11 07:55:51 +01:00
Herman van Hazendonk 982a9f09ee core-apps: Fix various permission errors
Such as:

Dec 07 10:25:52 qemux86-64 service.accounts[923]: [] [pmlog] <default-lib> LS_REQUIRES_SECURITY {"SERVICE":"com.palm.app.calendar-42766","CATEGORY":"/","METHOD":"listAccountTemplates"} Service security groups don't allow method call.
Dec 07 10:25:53 qemux86-64 service.accounts[923]: [] [pmlog] <default-lib> LS_REQUIRES_SECURITY {"SERVICE":"com.palm.launcher-15269","CATEGORY":"/","METHOD":"listAccountTemplates"} Service security groups don't allow method call.
Dec 07 10:25:53 qemux86-64 LunaSysMgr[412]: [] [pmlog] <default-lib> LS_REQUIRES_SECURITY {"SERVICE":"com.palm.app.email-45398","CATEGORY":"/control","METHOD":"status"} Service security groups don't allow method call.
Dec 07 10:29:57 qemux86-64 sam[589]: [] [pmlog] <default-lib> LS_REQUIRES_SECURITY {"SERVICE":"com.palm.app.accounts-60050","CATEGORY":"/","METHOD":"getAppBasePath"} Service security groups don't allow method call.

Signed-off-by: Herman van Hazendonk <github.com@herrie.org>
2023-01-11 07:55:51 +01:00
Herman van Hazendonk 48800f3b26 Fixup permissions 2022-06-27 22:20:57 +02:00
Herman van Hazendonk 43623a029c Remove duplicate 2022-06-27 21:43:59 +02:00
Herman van Hazendonk e5c302b72f Add FirstUse, Maps, Phone for testing 2022-06-27 20:39:07 +02:00
Herman van Hazendonk cc74f8e10b Add com.palm.app.musicplayer
From 3.0.5 webOS Doctor
2021-12-22 11:15:42 +01:00
Herman van Hazendonk 5eb8001716 core-apps: Add com.palm.app.messaging from HP webOS SDK
Since it's not available anywhere anymore, adding it here for now for testing IM/Messaging in LuneOS

Signed-off-by: Herman van Hazendonk <github.com@herrie.org>
2020-06-12 16:15:30 +02:00
1591 changed files with 133227 additions and 5 deletions

No files matched your search

+440
View File
@@ -0,0 +1,440 @@
# luna-send -n 1 -a com.palm.app.messaging luna://com.palm.db/find '{"query":{"from":"com.palm.imloginstate:1"}}'
'''
{"returnValue":true,"results":[]}
'''
# luna-send -n 1 -a com.palm.app.messaging luna://com.palm.db/find '{"query":{"from":"com.palm.firstlaunch:1"}}'
'''
{
"returnValue": true,
"results": [
{
"_id": "++Mei96eDNF_Qx4e",
"_kind": "com.palm.firstlaunch:1",
"_rev": 20760,
"_sync": false,
"appId": "com.palm.app.calendar"
},
{
"_id": "++Mei9X1zxSxbkzG",
"_kind": "com.palm.firstlaunch:1",
"_rev": 20801,
"_sync": false,
"appId": "com.palm.app.email"
},
{
"_id": "++MenU+OPt4XG01P",
"_kind": "com.palm.firstlaunch:1",
"_rev": 44701,
"_sync": false,
"appId": {
"appId": "com.palm.app.messaging"
}
},
{
"_id": "++MgaZOQdwCmSn88",
"_kind": "com.palm.firstlaunch:1",
"_rev": 235254,
"_sync": false,
"appId": "com.palm.app.photos"
},
{
"_id": "++MjAv3YKZWq17FQ",
"_kind": "com.palm.firstlaunch:1",
"_rev": 486910,
"_sync": false,
"appId": "com.palm.app.contacts"
}
]
}
'''
# luna-send -n 1 -a com.palm.app.messaging luna://com.palm.db/find '{"query":{"from":"com.palm.chatthread:1"}}'
'''
{
"returnValue": true,
"results": [
{
"_id": "++Mep6jtRl0iYQH8",
"_kind": "com.palm.chatthread:1",
"_rev": 363832,
"_sync": true,
"displayName": "Friend One",
"flags": {
"locked": true,
"outgoing": false,
"visible": true
},
"normalizedAddress": "zombie1669228244837",
"personId": null,
"replyAddress": "+14255553614",
"replyService": "sms",
"summary": "Ok I will call you back",
"timestamp": 1668085785000,
"unreadCount": 21,
"unreadCountRevSet": 304111
},
{
"_id": "++Mep7Ek4gZI_004",
"_kind": "com.palm.chatthread:1",
"_rev": 363841,
"_sync": true,
"displayName": "Friend Two",
"flags": {
"locked": true,
"outgoing": true,
"visible": true
},
"normalizedAddress": "zombie1669228245573",
"personId": null,
"replyAddress": "3185555950",
"replyService": "sms",
"summary": "Here's a website you might want to vist: http://www.palm.com",
"timestamp": 1665573350027,
"unreadCount": 0,
"unreadCountRevSet": 48869
},
{
"_id": "++MepJwBvWFvC9tQ",
"_kind": "com.palm.chatthread:1",
"_rev": 363966,
"_sync": true,
"displayName": "Friend Three",
"flags": {
"locked": true,
"outgoing": false,
"visible": true
},
"normalizedAddress": "zombie1669228264480",
"personId": null,
"replyAddress": "+12125554746",
"replyService": "sms",
"summary": "This is a message from a friend",
"timestamp": 1668085380000,
"unreadCount": 13,
"unreadCountRevSet": 304005
},
]
}
'''
# luna-send -n 1 -a com.palm.app.messaging luna://com.palm.db/find '{"query":{"from":"com.palm.iminvitation:1"}}'
'''
{"returnValue":true,"results":[]}
'''
# luna-send -n 1 -a com.palm.app.messaging luna://com.palm.db/find '{"query":{"from":"com.palm.carrierdb.settings.current:1"}}'
- *might need to try this one on a phone, to get a carrier result*
'''
{"returnValue":true,"results":[]}
'''
# luna-send -n 1 -a com.palm.app.messaging luna://com.palm.db/find '{"query":{"from":"com.palm.imcommand:1"}}'
'''
{"returnValue":true,"results":[]}
'''
# luna-send -n 1 -a com.palm.app.messaging luna://com.palm.db/find '{"query":{"from":"com.palm.immessage:1"}}'
'''
{"returnValue":true,"results":[]}
'''
# luna-send -n 1 -a com.palm.app.messaging luna://com.palm.db/find '{"query":{"from":"com.palm.people:1"}}'
'''
{"errorCode":-3970,"errorText":"kind not registered: 'com.palm.people:1'","returnValue":false}
'''
# luna-send -n 1 -a com.palm.app.messaging luna://com.palm.tempdb/find '{"query":{"from":"com.palm.imbuddystatus:1"}}'
'''
{"returnValue":true,"results":[]}
'''
# luna-send -n 1 -a com.palm.app.messaging luna://com.palm.db/find '{"query":{"from":"com.palm.message:1"}}'
'''
{
"returnValue": true,
"results": [
{
"_id": "++Mep6jenQ+35eDF",
"_kind": "com.palm.smsmessage:1",
"_rev": 49054,
"_sync": true,
"callbackNumber": "",
"conversations": [
"++Mep6jtRl0iYQH8"
],
"flags": {
"read": true
},
"folder": "inbox",
"from": {
"addr": "+14407493614"
},
"localTimestamp": 1665573216000,
"messageText": "Here's a message that I received in Conversation A.",
"networkMsgId": 1,
"priority": 0,
"readRevSet": 49054,
"serviceName": "sms",
"smsType": 0,
"status": "successful",
"timestamp": 1665573216
},
{
"_id": "++Mep6lhILgeIRmD",
"_kind": "com.palm.smsmessage:1",
"_rev": 49055,
"_sync": true,
"callbackNumber": "",
"conversations": [
"++Mep6jtRl0iYQH8"
],
"flags": {
"read": true
},
"folder": "inbox",
"from": {
"addr": "+14407493614"
},
"localTimestamp": 1665573225000,
"messageText": "This message is part of Conversation A.",
"networkMsgId": 1,
"priority": 0,
"readRevSet": 49055,
"serviceName": "sms",
"smsType": 0,
"status": "successful",
"timestamp": 1665573224
},
{
"_id": "++Mep7EVMMV7faXw",
"_kind": "com.palm.smsmessage:1",
"_rev": 48870,
"_sync": true,
"conversations": [
"++Mep7Ek4gZI_004"
],
"flags": {
"deliveryReport": false,
"visible": true
},
"folder": "outbox",
"localTimestamp": 1665573350027,
"messageText": "This is a message that is part of conversation B, that I sent.",
"networkMsgId": 9158,
"readRevSet": 48859,
"serviceName": "sms",
"status": "successful",
"timestamp": 1665573355,
"to": [
{
"_id": "bedc",
"addr": "5186695950",
"name": "Mark Twain"
}
]
},
],
"next": "1lJ401gfILokGrCEBadfO_RoQ570"
}
'''
# luna-send -n 1 -a com.palm.app.messaging luna://com.palm.db/find '{"query":{"from":"com.palm.person:1"}}'
'''
{
"returnValue": true,
"results": [
{
"_id": "++MlEAlfWSdsX09d",
"_kind": "com.palm.person:1",
"_rev": 738812,
"addresses": [],
"anniversary": "",
"birthday": "",
"contactIds": [
"++MlEAlDJxcFshEv"
],
"emails": [
{
"_id": "b4532",
"favoriteData": {},
"normalizedValue": "personone@gmail.com",
"primary": false,
"type": "type_other",
"value": "personone@gmail.com"
}
],
"favorite": false,
"gender": "",
"ims": [],
"launcherId": "",
"name": {
"familyName": "One",
"givenName": "Person",
"honorificPrefix": "",
"honorificSuffix": "",
"middleName": ""
},
"names": [
{
"_id": "b45fd",
"familyName": "One",
"givenName": "Person",
"honorificPrefix": "",
"honorificSuffix": "",
"middleName": ""
}
],
"nickname": "",
"notes": [],
"organization": {
"department": "",
"description": "",
"endDate": "",
"location": {
"country": "",
"locality": "",
"postalCode": "",
"primary": false,
"region": "",
"streetAddress": "",
"type": "type_work"
},
"name": "",
"startDate": "",
"title": "",
"type": ""
},
"phoneNumbers": [
{
"_id": "b4533",
"favoriteData": {},
"normalizedValue": "-4516176-915-1-+",
"primary": false,
"speedDial": "",
"type": "type_mobile",
"value": "+1 (910) 555-6154"
}
],
"photos": {
"accountId": "++MlEAhhVjKIZzT2",
"bigPhotoId": "b4534",
"bigPhotoPath": "/media/internal/.caldav_photos/ownCloudPersonOne.jpeg",
"contactId": "++MlEAlDJxcFshEv",
"listPhotoPath": "/var/file-cache/contactphoto/X/UFt6wCBw.jpeg",
"listPhotoSource": "type_square",
"squarePhotoId": "b4535",
"squarePhotoPath": "/media/internal/.caldav_photos/ownCloudPersonOne.jpeg"
},
"relations": [],
"reminder": "",
"ringtone": {
"location": "",
"name": ""
},
"searchTerms": [
"personone",
"oneperson"
],
"sortKey": "one\tperson",
"urls": []
},
{
"_id": "++MlEAlpqK7UKP+i",
"_kind": "com.palm.person:1",
"_rev": 738814,
"addresses": [],
"anniversary": "",
"birthday": "",
"contactIds": [
"++MlEAlDK04wIDkN"
],
"emails": [
{
"_id": "b4538",
"favoriteData": {},
"normalizedValue": "ptwo@hotmail.com",
"primary": false,
"type": "type_other",
"value": "ptwo@hotmail.com"
}
],
"favorite": false,
"gender": "",
"ims": [],
"launcherId": "",
"name": {
"familyName": "Two",
"givenName": "Person",
"honorificPrefix": "",
"honorificSuffix": "",
"middleName": ""
},
"names": [
{
"_id": "b45ff",
"familyName": "Two",
"givenName": "Person",
"honorificPrefix": "",
"honorificSuffix": "",
"middleName": ""
}
],
"nickname": "",
"notes": [],
"organization": {
"_id": "b4539",
"department": "",
"description": "",
"endDate": "",
"location": {
"country": "",
"locality": "",
"postalCode": "",
"primary": false,
"region": "",
"streetAddress": "",
"type": "type_work"
},
"name": "Acme Co",
"startDate": "",
"title": "",
"type": ""
},
"phoneNumbers": [
{
"_id": "b453a",
"favoriteData": {},
"normalizedValue": "-5623874-044-1-+",
"primary": false,
"speedDial": "",
"type": "type_mobile",
"value": "+1 444-555-3265"
}
],
"photos": {
"accountId": "",
"bigPhotoId": "",
"bigPhotoPath": "",
"contactId": "",
"listPhotoPath": "",
"listPhotoSource": "",
"squarePhotoId": "",
"squarePhotoPath": ""
},
"relations": [],
"reminder": "",
"ringtone": {
"location": "",
"name": ""
},
"searchTerms": [
"ptwo",
"persontwo"
],
"sortKey": "two\tperson",
"urls": []
}
]
}
'''
+2 -1
View File
@@ -7,5 +7,6 @@
"title": "Accounts",
"icon": "icon.png",
"uiRevision": 2,
"requiredPermissions": ["applications.internal", "applications", "activities.manage", "devices", "settings", "settings.read", "services", "database", "database.internal", "filecache", "system", "networking", "networking.internal"]
"trustLevel": "trusted",
"requiredPermissions": ["accountsservice.management", "accountsservice.operation", "activity.operation", "application.operation", "database.operation", "imaccountvalidator.operation", "keymanager-service.operation", "mojomail-imap.operation", "mojomail-pop.operation", "mojomail-smtp.operation", "networkconnection.query", "networkconnection.management", "settings.read", "tempdatabase.operation", "wifi.query", "wifi.management"]
}
+2 -1
View File
@@ -7,5 +7,6 @@
"title": "Calculator",
"icon": "icon.png",
"uiRevision": "2",
"removable": false
"removable": false,
"trustLevel": "trusted"
}
+2 -1
View File
@@ -41,5 +41,6 @@
}
}
},
"requiredPermissions": ["applications.internal", "applications", "activities.manage", "devices", "settings", "settings.read", "services", "database", "database.internal", "filecache", "system", "networking", "networking.internal"]
"trustLevel": "trusted",
"requiredPermissions": ["accountsservice.management", "activity.operation", "appmanager.management", "application.launcher", "calendarremindersservice.operation", "database.operation", "networkconnection.management", "networkconnection.query", "settings.read", "systemsettings.query", "tempdatabase.operation", "time.query", "universalsearch.operation", "wifi.query", "wifi.management"]
}
+1
View File
@@ -11,5 +11,6 @@
"uiRevision": 2,
"debug": false,
"removable": false,
"trustLevel": "trusted",
"requiredPermissions": ["applications.internal", "applications", "activities.manage", "devices", "settings", "settings.read", "services", "database", "database.internal", "filecache", "system", "networking", "networking.internal", "time", "activities.manage", "media"]
}
+2 -1
View File
@@ -8,5 +8,6 @@
"title" : "Contacts",
"icon" : "icon.png",
"removable" : false,
"requiredPermissions": ["applications.internal", "applications", "activities.manage", "devices", "settings", "settings.read", "services", "database", "database.internal", "filecache", "system", "networking", "networking.internal"]
"trustLevel" : "trusted",
"requiredPermissions": ["accountsservice.management", "accountsservice.operation", "application.launcher", "activity.operation", "contactslinker-service.operation", "contacts-service.operation", "database.management", "database.operation", "settings.read", "tempdatabase.management", "tempdatabase.operation"]
}
+2 -1
View File
@@ -50,5 +50,6 @@
}
}
},
"requiredPermissions": ["applications.internal", "applications", "activities.manage", "devices", "settings", "settings.read", "services", "database", "database.internal", "filecache", "system", "networking", "networking.internal"]
"trustLevel": "trusted",
"requiredPermissions": ["accountsservice.management", "accountsservice.operation", "activity.operation", "application.launcher", "application.operation", "database.operation", "filecache.operation", "filecache.management", "luna-sysmgr.operation", "mojomail-imap.operation", "mojomail-pop.operation", "mojomail-smtp.operation", "networkconnection.query", "settings.read", "systemsettings.query", "tempdatabase.operation"]
}
File diff suppressed because it is too large. Load diff
+91
View File
@@ -0,0 +1,91 @@
/* Copyright 2011 Palm, Inc. All rights reserved. */
enyo.kind({
name: "AccountServicesService",
kind: "PalmService",
service: "palm://com.palm.accountservices/"
});
enyo.kind({
name: "DeviceProfileService",
kind: "PalmService",
service: "palm://com.palm.deviceprofile/"
});
enyo.kind({
name: "ConManService",
kind: "PalmService",
service: "palm://com.palm.connectionmanager/"
});
enyo.kind({
name: "DisplayService",
kind: "PalmService",
service: "palm://com.palm.display/control/"
});
enyo.kind({
name: "SystemService",
kind: "PalmService",
service: "palm://com.palm.systemservice/"
});
enyo.kind({
name: "CustomizationService",
kind: "PalmService",
service: "palm://com.palm.service.customization/"
});
enyo.kind({
name: "LocationService",
kind: "PalmService",
service: "palm://com.palm.location/"
});
enyo.kind({
name: "PowerService",
kind: "PalmService",
service: "palm://com.palm.power/shutdown/"
});
enyo.kind({
name: "CollectLogService",
kind: "PalmService",
service: "palm://com.palm.logctld/"
});
enyo.kind({
name: "BusService",
kind: "PalmService",
service: "palm://com.palm.bus/signal/"
});
enyo.kind({
name: "AccountsService",
kind: "PalmService",
service: "palm://com.palm.service.accounts/"
});
enyo.kind({
name: "UpdateService",
kind: "PalmService",
service: "palm://com.palm.update/"
});
enyo.kind({
name: "WiFiService",
kind: "PalmService",
service: "palm://com.palm.wifi/"
});
enyo.kind({
name: "SystemPropertiesService",
kind: "PalmService",
service: "palm://com.palm.preferences/systemProperties/"
});
enyo.kind({
name: "TelephonyService",
kind: "PalmService",
service: "palm://com.palm.telephony/"
});
+13
View File
@@ -0,0 +1,13 @@
{
"id": "com.palm.app.firstuse",
"version": "3.0.0",
"vendor": "HP",
"type": "web",
"main": "index.html",
"title": "HP webOS",
"icon": "images/icon.png",
"visible": false,
"uiRevision": 2,
"trustLevel": "trusted",
"requiredPermissions": ["accountsservice.management", "accountsservice.operation", "activity.operation", "application.launcher", "application.operation", "database.operation", "filecache.operation", "filecache.management", "luna-sysmgr.operation", "networkconnection.query", "settings.read", "systemsettings.query", "tempdatabase.operation"]
}
+9
View File
@@ -0,0 +1,9 @@
FirstUse.config = [
{name: "language", requires:{data: false}},
{name: "palm", requires:{data: true}},
{name: "signin", requires:{data: true}},
{name: "restoreComponent", requires:{data:true}},
{name: "google", requires:{data: false}},
{name: "namedevice", requires:{data: true}},
{name: "updates", requires:{data: true}},
];
+377
View File
@@ -0,0 +1,377 @@
body, html {
margin: 0;
padding: 0;
height: 100%;
position:relative;
}
body, input, button {
font-family: Prelude Medium, Segoe UI, Arial, Verdana, Helvetica;
}
body {
background:#26427a url(../images/bg_body_p.png) no-repeat 50% 50%;
color:rgba(255,255,255,1);
background-size:100%;
}
.contentDefaults {
text-align: left;
width: 504px;
}
.contentDefaults2 {
text-align: left;
width: 550px;
}
.header-bar-image {
padding: 0 10px 0 5px;
display: inline;
}
.account-info {
height: 100px;
}
.payment-method-image {
display: inline;
position: absolute;
top:5px;
right:5px;
}
.security-code-image {
display: inline;
position: absolute;
top:5px;
right:5px;
margin: 10px;
}
.languages .enyo-drawer-container,
.languages .enyo-item {
background-image:url(../images/bg_language_item.png);
background-repeat:no-repeat;
background-position:0 0;
border:0;
line-height:67px;
text-align:center;
padding:1px 0 0 0;
width:267px;
font-size:30px;
}
.languages .enyo-drawer-container.enyo-first {
background-position:0 -3px;
}
.languages .enyo-item {
color:rgba(255,255,255,1);
}
.languages.open {
color:rgba(255,255,255,0.5);
}
.language-btns .enyo-button .enyo-button-icon {
margin-bottom:-8px;
}
.login {
padding:0 0 50px;
}
.login .box {
width:500px;
}
.login .subtitle {
margin:0 50px 18px;
}
.terms {
padding:0 37px 50px;
line-height:1.25em;
font-size:14px;
}
.terms .section {
width:694px;
margin:0 auto;
}
.terms .box a.table-of-contents {
color:#b8ccf7;
}
.title {
font-size:24px;
text-align:center;
margin:50px 0 24px;
}
.subtitle {
font-size: 20px;
margin:0 20px 18px;
}
.popup {
color:#555;
}
.popup .enyo-button {
height:1.3em;
line-height:1.3em
}
.popup .enyo-button .enyo-activitybutton-spinner {
margin: -3px 0px;
}
.popup .enyo-text-body {
font-size:18px;
padding:0 0 15px 0;
}
.popup .enyo-text-body ul {
padding-left:20px ;
}
.popup .enyo-text-body li {
padding: 5px 0 0 0;
}
.popup .field {
min-height:42px;
height:42px;
}
.popup .message {
color:#d70000;
}
.box {
border-radius:12px;
-webkit-border-image: url(../images/bg_box.png) 12 repeat;
-webkit-box-sizing:border-box;
margin:0 0 15px 0;
padding:10px 10px 5px;
border-width:12px;
}
.box .header {
padding:10px 10px 0;
margin:0 -10px;
}
.box .footer {
border-top:1px solid #d8d8d8;
padding:10px 10px 0;
margin:0 -10px;
}
.form-row {
margin:0 0 20px 0;
width:100%;
}
.label {
font-size:20px;
line-height:1em;
margin:0 0 4px 2px;
}
.field {
background:transparent;
-webkit-border-image: url(../images/bg_field.png) 10 repeat;
border-width:10px;
width:100%;
height:48px;
min-height:48px;
}
.field .enyo-fancy-input-inner {
padding:0;
margin:0;
}
.field .enyo-fancy-input-input,
.field .enyo-input-input {
line-height:30px;
}
.form-row .enyo-menucheckitem-caption {
color:#fff;
}
.enyo-popup .enyo-menuitem {
color:#333;
}
.enyo-appmenu .enyo-menuitem {
color: #fff;
}
.enyo-appmenu {
left: 0px;
}
.enyo-popupmenucheckitem-caption {
line-height:30px;
}
.devices {
width:500px;
}
.devices .box {
margin:0 0 20px 0;
padding: 0;
}
.devices .list {
border-radius:10px;
margin:-10px
}
.devices .list .enyo-item {
height:120px;
font-size:16px;
border-top:1px solid;
border-top-color:rgba(255,255,255,0.05);
border-bottom-color:rgba(0,0,0,0.4);
padding:0 16px 0 32px;
color:#b8ccf7;
}
.devices .list .enyo-item.first {
border-top:0;
border-radius:7px 7px 0 0;
}
.devices .list .enyo-item.last {
border-bottom:0;
border-radius:0 0 7px 7px;
}
.devices .list .enyo-item.first.last {
border-radius:7px;
}
.devices .list .enyo-item.selected {
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(96,154,204,0.8)), to(rgba(60,123,175,0.8)));
background-color:rgba(47,110,169,0.4)
}
.devices .list .enyo-item .name {
color:rgba(255,255,255,0.9);
font-size:20px;
margin:0 0 6px
}
.devices .list .enyo-item .image {
width:120px;
}
/* buttons */
.link-button {
text-decoration:underline;
color:#b8ccf7;
font-size:16px;
}
.enyo-button {
height:32px;
font-size:20px;
line-height:1.6em;
text-transform:none;
margin:0 0 5px;
}
.wifi-activity-button {
min-height:42px;
-webkit-box-pack:center;
}
.enyo-button.enyo-button-disabled {
color:rgba(255,255,255,0.4);
}
/* CUSTOM CSS */
.enyo-button.restart {
width:130px;
bottom:5px;
left:5px;
background:none;
height:36px;
position:fixed;
border-width:0;
text-transform:uppercase;
font-size:14px;
color:rgba(255,255,255,0.9);
}
.enyo-button.restart .enyo-button-icon {
float:left;
}
.enyo-button.restart.enyo-button-down {
color:#fff;
}
.enyo-button.restart.enyo-button-down .enyo-button-icon {
background-position:0 -32px;
}
.enyo-scrim {
opacity: 0.7;
}
.scrollable {
-webkit-border-image: url(../images/bg_field.png) 10 7 10 7 stretch stretch;
border-width: 10px 7px;
margin: 0px;
overflow:hidden;
}
.scrollable .scrollable-inner {
margin:-5px -7px;
}
.scrollable .enyo-pane {
margin:-5px -7px;
}
.scrollable .enyo-group.labeled {
border-width:0
}
.secure-icon {
background-image: url(../images/secure-icon.png);
}
.wifi-icon-low {
background-image: url(../images/wifi-icon-low.png);
}
.wifi-icon-average {
background-image: url(../images/wifi-icon-average.png);
}
.wifi-icon-excellent {
background-image: url(../images/wifi-icon-excellent.png);
}
.wifi-Secure {
margin: 0px 5px 0px 0px;
}
.wifi-Strength {
margin: 4px 10px 0px 0px;
}
.wifi-list .enyo-group-label {
display:none;
}
.scrollable .enyo-group-inner {
margin:0;
}
.scrollable .enyo-group-inner {
}
.fu-wifi .wifi-list {
margin:-5px 0;
}
.fu-wifi .wifi-list .wifi-item-name {
overflow:hidden;
width:100%;
text-overflow:ellipsis;
white-space:nowrap;
line-height:30px;
}
.wifi-itemName {
padding: 2px 10px 0px 10px;
vertical-align: middle;
line-height: 18px;
margin-top: 5px;
}
.wifi-Join {
padding: 4px 0px 0px 10px;
margin-top: 3px;
}
/* errors */
.message {
color: #fbcf70;
line-height:25px;
font-weight:bold;
background:url(../images/bg_message.png) no-repeat 0 0;
font-size: 14px;
padding:0 0 0 30px;
margin:0 0 20px 0;
}
.form-row .message {
margin:10px 0 0 0;
}
.restore .box {
width:500px;
}
.errorcode, .errorcode2 {
color:rgba(255,255,255,0.4);
font-size: 14px;
margin-top:30px;
}
.errorcode2 {
margin-top:10px; /*smaller margin top*/
}
.errorcode3 {
color:blue;
margin-top:0px; /*smaller margin top*/
margin-bottom:15px; /*smaller margin top*/
font-size: 10pt;
}
.deviceinfo-textvalues {
color: black;
text-align: right;
text-transform: none;
}
.deviceinfo-nudidText {
color: black;
font-family: monospace;
font-size: 12pt;
padding-top: 2px;
text-align: left;
font-family: monospace;
}
+43
View File
@@ -0,0 +1,43 @@
/* CSS for ChooseBackupPage and RestoringPage */
/*
.restore-page {
margin: 18px 18px 18px 18px;
width: 500px;
}
.restore-pageTitle {
font-size: 24px;
margin-bottom: 18px;
text-align: center;
}
.restore-pageText {
margin-bottom: 18px;
}
*/
.restore-deviceList {
margin-bottom: 18px;
border: 1px solid silver;
}
.restore-deviceItem {
padding: 6px 12px 6px 12px;
}
.restore-deviceName {
font-size: larger;
font-weight: bold;
}
.restore-backupDate {
color: gray;
font-size: smaller;
}
.restore-deviceImage {
width: 104px;
}
.box-center {
width:480px;
margin:23px 0px 0px 0px auto 0;
}
+35
View File
@@ -0,0 +1,35 @@
enyo.depends(
"css/Firstuse.css",
"css/Restore.css",
"$enyo/g11n/name/",
"$enyo/g11n/phone/",
"FirstUse.js",
"config.js",
"Service.js",
"source/language/Language.js",
"source/tnc/Palm.js",
"source/tnc/Google.js",
"source/signin/Signin.js",
"source/signin/Namedevice.js",
"source/signin/PostSignIn.js",
"source/signin/StartOver.js",
"source/signin/SpinnerOverlay.js",
"source/wifi/SimCheck.js",
"source/DeviceInfoDialog.js",
"source/restore/ChooseBackupPage.js",
"source/restore/RestoreComponent.js",
"source/restore/RestoreService.js",
"source/restore/RestoringPage.js",
"source/updates/Updates.js",
"source/power/Power.js",
'$enyo-lib/telephony/',
'$enyo-lib/wifi/',
"$enyo-lib/captiveportal/"
);
@@ -0,0 +1,3 @@
{
"logLevel": 99
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 955 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 729 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 912 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1013 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 B

+13
View File
@@ -0,0 +1,13 @@
<!doctype html>
<html>
<head>
<title>Enyo FirstUse</title>
<script src="/usr/palm/frameworks/mojoloader.js" type="text/javascript"></script>
<script src="/usr/palm/frameworks/enyo/0.10/framework/enyo.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
enyo.create({kind: "FirstUse"}).renderInto(document.body);
</script>
</body>
</html>
+154
View File
@@ -0,0 +1,154 @@
{
"1#1 day ago|1>##{num} days ago": "Vor 1#1 Tag|Vor 1>##{num} Tagen",
"1#1 hour ago|1>##{num} hours ago": "Vor 1#1 Stunde|Vor 1>##{num} Stunden",
"About webOS Account": "Über webOS-Konto",
"Accept": "Annehmen",
"Allow Google's location service to collect anonymous and aggregate location data. Collection will occur regardless of whether any applications are active.": "Erfassung anonymer und aggregierter Standortdaten durch Google zulassen. Erfassung erfolgt unabhängig davon, ob Anwendungen aktiv sind.",
"An HP webOS Account is key to access critical HP services.": "Zum Zugriff auf wichtige HP Services ist ein HP webOS-Konto erforderlich.",
"An HP webOS account (previously Palm Profile) is required to activate your device. In addition, your webOS account also gives you:<ul><li>A free account for storing data in Contacts and Calendar</li><li>Backup and restore of personal data and applications downloaded from App Catalog</li><li>Device software updates</li></ul></p>": "Zur Aktivierung Ihres Geräts ist ein webOS-Konto (zuvor Palm-Profil) erforderlich. Ein webOS-Konto bietet außerdem folgende Vorteile:<ul><li>Kostenloses Konto zum Speichern von Daten in den Kontakten und im Kalender</li><li>Sichern und Wiederherstellen von persönlichen Daten und Anwendungen, die aus dem App Catalog heruntergeladen wurden</li><li>Aktualisierungen für die Gerätesoftware</li></ul></p>",
"An error occurred while restoring your data. Please try again in a few minutes.": "Beim Wiederherstellen Ihrer Daten ist ein Fehler aufgetreten. Bitte versuchen Sie es in einigen Minuten erneut.",
"Answer": "Antwort",
"Answer is incorrect. Try again.": "Antwort nicht richtig. Versuchen Sie es erneut.",
"Answer your security question to recover your password.": "Beantworten Sie Ihre Sicherheitsfrage, um Ihr Kennwort abzurufen.",
"Applications Only": "Nur Anwendungen",
"Auto Locate": "Automatische Ortung",
"Backed up ": "Gesichert ",
"Cancel": "Abbrechen",
"Cannot Restore": "Wiederherstellung nicht möglich",
"Choose a network": "Netzwerk auswählen",
"Close": "Schließen",
"Collect Logs": "Protokolle sammeln",
"Collect logs": "Protokolle sammeln",
"Confirm": "Bestätigen",
"Confirm Email": "E-Mail bestätigen",
"Confirm Password": "Kennwort bestätigen",
"Continue": "Weiter",
"Copy Everything": "Alles kopieren",
"Create": "Erstellen ",
"Create New Account": "Neues Konto erstellen",
"Create a new password for your webOS account.": "Erstellen Sie ein neues Kennwort für Ihr webOS-Konto.",
"Create a unique name for your device. This will help you if you ever need to identify it in a list.": "Geben Sie einen eindeutigen Namen für Ihr Gerät ein, damit Sie dieses in einer Liste leicht identifizieren können.",
"Create a webOS Account": "webOS-Konto erstellen",
"Creating log Dump #{filename}.ssl.tar in /media/internal/logs <p> This can take 10-20 seconds": "Erzeuge Protokoll-Speicherauszug #{filename}.ssl.tar in /media/internal/logs <p> Dieser Vorgang kann 10-20 Sekunden dauern",
"Decline": "Ablehnen",
"Device ID": "Geräte-ID",
"Device Info": "Geräteinfos",
"Device Information": "Geräteinformationen",
"Device Model": "Gerätemodell",
"Device name is limited to 256 characters. Shorten name and try again.": "Der Gerätename ist auf 256 Zeichen beschränkt. Kürzen Sie den Namen und versuchen Sie es erneut.",
"Diagnostics": "Diagnose",
"Do you accept?": "Stimmen Sie zu?",
"Done": "Fertig",
"Email": "E-Mail",
"Email addresses do not match.": "E-Mail-Adressen stimmen nicht überein.",
"Email must be less than 100 characters.": "Die E-Mail muss weniger als 100 Zeichen aufweisen.",
"Error Restoring Data": "Fehler beim Wiederherstellen von Daten",
"Existing webOS Account": "Vorhandenes webOS-Konto",
"Find Network": "Netzwerk suchen",
"Finish Setup": "Einrichtung fertig stellen",
"First and Last Name": "Vor- und Nachname",
"Follow the link in that email to reset your password.": "Folgen Sie dem Link in dieser E-Mail, um Ihr Kennwort zurückzusetzen.",
"Forgot Answer": "Antwort vergessen",
"Forgot Email or Password?": "E-Mail oder Kennwort vergessen?",
"Forgot Email?": "E-Mail vergessen?",
"Forgot Password": "Kennwort vergessen",
"Forgot Password?": "Kennwort vergessen?",
"Google Terms & Conditions": "Google – Allgemeine Geschäftsbedingungen (AGB)",
"HP Terms & Conditions": "HP – Allgemeine Geschäftsbedingungen (AGB)",
"HP webOS Account": "HP webOS-Konto",
"Handset": "Hörer",
"Hardware Version": "Hardwareversion",
"Help": "Hilfe",
"I accept the terms and conditions": "Ich stimme den allgemeinen Geschäftsbedingungen zu",
"If you already have a webOS account (previously Palm Profile), you can sign in now.": "Wenn Sie bereits ein webOS-Konto (zuvor Palm-Profil) haben, können Sie sich jetzt anmelden.",
"If you decline Google's Terms of Service, your device will be unable to determine your current location. To enable this feature in the future, go to the Location Services preference.": "Wenn Sie den Nutzungsbedingungen für Google nicht zustimmen, kann Ihr Gerät Ihre aktuelle Position nicht genau bestimmen. In den Einstellungen für die Standortbas. Dienste können Sie diese Funktion später wahlweise aktivieren.",
"If you're unable to reset your password, visit http://hpwebos.com/support for more help.": "Wenn Sie Ihr Kennwort nicht zurücksetzen können, gehen Sie zu http://hpwebos.com/support. Dort finden Sie Hilfeinformationen.",
"If you've ever owned an HP or Palm webOS phone or TouchPad, tap Sign In. Otherwise, create a new account.": "Wenn Sie schon einmal ein HP oder Palm webOS-Telefon oder TouchPad besessen haben, tippen Sie auf „Anmelden“. Andernfalls erstellen Sie ein neues Konto.",
"In order to use this device, you must accept the Terms. If you choose not to accept the Terms, you may return this device within the return period of the HP authorized distributor where you purchased this device for a refund subject to the applicable return policy.": "Sie müssen der AGB zustimmen, um dieses Gerät nutzen zu können. Wenn Sie die AGB nicht annehmen, können Sie dieses Gerät innerhalb des Rückgabezeitraums des autorisierten HP Händlers zurückgeben, bei dem Sie das Gerät gekauft haben; es gelten die Rückgabe- und Erstattungsrichtlinien des jeweiligen Händlers.",
"Invalid Email Address": "Ungültige E-Mail-Adresse",
"Less than an hour ago": "Vor weniger als 1 Stunde",
"Let's get started": "Erste Schritte",
"MAC Address": "MAC-Adresse",
"MEP Locked": "MEP-gesperrt",
"Making progress": "In Bearbeitung",
"Message": "Nachricht",
"Message From #{smsPhoneNumber}": "Nachricht von #{smsPhoneNumber}",
"Name Your Device:": "Benennen Sie Ihr Gerät:",
"Name must be less than 50 characters.": "Der Name muss weniger als 50 Zeichen aufweisen.",
"Name your device": "Benennen Sie Ihr Gerät",
"Ndu ID": "NDU-ID",
"New Password": "Neues Kennwort",
"Next": "Weiter",
"No": "Nein",
"No Update Available": "Kein Update verfügbar",
"No Wi-Fi Connection": "Keine WLAN-Verbindung",
"Off": "Aus",
"On": "Ein",
"PIN is Incorrect": "PIN ist nicht richtig",
"PUK Locked": "PUK-gesperrt",
"Password": "Kennwort",
"Password must be 6-20 characters.": "Kennwort muss 6 bis 20 Zeichen lang sein.",
"Passwords do not match.": "Die Kennwörter stimmen nicht überein.",
"Phone": "Telefon",
"Please answer the security question.": "Beantworten Sie die Sicherheitsfrage.",
"Please enter a name for your device.": "Geben Sie einen Namen für Ihr Gerät ein.",
"Please enter a valid email address.": "Geben Sie eine gültige E-Mail-Adresse ein.",
"Please enter the email address you used to create your webOS account (previously Palm Profile).": "Geben Sie die E-Mail-Adresse ein, mit der Sie Ihr webOS-Konto (zuvor Palm-Profil) erstellt haben.",
"Please enter your name.": "Geben Sie Ihren Namen ein.",
"Please visit http://hpwebos.com/support to help resolve this problem": "Wenden Sie sich zur Behebung des Problems an http://hpwebos.com/support",
"Power off device?": "Gerät ausschalten?",
"Problem Locating Backups": "Problem beim Suchen von Sicherungen",
"Product Number": "Produktnummer",
"Recover Password": "Kennwort abrufen",
"Security Question": "Sicherheitsfrage",
"Security Question:": "Sicherheitsfrage:",
"Security answer must be less than 50 characters.": "Die Sicherheitsantwort muss weniger als 50 Zeichen aufweisen.",
"Select a device in the list. You can copy your applications, accounts, data and settings to your TouchPad or just the applications.": "Wählen Sie ein Gerät in der Liste aus. Sie können Ihre Anwendungen, Konten, Daten und Einstellungen oder nur die Anwendungen auf Ihr TouchPad kopieren.",
"Serial Number": "Seriennummer",
"Server Error": "Serverfehler",
"Setup Options": "Setupoptionen",
"Sign In": "Anmelden",
"Sign in to your HP webOS Account or Palm Profile to copy your applications, accounts and data to your TouchPad.": "Melden Sie sich bei Ihrem HP webOS-Konto oder Palm-Profil an, um Ihre Anwendungen, Konten und Daten auf Ihr TouchPad zu kopieren.",
"Software Update": "Softwareaktualisierung",
"Software Update In Progress": "Softwareaktualisierung läuft",
"Start Over": "Neu starten",
"Thanks!": "Danke!",
"The United States Government prohibits HP from allowing you to use this email address to set up a webOS account.": "Die US-Bundesregierung untersagt HP, Ihnen die Nutzung dieser E-Mail-Adresse zur Einrichtung eines webOS-Kontos zu gestatten.",
"The United States Government restricts exports to certain countries, including the country where your email address domain is issued. You can visit www.palm.com/us/company/legal for additional information.": "Die US-Bundesregierung beschränkt Ausfuhren in bestimmte Länder, einschließlich des Landes, in dem sich die Domäne Ihrer E-Mail-Adresse befindet. Weitere Informationen finden Sie unter palm.com/de/de/company/legal.",
"The current SIM cannot be used in this device. To continue setup, insert a valid SIM with active data service from #{carrier} or use Wi-Fi instead": "Die aktuelle SIM-Karte kann in diesem Gerät nicht verwendet werden. Um das Setup fortzusetzen, setzen Sie eine gültige SIM-Karte mit aktivem Datendienst von #{carrier} ein oder verwenden Sie stattdessen WLAN.",
"The current SIM cannot be used in this device. To continue setup, insert a valid SIM with active data service from your carrier or use Wi-Fi instead.": "Die aktuelle SIM-Karte kann in diesem Gerät nicht verwendet werden. Um das Setup fortzusetzen, setzen Sie eine gültige SIM-Karte mit aktivem Datendienst von Ihrem Mobilfunkanbieter ein oder verwenden Sie stattdessen WLAN.",
"The password you entered is incorrect. Try again.": "Das eingegebene Kennwort ist nicht richtig. Versuchen Sie es erneut.",
"There is already an account associated with that email address. Please sign in now or choose a new email address": "Dieser E-Mail-Adresse ist bereits ein Konto zugeordnet. Melden Sie sich jetzt an oder wählen Sie eine neue E-Mail-Adresse aus",
"This device's software must be updated to restore data from #{deviceName}. However, the updated software is not yet available. Please choose a different device to restore from.": "Die Software dieses Geräts muss aktualisiert werden, damit Daten aus #{deviceName} wiederhergestellt werden können. Die aktualisierte Software ist jedoch noch nicht verfügbar. Wählen Sie ein anderes Gerät als Wiederherstellungsquelle aus.",
"Try Again": "Versuchen Sie es erneut.",
"Turn Off": "Ausschalten",
"Use Wi-Fi": "WLAN verwenden",
"Verify Password": "Kennwort bestätigen",
"Visit http://hpwebos.com/support for assistance.": "Unter http://hpwebos.com/support erhalten Sie Unterstützung.",
"We are copying your data and applications to your TouchPad. This may take a few minutes.": "Wir kopieren Ihre Daten und Anwendungen auf Ihr TouchPad. Dieser Vorgang kann einige Minuten dauern.",
"We are unable to create a new account right now. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "Wir können im Moment kein neues Konto erstellen. Bitte versuchen Sie es in einigen Minuten erneut oder kontaktieren Sie HP, um das Problem zu beheben. Weitere Informationen finden Sie unter http://hpwebos.com/support.",
"We are unable to create an account for you. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "Wir können für Sie kein Konto erstellen. Bitte versuchen Sie es in einigen Minuten erneut oder kontaktieren Sie HP, um das Problem zu beheben. Weitere Informationen finden Sie unter http://hpwebos.com/support.",
"We cannot restore your backup data. If you continue, we will sign into your account and your applications (but not data) will be restored to this device.": "Ihre Sicherungsdaten können nicht wiederhergestellt werden. Wenn Sie fortfahren, werden Sie bei Ihrem Konto angemeldet und Ihre Anwendungen (jedoch keine Daten) werden auf diesem Gerät wiederhergestellt.",
"We couldn't find a webOS account associated with that email address.": "Es wurde kein mit dieser E-Mail-Adresse verknüpftes webOS-Konto gefunden.",
"We sent an email to #{email}. If you don't receive the email shortly check your junk email folder.": "Es wurde eine E-Mail an #{email} gesendet. Wenn Sie diese E-Mail-Nachricht nicht in Kürze erhalten, sehen Sie in Ihrem Spamordner nach.",
"We tried to send an email to #{email} but it failed. Please contact HP support.": "Es wurde erfolglos versucht, eine E-Mail an #{email} zu senden. Wenden Sie sich an den HP Support.",
"We were unable to sign you in. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "Sie konnten nicht angemeldet werden. Bitte wenden Sie sich an Palm, um Unterstützung beim Beheben dieses Problems zu erhalten. Weitere Informationen finden Sie unter http://hpwebos.com/support.",
"We're almost done. When we finish, we'll restart your device and you'll be ready to go.": "Wir sind fast fertig. Sobald wir fertig sind, starten wir Ihr Gerät neu und Sie können loslegen.",
"WebOS Build": "WebOS-Build",
"WebOS Version": "WebOS-Version",
"What do you want to copy?": "Was möchten Sie kopieren?",
"What is the name of your favorite animal?": "Wie heißt Ihr Lieblingstier?",
"What's a webOS Account?": "Was ist ein webOS-Konto?",
"Why do I need an account?": "Warum benötige ich ein Konto?",
"Wi-Fi Setup": "WLAN-Einrichtung",
"Would you like to start over from the beginning?": "Möchten Sie die neu starten?",
"Yes": "Ja",
"You have entered the PIN incorrectly twice. To avoid locking your SIM, you should use Wi-Fi now.": "Sie haben zwei Mal die falsche PIN eingegeben. Verwenden Sie jetzt WLAN, damit Ihre SIM nicht gesperrt wird.",
"You may return your device where you purchased it in accordance with the applicable return poilicy.": "Sie können Ihr Handy gemäß den geltenden Rückgabevorschriften in das Geschäft zurückbringen, in dem Sie es gekauft haben.",
"You need a network to setup your device.": "Sie benötigen ein Netzwerk, um das Gerät einzurichten.",
"You need an HP webOS account to use this device. Your data, accounts, application download and purchase history will be securely backed up.": "Sie benötigen ein HP webOS-Konto, um dieses Gerät verwenden zu können. Ihre Daten, Konten, Anwendungsdownloads und Ihr Kaufverlauf werden sicher gesichert.",
"You'll be asked for permission when an application wants your location. For your convenience, you may enable Auto Locate, which will automatically provide your location for applications without asking each time. You may change this setting at any time in the Location Services preference.": "Wenn eine Anwendung Ihren Standort ermitteln möchte, werden Sie um Genehmigung gebeten. Sie können die automatische Ortung aktivieren, die Anwendungen Ihren aktuellen Standort mitteilt, ohne jedes Mal Ihre Genehmigung anzufordern. Diese Einstellung kann unter \"Standortbasierte Dienste\" geändert werden.",
"Your SIM is PUK locked. Please contact #{carrier} to unlock it. To set up your device, insert a valid SIM with active data service or use Wi-Fi instead.": "Ihre SIM-Karte ist durch PUK gesperrt. Wenden Sie sich zum Entsperren an #{carrier}. Um Ihr Gerät einzurichten, setzen Sie eine gültige SIM-Karte mit aktivem Datendienst ein oder verwenden Sie stattdessen WLAN.",
"Your SIM is PUK locked. Please contact your carrier to unlock it. To set up your device, insert a valid SIM with active data service or use Wi-Fi instead.": "Ihre SIM-Karte ist durch PUK gesperrt. Wenden Sie sich zum Entsperren an Ihren Mobilfunkanbieter. Um Ihr Gerät einzurichten, setzen Sie eine gültige SIM-Karte mit aktivem Datendienst ein oder verwenden Sie stattdessen WLAN.",
"Your device no longer has a Wi-Fi connection. Connect to a new network.": "Ihr Gerät hat keine WLAN-Verbindung mehr. Stellen Sie eine Verbindung zu einem neuen Netz her."
}
@@ -0,0 +1,11 @@
{
"icon": "../../images/icon.png",
"id": "com.palm.app.firstuse",
"main": "../../index.html",
"title": "HP webOS",
"type": "web",
"uiRevision": 2,
"vendor": "HP",
"version": "3.0.0",
"visible": false
}
+8
View File
@@ -0,0 +1,8 @@
{
"In order to use this device, you must accept the Terms. If you choose not to accept the Terms, you may return this device within the return period of the HP authorized distributor where you purchased this device for a refund subject to the applicable return policy.": "In order to use this device, you must accept the Terms. If you choose not to accept the Terms, you may return this device within the return period of the HP authorised distributor where you purchased this device for a refund subject to the applicable return policy.",
"We sent an email to #{email}. If you don't receive the email shortly check your junk email folder.": "We sent an email to #{email}. If you don't receive the email shortly, check your junk email folder.",
"What is the name of your favorite animal?": "What is the name of your favourite animal?",
"Would you like to start over from the beginning?": "Would you like to start again from the beginning?",
"You may return your device where you purchased it in accordance with the applicable return poilicy.": "You may return your device where you purchased it in accordance with the applicable return policy.",
"You need a network to setup your device.": "You need a network to set up your device."
}
@@ -0,0 +1,11 @@
{
"icon": "../../images/icon.png",
"id": "com.palm.app.firstuse",
"main": "../../index.html",
"title": "HP webOS",
"type": "web",
"uiRevision": 2,
"vendor": "HP",
"version": "3.0.0",
"visible": false
}
@@ -0,0 +1,11 @@
{
"icon": "../../../images/icon.png",
"id": "com.palm.app.firstuse",
"main": "../../../index.html",
"title": "HP webOS",
"type": "web",
"uiRevision": 2,
"vendor": "HP",
"version": "3.0.0",
"visible": false
}
@@ -0,0 +1,11 @@
{
"icon": "../../../images/icon.png",
"id": "com.palm.app.firstuse",
"main": "../../../index.html",
"title": "HP webOS",
"type": "web",
"uiRevision": 2,
"vendor": "HP",
"version": "3.0.0",
"visible": false
}
@@ -0,0 +1,25 @@
{
"An error occurred while restoring your data. Please try again in a few minutes.": "An error occurred during restoration of your data. Please try again in a few minutes.",
"Confirm Email": "Confirm E-Mail",
"Email": "E-Mail",
"Email addresses do not match.": "E-mail addresses do not match.",
"Email must be less than 100 characters.": "E-mail must be less than 100 characters.",
"Forgot Email or Password?": "Forgot E-Mail or Password?",
"Forgot Email?": "Forgot E-Mail?",
"I accept the terms and conditions": "I accept the Terms and Conditions",
"In order to use this device, you must accept the Terms. If you choose not to accept the Terms, you may return this device within the return period of the HP authorized distributor where you purchased this device for a refund subject to the applicable return policy.": "In order to use this device, you must accept the Terms. If you choose not to accept the Terms, you may return this device within the return period of the HP authorized distributor where you purchased this device for a refund subject to the applicable return policy.",
"Invalid Email Address": "Invalid E-Mail Address",
"Password must be 6-20 characters.": "Password must be 6 to 20 characters.",
"Please enter a valid email address.": "Please enter a valid e-mail address.",
"Please enter the email address you used to create your webOS account (previously Palm Profile).": "Please enter the e-mail address you used to create your webOS account (previously Palm Profile).",
"The United States Government prohibits HP from allowing you to use this email address to set up a webOS account.": "The United States Government prohibits HP from allowing you to use this e-mail address to set up a webOS account.",
"The United States Government restricts exports to certain countries, including the country where your email address domain is issued. You can visit www.palm.com/us/company/legal for additional information.": "The United States Government restricts exports to certain countries, including the country where your e-mail address domain is issued. You can visit www.palm.com/us/company/legal for additional information.",
"There is already an account associated with that email address. Please sign in now or choose a new email address": "There is already an account associated with that e-mail address. Please sign in now, or choose a new e-mail address",
"We are unable to create a new account right now. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "We are unable to create a new account right now. Please try again in a few minutes, or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.",
"We cannot restore your backup data. If you continue, we will sign into your account and your applications (but not data) will be restored to this device.": "We cannot restore your backup data. If you continue, we will sign in to your account, and your applications (but not data) will be restored to this device.",
"We couldn't find a webOS account associated with that email address.": "We couldn't find a webOS account associated with that e-mail address.",
"We sent an email to #{email}. If you don't receive the email shortly check your junk email folder.": "We sent an e-mail to #{email}. If you don't receive the e-mail shortly, check your junk e-mail folder.",
"We tried to send an email to #{email} but it failed. Please contact HP support.": "We tried to send an e-mail to #{email} but it failed. Please contact HP support.",
"Would you like to start over from the beginning?": "Would you like to start over from the beginning?",
"You may return your device where you purchased it in accordance with the applicable return poilicy.": "You may return your device where you purchased it in accordance with the applicable return poilicy."
}
+154
View File
@@ -0,0 +1,154 @@
{
"#{language}, #{country}?": "¿#{language}, #{country}?",
"1#1 day ago|1>##{num} days ago": "Hace 1#1 día|Hace 1>##{num} días",
"1#1 hour ago|1>##{num} hours ago": "Hace 1#1 hora|Hace 1>##{num} horas",
"About webOS Account": "Acerca de la cuenta de webOS",
"Accept": "Aceptar",
"Allow Google's location service to collect anonymous and aggregate location data. Collection will occur regardless of whether any applications are active.": "Permitir que el servicio de ubicación de Google recopile datos de ubicación anónimos y agregados. Se hará la recopilación sin importar si las aplic. están activas.",
"An HP webOS Account is key to access critical HP services.": "Necesitas una cuenta de HP webOS para acceder a servicios críticos de HP.",
"An HP webOS account (previously Palm Profile) is required to activate your device. In addition, your webOS account also gives you:<ul><li>A free account for storing data in Contacts and Calendar</li><li>Backup and restore of personal data and applications downloaded from App Catalog</li><li>Device software updates</li></ul></p>": "Debes disponer de una cuenta de HP webOS (anteriormente perfil de Palm) para activar tu dispositivo. Además, tu cuenta de webOS te ofrece:<ul><li>Una cuenta gratuita para almacenar información en Contactos y Calendario</li><li>Copia de seguridad y restauración de tu información personal y de las aplicaciones descargadas a través de App Catalog</li><li>Actualizaciones del software del dispositivo</li></ul></p>",
"An error occurred while restoring your data. Please try again in a few minutes.": "Ocurrió un error al restaurar tus datos. Vuelve a intentar en unos minutos.",
"Answer": "Respuesta",
"Answer is incorrect. Try again.": "La respuesta es incorrecta. Inténtalo de nuevo",
"Answer your security question to recover your password.": "Responde la pregunta de seguridad para recuperar tu contraseña.",
"Applications Only": "Sólo aplicaciones",
"Auto Locate": "Ubicación automática",
"Backed up ": "Copia de seguridad realizada",
"Cancel": "Cancelar",
"Cannot Restore": "No se puede restaurar",
"Choose a network": "Elige una red",
"Close": "Cerrar",
"Collect Logs": "Recopilar registros",
"Collect logs": "Recopilar registros",
"Confirm": "Confirmar",
"Confirm Email": "Confirma la dirección de correo electrónico",
"Confirm Password": "Confirma la contraseña",
"Continue": "Continuar",
"Copy Everything": "Copiar todo",
"Create": "Crear",
"Create New Account": "Crear cuenta nueva",
"Create a new password for your webOS account.": "Crea una contraseña nueva para tu cuenta de webOS.",
"Create a unique name for your device. This will help you if you ever need to identify it in a list.": "Crea un nombre exclusivo para tu dispositivo. Esto te ayudará si alguna vez necesitas identificarlo en una lista.",
"Create a webOS Account": "Crear una cuenta de webOS",
"Creating log Dump #{filename}.ssl.tar in /media/internal/logs <p> This can take 10-20 seconds": "Creando volcado de registro #{filename}.ssl.tar en /media/internal/logs <p> Esto puede durar entre 10 y 20 segundos.",
"Decline": "Rechazar",
"Device ID": "ID del dispositivo",
"Device Info": "Información del dispositivo",
"Device Information": "Información del dispositivo",
"Device Model": "Modelo del dispositivo",
"Device name is limited to 256 characters. Shorten name and try again.": "El nombre del dispositivo no puede tener más de 256 caracteres. Acórtalo y vuelve a intentarlo.",
"Diagnostics": "Diagnóstico",
"Do you accept?": "¿Aceptas?",
"Done": "Listo",
"Email": "Correo electrónico",
"Email addresses do not match.": "Las direcciones de correo electrónico no coinciden.",
"Email must be less than 100 characters.": "El correo electrónico debe tener menos de 100 caracteres.",
"Error Restoring Data": "Error al restaurar datos",
"Existing webOS Account": "Cuenta de webOS existente",
"Find Network": "Buscar red",
"Finish Setup": "Finalizar configuración",
"First and Last Name": "Nombre y apellidos",
"Follow the link in that email to reset your password.": "Sigue el enlace en ese correo para restablecer tu contraseña.",
"Forgot Answer": "Olvidé la respuesta",
"Forgot Email or Password?": "¿Olvidaste la dirección de correo electrónico o la contraseña?",
"Forgot Email?": "¿Olvidaste tu dirección de correo electrónico?",
"Forgot Password": "Olvidé mi contraseña",
"Forgot Password?": "¿Olvidé mi contraseña?",
"Google Terms & Conditions": "Términos y condiciones de Google",
"HP Terms & Conditions": "Términos y condiciones de HP",
"HP webOS Account": "Cuenta de HP webOS",
"Handset": "Auricular",
"Hardware Version": "Versión de hardware",
"Help": "Ayuda",
"I accept the terms and conditions": "Acepto los términos y condiciones",
"If you already have a webOS account (previously Palm Profile), you can sign in now.": "Si ya tienes una cuenta de webOS (anteriormente perfil de Palm), puedes iniciar sesión ahora.",
"If you decline Google's Terms of Service, your device will be unable to determine your current location. To enable this feature in the future, go to the Location Services preference.": "Si no aceptas las Condiciones de servicio de Google, tu dispositivo no podrá determinar tu ubicación actual. Para habilitar esta función en el futuro, accede a la preferencia de Servicios de ubicación.",
"If you're unable to reset your password, visit http://hpwebos.com/support for more help.": "Si necesitas ayuda para restablecer tu contraseña, visita http://hpwebos.com/support.",
"If you've ever owned an HP or Palm webOS phone or TouchPad, tap Sign In. Otherwise, create a new account.": "Si has tenido alguna vez un teléfono o TouchPad de HP o Palm webOS, toca la opción Iniciar sesión. De lo contrario, crea una cuenta nueva.",
"In order to use this device, you must accept the Terms. If you choose not to accept the Terms, you may return this device within the return period of the HP authorized distributor where you purchased this device for a refund subject to the applicable return policy.": "Para utilizar este dispositivo debes aceptar los términos. Si decides no aceptarlos, puedes devolver el dispositivo dentro del período de tiempo de devolución al distribuidor autorizado de HP del que lo adquiriste y solicitar la devolución del importe de acuerdo a la política de devoluciones aplicable.",
"Invalid Email Address": "Dirección de correo electrónico no válida",
"Less than an hour ago": "Hace menos de una hora",
"Let's get started": "Empecemos",
"MAC Address": "Dirección MAC",
"MEP Locked": "Protegido por MEP",
"Making progress": "Avanzando",
"Message": "Mensaje",
"Message From #{smsPhoneNumber}": "Mensaje del #{smsPhoneNumber}",
"Name Your Device:": "Asigna un nombre al dispositivo:",
"Name must be less than 50 characters.": "El nombre debe tener menos de 50 caracteres.",
"Name your device": "Asigna un nombre a tu dispositivo",
"Ndu ID": "ID de Ndu",
"New Password": "Contraseña nueva",
"Next": "Siguiente",
"No Update Available": "No hay ninguna actualización disponible.",
"No Wi-Fi Connection": "No hay conexión Wi-Fi",
"Off": "Inactivo",
"On": "Activo",
"PIN is Incorrect": "PIN incorrecto",
"PUK Locked": "Protegida por PUK",
"Password": "Contraseña",
"Password must be 6-20 characters.": "La contraseña debe tener de 6 a 20 caracteres.",
"Passwords do not match.": "Las contraseñas no coinciden.",
"Phone": "Teléfono",
"Please answer the security question.": "Responde a la pregunta de seguridad.",
"Please enter a name for your device.": "Introduce un nombre para el dispositivo.",
"Please enter a valid email address.": "Introduce una dirección de correo electrónico válida.",
"Please enter the email address you used to create your webOS account (previously Palm Profile).": "Introduce la dirección de correo electrónico que utilizaste para crear tu cuenta de webOS (anteriormente perfil de Palm).",
"Please enter your name.": "Introduce tu nombre.",
"Please visit http://hpwebos.com/support to help resolve this problem": "Visita http://hpwebos.com/support si necesitas ayuda para resolver este problema.",
"Power off device?": "¿Apagar el dispositivo?",
"Problem Locating Backups": "Problema al localizar copias de seguridad",
"Product Number": "Número de producto",
"Recover Password": "Recuperar contraseña",
"Security Question": "Pregunta de seguridad",
"Security Question:": "Pregunta de seguridad:",
"Security answer must be less than 50 characters.": "La respuesta de seguridad debe tener menos de 50 caracteres.",
"Select a device in the list. You can copy your applications, accounts, data and settings to your TouchPad or just the applications.": "Selecciona un dispositivo de la lista. Puedes copiar en tu TouchPad tus aplicaciones, tus cuentas, tus datos y tu configuración o sólo tus aplicaciones.",
"Serial Number": "Número de serie",
"Server Error": "Error del servidor",
"Setup Options": "Opciones de configuración",
"Sign In": "Iniciar sesión",
"Sign in to your HP webOS Account or Palm Profile to copy your applications, accounts and data to your TouchPad.": "Inicia sesión en tu cuenta de HP webOS o en tu perfil de Palm para copiar tus aplicaciones, tus cuentas y tus datos en tu TouchPad.",
"Software Update": "Actualización de software",
"Software Update In Progress": "Actualización de software en curso",
"Start Over": "Reiniciar",
"Thanks!": "¡Gracias!",
"The United States Government prohibits HP from allowing you to use this email address to set up a webOS account.": "El gobierno de los Estados Unidos prohíbe que HP te permita usar esta dirección de correo electrónico para configurar una cuenta de webOS.",
"The United States Government restricts exports to certain countries, including the country where your email address domain is issued. You can visit www.palm.com/us/company/legal for additional information.": "El gobierno de los Estados Unidos restringe las exportaciones a ciertos países, incluido el país al que corresponde el dominio de tu dirección de correo electrónico. Para obtener más información legal, visita www.palm.com/us/company/legal.",
"The current SIM cannot be used in this device. To continue setup, insert a valid SIM with active data service from #{carrier} or use Wi-Fi instead": "La tarjeta SIM actual no se puede utilizar en este dispositivo. Para continuar con la configuración, inserta una tarjeta SIM válida con un servicio de datos activo de #{carrier} o utiliza una red Wi-Fi.",
"The current SIM cannot be used in this device. To continue setup, insert a valid SIM with active data service from your carrier or use Wi-Fi instead.": "La tarjeta SIM actual no se puede utilizar en este dispositivo. Para continuar con la configuración, inserta una tarjeta SIM válida con un servicio de datos activo de tu empresa telefónica o utiliza una red Wi-Fi.",
"The password you entered is incorrect. Try again.": "La contraseña que introdujiste es incorrecta. Inténtalo de nuevo",
"There is already an account associated with that email address. Please sign in now or choose a new email address": "Ya hay una cuenta asociada con esa dirección de correo electrónico. Conéctate ahora o elige una nueva dirección de correo electrónico.",
"This device's software must be updated to restore data from #{deviceName}. However, the updated software is not yet available. Please choose a different device to restore from.": "Es necesario actualizar el software de este dispositivo para poder restaurar los datos desde #{deviceName}. Sin embargo, esta actualización de software aún no está disponible. Elige otro dispositivo desde el que realizar la restauración.",
"Try Again": "Intentar de nuevo",
"Turn Off": "Desactivar",
"Use Wi-Fi": "Usar Wi-Fi",
"Verify Password": "Verifica la contraseña",
"Visit http://hpwebos.com/support for assistance.": "Si necesitas ayuda, visita http://hpwebos.com/support.",
"We are copying your data and applications to your TouchPad. This may take a few minutes.": "Se van a copiar tus datos y aplicaciones en tu TouchPad. Esta acción puede durar algunos minutos.",
"We are unable to create a new account right now. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "No es posible crear una nueva cuenta en este momento. Inténtalo de nuevo en unos minutos o contacta con HP si necesitas ayuda para resolver este problema. Visita http://hpwebos.com/support para obtener más información.",
"We are unable to create an account for you. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "No es posible crear tu cuenta. Inténtalo de nuevo en unos minutos o contacta con HP si necesitas ayuda para resolver este problema. Visita http://hpwebos.com/support para obtener más información.",
"We cannot restore your backup data. If you continue, we will sign into your account and your applications (but not data) will be restored to this device.": "No podemos restaurar la copia de seguridad de tus datos. Si continúas, iniciaremos sesión en tu cuenta y restauraremos tus aplicaciones (pero no tus datos) en este dispositivo.",
"We couldn't find a webOS account associated with that email address.": "No se encontró ninguna cuenta de webOS asociada con esa dirección de correo electrónico.",
"We sent an email to #{email}. If you don't receive the email shortly check your junk email folder.": "Hemos enviado un mensaje de correo electrónico a #{email}. Si no recibes el mensaje pronto, revisa tu carpeta de correo publicitario.",
"We tried to send an email to #{email} but it failed. Please contact HP support.": "Hemos intentado enviarte un mensaje a la dirección #{email}, pero se produjo un error. Contacta con el servicio de soporte de HP.",
"We were unable to sign you in. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "No es posible iniciar sesión. Inténtalo de nuevo en unos minutos o contacta con HP si necesitas ayuda para resolver este problema. Visita http://hpwebos.com/support para obtener más información.",
"We're almost done. When we finish, we'll restart your device and you'll be ready to go.": "Ya casi está. Cuando acabemos, reiniciaremos tu dispositivo y todo listo.",
"WebOS Build": "Compilación de WebOS",
"WebOS Version": "Versión de WebOS",
"What do you want to copy?": "¿Qué quieres copiar?",
"What is the name of your favorite animal?": "¿Cuál es el nombre de tu animal favorito?",
"What's a webOS Account?": "¿Qué es una cuenta de webOS?",
"Why do I need an account?": "¿Por qué necesito una cuenta?",
"Wi-Fi Setup": "Configuración Wi-Fi",
"Would you like to start over from the beginning?": "¿Te gustaría empezar de nuevo desde el principio?",
"Yes": "Sí",
"You have entered the PIN incorrectly twice. To avoid locking your SIM, you should use Wi-Fi now.": "Has introducido un PIN incorrecto dos veces. Para evitar que la tarjeta SIM quede bloqueada, utiliza Wi-Fi ahora.",
"You may return your device where you purchased it in accordance with the applicable return poilicy.": "Puedes devolver tu dispositivo al establecimiento en el que lo adquiriste de acuerdo a la política de devoluciones aplicable.",
"You need a network to setup your device.": "Necesitas una red para configurar tu dispositivo.",
"You need an HP webOS account to use this device. Your data, accounts, application download and purchase history will be securely backed up.": "Necesitas una cuenta de HP webOS para utilizar este dispositivo. Se realizará una copia de seguridad de tus datos, tus cuentas, tus aplicaciones y tu historial de compras.",
"You'll be asked for permission when an application wants your location. For your convenience, you may enable Auto Locate, which will automatically provide your location for applications without asking each time. You may change this setting at any time in the Location Services preference.": "Se te pedirá permiso cuando una aplicación quiera tu ubicación. Para tu comodidad, puedes activar Ubicación automática, que proporcionará tu ubicación automáticamente a las aplicaciones sin preguntarte cada vez. Puedes cambiar esta configuración en cualquier momento mediante la preferencia de Servicios de ubicación.",
"Your SIM is PUK locked. Please contact #{carrier} to unlock it. To set up your device, insert a valid SIM with active data service or use Wi-Fi instead.": "Tu tarjeta SIM está protegida por PUK. Contacta con #{carrier} para desbloquearla. Para configurar tu dispositivo, inserta una tarjeta SIM válida con un servicio de datos activo o utiliza una red Wi-Fi.",
"Your SIM is PUK locked. Please contact your carrier to unlock it. To set up your device, insert a valid SIM with active data service or use Wi-Fi instead.": "Tu tarjeta SIM está protegida por PUK. Contacta con tu empresa telefónica para desbloquearla. Para configurar tu dispositivo, inserta una tarjeta SIM válida con un servicio de datos activo o utiliza una red Wi-Fi.",
"Your device no longer has a Wi-Fi connection. Connect to a new network.": "Tu dispositivo ya no dispone de conexión Wi-Fi. Conéctate a una red nueva."
}
@@ -0,0 +1,11 @@
{
"icon": "../../images/icon.png",
"id": "com.palm.app.firstuse",
"main": "../../index.html",
"title": "HP webOS",
"type": "web",
"uiRevision": 2,
"vendor": "HP",
"version": "3.0.0",
"visible": false
}
@@ -0,0 +1,11 @@
{
"icon": "../../../images/icon.png",
"id": "com.palm.app.firstuse",
"main": "../../../index.html",
"title": "HP webOS",
"type": "web",
"uiRevision": 2,
"vendor": "HP",
"version": "3.0.0",
"visible": false
}
@@ -0,0 +1,19 @@
{
"An error occurred while restoring your data. Please try again in a few minutes.": "Se ha producido un error al restaurar tus datos. Inténtalo de nuevo dentro de unos minutos.",
"Choose a network": "Elegir una red",
"Create a unique name for your device. This will help you if you ever need to identify it in a list.": "Crea un nombre único para tu dispositivo. Esto te ayudará en caso de que tengas que identificarlo en una lista.",
"Done": "Aceptar",
"Error Restoring Data": "Error al restaurar los datos",
"Forgot Email or Password?": "¿Has olvidado la dirección de correo electrónico o la contraseña?",
"Name your device": "Asigna un nombre al dispositivo",
"The current SIM cannot be used in this device. To continue setup, insert a valid SIM with active data service from your carrier or use Wi-Fi instead.": "La tarjeta SIM actual no se puede utilizar en este dispositivo. Para continuar con la configuración, inserta una tarjeta SIM válida con un servicio de datos activo de tu operadora de telefonía móvil o utiliza una red Wi-Fi.",
"The password you entered is incorrect. Try again.": "La contraseña que has introducido es incorrecta. Inténtalo de nuevo",
"Try Again": "Intentarlo de nuevo",
"Turn Off": "Apagar",
"We are unable to create a new account right now. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "No es posible crear una nueva cuenta en este momento. Inténtalo de nuevo dentro de unos minutos o ponte en contacto con HP para resolver este problema. Visita http://hpwebos.com/support para obtener más información.",
"We are unable to create an account for you. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "No es posible crear tu cuenta. Inténtalo de nuevo en unos minutos o ponte en contacto con HP para resolver este problema. Visita http://hpwebos.com/support para obtener más información.",
"We tried to send an email to #{email} but it failed. Please contact HP support.": "Hemos intentado enviarte un mensaje a la dirección #{email}, pero se ha producido un error. Ponte en contacto con el servicio de asistencia de HP.",
"We were unable to sign you in. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "No fue posible iniciar la sesión. Inténtalo de nuevo más tarde o ponte en contacto con HP para resolver este problema. Visita http://hpwebos.com/support para obtener más información.",
"Your SIM is PUK locked. Please contact #{carrier} to unlock it. To set up your device, insert a valid SIM with active data service or use Wi-Fi instead.": "Tu tarjeta SIM está protegida por PUK. Ponte en contacto con #{carrier} para desbloquearla. Para configurar tu dispositivo, inserta una tarjeta SIM válida con un servicio de datos activo o utiliza una red Wi-Fi.",
"Your SIM is PUK locked. Please contact your carrier to unlock it. To set up your device, insert a valid SIM with active data service or use Wi-Fi instead.": "Tu tarjeta SIM está protegida por PUK. Ponte en contacto con tu operadora de telefonía móvil para desbloquearla. Para configurar tu dispositivo, inserta una tarjeta SIM válida con un servicio de datos activo o utiliza una red Wi-Fi."
}
+152
View File
@@ -0,0 +1,152 @@
{
"#{language}, #{country}?": "#{language}, #{country} ?",
"1#1 day ago|1>##{num} days ago": "1#1 jour auparavant|1>##{num} jours auparavant",
"1#1 hour ago|1>##{num} hours ago": "1#1 heure auparavant|1>##{num} heures auparavant",
"About webOS Account": "À propos du compte webOS",
"Accept": "Accepter",
"Allow Google's location service to collect anonymous and aggregate location data. Collection will occur regardless of whether any applications are active.": "Autoriser le service de positionnement de Google à recueillir des données agrégées et anonymes, et ce, même si aucune application n'est active.",
"An HP webOS Account is key to access critical HP services.": "Un compte HP webOS est requis pour accéder aux services HP essentiels.",
"An HP webOS account (previously Palm Profile) is required to activate your device. In addition, your webOS account also gives you:<ul><li>A free account for storing data in Contacts and Calendar</li><li>Backup and restore of personal data and applications downloaded from App Catalog</li><li>Device software updates</li></ul></p>": "Un compte HP webOS (auparavant profil Palm) est requis pour activer votre appareil. De plus, votre compte webOS vous permet aussi de bénéficier des éléments suivants :<ul><li>Un compte gratuit pour stocker des données dans les Contacts et le Calendrier</li><li>La sauvegarde et la restauration des données personnelles et des applications téléchargées depuis l’App Catalog</li><li>Des mises à jour logicielles de votre appareil</li></ul></p>",
"An error occurred while restoring your data. Please try again in a few minutes.": "Une erreur est survenue pendant la restauration de vos données. Veuillez réessayer dans quelques minutes.",
"Answer": "Réponse",
"Answer is incorrect. Try again.": "La réponse est incorrecte. Veuillez réessayer.",
"Answer your security question to recover your password.": "Répondez à la question de sécurité pour récupérer votre mot de passe.",
"Applications Only": "Uniquement les applications",
"Auto Locate": "Positionnement automatique",
"Backed up ": "Sauvegardé ",
"Cancel": "Annuler",
"Cannot Restore": "Impossible de restaurer",
"Choose a network": "Choisir un réseau",
"Close": "Fermer",
"Collect Logs": "Réunir les journaux",
"Collect logs": "Réunir les journaux",
"Confirm": "Confirmer",
"Confirm Email": "Confirmer l’email",
"Confirm Password": "Confirmer le mot de passe",
"Continue": "Continuer",
"Copy Everything": "Tout copier",
"Create": "Créer",
"Create New Account": "Créer un compte",
"Create a new password for your webOS account.": "Créez un mot de passe pour votre compte webOS.",
"Create a unique name for your device. This will help you if you ever need to identify it in a list.": "Attribuez un nom unique à votre appareil. Ceci vous permettra de l’identifier plus facilement dans une liste.",
"Create a webOS Account": "Créer un compte webOS",
"Creating log Dump #{filename}.ssl.tar in /media/internal/logs <p> This can take 10-20 seconds": "Création du journal de vidage #{filename}.ssl.tar dans /media/internal/logs <p> Cette opération peut prendre 10 à 20 secondes",
"Decline": "Refuser",
"Device ID": "ID de l’appareil",
"Device Info": "Infos appareil",
"Device Information": "Informations sur l’appareil",
"Device Model": "Modèle de l’appareil",
"Device name is limited to 256 characters. Shorten name and try again.": "Le nom de l’appareil ne peut pas dépasser 256 caractères. Raccourcissez le nom et réessayez.",
"Do you accept?": "Acceptez-vous ?",
"Done": "Terminé",
"Email addresses do not match.": "Les adresses email ne concordent pas.",
"Email must be less than 100 characters.": "L’email doit comporter moins de 100 caractères.",
"Error Restoring Data": "Erreur lors de la restauration des données",
"Existing webOS Account": "Compte webOS existant",
"Find Network": "Rechercher un réseau",
"Finish Setup": "Terminer la configuration",
"First and Last Name": "Prénom et nom",
"Follow the link in that email to reset your password.": "Cliquez sur le lien inclus dans cet email pour réinitialiser votre mot de passe.",
"Forgot Answer": "J’ai oublié la réponse",
"Forgot Email or Password?": "Adresse email ou mot de passe oublié(e) ?",
"Forgot Email?": "Adresse email oubliée ?",
"Forgot Password": "Mot de passe oublié",
"Forgot Password?": "Mot de passe oublié ?",
"Google Terms & Conditions": "Conditions de Google",
"HP Terms & Conditions": "Conditions de HP",
"HP webOS Account": "Compte HP webOS",
"Handset": "Appareil",
"Hardware Version": "Version du matériel",
"Help": "Aide",
"I accept the terms and conditions": "J’accepte les conditions",
"If you already have a webOS account (previously Palm Profile), you can sign in now.": "Si vous possédez déjà un compte webOS (auparavant profil Palm), vous pouvez vous connecter maintenant.",
"If you decline Google's Terms of Service, your device will be unable to determine your current location. To enable this feature in the future, go to the Location Services preference.": "Si vous déclinez les Conditions de service de Google, votre appareil ne pourra pas déterminer votre positionnement actuel. Pour activer cette fonction à l’avenir, accédez à la préférence sur les services de positionnement.",
"If you're unable to reset your password, visit http://hpwebos.com/support for more help.": "Si vous n’arrivez pas à réinitialiser votre mot de passe, visitez http://hpwebos.com/support pour obtenir de l’aide.",
"If you've ever owned an HP or Palm webOS phone or TouchPad, tap Sign In. Otherwise, create a new account.": "Si vous avez déjà eu un téléphone HP ou Palm webOS ou un TouchPad, veuillez sélectionner Se connecter. Sinon, créez un nouveau compte.",
"In order to use this device, you must accept the Terms. If you choose not to accept the Terms, you may return this device within the return period of the HP authorized distributor where you purchased this device for a refund subject to the applicable return policy.": "Afin d’utiliser cet appareil, vous devez accepter les Conditions. Si vous décidez de ne pas les accepter, vous pouvez renvoyer cet appareil au cours de la période de retour établie par le distributeur HP autorisé auprès duquel vous avez acheté l’appareil pour obtenir un remboursement selon les termes de la politique de retour applicable.",
"Invalid Email Address": "Adresse email non valide",
"Less than an hour ago": "Moins d’une heure auparavant",
"Let's get started": "Commençons",
"MAC Address": "Adresse MAC",
"MEP Locked": "Verrouillage par code MEP",
"Making progress": "En progression",
"Message From #{smsPhoneNumber}": "Message de #{smsPhoneNumber}",
"Name Your Device:": "Nom de votre appareil :",
"Name must be less than 50 characters.": "Le nom doit comporter moins de 50 caractères.",
"Name your device": "Nommez votre appareil",
"Ndu ID": "ID Ndu",
"New Password": "Nouveau mot de passe",
"Next": "Suivant",
"No": "Non",
"No Update Available": "Aucune mise à jour disponible",
"No Wi-Fi Connection": "Aucune connexion Wi-Fi",
"Off": "Désactiver",
"On": "Activer",
"PIN is Incorrect": "Code PIN incorrect",
"PUK Locked": "Verrouillage par code PUK",
"Password": "Mot de passe",
"Password must be 6-20 characters.": "Le mot de passe doit comprendre entre 6 et 20 caractères.",
"Passwords do not match.": "Les mots de passe ne concordent pas.",
"Phone": "Téléphone",
"Please answer the security question.": "Veuillez répondre à la question de sécurité.",
"Please enter a name for your device.": "Veuillez fournir un nom à votre appareil.",
"Please enter a valid email address.": "Veuillez entrer une adresse email valide.",
"Please enter the email address you used to create your webOS account (previously Palm Profile).": "Veuillez fournir l’adresse email que vous avez utilisée pour créer votre compte webOS (auparavant profil Palm).",
"Please enter your name.": "Veuillez entrer votre nom.",
"Please visit http://hpwebos.com/support to help resolve this problem": "Rendez-vous sur http://hpwebos.com/support pour obtenir de l’aide concernant ce problème",
"Power off device?": "Éteindre l’appareil ?",
"Problem Locating Backups": "Problème pour situer vos sauvegardes",
"Product Number": "Numéro de produit",
"Recover Password": "Récupérer le mot de passe",
"Security Question": "Question de sécurité",
"Security Question:": "Question de sécurité :",
"Security answer must be less than 50 characters.": "La réponse à la question de sécurité doit comporter moins de 50 caractères.",
"Select a device in the list. You can copy your applications, accounts, data and settings to your TouchPad or just the applications.": "Sélectionnez un appareil dans la liste. Vous pouvez copier vos applications, comptes, données et paramètres vers votre TouchPad ou uniquement les applications.",
"Serial Number": "Numéro de série",
"Server Error": "Erreur de serveur",
"Setup Options": "Options de configuration",
"Sign In": "Se connecter",
"Sign in to your HP webOS Account or Palm Profile to copy your applications, accounts and data to your TouchPad.": "Connectez-vous à votre compte HP webOS ou à votre profil Palm pour copier vos applications, comptes et données vers votre TouchPad.",
"Software Update": "Mise à jour du logiciel",
"Software Update In Progress": "Mise à jour du logiciel en cours",
"Start Over": "Recommencer",
"Thanks!": "Merci !",
"The United States Government prohibits HP from allowing you to use this email address to set up a webOS account.": "Le gouvernement des États-Unis interdit à HP de vous autoriser à utiliser cette adresse email pour configurer un compte webOS.",
"The United States Government restricts exports to certain countries, including the country where your email address domain is issued. You can visit www.palm.com/us/company/legal for additional information.": "Le gouvernement des États-Unis restreint les exportations à destination de certains pays, notamment le pays à partir duquel votre adresse email a été émise. Vous pouvez consulter la page www.palm.com/us/company/legal pour de plus amples informations.",
"The current SIM cannot be used in this device. To continue setup, insert a valid SIM with active data service from #{carrier} or use Wi-Fi instead": "La carte SIM que vous avez insérée ne peut être utilisée sur cet appareil. Pour poursuivre l’installation, insérez une carte SIM valide avec un service de données actif que vous aurez obtenue auprès de #{carrier}, ou utilisez le Wi-Fi.",
"The current SIM cannot be used in this device. To continue setup, insert a valid SIM with active data service from your carrier or use Wi-Fi instead.": "La carte SIM que vous avez insérée ne peut être utilisée sur cet appareil. Pour poursuivre l’installation, insérez une carte SIM valide avec un service de données actif que vous aurez obtenue auprès de votre fournisseur, ou utilisez le Wi-Fi.",
"The password you entered is incorrect. Try again.": "Le mot de passe saisi est incorrect. Veuillez réessayer.",
"There is already an account associated with that email address. Please sign in now or choose a new email address": "Un compte est déjà associé à cette adresse email. Connectez-vous maintenant ou choisissez une nouvelle adresse email",
"This device's software must be updated to restore data from #{deviceName}. However, the updated software is not yet available. Please choose a different device to restore from.": "Le logiciel de cet appareil doit être mis à jour pour restaurer les données à partir de #{deviceName}. Cependant, le logiciel mis à jour n’est pas encore disponible. Veuillez choisir un autre appareil à partir duquel la restauration sera effectuée.",
"Try Again": "Veuillez réessayer",
"Turn Off": "Désactiver",
"Use Wi-Fi": "Utilisez le Wi-Fi",
"Verify Password": "Vérifier le mot de passe",
"Visit http://hpwebos.com/support for assistance.": "Rendez-vous sur http://hpwebos.com/support pour obtenir de l’aide.",
"We are copying your data and applications to your TouchPad. This may take a few minutes.": "Nous copions vos données et vos applications vers votre TouchPad. Cette opération peut prendre quelques minutes.",
"We are unable to create a new account right now. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "La création de votre nouveau compte n’a pas été possible actuellement. Veuillez réessayer dans quelques minutes ou contacter HP pour obtenir de l’aide en vue de résoudre ce problème. Rendez-vous sur http://hpwebos.com/support pour en savoir plus.",
"We are unable to create an account for you. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "La création de votre compte n’a pas été possible. Veuillez réessayer dans quelques minutes ou contacter HP pour obtenir de l’aide en vue de résoudre ce problème. Rendez-vous sur http://hpwebos.com/support pour en savoir plus.",
"We cannot restore your backup data. If you continue, we will sign into your account and your applications (but not data) will be restored to this device.": "Vous ne pouvez pas restaurer vos données de sauvegarde. Si vous continuez, nous nous connecterons à votre compte et vos applications (mais pas vos données) seront restaurées sur cet appareil.",
"We couldn't find a webOS account associated with that email address.": "Impossible de trouver un compte webOS associé à cette adresse email.",
"We sent an email to #{email}. If you don't receive the email shortly check your junk email folder.": "Nous avons envoyé un email à l’adresse #{email}. Si vous ne le recevez pas bientôt, vérifiez votre dossier de courrier indésirable.",
"We tried to send an email to #{email} but it failed. Please contact HP support.": "Nous avons tenté d’envoyer un email à l’adresse #{email}, mais sans succès. Veuillez contacter le support HP.",
"We were unable to sign you in. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "Votre connexion n’a pas été possible. Veuillez réessayer dans quelques minutes ou contacter HP pour obtenir de l’aide en vue de résoudre ce problème. Rendez-vous sur http://hpwebos.com/support pour plus d’informations.",
"We're almost done. When we finish, we'll restart your device and you'll be ready to go.": "Nous avons bientôt terminé. Lorsque nous aurons fini, nous redémarrerons votre appareil et vous pourrez faire ce que vous voulez.",
"WebOS Build": "Build WebOS",
"WebOS Version": "Version WebOS",
"What do you want to copy?": "Que souhaitez-vous copier ?",
"What is the name of your favorite animal?": "Quel est le nom de votre animal préféré ?",
"What's a webOS Account?": "Qu’est-ce qu’un compte webOS ?",
"Why do I need an account?": "Pourquoi ai-je besoin d'un compte ?",
"Wi-Fi Setup": "Configuration Wi-Fi",
"Would you like to start over from the beginning?": "Souhaitez-vous recommencer depuis le début ?",
"Yes": "Oui",
"You have entered the PIN incorrectly twice. To avoid locking your SIM, you should use Wi-Fi now.": "Vous avez entré deux fois un code PIN incorrect. Pour empêcher le verrouillage de votre carte SIM, nous vous recommandons d’utiliser une connexion Wi-Fi maintenant.",
"You may return your device where you purchased it in accordance with the applicable return poilicy.": "Vous pouvez renvoyer votre appareil là où vous l’avez acheté, en vous conformant à la politique de retour applicable.",
"You need a network to setup your device.": "Vous avez besoin d’un réseau pour configurer votre appareil.",
"You need an HP webOS account to use this device. Your data, accounts, application download and purchase history will be securely backed up.": "Vous avez besoin d’un compte HP webOS pour utiliser cet appareil. Vos données, vos comptes et l’historique de vos téléchargements d’applications et de vos achats seront sauvegardés en toute sécurité.",
"You'll be asked for permission when an application wants your location. For your convenience, you may enable Auto Locate, which will automatically provide your location for applications without asking each time. You may change this setting at any time in the Location Services preference.": "Vous devrez donner votre autorisation chaque fois qu’une application désirera connaître votre positionnement. Vous pouvez activer la fonction de positionnement automatique, qui indique systématiquement votre position aux applications sans vous demander l’autorisation à chaque fois. Vous pouvez modifier ce paramètre dans les services de positionnement.",
"Your SIM is PUK locked. Please contact #{carrier} to unlock it. To set up your device, insert a valid SIM with active data service or use Wi-Fi instead.": "Votre carte SIM est verrouillée par un code PUK. Veuillez contacter #{carrier} pour la déverrouiller. Pour configurer votre appareil, insérez une carte SIM valide avec un service de données actif ou utilisez le Wi-Fi.",
"Your SIM is PUK locked. Please contact your carrier to unlock it. To set up your device, insert a valid SIM with active data service or use Wi-Fi instead.": "Votre carte SIM est verrouillée par un code PUK. Veuillez contacter votre fournisseur pour la déverrouiller. Pour configurer votre appareil, insérez une carte SIM valide avec un service de données actif ou utilisez le Wi-Fi.",
"Your device no longer has a Wi-Fi connection. Connect to a new network.": "Votre appareil ne présente plus de connexion Wi-Fi. Connectez-vous à un nouveau réseau."
}
@@ -0,0 +1,11 @@
{
"icon": "../../images/icon.png",
"id": "com.palm.app.firstuse",
"main": "../../index.html",
"title": "HP webOS",
"type": "web",
"uiRevision": 2,
"vendor": "HP",
"version": "3.0.0",
"visible": false
}
@@ -0,0 +1,11 @@
{
"icon": "../../../images/icon.png",
"id": "com.palm.app.firstuse",
"main": "../../../index.html",
"title": "HP webOS",
"type": "web",
"uiRevision": 2,
"vendor": "HP",
"version": "3.0.0",
"visible": false
}
@@ -0,0 +1,40 @@
{
"#{language}, #{country}?": "#{language}, #{country}?",
"Confirm Email": "Confirmer le courriel",
"Create": "Créer ",
"Creating log Dump #{filename}.ssl.tar in /media/internal/logs <p> This can take 10-20 seconds": "Création du journal de vidage #{filename}.ssl.tar in /media/internal/logs <p> Cette opération peut prendre 10 à 20 secondes",
"Device Info": "Info d'appareil",
"Do you accept?": "Acceptez-vous?",
"Email": "Courriel",
"Email addresses do not match.": "Les adresses électroniques ne concordent pas.",
"Email must be less than 100 characters.": "Le courriel doit comporter moins de 100 caractères.",
"Follow the link in that email to reset your password.": "Cliquez sur le lien inclus dans cet courriel pour réinitialiser votre mot de passe.",
"Forgot Email or Password?": "Adresse de courriel ou mot de passe oublié(e)?",
"Forgot Email?": "Adresse électronique oubliée?",
"Forgot Password?": "Mot de passe oublié?",
"If you decline Google's Terms of Service, your device will be unable to determine your current location. To enable this feature in the future, go to the Location Services preference.": "Si vous déclinez les Conditions de service de Google, votre appareil ne pourra pas déterminer votre positionnement actuel. Pour activer cette fonction à l'avenir, accédez à la préférence relative aux services de positionnement.",
"If you've ever owned an HP or Palm webOS phone or TouchPad, tap Sign In. Otherwise, create a new account.": "Si vous avez déjà eu un téléphone HP ou Palm webOS ou un TouchPad, toquez Se connecter. Sinon, créez un nouveau compte.",
"Invalid Email Address": "Adresse de courriel non valide",
"PIN is Incorrect": "Code NIP incorrect",
"Please enter a valid email address.": "Veuillez entrer une adresse de courriel valide.",
"Please enter the email address you used to create your webOS account (previously Palm Profile).": "Veuillez fournir l’adresse de courriel que vous avez utilisée pour créer votre compte webOS (auparavant profil Palm).",
"Power off device?": "Éteindre l’appareil?",
"Thanks!": "Merci!",
"The United States Government prohibits HP from allowing you to use this email address to set up a webOS account.": "Le gouvernement des États-Unis interdit à HP de vous autoriser à utiliser cette adresse électronique pour configurer un compte webOS.",
"The United States Government restricts exports to certain countries, including the country where your email address domain is issued. You can visit www.palm.com/us/company/legal for additional information.": "Le gouvernement des États-Unis restreint les exportations à destination de certains pays, notamment le pays à partir duquel votre adresse électronique a été émise. Vous pouvez consulter la page www.palm.com/us/company/legal pour obtenir de plus amples informations.",
"There is already an account associated with that email address. Please sign in now or choose a new email address": "Un compte est déjà associé à cette adresse électronique. Connectez-vous maintenant ou choisissez une nouvelle adresse électronique",
"We are unable to create a new account right now. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "La création de votre nouveau compte n’est pas possible actuellement. Veuillez réessayer dans quelques minutes ou contacter HP pour obtenir de l’aide en vue de résoudre ce problème. Rendez-vous sur http://hpwebos.com/support pour en savoir plus.",
"We couldn't find a webOS account associated with that email address.": "Impossible de trouver un compte webOS associé à cette adresse électronique.",
"We sent an email to #{email}. If you don't receive the email shortly check your junk email folder.": "Nous avons envoyé un courriel à l’adresse #{email}. Si vous ne le recevez pas bientôt, vérifiez votre dossier de courrier indésirable.",
"We tried to send an email to #{email} but it failed. Please contact HP support.": "Nous avons tenté d’envoyer un courriel à l’adresse #{email}, mais sans succès. Veuillez communiquer avec le soutien de HP.",
"We were unable to sign you in. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "Votre connexion n’a pas été possible. Veuillez réessayer dans quelques minutes ou communiquer avec HP pour obtenir de l’aide afin de résoudre ce problème. Rendez-vous sur http://hpwebos.com/support pour obtenir plus d’informations.",
"What do you want to copy?": "Que souhaitez-vous copier?",
"What's a webOS Account?": "Qu’est-ce qu’un compte webOS?",
"Why do I need an account?": "Pourquoi ai-je besoin d'un compte?",
"Would you like to start over from the beginning?": "Souhaitez-vous recommencer depuis le début?",
"You have entered the PIN incorrectly twice. To avoid locking your SIM, you should use Wi-Fi now.": "Vous avez entré deux fois un code NIP incorrect. Pour empêcher le verrouillage de votre carte SIM, nous vous recommandons d’utiliser une connexion Wi-Fi maintenant.",
"You need an HP webOS account to use this device. Your data, accounts, application download and purchase history will be securely backed up.": "Vous avez besoin d’un compte HP webOS pour utiliser cet appareil. Vos données, vos comptes et l'historique de vos téléchargements d’applications et de vos achats seront sauvegardés en toute sécurité.",
"You'll be asked for permission when an application wants your location. For your convenience, you may enable Auto Locate, which will automatically provide your location for applications without asking each time. You may change this setting at any time in the Location Services preference.": "Vous devrez donner votre autorisation chaque fois qu’une application désirera connaître votre positionnement. Vous pouvez activer la fonction de positionnement automatique, qui indique systématiquement votre position aux applications sans vous demander l’autorisation chaque fois. Vous pouvez modifier ce paramètre dans les services de positionnement.",
"Your SIM is PUK locked. Please contact #{carrier} to unlock it. To set up your device, insert a valid SIM with active data service or use Wi-Fi instead.": "Votre carte SIM est verrouillée par un code PUK. Veuillez communiquer avec #{carrier} pour la déverrouiller. Pour poursuivre l’installation, insérez une carte SIM valide avec un service de données actif ou utilisez le Wi-Fi.",
"Your SIM is PUK locked. Please contact your carrier to unlock it. To set up your device, insert a valid SIM with active data service or use Wi-Fi instead.": "Votre carte SIM est verrouillée par un code PUK. Veuillez communiquer avec votre fournisseur pour la déverrouiller. Pour poursuivre l’installation, insérez une carte SIM valide avec un service de données actif ou utilisez le Wi-Fi."
}
+152
View File
@@ -0,0 +1,152 @@
{
"1#1 day ago|1>##{num} days ago": "1#1 giorno fa|1>##{num} giorni fa",
"1#1 hour ago|1>##{num} hours ago": "1#1 ora fa|1>##{num} ore fa",
"About webOS Account": "Informazioni account WebOS",
"Accept": "Accetta",
"Allow Google's location service to collect anonymous and aggregate location data. Collection will occur regardless of whether any applications are active.": "Consenti ai servizi di posizione Google di raccogliere dati anonimi e di posizione, anche se le applicazioni non sono attive.",
"An HP webOS Account is key to access critical HP services.": "Un account HP WebOS è necessario per accedere ai servizi HP essenziali.",
"An HP webOS account (previously Palm Profile) is required to activate your device. In addition, your webOS account also gives you:<ul><li>A free account for storing data in Contacts and Calendar</li><li>Backup and restore of personal data and applications downloaded from App Catalog</li><li>Device software updates</li></ul></p>": "Occorre un account HP webOS (già profilo Palm) per attivare il dispositivo. Inoltre, l'account webOS fornisce anche:<ul><li>Un account gratuito per memorizzare le informazioni in Contatti e Calendario</li><li>Backup e ripristino dei dati personali e delle applicazioni scaricate da App Catalog</li><li>Aggiornamenti del software per il dispositivo</li></ul></p>",
"An error occurred while restoring your data. Please try again in a few minutes.": "Si è verificato un errore durante il ripristino dei dati. Riprovare tra qualche minuto.",
"Answer": "Risposta",
"Answer is incorrect. Try again.": "La risposta è errata. Riprovare.",
"Answer your security question to recover your password.": "Rispondere alla domanda di sicurezza per recuperare la password.",
"Applications Only": "Solo applicazioni",
"Auto Locate": "Individuazione automatica",
"Backed up ": "Dati del back up ",
"Cancel": "Annulla",
"Cannot Restore": "Impossibile ripristinare",
"Choose a network": "Scegliere una rete",
"Close": "Chiudi",
"Collect Logs": "Raccogli registri",
"Collect logs": "Raccogli registri",
"Confirm": "Conferma",
"Confirm Email": "Conferma e-mail",
"Confirm Password": "Conferma password",
"Continue": "Continua",
"Copy Everything": "Copia tutto",
"Create": "Crea ",
"Create New Account": "Crea un nuovo account",
"Create a new password for your webOS account.": "Creare una nuova password per l’account webOS.",
"Create a unique name for your device. This will help you if you ever need to identify it in a list.": "Assegnare un nome univoco al dispositivo. In questo modo sarà più semplice riconoscerlo all'interno di un elenco.",
"Create a webOS Account": "Creare un account webOS",
"Creating log Dump #{filename}.ssl.tar in /media/internal/logs <p> This can take 10-20 seconds": "Creazione registro dump #{filename}.ssl.tar in /media/internal/logs in corso <p> L'operazione può richiedere 10-20 secondi",
"Decline": "Rifiuta",
"Device ID": "ID dispositivo",
"Device Info": "Informazioni sul dispositivo",
"Device Information": "Informazioni dispositivo",
"Device Model": "Modello dispositivo",
"Device name is limited to 256 characters. Shorten name and try again.": "Il nome del dispositivo è limitato a 256 caratteri. Abbreviare il nome e riprovare.",
"Diagnostics": "Diagnostica",
"Do you accept?": "Accetti?",
"Done": "Chiudi",
"Email": "E-mail",
"Email addresses do not match.": "Gli indirizzi e-mail non corrispondono.",
"Email must be less than 100 characters.": "L’indirizzo e-mail deve contenere meno di 100 caratteri.",
"Error Restoring Data": "Errore durante il ripristino dei dati",
"Existing webOS Account": "Account webOS esistente",
"Find Network": "Trova rete",
"Finish Setup": "Completa impostazione",
"First and Last Name": "Nome e cognome",
"Follow the link in that email to reset your password.": "Seguire il collegamento nel messaggio e-mail per reimpostare la password.",
"Forgot Answer": "Dimenticato la risposta",
"Forgot Email or Password?": "Indirizzo e-mail o password dimenticata?",
"Forgot Email?": "Indirizzo e-mail dimenticato?",
"Forgot Password": "Password dimenticata",
"Forgot Password?": "Password dimenticata?",
"Google Terms & Conditions": "Termini e condizioni di Google",
"HP Terms & Conditions": "Termini e condizioni di HP",
"HP webOS Account": "Account HP WebOS",
"Handset": "Ricevitore",
"Hardware Version": "Versione hardware",
"Help": "Guida",
"I accept the terms and conditions": "Accetto termini e condizioni",
"If you already have a webOS account (previously Palm Profile), you can sign in now.": "Se si dispone già di un account webOS (già profilo Palm), adesso è possibile accedere.",
"If you decline Google's Terms of Service, your device will be unable to determine your current location. To enable this feature in the future, go to the Location Services preference.": "Non accettando i Termini del servizio di Google, il dispositivo non sarà in grado di determinare la posizione attuale. Per attivare questa funzione in futuro, accedere alla preferenza Servizi posizione.",
"If you're unable to reset your password, visit http://hpwebos.com/support for more help.": "Per ulteriori informazioni su come reimpostare la password, visitare il sito http://hpwebos.com/support.",
"If you've ever owned an HP or Palm webOS phone or TouchPad, tap Sign In. Otherwise, create a new account.": "Se già si disponeva di un telefono o di un TouchPad HP o Palm webOS, toccare Accedi. In caso contrario, creare un nuovo account.",
"In order to use this device, you must accept the Terms. If you choose not to accept the Terms, you may return this device within the return period of the HP authorized distributor where you purchased this device for a refund subject to the applicable return policy.": "Per poter usare il dispositivo, occorre accettare i Termini. Se non si acconsente ai Termini, è possibile restituire il dispositivo entro il periodo di restituzione del distributore autorizzato HP presso il quale è stato acquistato il dispositivo e ottenere un rimborso, in conformità alle procedure di restituzione applicabili. ",
"Invalid Email Address": "Indirizzo e-mail non valido",
"Less than an hour ago": "Meno di un'ora fa",
"Let's get started": "Guida introduttiva",
"MAC Address": "Indirizzo MAC",
"MEP Locked": "MEP bloccato",
"Making progress": "Procedura in corso",
"Message": "Messaggio",
"Message From #{smsPhoneNumber}": "Messaggio da #{smsPhoneNumber}",
"Name Your Device:": "Assegnare un nome al dispositivo:",
"Name must be less than 50 characters.": "Il nome deve contenere meno di 50 caratteri.",
"Name your device": "Assegnare un nome al dispositivo",
"Ndu ID": "ID Ndu",
"New Password": "Nuova password",
"Next": "Avanti",
"No Update Available": "Nessun aggiornamento disponibile",
"No Wi-Fi Connection": "Nessun collegamento Wi-Fi",
"Off": "No",
"On": "Sì",
"PIN is Incorrect": "PIN errato",
"PUK Locked": "PUK bloccato",
"Password must be 6-20 characters.": "La password deve avere da 6 a 20 caratteri.",
"Passwords do not match.": "Le password non corrispondono.",
"Phone": "Telefono",
"Please answer the security question.": "Rispondere alla domanda di sicurezza.",
"Please enter a name for your device.": "Inserire un nome per il dispositivo.",
"Please enter a valid email address.": "Inserire un indirizzo e-mail valido.",
"Please enter the email address you used to create your webOS account (previously Palm Profile).": "Inserire l’indirizzo e-mail utilizzato per creare l'account webOS (già profilo Palm).",
"Please enter your name.": "Inserire il nome.",
"Please visit http://hpwebos.com/support to help resolve this problem": "Visitare il sito http://hpwebos.com/support per informazioni su come risolvere questo problema",
"Power off device?": "Spengere il dispositivo?",
"Problem Locating Backups": "Si è verificato un problema nell'individuazione dei backup",
"Product Number": "Numero prodotto",
"Recover Password": "Recupera password",
"Security Question": "Domanda di sicurezza",
"Security Question:": "Domanda di sicurezza:",
"Security answer must be less than 50 characters.": "La risposta di sicurezza deve contenere meno di 50 caratteri.",
"Select a device in the list. You can copy your applications, accounts, data and settings to your TouchPad or just the applications.": "Selezionare un dispositivo dall'elenco. Le applicazioni, gli account, i dati e le impostazioni possono essere copiati sul TouchPad, oppure è possibile copiare solo le applicazioni.",
"Serial Number": "Numero di serie",
"Server Error": "Errore server",
"Setup Options": "Opzioni di configurazione",
"Sign In": "Accedi",
"Sign in to your HP webOS Account or Palm Profile to copy your applications, accounts and data to your TouchPad.": "Per copiare le applicazioni, gli account e i dati sul TouchPad, accedere all'account HP webOS o al profilo Palm.",
"Software Update": "Aggiornamento software",
"Software Update In Progress": "Aggiornamento software in corso",
"Start Over": "Ricomincia",
"Thanks!": "Grazie!",
"The United States Government prohibits HP from allowing you to use this email address to set up a webOS account.": "Il governo USA non consente a HP di permettere l’uso di questo indirizzo e-mail per creare un account webOS.",
"The United States Government restricts exports to certain countries, including the country where your email address domain is issued. You can visit www.palm.com/us/company/legal for additional information.": "Il governo USA limita le esportazioni verso paesi specifici, incluso quello in cui è domiciliato il dominio associato all’indirizzo. Per ulteriori informazioni, visitare www.palm.com/us/company/legal.",
"The current SIM cannot be used in this device. To continue setup, insert a valid SIM with active data service from #{carrier} or use Wi-Fi instead": "La scheda SIM corrente non può essere utilizzata in questo dispositivo. Per continuare l'impostazione, inserire una SIM valida con servizio dati attivo di #{carrier} oppure utilizzare il Wi-Fi.",
"The current SIM cannot be used in this device. To continue setup, insert a valid SIM with active data service from your carrier or use Wi-Fi instead.": "La scheda SIM corrente non può essere utilizzata in questo dispositivo. Per continuare l'impostazione, inserire una SIM valida con servizio dati attivo del gestore oppure utilizzare il Wi-Fi.",
"The password you entered is incorrect. Try again.": "La password inserita è errata. Riprovare.",
"There is already an account associated with that email address. Please sign in now or choose a new email address": "Esiste già un account associato a questo indirizzo e-mail. Accedere adesso o selezionare un nuovo indirizzo e-mail",
"This device's software must be updated to restore data from #{deviceName}. However, the updated software is not yet available. Please choose a different device to restore from.": "Il software di questo dispositivo deve essere aggiornato per poter ripristinare i dati da #{deviceName}. Tuttavia, il software aggiornato non è ancora disponibile. Scegliere un dispositivo diverso dal quale effettuare il ripristino.",
"Try Again": "Riprova",
"Turn Off": "Disattiva",
"Use Wi-Fi": "Usa Wi-Fi",
"Verify Password": "Verifica password",
"Visit http://hpwebos.com/support for assistance.": "Per ulteriore assistenza, visitare il sito http://hpwebos.com/support.",
"We are copying your data and applications to your TouchPad. This may take a few minutes.": "Copia dei dati e delle applicazioni sul TouchPad in corso. L'operazione potrebbe richiedere qualche minuto.",
"We are unable to create a new account right now. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "Non è stato possibile creare un nuovo account. Riprovare tra qualche minuto o contattare HP per ottenere assistenza nella risoluzione di questo problema. Visitare il sito http://hpwebos.com/support per ulteriori informazioni.",
"We are unable to create an account for you. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "Non è stato possibile creare l'account. Riprovare tra qualche minuto o contattare HP per ottenere assistenza nella risoluzione di questo problema. Visitare il sito http://hpwebos.com/support per ulteriori informazioni.",
"We cannot restore your backup data. If you continue, we will sign into your account and your applications (but not data) will be restored to this device.": "Non è possibile ripristinare i dati di backup. Se si decide di continuare, si procederà accedendo all'account e le applicazioni (ma non i dati) saranno ripristinate su questo dispositivo.",
"We couldn't find a webOS account associated with that email address.": "Non è stato possibile trovare un account webOS associato con l’indirizzo e-mail.",
"We sent an email to #{email}. If you don't receive the email shortly check your junk email folder.": "Un messaggio e-mail è stato inviato a #{email}. Se non si riceve il messaggio e-mail entro poco tempo, controllare la casella della posta indesiderata.",
"We tried to send an email to #{email} but it failed. Please contact HP support.": "È stato effettuato un tentativo non riuscito di invio di un messaggio e-mail a #{email}. Rivolgersi all'assistenza HP.",
"We were unable to sign you in. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "Non è stato possibile effettuare l'accesso. Riprovare tra qualche minuto o contattare HP per ottenere assistenza nella risoluzione di questo problema. Visitare il sito http://hpwebos.com/support per ulteriori informazioni.",
"We're almost done. When we finish, we'll restart your device and you'll be ready to go.": "L'operazione sta per essere completata. Una volta terminata l'operazione, il dispositivo verrà riavviato e sarà pronto per l'uso.",
"WebOS Build": "Build webOS",
"WebOS Version": "Versione webOS",
"What do you want to copy?": "Quali elementi si desidera copiare?",
"What is the name of your favorite animal?": "Qual è il nome del tuo animale preferito?",
"What's a webOS Account?": "Che cos'è un account webOS?",
"Why do I need an account?": "Perché è necessario creare un account?",
"Wi-Fi Setup": "Impostazione Wi-Fi",
"Would you like to start over from the beginning?": "Ricominciare dall’inizio?",
"Yes": "Sì",
"You have entered the PIN incorrectly twice. To avoid locking your SIM, you should use Wi-Fi now.": "È stato inserito due volte il PIN errato. Per evitare il blocco SIM, attivare il Wi-Fi.",
"You may return your device where you purchased it in accordance with the applicable return poilicy.": "È possibile restituire il dispositivo dove è stato acquistato, in conformità alle procedure di restituzione applicabili.",
"You need a network to setup your device.": "Per impostare il dispositivo occorre una rete.",
"You need an HP webOS account to use this device. Your data, accounts, application download and purchase history will be securely backed up.": "Per utilizzare questo dispositivo è necessario un account HP webOS. Per motivi di sicurezza, verrà eseguito il backup di dati, account, download delle applicazioni e cronologia degli acquisti.",
"You'll be asked for permission when an application wants your location. For your convenience, you may enable Auto Locate, which will automatically provide your location for applications without asking each time. You may change this setting at any time in the Location Services preference.": "Verrà richiesta un'autorizzazione quando un'applicazione richiede la posizione. Per comodità, si può attivare l'individuazione automatica che fornisce automaticamente la posizione alle applicazioni senza richiederla ogni volta. È possibile modificare questa impostazione in qualsiasi momento nella preferenza Servizi di posizione.",
"Your SIM is PUK locked. Please contact #{carrier} to unlock it. To set up your device, insert a valid SIM with active data service or use Wi-Fi instead.": "SIM con PUK bloccato. Contattare #{carrier} per sbloccarlo. Per configurare il dispositivo, inserire una SIM valida con servizio dati attivo o utilizzare il Wi-Fi.",
"Your SIM is PUK locked. Please contact your carrier to unlock it. To set up your device, insert a valid SIM with active data service or use Wi-Fi instead.": "SIM con PUK bloccato. Contattare il gestore per sbloccarlo. Per configurare il dispositivo, inserire una SIM valida con servizio dati attivo o utilizzare il Wi-Fi.",
"Your device no longer has a Wi-Fi connection. Connect to a new network.": "Nessun collegamento Wi-Fi per il dispositivo. Collega a una nuova rete."
}
@@ -0,0 +1,11 @@
{
"icon": "../../images/icon.png",
"id": "com.palm.app.firstuse",
"main": "../../index.html",
"title": "HP webOS",
"type": "web",
"uiRevision": 2,
"vendor": "HP",
"version": "3.0.0",
"visible": false
}
+18
View File
@@ -0,0 +1,18 @@
{
"Accept": "接受",
"Allow Google's location service to collect anonymous and aggregate location data. Collection will occur regardless of whether any applications are active.": "允許谷歌 (Google) 的定位服務收集匿名和集合數據定位。不管任何應用程式是否啓動,都可以進行收集。",
"Answer": "回答",
"Answer your security question to recover your password.": "要還原您的密碼請回答您的安全問題。",
"Cancel": "取消",
"Close": "關閉",
"Decline": "拒絕",
"Done": "完成",
"Follow the link in that email to reset your password.": "請依循該電子郵件中的連結來重設您的密碼。",
"Forgot Answer": "忘記答案",
"Help": "幫助",
"Next": "下一步",
"OK": "確定",
"Password": "密碼",
"Try Again": "請再試",
"Turn Off": "關閉"
}
@@ -0,0 +1,11 @@
{
"icon": "../../images/icon.png",
"id": "com.palm.app.firstuse",
"main": "../../index.html",
"title": "HP webOS",
"type": "web",
"uiRevision": 2,
"vendor": "HP",
"version": "3.0.0",
"visible": false
}
@@ -0,0 +1,11 @@
{
"icon": "../../../images/icon.png",
"id": "com.palm.app.firstuse",
"main": "../../../index.html",
"title": "HP webOS",
"type": "web",
"uiRevision": 2,
"vendor": "HP",
"version": "3.0.0",
"visible": false
}
+151
View File
@@ -0,0 +1,151 @@
{
"#{language}, #{country}?": "是否为#{country}#{language}?",
", webOS #{major}.#{minor}.#{revision}": ",webOS #{major}.#{minor}.#{revision}",
"1#1 day ago|1>##{num} days ago": "1#1 天前|1>##{num} 天前",
"1#1 hour ago|1>##{num} hours ago": "1#1 小时前|1>##{num} 小时前",
"About webOS Account": "关于 webOS 帐户",
"Allow Google's location service to collect anonymous and aggregate location data. Collection will occur regardless of whether any applications are active.": "允许谷歌 (Google) 的定位服务收集匿名和组合的位置数据。 不管任何应用程序是否活动,都将可以进行收集。",
"An HP webOS Account is key to access critical HP services.": "HP webOS 帐户是访问重要 HP 服务的关键。",
"An HP webOS account (previously Palm Profile) is required to activate your device. In addition, your webOS account also gives you:<ul><li>A free account for storing data in Contacts and Calendar</li><li>Backup and restore of personal data and applications downloaded from App Catalog</li><li>Device software updates</li></ul></p>": "必须使用 HP webOS 帐户(以前称为 Palm 个人帐户)激活您的设备。此外,webOS 帐户还可提供:<ul><li>一个免费帐户,用于存储联系人和日历中的数据</li><li>备份和还原个人数据以及从 App Catalog 中下载的应用程序</li><li>设备软件更新</li></ul></p>",
"An error occurred while restoring your data. Please try again in a few minutes.": "还原数据时出错,请在几分钟后重试。",
"Answer is incorrect. Try again.": "答案不正确,请重试。",
"Answer your security question to recover your password.": "回答您的安全问题可找回您的密码。",
"Applications Only": "仅应用程序",
"Auto Locate": "自动定位",
"Backed up ": "已备份 ",
"Cannot Restore": "无法还原",
"Choose a network": "选择网络",
"Close": "关闭",
"Collect Logs": "收集日志",
"Collect logs": "收集日志",
"Confirm": "确认",
"Confirm Email": "确认电子邮件",
"Confirm Password": "确认密码",
"Continue": "继续",
"Copy Everything": "复制所有内容",
"Create": "创建",
"Create New Account": "创建新帐户",
"Create a new password for your webOS account.": "创建 webOS 帐户的新密码。",
"Create a unique name for your device. This will help you if you ever need to identify it in a list.": "为设备创建唯一名称。这样有助于您在列表中辨认该设备。",
"Create a webOS Account": "创建 webOS 帐户",
"Creating log Dump #{filename}.ssl.tar in /media/internal/logs <p> This can take 10-20 seconds": "正在 /media/internal/logs 中创建日志转储 #{filename}.ssl.tar,<p>这可能需要 10-20 秒时间",
"Decline": "拒绝",
"Device ID": "设备 ID",
"Device Info": "设备信息",
"Device Information": "设备信息",
"Device Model": "设备型号",
"Device name is limited to 256 characters. Shorten name and try again.": "设备名称最多为 256 个字符。请将名称缩短,然后重试。",
"Diagnostics": "诊断",
"Do you accept?": "您是否接受?",
"Email": "电子邮件",
"Email addresses do not match.": "输入的电子邮件地址不符。",
"Email must be less than 100 characters.": "电子邮件必须少于 100 个字符。",
"Error Restoring Data": "还原数据时出错",
"Existing webOS Account": "现有 webOS 帐户",
"Find Network": "查找网络",
"Finish Setup": "设置完毕",
"First and Last Name": "名字和姓氏",
"Follow the link in that email to reset your password.": "利用该电子邮件中的链接重设您的密码。",
"Forgot Answer": "忘记答案",
"Forgot Email or Password?": "忘记了电子邮件或密码?",
"Forgot Email?": "忘记了电子邮件?",
"Forgot Password": "忘记密码",
"Forgot Password?": "忘记了密码?",
"Google Terms & Conditions": "Google 条款和条件",
"HP Terms & Conditions": "HP 条款与条件",
"HP webOS Account": "HP webOS 帐户",
"Handset": "耳机",
"Hardware Version": "硬件版本",
"Help": "帮助",
"I accept the terms and conditions": "我接受条款和条件",
"If you already have a webOS account (previously Palm Profile), you can sign in now.": "如果已拥有 webOS 帐户(以前称为 Palm 个人帐户),则现在即可登录。",
"If you decline Google's Terms of Service, your device will be unable to determine your current location. To enable this feature in the future, go to the Location Services preference.": "如果拒绝接受 Google 的服务条款,您的设备将无法确定您当前的位置。以后要启用此功能,请转到定位服务首选项。",
"If you're unable to reset your password, visit http://hpwebos.com/support for more help.": "如果无法重设密码,请访问 http://hpwebos.com/support 以获取更多帮助。",
"If you've ever owned an HP or Palm webOS phone or TouchPad, tap Sign In. Otherwise, create a new account.": "如果曾有过 HP 或 Palm webOS 手机或 TouchPad,则点击“登录”。否则,请创建一个新帐户。",
"In order to use this device, you must accept the Terms. If you choose not to accept the Terms, you may return this device within the return period of the HP authorized distributor where you purchased this device for a refund subject to the applicable return policy.": "要使用此设备,您必须接受这些条款。如果您决定不接受条款,可在向其购买此设备的 HP 授权分销商的退货期限内退回此设备,以获得相应退货策略规定的退款。",
"Invalid Email Address": "电子邮件地址无效",
"Less than an hour ago": "一小时以内",
"Let's get started": "现在开始",
"MAC Address": "MAC 地址",
"MEP Locked": "MEP 码锁定",
"Making progress": "正在进行",
"Message": "消息",
"Message From #{smsPhoneNumber}": "来自 #{smsPhoneNumber} 的消息",
"Name Your Device:": "为您的设备命名:",
"Name must be less than 50 characters.": "姓名必须少于 50 个字符。",
"Name your device": "为设备命名",
"New Password": "新密码",
"No": "否",
"No Update Available": "无更新",
"No Wi-Fi Connection": "无 WLAN 连接",
"OK": "确定",
"Off": "关闭",
"On": "开启",
"PIN is Incorrect": "PIN 码不正确",
"PUK Locked": "PUK 码锁定",
"Password": "密码",
"Password must be 6-20 characters.": "密码必须为 6-20 个字符。",
"Passwords do not match.": "密码不相符。",
"Phone": "电话",
"Please answer the security question.": "请回答安全提示问题。",
"Please enter a name for your device.": "请输入设备名称。",
"Please enter a valid email address.": "请输入有效的电子邮件地址。",
"Please enter the email address you used to create your webOS account (previously Palm Profile).": "请输入用于创建 webOS 帐户(以前称为 Palm 个人帐户)的电子邮件地址。",
"Please enter your name.": "请输入您的姓名。",
"Please visit http://hpwebos.com/support to help resolve this problem": "请访问 http://hpwebos.com/support 以帮助解决此问题",
"Power off device?": "是否关闭设备电源?",
"Problem Locating Backups": "查找备份时出问题",
"Product Number": "产品编号",
"Recover Password": "恢复密码",
"Security Question": "安全提示问题",
"Security Question:": "安全提示问题:",
"Security answer must be less than 50 characters.": "安全提示问题的答案必须少于 50 个字符。",
"Select a device in the list. You can copy your applications, accounts, data and settings to your TouchPad or just the applications.": "在列表中选择某个设备。可将应用程序、帐户、数据和设置或仅应用程序复制到 TouchPad 。",
"Serial Number": "序列号",
"Server Error": "服务器错误",
"Setup Options": "设置选项",
"Sign In": "登录",
"Sign in to your HP webOS Account or Palm Profile to copy your applications, accounts and data to your TouchPad.": "登录 HP webOS 帐户或 Palm 个人帐户将您的应用程序、帐户和数据复制到 TouchPad 上。",
"Software Update": "软件更新",
"Software Update In Progress": "正在更新软件",
"Start Over": "重新开始",
"Thanks!": "谢谢!",
"The United States Government prohibits HP from allowing you to use this email address to set up a webOS account.": "美国政府禁止 HP 允许您使用此电子邮件地址建立 webOS 帐户。",
"The United States Government restricts exports to certain countries, including the country where your email address domain is issued. You can visit www.palm.com/us/company/legal for additional information.": "美国政府限制对某些国家/地区(包括为您分配电子邮件地址域的国家/地区)的出口。您可以访问 www.palm.com/us/company/legal 获取其他信息。",
"The current SIM cannot be used in this device. To continue setup, insert a valid SIM with active data service from #{carrier} or use Wi-Fi instead": "无法在此设备中使用当前 SIM 卡。要继续设置,请从 #{carrier} 处获取数据服务有效的 SIM 卡,或改用 WLAN。",
"The current SIM cannot be used in this device. To continue setup, insert a valid SIM with active data service from your carrier or use Wi-Fi instead.": "无法在此设备中使用当前 SIM 卡。要继续设置,请从电信运营商处获取数据服务有效的 SIM 卡,或改用 WLANi。",
"The password you entered is incorrect. Try again.": "输入的密码不正确,请重试。",
"There is already an account associated with that email address. Please sign in now or choose a new email address": "已有一个帐户与该电子邮件地址关联。请现在登录,或选择一个新的电子邮件地址",
"This device's software must be updated to restore data from #{deviceName}. However, the updated software is not yet available. Please choose a different device to restore from.": "必须更新此设备的软件才能从 #{deviceName} 还原数据。但是,更新的软件尚不可用。请选择其他设备进行还原。",
"Try Again": "请再试",
"Turn Off": "关闭",
"Use Wi-Fi": "使用 WLAN",
"Verify Password": "验证密码",
"Visit http://hpwebos.com/support for assistance.": "请访问 http://hpwebos.com/support 以获取协助。",
"We are copying your data and applications to your TouchPad. This may take a few minutes.": "正在将数据和应用程序复制到 TouchPad,此过程可能需要几分钟时间。",
"We are unable to create a new account right now. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "当前无法创建新帐户。请在几分钟后重试,或与 HP 联系以帮助解决此问题。有关更多信息,请访问 http://hpwebos.com/support。",
"We are unable to create an account for you. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "无法创建帐户。请在几分钟后重试,或与 HP 联系以帮助解决此问题。有关更多信息,请访问 http://hpwebos.com/support。",
"We cannot restore your backup data. If you continue, we will sign into your account and your applications (but not data) will be restored to this device.": "我们无法还原您的备份数据。如果继续,我们将登录您的帐户,并将您的应用程序(而不是数据)还原到此设备。",
"We couldn't find a webOS account associated with that email address.": "未找到与该电子邮件地址关联的 webOS 帐户。",
"We sent an email to #{email}. If you don't receive the email shortly check your junk email folder.": "我们向 #{email} 发送了一封电子邮件。如果没有立刻收到电子邮件,请检查垃圾邮件文件夹。",
"We tried to send an email to #{email} but it failed. Please contact HP support.": "我们已尝试向 #{email} 发送电子邮件,但发送失败。请与 HP 支持人员联系。",
"We were unable to sign you in. Please try again in a few minutes or contact HP for help resolving this problem. Visit http://hpwebos.com/support for more information.": "无法登录。请在几分钟后重试,或与 HP 联系以帮助解决此问题。有关更多信息,请访问 http://hpwebos.com/support。",
"We're almost done. When we finish, we'll restart your device and you'll be ready to go.": "即将完成。完成后将重新启动设备,随后即准备就绪。",
"WebOS Build": "WebOS 内部版本",
"WebOS Version": "WebOS 版本",
"What do you want to copy?": "您想要复制什么?",
"What is the name of your favorite animal?": "您最喜爱的动物叫什么名字?",
"What's a webOS Account?": "什么是 webOS 帐户?",
"Why do I need an account?": "为什么需要帐户?",
"Wi-Fi Setup": "WLAN 设置",
"Would you like to start over from the beginning?": "是否要从开头处重新开始?",
"Yes": "是",
"You have entered the PIN incorrectly twice. To avoid locking your SIM, you should use Wi-Fi now.": "PIN 码已输错两次。要避免 SIM 卡被锁,请立即使用 WLAN。",
"You may return your device where you purchased it in accordance with the applicable return poilicy.": "可在购买设备的地方根据相应退货策略退回设备。",
"You need a network to setup your device.": "需要网络才能设置您的设备。",
"You need an HP webOS account to use this device. Your data, accounts, application download and purchase history will be securely backed up.": "需要 HP webOS 帐户才能使用此设备。它能安全地备份数据、帐户、应用程序下载和购买历史记录。",
"You'll be asked for permission when an application wants your location. For your convenience, you may enable Auto Locate, which will automatically provide your location for applications without asking each time. You may change this setting at any time in the Location Services preference.": "当某个应用程序想要获得您的位置时,将会请求您的允许。为方便起见,可启用“自动定位”,此功能将自动向应用程序提供您的位置而不必每次都询问您。您可以随时在定位服务首选项中更改此设置。",
"Your SIM is PUK locked. Please contact #{carrier} to unlock it. To set up your device, insert a valid SIM with active data service or use Wi-Fi instead.": "SIM 卡被 PUK 码锁定。请与 #{carrier} 联系将其解锁。要设置设备,请插入数据服务有效的 SIM 卡或改用 WLAN。",
"Your SIM is PUK locked. Please contact your carrier to unlock it. To set up your device, insert a valid SIM with active data service or use Wi-Fi instead.": "SIM 卡被 PUK 码锁定。请与电信运营商联系将其解锁。要设置设备,请插入数据服务有效的 SIM 卡或改用 WLAN。",
"Your device no longer has a Wi-Fi connection. Connect to a new network.": "设备 WLAN 已中断,请连接到新的网络。"
}
+58
View File
@@ -0,0 +1,58 @@
#!/bin/bash
if [ "X$1" != "X" ] ; then
DEV=$1
else
echo "Usage: copy_all [emulator|topaz]"
exit
fi
echo "Device = $DEV"
DEVICE=`novaterm -l | grep $DEV | awk '{print $2}'`
if [ "X$DEVICE" == "X" ] ; then
echo "Device '$DEV' is not connected!'"
exit
fi
function copy_file {
base=`basename $1`
# Copy the file to the device
CPY_CMD="novacom -d $DEVICE put file://$DEST/$1 < $SOURCE/$1"
# echo "Copying" $base
eval $CPY_CMD
}
# Copy a folder to the device
function copy_folder {
cd $SOURCE
# Make all the required directories
DIR_LIST=`find -type d | grep -v svn`
for CUR_DIR in $DIR_LIST ; do
novacom -d $DEVICE run "file:////bin/mkdir -p $DEST/$CUR_DIR"
done
# Copy all the files
FILE_LIST=`find -type f | grep -v svn | grep -v .project`
for CUR_FILE in $FILE_LIST ; do
copy_file $CUR_FILE ;
done
}
#########################################################
# Stop LunaSysMgr
#########################################################
echo "Stopping LunaSysMgr ..."
novacom -d $DEVICE run "file:///sbin/stop LunaSysMgr"
#########################################################
# Copy the FirstUse app to the phone
#########################################################
echo "Copying FirstUse app to $DEV ..."
SOURCE="/home/YOURNAMEHERE/workspace/com.palm.app.firstuse/trunk"
DEST="/usr/palm/applications/com.palm.app.firstuse"
copy_folder ;
@@ -0,0 +1,248 @@
enyo.kind({
name: "MyApps.FirstUse.DeviceInfoDialog",
kind: "ModalDialog",
lazy: false,
showing: false,
caption: rb.$L("Device Information"),
//dismissWithClick: true,
style: "min-width: 350px; color: black",
components: [
{
name: "mainAlert",
kind: "Control",
components: [
{kind: "RowGroup",
name: "deviceInfoRowGroup",
caption: rb.$L("Device Information"),
components: [
{
kind: "enyo.HFlexBox",
onclick: "NduID_Toggle",
components: [
{
name: "deviceIDLabel",
content: rb.$L("Device ID"),
className:"enyo-label",
style: "padding-right:20px"
},
{
name: "deviceID",
flex: 1,
className:"enyo-label deviceinfo-textvalues",
components: []
}
]
},
{
kind: "enyo.HFlexBox",
components: [
{
content: rb.$L("MAC Address"),
className:"enyo-label",
style: "padding-right:30px"
},
{
name: "deviceMAC",
className:"enyo-label enyo-text-ellipsis deviceinfo-textvalues",
flex: 1,
components: []
}
]
},
{
kind: "enyo.HFlexBox",
components: [
{
content: rb.$L("Device Model"),
className:"enyo-label",
style: "padding-right:30px"
},
{
name: "deviceModel",
className:"enyo-label enyo-text-ellipsis deviceinfo-textvalues",
flex: 1,
components: []
}
]
},
{
kind: "enyo.HFlexBox",
components: [
{
content: rb.$L("Product Number"),
className:"enyo-label",
style: "padding-right:30px"
},
{
name: "deviceProductSKU",
className:"enyo-label enyo-text-ellipsis deviceinfo-textvalues",
flex: 1,
components: []
}
]
},
{
kind: "enyo.HFlexBox",
components: [
{
content: rb.$L("Serial Number"),
className:"enyo-label",
style: "padding-right:30px"
},
{
name: "deviceSerial",
className:"enyo-label enyo-text-ellipsis deviceinfo-textvalues",
flex: 1,
components: []
}
]
},
{
kind: "enyo.HFlexBox",
components: [
{
content: rb.$L("Handset"),
className:"enyo-label",
style: "padding-right:30px"
},
{
name: "deviceHPSerial",
className:"enyo-label enyo-text-ellipsis deviceinfo-textvalues",
style:"text-align:right",
flex: 1,
components: []
}
]
},
{
kind: "enyo.HFlexBox",
components: [
{
content: rb.$L("Hardware Version"),
className:"enyo-label",
style: "padding-right:30px"
},
{
name: "deviceHardwareVersion",
className:"enyo-label enyo-text-ellipsis deviceinfo-textvalues",
flex: 1,
components: []
}
]
},
{
kind: "enyo.HFlexBox",
onclick: "showBuildNumber",
components: [
{
content: rb.$L("WebOS Version"),
className:"enyo-label",
style: "padding-right:30px",
name: "deviceWebOSVersionLabel"
},
{
name: "deviceWebOSVersion",
className:"enyo-label enyo-text-ellipsis deviceinfo-textvalues",
flex: 1,
components: []
}
]
},
]
},
{ kind: "Button", caption: rb.$L("Done"), onclick: "close" },
]
},
{
kind: "PalmService",
name: "getDeviceInfo",
service: "palm://com.palm.deviceprofile/",
method: "getDeviceProfile",
onSuccess: "gotDeviceInfo",
onFailure: "deviceInfoFailure"
},
],
openDeviceInfoDialog: function(){
this.NduIDShowing = undefined;
this.deviceBuildNumberShowing = undefined;
this.$.getDeviceInfo.call({});
},
gotDeviceInfo: function(inSender, inResponse) {
console.info("gotDeviceInfo: " + JSON.stringify(inResponse));
this.deviceInfo = inResponse.deviceInfo;
this.$.deviceMAC.setContent(inResponse.deviceInfo.WIFIoADDR);
this.$.deviceSerial.setContent(inResponse.deviceInfo.serialNumber);
this.$.deviceHPSerial.setContent(inResponse.deviceInfo.HPSerialNumber);
this.NduID_Toggle(); // sets the device ID field;
this.$.deviceProductSKU.setContent(inResponse.deviceInfo.productSku);
this.$.deviceModel.setContent(inResponse.deviceInfo.deviceModel);
this.$.deviceHardwareVersion.setContent(inResponse.deviceInfo.hardwareVersion);
this.showBuildNumber();
this.openAtCenter();
},
deviceInfoFailure: function(inSource, inResponse) {
console.info("deviceInfoFailure");
},
showBuildNumber: function(){
if (this.deviceBuildNumberShowing == undefined) this.deviceBuildNumberShowing = true;
if (this.deviceBuildNumberShowing) {
this.deviceBuildNumberShowing = true;
this.$.deviceWebOSVersionLabel.setContent(rb.$L("WebOS Version"));
this.$.deviceWebOSVersion.setContent(this.deviceInfo.softwareBuildBranch);
} else {
this.$.deviceWebOSVersionLabel.setContent(rb.$L("WebOS Build"));
this.$.deviceWebOSVersion.setContent(this.deviceInfo.softwareVersion);
}
this.deviceBuildNumberShowing = !this.deviceBuildNumberShowing;
},
NduID_Toggle: function(nduId) {
if (this.NduIDShowing == undefined) this.NduIDShowing = true;
if (this.NduIDShowing && (this.deviceInfo.deviceId != null && this.deviceInfo.deviceId.length > 0)) {
this.$.deviceIDLabel.setContent(rb.$L("Device ID"));
this.$.deviceID.setContent(this.formatDeviceID(this.deviceInfo.deviceId));
this.$.deviceID.setClassName("enyo-label enyo-text-ellipsis deviceinfo-textvalues");
} else {
if ((this.deviceInfo.deviceId != null && this.deviceInfo.deviceId.length > 0)) {
this.$.deviceIDLabel.setContent(rb.$L("Ndu ID"));
} else {
this.$.deviceIDLabel.setContent(rb.$L("Device ID"));
}
this.$.deviceID.setContent(this.formatDeviceID(this.deviceInfo.nduId));
this.$.deviceID.setClassName("enyo-label deviceinfo-textvalues deviceinfo-nudidText");
}
this.NduIDShowing = !this.NduIDShowing;
},
formatDeviceID: function(nduId) {
var val = nduId;
var result = "";
while (val.length >= 5) {
result += val.substr(0, 5);
val = val.substr(5, val.length-5);
result += " ";
}
if (val.length > 0 && val.length < 5) {
result += val;
};
return result;
//return result + "\u00A0\u00A0\u00A0\u00A0\u00A0"; // 4 non-breaking spaces
}
});
@@ -0,0 +1,261 @@
enyo.kind({
name: "Language",
events: {
onFinish: ""
},
kind: enyo.HFlexBox, align: 'center', pack: 'justify',
published: {
languageCodes: ["en", "es", "fr", "de"],
countryCodes: [],
//countries: ["United States", "Spain", "France", "Germany"],
//countryCodes: ["us", "es", "fr", "de"],
selectedCountry: "",
selectedCountryCode: "",
selectedLanguage: "",
selectedLanguageCode: ""
},
languages: [],
countries: [],
components: [
{content: "", style: "width: 100%; display: table; height: 100%;",
components: [
{name: "languageScroller", kind: enyo.BasicScroller, style: "display: table-cell; vertical-align: middle;",
components: [
{name: "mainbox",
kind: enyo.VFlexBox,
className: "languages", pack: "center", align: "center",
components: [
]},
]}
]},
{name: "confirmPopup", kind: "ModalDialog", lazy: false, className: "popup", components: [
{name: "message", content: "", className: "enyo-text-header", style: "text-align:center"},
{kind: "HFlexBox", pack: "justify", className: "language-btns", style: "padding:15px 0 0 0;", components: [
{kind: "IconButton", className: "enyo-button-negative", style: "margin-right:10px;", icon: "images/btn_cancel.png", flex: 1, onclick: "doCancel"},
{kind: "IconButton", className: "enyo-button-affirmative", icon: "images/btn_confirm.png", flex: 1, onclick: "doConfirm"}
]},
]
},
{kind: "Scrim", layoutKind: "VFlexLayout", align: "center", pack: "center", components: [
{kind: "SpinnerLarge", name: "spinner", showing: false}
]
},
//{name:"justScrim", kind: "Scrim", layoutKind: "VFlexLayout", align: "center", pack: "center"},
{kind: "SystemService", onFailure: "handleGenericFailure", onSuccess: "handleGenericSuccess",
components: [
{name: "getLanguageList", method: "getPreferenceValues", subscribe: true, params: {"key": "locale"}, onSuccess: "gotLanguages"},
{name: "setTimeFormat", method: "setPreferences", onResponse: "setTimeResponse"},
{name: "setLocaleRegion", method: "setPreferences", onResponse:"setLocaleRegionResponse"}
]
},
{kind: "AccountsService", onResponse: "handleAccountsServiceResponse",
components: [
{name: "listAccounts", method: "listAccounts", onResponse: "listAccountsResponse", params: {"templateId":"com.palm.palmprofile"}},
{name: "deleteAccount", method: "deleteAccount", onResponse: "deleteAccountResponse"}
]
}
],
create: function(){
this.inherited(arguments);
this.deleteAnyExistingPalmProfileAccounts();
this.$.getLanguageList.call();
},
gotLanguages: function(inSender, inResponse){
var languages = new Array();
var countries = new Array();
var languageCodes = new Array();
var countryCodes = new Array();
var countries = new Array();
var countryCodes = new Array();
for (i = 0; i < inResponse.locale.length; i++) {
languageCodes[i] = inResponse.locale[i].languageCode;
languages[i] = inResponse.locale[i].languageName;
countries[i] = new Array(inResponse.locale[i].countries.length);
countryCodes[i] = new Array(inResponse.locale[i].countries.length);
for( j= 0; j <inResponse.locale[i].countries.length; j++){
countryCodes[i][j] = inResponse.locale[i].countries[j].countryCode;
countries[i][j] = inResponse.locale[i].countries[j].countryName;
}
}
this.setLanguageCodes(languageCodes);
this.languages=languages;
this.countries=countries;
this.setCountryCodes(countryCodes);
this.addDrawers();
//this.$.langList.render();
//this.$.pane.selectViewByName("langList").render();
},
handleGenericFailure: function(inSender){
console.info("Got generic failure " + inSender);
},
addDrawers: function ()
{
var intLangIndex = 0, k= 0, newdrawer, countryItem, drawerClass = "enyo-drawer-container ", itemClass = ""; // moved variable instantiation to the top of the function, added class for className so that I can set first and last classes.
for (intLangIndex = 0; intLangIndex < this.languages.length; intLangIndex++)
{
drawerClass += (intLangIndex === 0) ? "enyo-first" : ((intLangIndex === this.languages.length) ? "enyo-last" : "enyo-middle");
newdrawer = this.$.mainbox.createComponent({name:"LangDrawer" + intLangIndex, kind: "Drawer", className: drawerClass, caption: this.languages[intLangIndex], owner: this, open:false, canChangeOpen: true, align: "center", langIndex: intLangIndex, onclick: "onOpenDrawer", components: []});
//this.$.mainbox.contentChanged();
for(k =0; k< this.countries[intLangIndex].length; k++){
itemClass = (k === 0) ? "enyo-first" : ((k === this.countries[intLangIndex].length) ? "enyo-last" : "enyo-middle");
countryItem = newdrawer.createComponent({ kind: "Item", className: itemClass, countryIndex: k,langIndex:intLangIndex, owner: this, align: "center", content: this.countries[intLangIndex][k], onclick: "langSelected"});
}
this.$.mainbox.contentChanged();
}
},
onOpenDrawer: function(inSender){
var remove = this.lastOpenedId == inSender.id;
for(var ct=0; ct<this.languages.length; ct++){
if (remove) {
if (!inSender.open) {
inSender.parent.removeClass('open');
}
} else {
if(inSender.langIndex!=ct){
this.$["LangDrawer"+ct].close();
inSender.parent.addClass('open');
}
}
}
if (remove) {
if (!inSender.open) {
this.lastOpenedId = undefined;
}
} else {
this.lastOpenedId = inSender.id;
}
},
langSelected: function(inSender){
//this.$.justScrim.show();
var lastView = this.view;
var index = inSender.langIndex;
var rb = new enyo.g11n.Resources({locale: this.languageCodes[index]+"_"+this.countryCodes[index][inSender.countryIndex]});
var confirmTemp = new enyo.g11n.Template(rb.$L("#{language}, #{country}?"));
this.view = null;
this.setSelectedCountry(this.countries[index][inSender.countryIndex]);
this.setSelectedLanguage(this.languages[index]);
this.setSelectedLanguageCode(this.languageCodes[index]);
this.setSelectedCountryCode(this.countryCodes[index][inSender.countryIndex]);
this.$.message.setContent(confirmTemp.evaluate({language: this.languages[index], country: this.countries[index][inSender.countryIndex]}));
this.$.confirmPopup.setCaption(rb.$L("Confirm"));
this.$.confirmPopup.openAtCenter();
},
doConfirm: function(){
//this.$.justScrim.hide();
this.$.confirmPopup.close();
this.$.scrim.show();
this.$.spinner.setShowing(true);
enyo.application.FirstUse.setLanguageCode(this.getSelectedLanguageCode());
console.info("locale and region settings: " + this.getSelectedLanguageCode() + ", " + this.getSelectedLanguage() + ": " + this.getSelectedCountryCode() + ", " + this.getSelectedCountry());
this.$.setLocaleRegion.call({
"locale": {
"languageCode": this.getSelectedLanguageCode(),
"countryCode": this.getSelectedCountryCode(),
"phoneRegion": {
"countryCode": this.getSelectedCountryCode(),
"countryName": this.getSelectedCountry()
}
},
"region": {
"countryCode": this.getSelectedCountryCode(),
"countryName": this.getSelectedCountry()
}},{method:"setPreferences", onResponse: "setLocaleRegionResponse"});
//Time format needs to be set based on locale
var locale = new enyo.g11n.Locale(this.getSelectedLanguageCode() + "_" + this.getSelectedCountryCode());
var fmts = new enyo.g11n.Fmts({locale: locale});
this.$.setTimeFormat.call({"timeFormat": fmts.isAmPmDefault() ? "HH12" : "HH24"});
console.log("LOCALE: " + locale);
enyo.g11n.setLocale({
uiLocale: locale.locale,
formatLocale: this.getSelectedCountryCode(),
phoneLocale: this.getSelectedCountryCode()
});
window.location = "index.html?locale="+locale.locale+"&country="+this.getSelectedCountryCode();
//setTimeout(enyo.bind(this,"loadCustomization"),10);
},
setLocaleRegionResponse: function(inSender, inResponse){
console.info("setLocaleRegionSuccess: " + JSON.stringify(inResponse));
},
setCustomizationSuccess: function(inSender, inResponse){
console.info("Customization populate defaults success: " + JSON.stringify(inResponse));
this.$.scrim.hide();
this.$.spinner.setShowing(false);
this.doFinish();
},
setCustomizationFailure: function(inSender, inResponse) {
//This should never happen. If it does, work with customization to fix
console.info("Customization populate defaults failure: " + JSON.stringify(inResponse));
this.$.scrim.hide();
this.$.spinner.setShowing(false);
this.doFinish();
},
setTimeResponse: function(inSender, inResponse){
console.info("setTimeResponse: " + JSON.stringify(inResponse));
},
doCancel: function(){
this.$.scrim.hide();
this.$.spinner.setShowing(false);
this.$.confirmPopup.close();
},
deleteAnyExistingPalmProfileAccounts: function(){
this.$.listAccounts.call();
},
listAccountsResponse: function(inSender, inResponse){
if(inResponse.returnValue){
if(inResponse.results.length > 0){
for(i = 0; i < inResponse.results.length; i++){
if(inResponse.results[i].templateId == "com.palm.palmprofile"){
console.info("Deleting webOS account with Id: " + inResponse.results[i]._id);
this.$.deleteAccount.call({"accountId" : inResponse.results[i]._id});
}
}
} else {
console.info("No webOS Account accounts to delete");
}
} else {
console.info("ListAccount exception: " + JSON.stringify(inResponse));
}
},
deleteAccountResponse: function(inSender, inResponse){
console.info("deleteAccountResponse: " + JSON.stringify(inResponse));
}
});
@@ -0,0 +1,32 @@
enyo.kind({
name: "Power",
events: {onFinish: "", onPowerOff: ""},
kind: "ModalDialog", lazy: false,
className: "enyo-modaldialog enyo-popup popup",
caption: rb.$L("Power off device?"),
layoutKind:"VFlexLayout",
showing: false,
components: [
{kind: "HFlexBox", pack: "justify", style: "padding:15px 0 0 0;", components: [
{name: "turnOffButton", kind: "Button", caption: rb.$L("Turn Off"), className: "enyo-button-negative", style: "margin-right:10px;", flex: 1, onclick: "powerDownNow"},
{name: "cancelButton", kind: "Button", caption: rb.$L("Cancel"), flex: 1, onclick: "doFinish"}
]
}
],
powerDownNow: function(inSender, inResponse){
//this.$.turnOffButton.setDisabled(true); -- Client should put up a spinner instead.
//this.$.cancelButton.setDisabled(true); -- Client should put up a spinner instead.
this.close();
this.doPowerOff();
},
powerDownResponse: function(inSender, inResponse){
console.info("powerDownResponse: " + JSON.stringify(inResponse));
},
handlePowerServiceResponse: function(inSender, inResponse){
console.info("handleGenericResponse: " + JSON.stringify(inResponse));
}
});
@@ -0,0 +1,293 @@
// ChooseBackupPage.js
//
// Displays a list of devices that have backups on the user's account. The user can pick a device and restore
// the backup, or skip the restore.
enyo.kind({
ROW_HEIGHT: 120,
MAX_VISIBLE_ROWS: 2.5,
name: "ChooseBackupPage",
kind: "HFlexBox",
align: "start",
pack:"center",
published: {
devices: {},
inCompatibleVersion:""
},
events: {
onRestore: "",
onSkip: "",
onSwUpdate: ""
},
create: function() {
this.inherited(arguments);
this.enableButtons();
this.timeoutDurationArray =[];
this.log("TEST-softwareUpdateAvailable:"+this.owner.softwareUpdateAvailable);
},
components: [
{kind: "VFlexBox", className: "devices", components: [
{ className: "title", content: rb.$L("What do you want to copy?") },
{ className: "subtitle", content: rb.$L('Select a device in the list. You can copy your applications, accounts, data and settings to your TouchPad or just the applications.') },
{ name: "deviceListContainer",kind: "Control", className: "box", components: [
{ name: "deviceList", kind: "VirtualList", className: "list", onSetupRow: "setupRow", onclick: "selectDevice", components: [
{ name: "deviceItem", kind: "Item", layoutKind: "HFlexLayout", align: "center", pack: "justify", components: [
{ kind: "Control", flex: 1, components: [
{ kind: "Control", layoutKind: "HFlexLayout", components: [
{ name: "msgIcon", kind: "Image" ,showing:false, src: "images/bg_message.png", style: "margin-right: 3px" },
{ name: "deviceName", className: "name" }
]},
{ name: "backupDate"},
]},
{ kind: "Control", layoutKind: "VFlexLayout", className: "image", pack: "center", align: "center", components: [
{ name: "deviceImage", kind: "Image" , onerror: "imageErrorHandler" }
]}
]}
]}
]},
{ name: "restoreButton", kind: "Button", caption: rb.$L("Copy Everything"), onclick: "restoreClicked", className: "enyo-button-affirmative", style: "margin:0 20px 15px;"},
{ kind: "Button", caption: rb.$L("Applications Only"), onclick: "doSkip", style: "margin:0 20px 15px;"},
{
kind: "ModalDialog",
caption: rb.$L("Cannot Restore"),
name: "noOtaPopup",
modal: "true",
lazy: true,
className: "popup",
components: [{
name: "noOtaModContent",
content: "",
className: "enyo-text-body"
},
{
kind: "Button",
caption: rb.$L("OK"),
flex: 1,
onclick: "closeNoOtaPopup",
style: "margin-bottom:10px"
}]
},
{
kind: "ModalDialog",
caption: rb.$L("Software Update"),
name: "swUpdatePopup",
modal: true,
lazy: true,
className: "popup",
components: [{
name : "swModContent",
content: "",
className: "enyo-text-body"
},
{layoutKind: "HFlexLayout", pack: "center", components: [
{
kind: "Button",
caption: rb.$L("Cancel"),
flex: 1,
onclick: "closeswuPopup",
style: "margin-right:10px"
},
{
kind: "Button",
className: 'enyo-button-affirmative',
caption: rb.$L("OK"),
flex: 1,
onclick: "updateSoftware"
}
]}
]}
]}
],
closeNoOtaPopup: function(){
this.selectedRow = undefined;
this.$.deviceList.refresh();
this.$.noOtaPopup.close();
},
closeswuPopup: function(){
this.log("Inside closeswPopup");
this.$.swUpdatePopup.close();
},
updateSoftware:function(){
this.log("Inside swUpdatePopup");
this.doSwUpdate();
},
// Refreshes the device list with the newly-set list of devices
devicesChanged: function() {
this.log("Inside devicesChanged");
this.currentTimeMillis = Date.parse(this.getDevices().date);
this.selectedRow = undefined;
// if the current device is in the list, select it by default
var devices = this.getDevices().devices;
for (var i = 0; i < devices.length; i++) {
if (devices[i].currentDevice) {
this.log("Selected device", devices[i], "by default because it's the current device");
this.selectedRow = i;
break;
}
}
// make the device list the proper size to show the number of devices, up to the maximum visible rows
var listHeight = Math.min(this.MAX_VISIBLE_ROWS, devices.length) * this.ROW_HEIGHT;
this.$.deviceList.setStyle("height: " + listHeight + "px");
this.timeoutDurationArray =[]; // Empty the timeout list so that can re-calculate the loading time.
this.$.deviceList.refresh();
// make the buttons enable when the default value set.
this.enableButtons();
},
// Fires the onRestore event when the user taps the Restore button
restoreClicked: function() {
this.log("Inside restoreClicked- selectedDeviceName "+JSON.stringify(this.getSelectedDevice()));
var version=this.getSelectedDevice().backups[0].dbVersion;
if (version >= this.getInCompatibleVersion()) {
this.$.swUpdatePopup.validateComponents();
this.$.swModContent.setContent("This device's software must be updated to restore data from "+this.getSelectedDevice().deviceName +". Would you like to update now?");
this.$.swUpdatePopup.openAtCenter();
}
else {
this.doRestore(this.getSelectedDevice());
}
},
// Fires the onRestore event when the user taps the updateButton button
swupdateClicked: function() {
this.log("Inside swupdateClicked");
this.doSwUpdate();
},
// Selects a device based on the DOM event
selectDevice: function(inSender, inEvent) {
this.selectedRow = inEvent.rowIndex;
this.log("Selected row:", this.selectedRow);
this.timeoutDurationArray =[]; // Empty the timeout list so that can re-calculate the loading time.
this.$.deviceList.refresh();
this.enableButtons();
return true;
},
// Returns the descriptor of the currently selected device
getSelectedDevice: function() {
if (this.selectedRow === null ||
this.selectedRow === undefined ||
!this.getDevices().devices ||
this.getDevices().devices.length <= this.selectedRow) {
return undefined;
} else {
return this.getDevices().devices[this.selectedRow];
}
},
// Configures the Flyweight used in the list to stamp the next row
setupRow: function(inSender, inIndex) {
if (inIndex >= 0 && this.getDevices().devices && inIndex < this.getDevices().devices.length) {
var device = this.getDevices().devices[inIndex];
this.$.deviceName.setContent(device.deviceName);
var devbackup=device.backups[0];
this.$.backupDate.setContent(rb.$L("Backed up ") + this.getElapsedTime(device.backups[0].date)+this.getVersionString(device.osVersion));
var version = device.backups[0].dbVersion;
console.info("softwareUpdateAvailable:"+this.owner.softwareUpdateAvailable);
if (version && version >= this.getInCompatibleVersion()) {
if (!this.owner.softwareUpdateAvailable) {
this.$.msgIcon.show();
}
}
this.$.deviceImage.setSrc(device.deviceImageUrl);
this.$.deviceItem.addRemoveClass("selected", (inIndex == this.selectedRow));
this.$.deviceItem.addRemoveClass("first", (inIndex == 0));
this.$.deviceItem.addRemoveClass("last", (inIndex == this.getDevices().devices.length - 1));
return true;
}
},
getVersionString: function(osVersion){
if (osVersion === undefined || osVersion.major === undefined) {
return "";
}
var vString=rb.$L(", webOS #{major}.#{minor}.#{revision}");
return this.getLocString(vString,{major:osVersion.major,minor: osVersion.minor, revision:osVersion.revision});
},
// Enables/disables the Restore button depending on whether a backup is selected
enableButtons: function() {
if(this.selectedRow === undefined){
this.$.restoreButton.setDisabled(true);
return;
}
this.$.restoreButton.setDisabled(false);
var version = this.getSelectedDevice().backups[0].dbVersion;
if (version && version >= this.getInCompatibleVersion()) {
if (!this.owner.softwareUpdateAvailable) {
this.$.restoreButton.setDisabled(true);
this.showNoOta();
// this.selectedRow = undefined;
// this.$.deviceList.refresh();
}
}
},
showNoOta: function(){
this.$.noOtaPopup.validateComponents();
var t = rb.$L("This device's software must be updated to restore data from #{deviceName}. However, the updated software is not yet available. Please choose a different device to restore from.");
this.$.noOtaModContent.setContent(this.getLocString(t,{deviceName: this.getSelectedDevice().deviceName}));
this.$.noOtaPopup.openAtCenter();
},
// Returns a user-presentable string stating how long before the current time the given time is.
// For example: '12 hours ago'
getElapsedTime: function(dateString) {
var HOUR = 1000 * 60 * 60;
var HOUR_THRESHOLD = HOUR * 36;
var DAY = HOUR * 24;
var dateMillis = Date.parse(dateString);
var diff = this.currentTimeMillis - dateMillis;
if (diff < HOUR) {
return rb.$L("Less than an hour ago");
} else if (diff < HOUR_THRESHOLD) {
var hours = Math.round(diff / HOUR);
return this.formatChoice(rb.$L("1#1 hour ago|1>##{num} hours ago"), hours, { num: hours });
} else {
var days = Math.round(diff / DAY);
return this.formatChoice(rb.$L("1#1 day ago|1>##{num} days ago"), days, { num: days });
}
},
formatChoice: function(localizedText, number, params) {
return new enyo.g11n.Template(localizedText).formatChoice(number, params);
},
getLocString: function(localizedText, params) {
return new enyo.g11n.Template(localizedText).evaluate( params);
},
imageErrorHandler: function( inSender, inEvent ){
var imageSrc = inSender.src;
var index = inEvent.rowIndex;
this.log("Failed to load image: " + imageSrc);
this.log("Row #: " + index);
if (this.timeoutDurationArray[index] === undefined || this.timeoutDurationArray[index] === null){
this.timeoutDurationArray[index] = 2;
}
var waitingTime = this.timeoutDurationArray[index];
var devliceList =this.$.deviceList;
if (waitingTime< 5*60){
this.log("Retry loading row #"+ index + " after: " + waitingTime + "s");
setTimeout(function() { devliceList.updateRow(index);}, waitingTime*1000);
this.timeoutDurationArray[index] += waitingTime;
}else{
this.log("Retry timeout, cann't load image: " + imageSrc);
}
}
});
@@ -0,0 +1,195 @@
// RestoreComponent.js
//
//Coordinates the screens and logic of the First Use Restore flow.
enyo.kind({
name: "RestoreComponent",
kind: "VFlexBox",
pack: "justify",
align:"center",
INCOMPATIBLE_VERSION : 300,
published: {
devices: null
},
events: {
onRestoreStarted: "",
onFinish: ""
},
components: [
{ name: "getRestoreDevices", kind: "BackupService", onSuccess: "getRestoreDevicesSuccess", onFailure: "getRestoreDevicesFailure" },
{ name: "eraseVar", kind: "PalmService", service: "palm://com.palm.storage/erase/", method: "EraseVar", onResponse: "eraseVarResponse" },
{ kind: "Pane", flex: 1, transitionKind: "enyo.transitions.Fade", className: "restore", components: [
{ name: "chooseBackupPage", kind: "ChooseBackupPage", onRestore: "startRestore", onSkip: "skipRestore",onSwUpdate: "launchUpdate", showing : false},
{ name: "restoringPage", kind: "RestoringPage", onFinish: "restoreFinished", onStartOver: "startOver" }
]},
{kind: "StartOver", name: "startOverButton"}
],
create: function() {
this.inherited(arguments);
this.log("Inside create()");
if (this.devices) {
this.devicesChanged();
} else {
// This is only here for testing purposes. Normally the RestoreComponent will be created with devices
// already set
this.log("No devices set, calling getRestoreDevices()");
this.$.getRestoreDevices.call({});
}
},
getRestoreDevicesSuccess: function(inSender, inResponse) {
this.log("Inside getRestoreDevicesSuccess, response:", inResponse);
this.setDevices(inResponse);
},
getRestoreDevicesFailure: function(inSender, inResponse) {
this.log("Inside getRestoreDevicesFailure, response:", inResponse);
},
requirementLost: function(requirement) {
this.log("Inside requirementLost:", requirement);
if ("data" === requirement && this.isRestoring()) {
this.$.restoringPage.setConnected(false);
}
},
requirementRestored: function(requirement) {
this.log("Inside requirementRestored:", requirement);
if ("data" === requirement && this.isRestoring()) {
this.$.restoringPage.setConnected(true);
}
},
isRestoring: function() {
return this.$.pane.getView() == this.$.restoringPage;
},
devicesChanged: function() {
this.log("Inside devicesChanged, devices:", this.devices+" softwareUpdateAvailable: "+this.softwareUpdateAvailable);
var devicesWithBackups = this.getDevicesWithBackups();
if ((this.getDevices().autoRestore === true ) &&
(devicesWithBackups[0].backups!==undefined && devicesWithBackups[0].backups[0].dbVersion < this.INCOMPATIBLE_VERSION)) {
this.log("There's only one backup but it could be from any device, so we'll automatically restore it");
this.startRestore(null, devicesWithBackups[0]);
} else {
this.$.chooseBackupPage.setShowing(true);
this.$.chooseBackupPage.setInCompatibleVersion(this.INCOMPATIBLE_VERSION);
this.$.chooseBackupPage.setDevices({
date: this.getDevices().date,
devices: devicesWithBackups
});
}
},
// From the given list of devices, extracts a list of the devices that contain backups. If the current
// device is in the list, puts it at the top, and sorts the rest by the device name.
getDevicesWithBackups: function() {
var devicesWithBackups = this.getDevices().devices.filter(function(device) {
return device.backups && device.backups.length > 0;
});
// For pre-Dartfish hardware, returns a default device name based on the hardware type
var getDefaultDeviceName = function(hardwareType) {
switch(hardwareType) {
case "castle":
return rb.$L("Palm Pre");
case "pixie":
return rb.$L("Palm Pixi");
case "roadrunner":
return rb.$L("Palm Pre 2");
case "broadway":
return rb.$L("HP Veer");
//shortterm solution to avoid codename - need to think of long term solution to avoid codenames fully.
case "manta"+"ray":
return rb.$L("HP Pre3");
default:
return rb.$L("Phone");
}
};
devicesWithBackups.forEach(function(device) {
if (!device.deviceName) {
device.deviceName = getDefaultDeviceName(device.hardwareType);
}
});
devicesWithBackups = devicesWithBackups.sort(function(a, b) {
if (a.currentDevice && !b.currentDevice) {
return -1;
} else if (b.currentDevice && !a.currentDevice) {
return 1;
} else {
var aName = a.deviceName.toLowerCase();
var bName = b.deviceName.toLowerCase();
// TODO: Need to use a collator so that the sort works properly in other languages
if (aName < bName) {
return -1;
} else if (aName > bName) {
return 1;
} else {
return 0;
}
}
});
return devicesWithBackups;
},
startRestore: function(inSender, device) {
var nduId = device.nduId;
this.log("Inside startRestore(), device:", device);
this.sameDevice = device.currentDevice === true;
this.log("Firing restoreStarted event");
this.doRestoreStarted();
this.$.startOverButton.setShowing(this.isRestoring());
this.$.pane.selectViewByName("restoringPage");
this.$.restoringPage.setNduId(nduId);
},
skipRestore: function(inSender) {
var ret = {
skipped: true,
sameDevice: false
};
this.log("Inside skipRestore(), ret:", ret);
this.doFinish(ret);
},
launchUpdate: function(inSender, inResponse) {
this.log("Inside launchUpdate() ");
this.log("Firing force software update event");
var ret = {
swupdate: true
};
this.doFinish(ret);
},
restoreFinished: function(inSender) {
var ret = {
skipped: false,
sameDevice: this.sameDevice
};
this.log("Inside restoreFinished(), ret:", ret);
this.doFinish(ret);
},
startOver: function(inSender) {
this.log("Resetting device");
enyo.scrim.show();
this.$.eraseVar.call();
},
eraseVarResponse: function(inSender, inResponse) {
this.log("eraseVar response:", inResponse);
}
});
@@ -0,0 +1,7 @@
/* Copyright 2011 Palm, Inc. All rights reserved. */
enyo.kind({
name: "BackupService",
kind: "PalmService",
service: "palm://com.palm.service.backup/"
});
@@ -0,0 +1,110 @@
// RestoringPage.js
//
// Shows the user a progress bar indicating the state of the restore.
enyo.kind({
name: "RestoringPage",
kind: "VFlexBox",
pack: "justify",
published: {
nduId: "",
connected: true
},
events: {
onFinish: "",
onStartOver: ""
},
components: [
{name: "pane", kind: "Pane", flex: 1, transitionKind: "enyo.transitions.Fade", components: [
{kind:"VFlexBox", align: 'center', flex:1, components:[
{name: "restore", kind: "BackupService", subscribe: true, onSuccess: "restoreSuccess", onFailure: "restoreFailure" },
{ className: "title", content: rb.$L("Making progress") },
{ className: "subtitle box-center", content: rb.$L("We are copying your data and applications to your TouchPad. This may take a few minutes.")},
{kind: "Control", className: "box", components: [
{name: "progressBar", className: "restore-progress", kind: "ProgressBar"}
]},
{name: "errorPopup", kind: "ModalDialog", lazy: false,dismissWithClick:false,modal:false,
className: "popup",
caption: rb.$L("Error Restoring Data"),
components: [
{className: "enyo-text-body", content: rb.$L("An error occurred while restoring your data. Please try again in a few minutes.") },
{kind: "Control", layoutKind: "VFlexLayout", pack: "justify", components: [
{kind: "Button", caption: rb.$L("Try Again"), flex: 1, className: "enyo-button-affirmative", onclick: "tryAgainClick", style: "padding-bottom: 10px; margin-bottom:5px;"},
{kind: "Button", caption: rb.$L("Start Over"), flex: 1, className: "enyo-button-negative", onclick: "startOverClick", style: "padding-bottom: 10px;"}
]}
]}
]}
]}
],
nduIdChanged: function() {
this.log("Inside nduIdChanged, nduId=" + this.nduId);
this.startRestore();
},
startRestore: function() {
this.log("Inside startRestore");
this.$.progressBar.setPositionImmediate(0);
this.$.errorPopup.close();
this.$.restore.call({ nduId: this.nduId });
},
restoreSuccess: function(inSender, inResponse) {
this.log("Inside restoreSuccess, response:", inResponse);
var status = inResponse.STATUS;
switch (status) {
case "InProgress":
this.$.progressBar.setPosition(inResponse.percent);
break;
case "Complete":
this.$.progressBar.setPosition(100);
if (!inResponse.fired) {
// make sure we only fire the event on the final 'Complete', because there's also
// a 'Complete' event from the subscription
this.doFinish();
}
break;
case "Failed":
if (408 === inResponse.error) {
this.log("Restore failed due to dropped network connection");
if (this.connected) {
this.log("Looks like we have a connection now, trying again...");
this.startRestore();
} else {
this.log("Waiting for connection to come back");
this.failedDueToDroppedConnection = true;
}
} else {
this.$.errorPopup.openAtCenter();
}
}
},
restoreFailure: function(inSender, inResponse) {
this.error("Inside restoreFailure, response:", inResponse);
this.$.errorPopup.openAtCenter();
},
tryAgainClick: function() {
this.log("Try Again button clicked");
this.startRestore();
},
startOverClick: function() {
this.log("Start Over button clicked");
this.$.errorPopup.close();
this.doStartOver();
},
connectedChanged: function() {
this.log("Inside connectedChanged, connected:", this.connected);
if (this.connected && this.failedDueToDroppedConnection) {
this.failedDueToDroppedConnection = false;
this.startRestore();
}
}
});
@@ -0,0 +1,210 @@
label_error_nameDeviceLength = rb.$L("Device name is limited to 256 characters. Shorten name and try again.");
label_error_nameDeviceEmpty = rb.$L("Please enter a name for your device.");
enyo.kind({
name: "Namedevice",
kind: enyo.HFlexBox,
align: 'start',
pack: 'justify',
published: {currentServiceCall: "unknown",
acctToken: "",
acctAlias: "",
deviceId:"",
nduId:"",
},
events: {
onFinish: ""
},
components: [
{name: "pane", kind: "Pane", flex: 1, transitionKind: "enyo.transitions.Fade", components: [
{name: "nameDeviceView", kind: "Control", layoutKind: "VFlexLayout", align: 'center', pack: "start", flex:1, components: [
{kind:"Control", width:"500px", components:[
{kind:"Control", layoutKind: "VFlexLayout", align:'center', pack: 'justify', components: [
{content: label_header1_deviceManagement, className: "title" },
{content: label_header2_deviceManagement, className: "subtitle"}
]
},
{kind: "Control", className: "box", components: [
{kind: "Control", layoutKind: "VFlexLayout" , align: 'start', className: 'form-row', style:"margin:0 0 15px 0", components: [
{content: label_field_deviceName, className: "label"},
{name: "deviceName", kind: "Input", onblur: "nameDeviceOnBlur", oninput: "deviceNameOnInput", onchange: "nameDeviceOnChange", onkeydown: "deviceNameOnKeyPress", spellcheck: false, autocorrect: false, autoCapitalize: "title", hint: "", className: "field"},
{name: "nameDeviceError", content: label_error_nameDeviceEmpty, className: "message", showing: false},
]
},
{name: "nameDeviceButton", kind: "Button", caption: label_button_done, onclick: "nameDevice", disabled: true}
]}
]}
]},
{kind: "StartOver"}
]},
{kind: "Scrim", layoutKind: "VFlexLayout", align: "center", pack: "center",
components: [
{kind: "SpinnerLarge", name: "spinner", showing: false}
]
},
{kind: "AccountServicesService", onFailure: "handleGenericFailure", onSuccess: "handleGenericSuccess",
components:[
{name: "assignDeviceName", method: "assignDeviceName", onResponse: "assignDeviceNameResponse"},
{name: "getToken", method: "getAccountToken", onResponse: "getTokenResponse"},
]
},
{kind: "DeviceProfileService", onFailure: "handleGenericFailure", onSuccess: "handleGenericSuccess",
components:[
{name: "getDevice", method: "getDeviceProfile", onResponse: "getDeviceResponse"},
]
},
],
create: function(){
this.inherited(arguments);
this.setSuggestedDeviceName();
//these calls aqre local, but the results may happen asynchronously!
this.$.getToken.call();
this.$.getDevice.call();
},
dataRestored: function(){
console.info("Data restored called by Parent...");
if(enyo.application.FirstUse.currentServiceCall != "" && enyo.application.FirstUse.currentServiceCall != "unknown")
this.assignDeviceName();
},
nameDevice: function(){
this.$.scrim.show();
this.$.spinner.setShowing(true);
this.assignDeviceName();
},
assignDeviceName: function(){
if(this.getAcctAlias() != "" && this.getAcctToken() != "" && this.getNduId() != ""){
console.info("We have all token and device data to name the device");
if(enyo.application.FirstUse.getDataConnection()){
console.info("Data available...");
var locale = enyo.g11n.currentLocale();
var language = locale.language;
var region = locale.region;
this.$.assignDeviceName.call({"alias":this.getAcctAlias(), "token":this.getAcctToken(), "nduId":this.getNduId(), "name":this.$.deviceName.getValue(), "language": language, "country": region, "userChosen":true});
enyo.application.FirstUse.currentServiceCall = "";
} else {
enyo.application.FirstUse.currentServiceCall = enyo.hitch(this, "assignDeviceName");
console.info("Data not available. Registered " + enyo.application.FirstUse.currentServiceCall + "to be called after data restored");
}
} else {
if (this.tokenResponse && this.deviceResponse) {
console.info("We had an issue...just don't assign a name and proceed along.");
this.$.scrim.hide();
this.$.spinner.setShowing(false);
this.doFinish();
} else {
console.info("We dont have all info, Waiting before we call assignDeviceName");
this.retryWhenDataIsAvailable = true;
}
}
},
assignDeviceNameResponse: function(inSender, inResponse){
enyo.application.FirstUse.currentServiceCall = "";
this.$.scrim.hide();
this.$.spinner.setShowing(false);
console.info("Successfully named device: " + JSON.stringify(inResponse));
this.doFinish();
},
getTokenResponse: function(inSender, inResponse){
console.info("getToken Response");
if(inResponse.returnValue){
this.setAcctAlias(inResponse.accountAlias);
this.setAcctToken(inResponse.token);
} else {
console.info("Could not get token info");
}
this.tokenResponse = true;
if (this.retryWhenDataIsAvailable) {
this.assignDeviceName();
}
},
getDeviceResponse: function(inSender, inResponse){
console.info("getDevice Response");
if(inResponse.returnValue){
this.setDeviceId(inResponse.deviceInfo.deviceId);
this.setNduId(inResponse.deviceInfo.nduId);
} else {
console.info("Could not get device info");
}
this.deviceResponse = true;
if (this.retryWhenDataIsAvailable) {
this.assignDeviceName();
}
},
nameDeviceOnChange: function(){
if(this.$.deviceName.getValue().length < 1){
this.$.nameDeviceError.setContent(label_error_nameDeviceEmpty);
this.$.nameDeviceError.setShowing(true);
this.$.nameDeviceButton.setDisabled(true);
} else if (this.$.deviceName.getValue().length > 256){
this.$.nameDeviceError.setContent(label_error_nameDeviceLength);
this.$.nameDeviceError.setShowing(true);
this.$.nameDeviceButton.setDisabled(true);
} else {
this.$.nameDeviceButton.setDisabled(false);
}
},
deviceNameOnInput: function() {
this.$.nameDeviceError.setShowing(false);
if(this.$.deviceName.getValue().length < 1 || this.$.deviceName.getValue().length > 256){
this.$.nameDeviceButton.setDisabled(true);
} else {
this.$.nameDeviceButton.setDisabled(false);
}
},
deviceNameOnKeyPress: function(inSender, inResponse) {
if(inResponse.keyCode == 13) {
this.nameDeviceOnChange();
var theName = this.$.deviceName.getValue();
if (theName.length > 0 && theName.length <= 256) {
this.$.deviceName.forceBlur();
this.$.nameDeviceButton.doClick();
}
}
},
setSuggestedDeviceName: function(){
var firstName = enyo.application.FirstUse.getFirstName();
var machineName = enyo.application.FirstUse.getMachineName();
var locale = enyo.g11n.currentLocale();
var language = enyo.g11n.Locale.prototype.getLanguage();
var deviceName = "";
if(language === 'en' && firstName && firstName.length > 0){
var lastLetter = firstName.charAt(firstName.length - 1);
if (lastLetter === 's' || lastLetter === 'S'){
deviceName = firstName + "' ";
} else {
deviceName = firstName + "'s ";
}
}else{
//deviceName = deviceName + firstName + " - ";
}
var theName = deviceName + machineName;
var nameLen = theName.length;
this.$.deviceName.setValue(deviceName + machineName);
this.$.deviceName.forceSelect();
this.$.deviceName.forceFocus();
if (theName.length > 0 && theName.length <= 256) {
this.$.nameDeviceButton.setDisabled(false);
}
}
});
@@ -0,0 +1,121 @@
enyo.kind({
name: "PostSignIn", kind: enyo.VFlexBox,
events: {onFinish: ""},
components: [
{kind: "UpdateService", onFailure: "handleGenericFailure", onSuccess: "handleGenericSuccess",
components:[
{name: "isOTAAvailable", method: "CheckForUpdate",params: {"firstUse" : true}, onResponse: "isOTAAvailableResponse"},
{name: "getOTAStatus", method: "GetStatusApp", params: {"firstUse" : true}, subscribe: true, onResponse: "isOTAAvailableResponse"}
]
},
{kind: "BackupService", onFailure: "handleGenericFailure", onSuccess: "handleGenericSuccess",
components:[
{name: "isBackupAvailable", method: "getRestoreDevices", onResponse: "isBackupAvailableResponse"},
{name: "scheduleAppRestore", method: "scheduleAppRestore", onResponse: "scheduleAppRestoreResponse"}
]
},
],
create: function(){
console.info("PostSignIn create...");
this.inherited(arguments);
this.reset();
},
reset: function() { // called by client to reuse component.
console.info("PostSignIn reset...");
this.retriedOnce = false;
this.otaResponse = false;
this.restoreResponse = false;
this.$.isOTAAvailable.call({"firstUse":true});
// make sure status is called after the check for updates.
this.$.getOTAStatus.call();
if (!enyo.application.FirstUse.getCreateProfile()) {
// user signed in to an existing account
this.$.isBackupAvailable.call();
this.$.scheduleAppRestore.call();
} else {
this.restoreResponse = true;
}
},
sendFinish: function(){
if(this.otaResponse && this.restoreResponse) {
console.info("restore and OTA finished");
this.doFinish();
}
},
isOTAAvailableResponse: function(inSender, inResponse){
if (this.otaResponse) return; //if we already set this to true then do noting. We have seen multiple calls here then causing sendFinish to get called repeatedly.
console.info("inSender:"+inSender+" isOTAAvailableResponse: " + JSON.stringify(inResponse));
if(inResponse){
if(inResponse.priority && (inResponse.priority == "forced" || inResponse.priority == "optional" || inResponse.priority == "default" )) {
enyo.application.FirstUse.setSoftwareUpdateAvailable(true);
}
else{
enyo.application.FirstUse.setSoftwareUpdateAvailable(false);
}
if(inResponse.priority && (inResponse.priority == "forced" || inResponse.priority == "optional")) {
console.info("Setting OTA available to true");
enyo.application.FirstUse.setCheckForUpdatesResponsePayload = inResponse;
enyo.application.FirstUse.setIsOTAAvailable(true);
this.otaResponse = true;
} else if(inResponse.priority && (inResponse.priority == "default" || inResponse.priority == "none")) {
console.info("Setting OTA available to false");
enyo.application.FirstUse.setIsOTAAvailable(false);
this.otaResponse = true;
} else if (inResponse.status && inResponse.status == "Checking") {
console.info("watching OTA status for results");
} else if (inResponse.status && inResponse.status == "UpToDate") {
console.info("Setting OTA available to false");
enyo.application.FirstUse.setIsOTAAvailable(false);
this.otaResponse = true;
} else {
console.info("Setting OTA available to false - catch all");
enyo.application.FirstUse.setIsOTAAvailable(false);
this.otaResponse = true;
}
} else {
console.info("OTA check response" + JSON.stringify(inResponse));
}
this.sendFinish();
},
isBackupAvailableResponse: function(inSender, inResponse){
if(inResponse && inResponse.returnValue){
enyo.application.FirstUse.setNoOfOtherDevices(inResponse.devices.length);
for(i = 0; i < inResponse.devices.length; i++){
if(inResponse.devices[i].backups.length > 0){
enyo.application.FirstUse.setIsBackupAvailable(true);
enyo.application.FirstUse.setRestoreDevicesResponsePayload(inResponse);
break;
}
}
} else {
if (this.retriedOnce) {
console.info("Error getting restore devices" + JSON.stringify(inResponse));
enyo.application.FirstUse.setIsBackupAvailableFailed(true);
} else {
console.info("Error (will retry) getting restore devices" + JSON.stringify(inResponse));
this.retriedOnce = true;
this.$.isBackupAvailable.call();
return;
}
}
this.restoreResponse = true;
console.info("isBackupAvailableResponse: " + JSON.stringify(inResponse));
this.sendFinish();
},
scheduleAppRestoreResponse: function(inSender, inResponse) {
console.info("scheduleAppRestore response: " + JSON.stringify(inResponse));
}
});
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,25 @@
enyo.kind({
name: "MyApps.FirstUse.SpinnerOverlayPopup",
kind: "HFlexBox",
pack: 'justify',
showing: false,
components: [
{kind: "Scrim", layoutKind: "VFlexLayout", align: "center", pack: "center",
components: [
{name: "spinner", kind: "SpinnerLarge"}
]
},
],
openAtCenter: function() {
this.$.spinner.show();
this.$.scrim.show();
this.show();
},
close: function() {
this.$.scrim.hide();
this.$.spinner.hide();
this.hide();
},
})
@@ -0,0 +1,86 @@
enyo.kind({
name: "StartOver",
kind: enyo.Control,
style: "position:fixed;height:60px;width:150px;bottom:0;left:0;",
components: [
{kind: enyo.IconButton,
name: "startOverButton",
onclick: "postConfirm",
className: "restart",
caption: rb.$L("Start Over"),
icon: "images/btn_start_over.png"
},
{name: "confirmDialog", kind: "ModalDialog", lazy: false, className: "popup",
caption: rb.$L("Confirm"),
components: [
{content: rb.$L("Would you like to start over from the beginning?"), className: "enyo-text-body"},
{kind: "Control", layoutKind: "HFlexLayout",
components: [
{kind: "Button", caption: rb.$L("No"), flex: 1, style:"margin-right:10px", onclick: "closeConfirm"},
{kind: "Button", caption: rb.$L("Yes"), flex: 1, className: "enyo-button-affirmative", onclick: "restartFirstUse"}
],
}
]
},
{
kind: "WiFiService",
onFailure: "handleWiFiResetDone",
onSuccess: "handleWiFiResetDone",
components: [{
name: "getStatus",
method: "getstatus",
onSuccess: "handleWiFiGetStatus",
onFailure: "handleWiFiResetDone"
}, {
name: "deleteProfile",
method: "deleteprofile",
onSuccess: "handleWiFiResetDone",
onFailure: "handleWiFiResetDone"
}, ]
},
],
postConfirm: function() {
this.$.confirmDialog.openAtControl(this, {top: -60, left: 10});
},
closeConfirm: function() {
this.$.confirmDialog.close();
},
restartFirstUse: function() {
enyo.application.FirstUse.currentServiceCall = "";
console.log("get wifi status...");
this.$.getStatus.call({});
},
handleWiFiGetStatus: function(inSource, inResponse) {
if (inResponse.returnValue && inResponse.networkInfo && inResponse.networkInfo.profileId) {
console.log("getWifiProfile: " + inResponse.networkInfo.profileId);
this.$.deleteProfile.call({profileId: inResponse.networkInfo.profileId});
} else {
this.handleWiFiResetDone();
}
},
handleWiFiResetDone: function() {
console.log("restart firstuse...");
enyo.application.FirstUse.startAllOver();
},
relaunchSuccess: function() {
console.log("relaunchSuccess" );
},
relaunchFailure: function() {
console.log("relaunchFailure");
},
});
+127
View File
@@ -0,0 +1,127 @@
label_dialog_googleTnc = rb.$L("Google Terms & Conditions");
label_popup_google_header = rb.$L("Do you accept?");
label_popup_google_body = rb.$L("If you decline Google's Terms of Service, your device will be unable to determine your current location. To enable this feature in the future, go to the Location Services preference.");
label_button_continue = rb.$L("Continue");
label_button_accept = rb.$L("Accept");
label_button_decline = rb.$L("Decline");
label_checkbox_google = rb.$L("I accept the terms and conditions");
label_checkbox_googleBackgoundCollection = rb.$L("Allow Google's location service to collect anonymous and aggregate location data. Collection will occur regardless of whether any applications are active.");
Label_dialog_autolocate = rb.$L("Auto Locate");
label_autolocate_body = rb.$L("You'll be asked for permission when an application wants your location. For your convenience, you may enable Auto Locate, which will automatically provide your location for applications without asking each time. You may change this setting at any time in the Location Services preference.");
enyo.kind({
name: "Google",
kind: enyo.VFlexBox,
align:"center",
pack:"justify",
className: "terms",
events: {onFinish: ""},
components: [{name: "GoogleTCs", kind: enyo.VFlexBox, className: 'section', height:"100%", components: [
{kind: enyo.Control, name: "GoogleTCs.title", className: 'title', content: label_dialog_googleTnc},
{kind: enyo.Scroller, name: "GoogleTCs.content", className: 'box', flex:1, components: [
{name: "google", allowHtml: true, kind: "HtmlContent"}
]
},
{kind: enyo.Control, layoutKind:"HFlexLayout", style:"margin:0 0 10px 0", align: 'center', components: [
{name: "googleCheckBox", kind: enyo.CheckBox,checked: false},
{content: label_checkbox_google, style:"margin:0 0 0 10px"}
]
},
{kind: enyo.Control, layoutKind:"HFlexLayout", style:"margin:0 0 10px 0", components: [
{name: "googleBackgroundDataCheckBox", kind: enyo.CheckBox, checked: true},
{content: label_checkbox_googleBackgoundCollection, flex:1, style:"margin:5px 0 0 10px"}
]
},
{kind: enyo.Control, name: "AutoLocate.content", className: 'box', components: [
{content: Label_dialog_autolocate, style: "font-size:16px"},
{content: label_autolocate_body, style: "font-size:14px;margin:15px 0 10px;"},
{name: "autoLocateToggle", kind: enyo.ToggleButton, onLabel: rb.$L("On"), offLabel: rb.$L("Off")}
]
},
{kind: enyo.HFlexBox, pack:"justify", components: [
{kind: enyo.Spacer},
{kind: enyo.Button, onclick: "continueButtonClick", className:"enyo-button-affirmative", caption: label_button_continue}
]
}
]
},
{kind: "StartOver"},
{name: "googlePopup", kind: "ModalDialog", lazy: false, className: "popup",
caption: label_popup_google_header,
components: [
{content: label_popup_google_body, className: "enyo-text-body"},
{kind: "Button", caption: label_button_accept, style: "margin-bottom:10px;", className: "enyo-button-affirmative", onclick: "googleAccepted"},
{kind: "Button", caption: label_button_decline, className:"enyo-button-negative", onclick: "googleDeclined"},
]
},
{kind: "Scrim", layoutKind: "VFlexLayout", align: "center", pack: "center", components: [
{kind: "SpinnerLarge", name: "spinner", showing: false}
]},
{kind: "LocationService", onFailure: "handleGenericFailure", onSuccess: "handleGenericSuccess",
components:[
{name:"autoLocate", method: "setAutoLocate", onResponse:"setAutoLocateResponse"},
{name:"acceptTermsOfUse", method: "acceptTermsOfUse", onResponse:"acceptTermsOfUseResponse"},
{name:"rejectTermsOfUse", method: "rejectTermsOfUse", onResponse:"rejectTermsOfUseResponse"},
{name:"BackgroundDataCollection", method: "setUseBackgroundDataCollection", onResponse:"setUseBackgroundDataCollectionResponse"},
]
}
],
create: function(){
this.inherited(arguments);
//this.$.google.setContent("<h3>Location Services</h3><p>Location Services lets applications find your current position. Maps, Navigation, Camera, and Just Type use Location Services. The App Catalog contains additional applications which use Location Services. To find your current position, your phone may use Google's location service. To allow applications to find your current position you must agree to the following Terms of Service.</p><h3>Mobile Terms of Service</h3><p>By using Google's mobile products and services (\"Services\"), you:<ol><li><p>Agree to be bound by these terms and a) the YouTube Terms of Use (m.google.com/tos_youtube) for YouTube-related Services, b) the Google Maps Terms and Conditions (m.google.com/tos_maps) for mapping, local and location-based Services, and c) the Google Terms of Service (m.google.com/utos) for all other Services, as updated from time to time.</p><p> You may use the Services only as set forth in these agreements. Do not usewhile driving.</p></li><li><p>Acknowledge and agree that third parties may offer Services, and that youmay be subject to third party terms and that third parties may enforce termsagainst you. Google is not responsible for third party changes to theServices.</p></li><li><p>Consent to the collection, use, sharing, and onward transfer of yourdata, including but not limited to voice and location data, as outlined inthe Mobile Privacy Policy (m.google.com/privacy). Location data may be frommixed sources and may not be accurate. Use at your own risk.</p></li><li><p>Acknowledge that certain Services require phone service, data access ortext messaging capability. Except as otherwise noted, Google does not chargefor the Services, but carrier rates for phone, data and text messaging mayapply. The Services may contain third party content. Any requiredattribution or notice for the third party content may be found atm.google.com/legalnotices. For a web version of this, please go to<a href=\"#\">m.google.com/static/tos.html</a></p></li></ol><h3>Google Privacy Policy</h3><p>The Google Privacy Policy and our various product-specific privacy notices describe how we treat personal information when you use Google's products and services, including any of Google's mobile products and services. In addition, the following describes our mobile privacy practices.</p>");
this.$.google.setContent(enyo.application.FirstUse.getGoogleTerms());
},
continueButtonClick: function() {
if(this.$.googleCheckBox.getChecked())
this.enableLocationServices();
else
this.$.googlePopup.openAtCenter();
},
enableLocationServices: function() {
if(this.$.googleCheckBox.getChecked())
this.$.acceptTermsOfUse.call();
else
this.$.rejectTermsOfUse.call();
this.$.BackgroundDataCollection.call({"useBackgroundDataCollection":this.$.googleBackgroundDataCheckBox.getChecked()});
this.$.autoLocate.call({"autoLocate":this.$.autoLocateToggle.getState()});
this.doFinish();
},
googleAccepted: function(){
this.$.googleCheckBox.setChecked(true);
this.$.googlePopup.close();
this.enableLocationServices();
},
googleDeclined: function(inSender, inResponse){
this.$.googlePopup.close();
this.enableLocationServices();
},
acceptTermsOfUseResponse: function(inSender, inResponse){
console.info("acceptTermsOfUseResponse: " + JSON.stringify(inResponse));
},
rejectTermsOfUseResponse: function(inSender, inResponse){
console.info("rejectTermsOfUseResponse: " + JSON.stringify(inResponse));
},
setAutoLocateResponse: function(inSender, inResponse){
console.info("setAutoLocateResponse: " + JSON.stringify(inResponse));
},
setUseBackgroundDataCollectionResponse: function(inSender, inResponse){
console.info("setUseBackgroundDataCollectionResponse: " + JSON.stringify(inResponse));
}
});
+246
View File
@@ -0,0 +1,246 @@
label_dialog_palmTnc = rb.$L("HP Terms & Conditions");
label_popup_palm_header = rb.$L("Do you accept?");
label_popup_palm_body = rb.$L("In order to use this device, you must accept the Terms. If you choose not to accept the Terms, you may return this device within the return period of the HP authorized distributor where you purchased this device for a refund subject to the applicable return policy.");
label_button_accept = rb.$L("Accept");
label_button_decline = rb.$L("Decline");
label_button_continue = rb.$L("Continue");
label_popup_palm_error_header = rb.$L("Server Error");
label_popup_palm_error_body = rb.$L("Please visit http://hpwebos.com/support to help resolve this problem");
label_popup_palm_error_button = rb.$L("Close");
enyo.kind({
name: "Palm",
kind: enyo.VFlexBox,
align:"center",
pack:"justify",
className: "terms",
events: {onFinish: ""},
components: [
{
kind: "WiFiService",
onFailure: "handleWiFiResetDone",
onSuccess: "handleWiFiResetDone",
components: [{
name: "getStatus",
method: "getstatus",
onSuccess: "handleWiFiGetStatus",
onFailure: "handleWiFiResetDone"
}, {
name: "deleteProfile",
method: "deleteprofile",
onSuccess: "handleWiFiResetDone",
onFailure: "handleWiFiResetDone"
}, ]
},
{name:"PalmTCs", kind: enyo.VFlexBox, className: 'section', height:"100%", components: [
{kind: enyo.Control, name: "PalmTCs.title", className: 'title', content: label_dialog_palmTnc},
{name: "palmScroller", kind: "Scroller", className: 'box', flex: 1, components: [
{name: "palm", allowHtml: true, kind: "HtmlContent"}
]},
{kind: enyo.Control, layoutKind: "HFlexLayout", align: 'start', pack: 'justify', components: [
{kind: enyo.Control, layoutKind: "HFlexLayout", align:'center', components: [
{name: "palmCheckBox", kind: enyo.CheckBox, checked: false},
{content: rb.$L("I accept the terms and conditions"), style:"margin:0 0 0 10px"}
]},
{kind: enyo.Button, className: "enyo-button-affirmative", onclick: "continueButton", caption: label_button_continue}
]}
]},
{kind: "Scrim", layoutKind: "VFlexLayout", align: "center", pack: "center", components: [
{kind: "SpinnerLarge", name: 'spinner', showing: false}
]},
{name: "palmPopup", kind: "ModalDialog", lazy: false,
className: "popup",
caption: label_popup_palm_header,
components: [
{content: label_popup_palm_body, className: 'enyo-text-body'},
{kind: "Button", className: "enyo-button-affirmative", caption: label_button_accept, style:"margin-bottom:10px", onclick: "palmAccepted"},
{kind: "Button", className: "enyo-button-negative", caption: label_button_decline, onclick: "palmDeclined"},
]},
{name: "palmErrorPopup", kind: "ModalDialog", lazy: false,
className: "popup",
caption: label_popup_palm_error_header,
components: [
{content: label_popup_palm_error_body, className: "enyo-text-body", ondblclick:"label_popup_palm_error_DoubleClk"},
{name: "popup_palm_error_body_error_code", content: "", className: "errorcode3"},
{kind: "Button", caption: label_popup_palm_error_button, onclick: "palmError"},
]},
{kind: "AccountServicesService", onFailure: "handleGenericFailure", onSuccess: "handleGenericSuccess", components:[
{name: "getServerURL", method: "getURLForTerms", onSuccess: "getTerms", onFailure: "getServerURLFailure"},
{name:"getTermsAndConditions", method:"getTermsAndConditions", onResponse:"getTermsAndConditionsResponse"},
]},
{kind: "StartOver"}
],
initialCallMade: false,
create: function(){
this.inherited(arguments);
this.getTermsResponseCalled = false;
this.retryCount = 0;
//HACK: becuse the embedded html can't scroll itself directly and I don't want enyo code in it.
//This is a case where i'd really like some jquery like funtionality to bind all DOM objects with a sepcial class
//to some code with one line of code. Currently the external HTML like this:
// <a class="table-of-contents" onclick="if(window.scrollPalmTermsToName) {scrollPalmTermsToName('requirements')}" href="#requirements">2. Requirements<br><br></a>
window.scrollPalmTermsToName = enyo.bind(this, function(name){
var obj = document.getElementsByName(name)[0];
this.$.palmScroller.scrollIntoView(obj.offsetTop, 0);
});
this.startDownload();
},
startDownload: function() {
if(enyo.application.FirstUse.getDataConnectionInitialized()) {
this.getURL();
} else {
window.setTimeout(enyo.bind(this, function () {
this.startDownload()}
, 1000)); // poll until the network is setup.
}
},
dataRestored: function(){
if(!this.initialCallMade) return;
console.info("Data restored called by Parent...");
if (!this.getTermsResponseCalled) {
// 4/19/2011 - russ - We are seeing this being call multiple times (DFISH-9980)!
// What is happening is that if we are successfull, but the connect drops and restarts
// the dataRestored gets called which starts the process off!
this.getURL();
} else {
console.info("Already did the deed...1");
}
},
getURL: function(){
this.initialCallMade = true;
if (this.termsAreSet) {
console.info("Already did the deed...2");
} else {
this.getTermsResponseCalled = false;
this.$.scrim.show();
this.$.spinner.setShowing(true);
console.info("Getting server URL...");
this.$.getServerURL.call();
}
},
getServerURLFailure: function(inSender, inResponse){
console.info("Error getting server URL: " + JSON.stringify(inResponse));
this.retryCount ++;
if (this.retryCount > 2) {
if (!this.poppedError) {
this.poppedError = true;
this.getTermsResponseCalled = true; // this means just stop retrying once we show the dialog!
enyo.application.FirstUse.closeAllPopups(); // if I don't do this can get into case where the UI locks up because of a bug.
this.$.scrim.hide();
this.$.spinner.setShowing(false);
this.$.popup_palm_error_body_error_code.hide();
this.$.popup_palm_error_body_error_code.setContent("");
try {
this.$.popup_palm_error_body_error_code.setContent(inResponse.errorCode + " : " + inResponse.errorText); //this does not get localized..it is hidden in the UI for support.
}
catch (e) {
}
this.$.palmErrorPopup.openAtCenter();
}
}
if(enyo.application.FirstUse.getDataConnection()){
//if we fail with a good connection which can happen we need to force the retry here.
//otherwise we will retry. Even if the popup is showing we continue to retry!
setTimeout(enyo.bind(this, function() {
this.getURL();
}), 250)
}
},
getTerms: function(inSender, inResponse){
var url = "https://" + inResponse.locationHost + "/palmcsext/services/deviceJ/";
enyo.application.FirstUse.setServerURL(url);
var lang = enyo.g11n.currentLocale().getLanguage();
console.info("Getting terms from: " + url);
this.$.getTermsAndConditions.call({"language": lang, "serverURL":url});
},
getTermsAndConditionsResponse: function(inSender, inResponse){
console.info("Get terms response: " + inResponse.returnValue);
this.getTermsResponseCalled = true;
if(inResponse.returnValue) {
this.$.palmErrorPopup.close();
this.$.palm.setContent(inResponse.GetTermsAndConditions.PALM);
enyo.application.FirstUse.setGoogleTerms(inResponse.GetTermsAndConditions.GOOGLE);
this.termsAreSet = true;
}
else {
enyo.application.FirstUse.closeAllPopups(); // if I don't do this can get into case where the UI locks up because of a bug.
this.$.popup_palm_error_body_error_code.hide(false);
try {this.$.popup_palm_error_body_error_code.setContent(inResponse.errorCode + " : " + inResponse.errorText);} catch (e) {}
this.$.palmErrorPopup.openAtCenter();
}
this.$.scrim.hide();
this.$.spinner.setShowing(false);
},
continueButton: function(){
if (this.$.palmCheckBox.getChecked()) {
this.doFinish();
} else {
this.$.palmPopup.openAtCenter();
}
},
palmAccepted: function(){
this.$.palmCheckBox.setChecked(true);
this.$.palmPopup.close();
this.doFinish();
},
palmDeclined: function(){
this.$.palmPopup.close();
},
palmError: function(){
this.$.palmErrorPopup.close();
this.$.palmPopup.close();
enyo.application.FirstUse.currentServiceCall = "";
console.log("get wifi status...");
this.$.getStatus.call({});
},
handleWiFiGetStatus: function(inSource, inResponse) {
if (inResponse.returnValue && inResponse.networkInfo && inResponse.networkInfo.profileId) {
console.log("getWifiProfile: " + inResponse.networkInfo.profileId);
this.$.deleteProfile.call({profileId: inResponse.networkInfo.profileId});
} else {
this.handleWiFiResetDone();
}
},
handleWiFiResetDone: function() {
console.log("restart firstuse...");
enyo.application.FirstUse.startAllOver();
},
label_popup_palm_error_DoubleClk: function() {
this.$.popup_palm_error_body_error_code.show();
}
});
@@ -0,0 +1,89 @@
enyo.kind({
name: "Updates",
kind: "VFlexBox",
published:{
forceSwUpdate:false
},
events: {
onFinish: ""
},
create: function() {
this.inherited(arguments);
if (this.getForceSwUpdate()) {
this.$.crossapp.params.backupRestore = "true";
}
this.log("CREATE - params:"+JSON.stringify(this.$.crossapp.params));
},
components: [
{name: "uptodate", kind: "ModalDialog", lazy: false, scrim: true, modal: true, style: "width: 351;", components: [
{kind: "VFlexBox", pack: "end", components: [
{content: rb.$L("No Update Available")},
{content: ""},
]},
{kind: "Spacer"},
{kind: "VFlexBox", pack: "end", components: [
{kind: "Button", caption: rb.$L("Cancel"), onclick: "handleCancelClick"}
]}
]},
{name: "updatesApp", className: "enyo-view", lazy: false, components: [
{kind: "CrossAppUI",name: "crossapp", params:{"firstUse":true, "locale": enyo.g11n.currentLocale().locale}, app:"com.palm.app.updates", path: "index.html", onResult: "handleResult"},
]},
{kind: "UpdateDaemonService",onFailure: "handleCheckForUpdateFailure",onSuccess: "handleCheckForUpdate",
components: [
{name: "checkForUpdate",method: "CheckForUpdate"}
]}
],
dataRestored: function(){
console.info("Data restored called by Parent...");
},
rendered: function() {
this.inherited(arguments);
this.log();
// var that = this;
// setTimeout(function(){
// that.$.pane.selectViewByName("updatesApp");
// }, 5000);
},
handleResult: function(inSender, msg) {
this.log(JSON.stringify(msg));
this.doFinish(msg);
// if (msg.status == "UpToDate") {
// this.$.uptodate.openAtCenter();
// this.doFinish({"status": "uptodate"});
// } else if (msg.status == "Complete") {
// this.doFinish({"status": "complete"});
// } else if (msg.status == "Background") {
// this.doFinish({"status": "background"});
// }
window.close();
},
handleCancelClick: function() {
this.log();
this.$.uptodate.close();
this.doFinish();
window.close();
}
});
enyo.kind({
name: "UpdateDaemonService",
kind: "PalmService",
service: "palm://com.palm.update/"
});
@@ -0,0 +1,38 @@
enyo.kind({
name: "MyApps.FirstUse.SimCheck",
kind: "HFlexBox",
events: {
onSimCheckSuccess: "",
onSimCheckFailure: "",
onStartOver: ""
},
pack: 'justify',
components: [
{kind: "Scrim", layoutKind: "VFlexLayout", align: "center", pack: "center",
components: [
{name: "CheckSim", kind: "CheckSim", onSimCheckSuccess: "onSimCheckSuccess_internal", onSimCheckFailure: "onSimCheckFailure_internal", onStartOver: "onSimCheckStartOver_internal"},
]
},
],
openAtCenter: function(locale) {
this.$.scrim.show();
this.$.CheckSim.startCheck({locale: locale});
},
close: function() {
this.$.scrim.hide();
},
onSimCheckSuccess_internal: function () {
this.doSimCheckSuccess();
},
onSimCheckFailure_internal: function (insender, response) {
this.doSimCheckFailure(response);
},
onSimCheckStartOver_internal: function () {
this.doStartOver();
},
})
+30
View File
@@ -0,0 +1,30 @@
enyo.kind({
name: "Wifi",
events: {onFinish: ""},
kind: "ModalDialog", lazy: false,
modal: true,
scrim:true,
width: "351px",
height:"600px",
layoutKind:"VFlexLayout",
caption: rb.$L("Wi-Fi Setup"),
components: [
{"content": rb.$L("Choose a network"), style: "font-size: 13px; padding: 0px 0px 10px 0px;" },
{kind: enyo.Control, height: "100%", className: "fu-wifi scrollable", flex: 1, components: [{flex:1, name: "wifiHelper", height: "100%", kind: "WiFiHelper", className:"scrollable-inner"}]}
],
showing: false,
create: function(){
this.inherited(arguments);
this.$.wifiHelper.setLiteMode(true);
},
start: function() {
this.$.wifiHelper.turnWiFiOn();
},
doShowIpConfig: function(inSender, inProfile) {
this.$.wifiIpConfig.setJoinedProfile(inProfile);
},
});
+14
View File
@@ -0,0 +1,14 @@
{
"id": "com.palm.app.maps",
"version": "3.0.1",
"vendor": "HP",
"type": "web",
"main": "index.html",
"title": "Maps",
"icon": "icon.png",
"removable": false,
"uiRevision": 2,
"splashicon": "icon-256x256.png",
"trustLevel": "trusted",
"requiredPermissions": ["applications.internal", "applications", "activities.manage", "devices", "settings", "settings.read", "services", "database", "database.internal", "filecache", "system", "networking", "networking.internal"]
}
+29
View File
@@ -0,0 +1,29 @@
#!/bin/sh
# This is a test package to facilitate packaging the application outside of the
# OE build environment. Current development is being done by David Woods.
echo "env is set to "
set
echo "Checking for BuildResults directory"
ls `pwd`
if [ "$SVN_USER" = 'phoenix daemon' ]; then
echo "Testing Phoenix section."
echo "Making BuildResults Directory"
mkdir `pwd`/BuildResults
mkdir -p `pwd`/build-dir/working
cp -f `pwd`/build-dir/*.* build-dir/working
else
echo "Testing User Section"
echo "Cleaning previous Results"
rm -rf BuildResults
rm -rf build-dir
echo "Making BuildResults Directory"
mkdir `pwd`/BuildResults
mkdir -p `pwd`/build-dir/working
cp -f `pwd`/*.* build-dir/working
fi
echo "Building the package"
palm-package `pwd`/build-dir/working -o `pwd`/BuildResults
@@ -0,0 +1,11 @@
{
"id":"com.palm.mapsbookmarks:1",
"owner":"com.palm.app.maps",
"sync": true,
"indexes": [
{"name": "title", "props": [{"name": "title"}]},
{"name": "address", "props": [{"name": "address"}]},
{"name": "location", "props": [{"name": "location"}]},
{"name": "rev", "props": [{"name": "_rev"}]}
]
}
@@ -0,0 +1,12 @@
{
"id":"com.palm.mapsrecents:1",
"owner":"com.palm.app.maps",
"sync": true,
"indexes": [
{"name": "title", "props": [{"name": "title"}]},
{"name": "address", "props": [{"name": "address"}]},
{"name": "location", "props": [{"name": "location"}]},
{"name": "date", "props": [{"name": "date"}]},
{"name": "rev", "props": [{"name": "_rev"}]}
]
}
@@ -0,0 +1,14 @@
[
{
"type" : "db.kind",
"object" : "com.palm.mapsbookmarks:1",
"caller" : "com.palm.app.enyo-maps",
"operations":
{
"create": "allow",
"read" : "allow",
"update": "allow",
"delete": "allow"
}
}
]
@@ -0,0 +1,14 @@
[
{
"type" : "db.kind",
"object" : "com.palm.mapsrecents:1",
"caller" : "com.palm.app.enyo-maps",
"operations":
{
"create": "allow",
"read" : "allow",
"update": "allow",
"delete": "allow"
}
}
]
+366
View File
@@ -0,0 +1,366 @@
.spaced {
margin: 4px;
}
.maps {
position: relative;
}
.no-wifi {
background: url(../images/no-wifi.png) center center no-repeat;
}
.bing-logo-mask {
position: absolute;
bottom: 0px;
left: 0px;
width: 80px;
height: 40px;
overflow: hidden;
}
.reserved-labeled-value {
color: #a6a6a6;
}
.reserved-labeled-value input {
color: #a6a6a6;
}
/* ActionBar */
.actionbar-search-mode {
padding: 0 7px;
}
.map-tool-button .enyo-tool-button-client {
position: absolute;
margin: -5px 0 0 7px;
-webkit-border-image: url(../images/button-toolbar.png) 4 4 4 4 repeat stretch;
}
.map-tool-button.enyo-button-down .enyo-tool-button-client {
-webkit-border-image: url(../images/button-down.png) 4 4 4 4 repeat stretch;
}
.map-tool-swap {
margin:-4px -2px -5px
}
.map-tool-button + .enyo-tool-input{
margin-left:50px;
}
/* Pullout sliding shawdow */
.enyo-sliding-view-shadow.flyInFromLeft {
right: -20px;
left: auto;
background: url(../images/shadow-right.png) repeat-y;
}
.enyo-grabbutton.flyInFromLeft {
left: auto;
right: 0px;
}
/* Popup */
.popup {
font-size: 16px;
border-width: 20px;
-webkit-border-image: url(../images/darkChromeContainer.png) 20 stretch;
padding:0 0px;
width: 278px;
}
.popup-title {
font-weight: bold;
color: #fff;
}
.popup-close-button {
background: url(../images/menu-icon-stop.png) 0 0;
width: 32px;
height: 32px;
}
.popup-close-button.enyo-button-down {
background: url(../images/menu-icon-stop.png) 0 32px;
}
/* InfoBox */
.infobox-group {
-webkit-border-image: url(../images/popup-group-bg.png) 10 repeat;
border-width: 10px;
margin: 2px -12px 3px -12px;
color: #363636;
}
.infobox-title {
color: #fff;
font-size: 18px;
font-weight: normal;
min-height: 30px;
}
.infobox-spaced {
padding: 0 16px;
margin: 0 -8px;
height: 30px;
background-color: #eeeeee ;
border-bottom: 1px solid #bebebe;
border-top: 1px solid #fff;
align: center;
height: 50px;
background-position: 95% 50%;
background-repeat: no-repeat;
}
.info-actions-row{
margin: 0 -4px;
}
.infobox-spaced:first-child {
border-top: 0;
}
.infobox-spaced:last-child {
border-bottom: 0;
}
.infobox-directions-item {
padding-left: 6px;
}
/* TitleBox */
.titlebox {
font-size: 14px;
border-width: 10px;
-webkit-border-image: url(../images/darkChromeContainer.png) 10 stretch;
min-width: 0;
}
.titlebox-title {
color: #fff;
}
/* LabeledToggle */
.labeled-toggle-label {
padding-right: 20px;
}
/* SavedList */
.savedlist-item-title {
margin-top: 10px;
font-size: 16px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.savedlist-item-details {
font-size: 14px;
color: #606060;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* Route */
.route-message {
background-color: white;
color: #555;
font-size: 14px;
padding: 10px 20px;
border-bottom: 1px solid #d9d9d9;
}
.route-message b{
font-size: 17px;
}
.travel-mode .enyo-radiobutton {
/* FIXME: override extra padding added by enyo-radiobutton */
padding: 0;
}
.travel-mode .enyo-radiobutton .enyo-button-icon {
margin: 2px -10px -4px;
}
.stats{
text-align: right;
font-size: 14px;
margin-top: 2px;
color: #1a1a1a;
}
.route-maneuver-icon {
margin-left: 16px;
margin-right: 16px;
width: 32px;
height: 25px;
background-image: url(../images/route-maneuver-icons.png);
}
/* Route itinerary & SearchResults item */
.route-itinerary, .searchresults-item {
margin: 0 ;
background-color: #fff;
padding: 10px 5px;
border-top: 0;
border-bottom: 1px solid #d9d9d9;
min-height: 60px;
color: #555555;
font-size: 15px;
word-wrap: break-word;
}
.route-itinerary.enyo-held, .searchresults-item.enyo-held {
color: #FFF;
border: 0;
}
.travel-mode-selector{
margin: 7px 15px 10px;
}
/* SearchResults */
.searchresults-info-title {
padding-right: 20px;
font-weight: bold;
}
.searchresults-item-indicator {
width: 48px;
background: url(../images/poi_search.png) left center no-repeat;
}
.searchresults-item-num {
position: relative;
text-align: center;
top: 2px;
font-size: 10pt;
font-weight: bold;
color: white;
}
.searchresults-item-indicator.selected {
width: 48px;
background: url(../images/poi_active.png) left center no-repeat;
}
/* InfoFooter */
.info-footer-outer {
position: absolute;
bottom: 0px;
left: 0px;
right: 0px;
height: 50px;
overflow: hidden;
}
.info-footer {
-webkit-border-image: url(../images/darkChromeContainer.png) 10 8 repeat stretch;
border-width: 10px 8px;
height: 42px;
margin: auto 80px 10px 80px;
overflow: visible;
}
.info-footer .wrapper {
margin: -8px 0 -10px 0;
position: relative;
z-index: 1000;
}
.info-footer-button .enyo-tool-button-client {
-webkit-border-image: url(../images/button-toolbar.png) 4 4 4 4 stretch stretch;
border-style: none;
margin: -4px 0 0;
min-width: 40px;
}
.info-footer-detail {
padding-left: 10px;
color: #fff;
font-size: 12px;
}
.searchresults-info-title {
font-size: 14px;
}
.itinerary-info-description {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
.itinerary-info-description div {
margin-left: 13px;
}
.itinerary-maneuver-icon {
margin-left: -8px;
margin-right: 8px;
}
/* Saves */
.saves-header {
padding: 11px 0;
margin: 0 22px;
}
.saves-header .enyo-button-icon-text {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.saves-pane {
background-color: #fff;
}
/* Settings */
.settings {
background-color: #fff;
}
.settings-divider {
color: #626262;
background-color: #d3d3d3;
padding: 0 5px;
}
/* InputAssist */
.inputassist {
/* FIXME: defeat enyo-popup min-width setting */
min-width: 0;
}
.inputassist .enyo-item {
min-height: 0;
}
/* CheckItem */
.checkitem-description {
color: #393939;
font-size: 20px;
margin: 4px 0 auto 5px;
}
.checkitem-checked .checkitem-description {
background: url(../images/checkmark.png) center right no-repeat;
}
+40
View File
@@ -0,0 +1,40 @@
enyo.depends(
//"../../enyo/0.10/support/addons/webos/webos-bridge",
"$enyo/g11n/address/",
"proxy/xhr.js",
"source/Map.js",
"source/util.js",
"source/FancyMap.js",
"source/service/PlacesSearchService.js",
"source/service/LocationSearchService.js",
"source/service/LocationService.js",
"source/Preferences.js",
"source/Location.js",
"source/LocationInput.js",
"source/Alert.js",
"source/LocationServicesPrompt.js",
"source/MyLocationPrompt.js",
"source/DirectionPrompt.js",
"source/BookmarkPrompt.js",
"source/RouteManeuverIcon.js",
"source/ActionBar.js",
"source/SavedList.js",
"source/Bookmarks.js",
"source/Recents.js",
"source/Contacts.js",
"source/Saves.js",
"source/InputAssist.js",
"source/InfoFooter.js",
"source/Rating.js",
"source/TitleBox.js",
"source/InfoBox.js",
"source/SearchResults.js",
"source/Route.js",
"source/LabeledToggle.js",
"source/CheckItem.js",
"source/CheckItemGroup.js",
"source/Settings.js",
"source/Pullout.js",
"css/app.css",
"source/MapsApp.js"
);
Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Loaded 100 of 1591 files, more files were not shown because too many files have changed in this diff. Show more