Skip to content

Commit

Permalink
One big ugly commit to keep this repo up to date with version 1.0.13 …
Browse files Browse the repository at this point in the history
…of the watch app and 3.0 android app
  • Loading branch information
Artaud committed Apr 3, 2019
1 parent 1916542 commit be72eeb
Show file tree
Hide file tree
Showing 2,088 changed files with 36,405 additions and 7,712 deletions.
64 changes: 36 additions & 28 deletions SleepAsAndroidServiceReal/.cproject

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions SleepAsAndroidServiceReal/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
/Debug/
/Release/
4 changes: 2 additions & 2 deletions SleepAsAndroidServiceReal/.project
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
</natures>
<filteredResources>
<filter>
<id>1523449366489</id>
<id>1478033200955</id>
<name></name>
<type>26</type>
<matcher>
Expand All @@ -34,7 +34,7 @@
</matcher>
</filter>
<filter>
<id>1523449366493</id>
<id>1478033200963</id>
<name></name>
<type>6</type>
<matcher>
Expand Down
6 changes: 3 additions & 3 deletions SleepAsAndroidServiceReal/.sign/.manifest.tmp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
bin/sleepasandroidnativeservice__DEL__lnJXTelAM6o4cBPbHXhkoBy0nUbhafExF61HTTi5fh0=
bin/sleepasandroidnativeservice__DEL__jqfSyT+WRRRVMTF7YjPkg5JnQLhvgt7mCPXdRxP3tbU=
res/xml/accessoryservices.xml__DEL__Mtq+j85o6onyg2+DeB1a6U6RUDOlyWAfCNSgL2VPTxM=
shared/res/sleepasandroidnativeservice.png__DEL__1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=
tizen-manifest.xml__DEL__7QqSJO7rv9ZUbmpafQt9Leq9olCPJQwUNok2BVymqnM=
author-signature.xml__DEL__96p+6p9V+BmZ5X+W59FGv308/Wo0UeV64lWNw4P7n/k=
tizen-manifest.xml__DEL__vQViXJF1K/rcuLgcDodPb2sf+XcIEdZ4/6BEywZpiSI=
author-signature.xml__DEL__hEtyEkn1/FOJH80vtJotOY8HtoDeWvBgyazNQlNVtX4=
14 changes: 7 additions & 7 deletions SleepAsAndroidServiceReal/.sign/author-signature.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod>
<Reference URI="bin%2Fsleepasandroidnativeservice">
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
<DigestValue>lnJXTelAM6o4cBPbHXhkoBy0nUbhafExF61HTTi5fh0=</DigestValue>
<DigestValue>jqfSyT+WRRRVMTF7YjPkg5JnQLhvgt7mCPXdRxP3tbU=</DigestValue>
</Reference>
<Reference URI="res%2Fxml%2Faccessoryservices.xml">
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
Expand All @@ -16,7 +16,7 @@
</Reference>
<Reference URI="tizen-manifest.xml">
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
<DigestValue>7QqSJO7rv9ZUbmpafQt9Leq9olCPJQwUNok2BVymqnM=</DigestValue>
<DigestValue>vQViXJF1K/rcuLgcDodPb2sf+XcIEdZ4/6BEywZpiSI=</DigestValue>
</Reference>
<Reference URI="#prop">
<Transforms>
Expand All @@ -27,11 +27,11 @@
</Reference>
</SignedInfo>
<SignatureValue>
g8TvuHGMAIVeZL4el2OAAk+TBsWiyR/T33eg6nX4oE0c6GilhTGWljs3CSITjS6PrAvAW3PinKol
L/BY7RE2n54rZGVeI0ubEnGG4FSKoXKA+RJY90zRdXfAnJlB6Onsu0V/3ktMIJSmyPubDXW3/J5r
3rAYEDVjoL1/O12TGtmWXV6+14KIsJP3QwiiZWuenaPscJV+iFKKKNYVXtq28/O8oOGhkA3wopPB
bcwIPUsZTkLu1Qj/hA0tqWEztMGfbfBwzLnmgzDEhcR6r31u7VvVb9CCYDcPr7sShsOWqq/JHFp6
eiXaPaeSUaT+MWZL4XCDBmqv/FRg6RkeJFwezA==
UTYzN/Xl208X7EyPdmobRFv+y5T4ZV88v0AHCngbppq3VWSW+83bPY0t698ynskwotYrHxEi39Uf
bjDWL54Dy0n0Wwd29p8W2L6EbWO8fho4s9BhlCweu+VzQRcsK+hZusNzKuhM6cq5c+zd5yopJDjq
u7IHEWeH297X8tDSeF2t9xx5ETBYy0VeTW8uE9gRHt9H0nTCUhsPg/04FSwE+Wt1G9Aq57P9iFfe
e+nkcsxXHJqpg3vhdfZ7gvjHLYtUd8UstuPCZxbMvygpF21Q2jbTNwG6Bsp/StNK/4Zyh9AYbAMd
qEIb3zvU+URwjSUj7QMrroIkxcq7XGa6q7NeAQ==
</SignatureValue>
<KeyInfo>
<X509Data>
Expand Down
47 changes: 24 additions & 23 deletions SleepAsAndroidServiceReal/.sign/signature1.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod>
<Reference URI="author-signature.xml">
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
<DigestValue>96p+6p9V+BmZ5X+W59FGv308/Wo0UeV64lWNw4P7n/k=</DigestValue>
<DigestValue>hEtyEkn1/FOJH80vtJotOY8HtoDeWvBgyazNQlNVtX4=</DigestValue>
</Reference>
<Reference URI="bin%2Fsleepasandroidnativeservice">
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
<DigestValue>lnJXTelAM6o4cBPbHXhkoBy0nUbhafExF61HTTi5fh0=</DigestValue>
<DigestValue>jqfSyT+WRRRVMTF7YjPkg5JnQLhvgt7mCPXdRxP3tbU=</DigestValue>
</Reference>
<Reference URI="res%2Fxml%2Faccessoryservices.xml">
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
Expand All @@ -20,7 +20,7 @@
</Reference>
<Reference URI="tizen-manifest.xml">
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
<DigestValue>7QqSJO7rv9ZUbmpafQt9Leq9olCPJQwUNok2BVymqnM=</DigestValue>
<DigestValue>vQViXJF1K/rcuLgcDodPb2sf+XcIEdZ4/6BEywZpiSI=</DigestValue>
</Reference>
<Reference URI="#prop">
<Transforms>
Expand All @@ -31,33 +31,34 @@
</Reference>
</SignedInfo>
<SignatureValue>
lKBq55Uz9HoZFFh3DCk/y0CGiARRnH+294u7FI1MmqQWuhKzoDo2NSP+3GlZC8mefy6bGtKHp6WY
2NRvAhZCTB69JRmC1nRbxW8YN01OgtmLArKJ9KCKsVI7PUJ2CDNd7Rami/ir+mzGMWAe+QeQRxgn
OJZQJllhEUbYu8sSnq3NQtLdN1QkhRwqcFk74yoQNDeEaVHceIRUmZ5bfGgpj7dkP5DOCIzyOPFL
wwmizAoDHGqsLtljG4n7kQcmGVwvDXMKf6w0mKZ33LPv7EtGEzlM3lZPBihG5a1j8PF/tTG4/YUX
5YqGwj+s9Wv4/4EYon/Nu+BPw+8v+Bwk1wQsqQ==
bTGtXM0cP/4LBF6TmrnqjpvRPZA4PuX+yJXZCudTgO9un9sXOwawhyvGxEDN38zeGk4jxMDrm/P0
2iFRfGERA9QnDXdYdXylvVmOIlMlRGKN1ydFSoD6r8kIjz/PYafcdJOLbqXBcuUPoF0/VaTPKw5V
TMxEpOIzOjJrIDjzV+CiqKRjfCwYxm8JfL1pxsL4oy/wNwkGmFUpUfCT9fKhftWPWVZRE7jLwSy1
AcyJlTDy3ltbvmf+k6e2L9wW8qSRk855yJZRRTA0xY7HV30sSDXg4i7ECJNdLBZqXf4ra0pc2GJD
URAmS8ilCEayjbt6QRsb58viAZrYT5jEOiBPUw==
</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>
MIID6DCCAtCgAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBnjELMAkGA1UEBhMCS1IxFDASBgNVBAgM
MIIEFjCCAv6gAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBnjELMAkGA1UEBhMCS1IxFDASBgNVBAgM
C1NvdXRoIEtvcmVhMQ4wDAYDVQQHDAVTdXdvbjEmMCQGA1UECgwdU2Ftc3VuZyBFbGVjdHJvbmlj
cyBDby4sIEx0ZC4xDzANBgNVBAsMBk1vYmlsZTEwMC4GA1UEAwwnU2Ftc3VuZyBUaXplbiBERVZF
TE9QRVIgUHVibGljIENBIENsYXNzMB4XDTE3MTAxOTA5MjExNFoXDTE4MTAxOTA5MjExNFowdjER
TE9QRVIgUHVibGljIENBIENsYXNzMB4XDTE4MDQxMTEwNTgwNFoXDTE5MDQxMTEwNTgwNFowajER
MA8GA1UEAwwIVGl6ZW5TREsxCTAHBgNVBAsMADEJMAcGA1UECgwAMQkwBwYDVQQHDAAxCTAHBgNV
BAgMADEJMAcGA1UEBhMAMSowKAYJKoZIhvcNAQkBFhtqaXJpLnJpY2h0ZXJAdXJiYW5kcm9pZC5v
cmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+C3lo2TFi+Cbs+mDNqSzODNTJ1eys
PCfJGfmkil9qcBLLu1IkaG3owscPjG4fsr8p+dDuOrPH3yXuVK+YWXb9FPZV2Lv0mlJKb3zoGiky
JhuCw2JZWdI8P0sxq569heXe7Rd5IJPRcYk1eVU/3b/uYS2FUZTQhHLSoOTJdMMVxTtmZCbV1C1T
CPJHRjH0PzS1u3cqmVFEnZ7EJgyy0d/wBuf9BZpE8bRZAEiBcFCi+SVTVBDqsJDr5In0Zuu8DIHe
a0mW7gk96bQE1cU54p555IJql1tq5PiX08Bmn7j0Zq8Est4ZQZwtLYKoX16kb6QVSQTqvDwZIQ+s
V3iNflk5AgMBAAGjWDBWMFQGA1UdEQRNMEuGFFVSTjp0aXplbjpwYWNrYWdlaWQ9hjNVUk46dGl6
ZW46ZGV2aWNlaWQ9Mi4wI0pKeTNRTHUvWldmbzNZa3pxazdwa1Y4VnFGYz0wDQYJKoZIhvcNAQEL
BQADggEBADI03zw560wicxFUdZjOmjbJ7OQFzY5eqlrKizN8xdCZn3euaEamh1VajjZnZdCYDnOU
yYIcvpEegxsDJtIQDiOn8TOTSNZNcuANtZg7ZW3xhE//7vyQswRMxKjRYTb90U/tW636cXagCMtm
Fxd3rbKBO/3rcgbG1mrxU9myPHnqgWUTeA2/AhOTL2zYRy9c1+IltIEfjL/5/Wnt68Dq+sa22YB+
J6nfBqDik4Uw60S1Hoa4lc3Ntp5VaR1CAfjTffLnKOtATzboFKih38FenEWvU/w6wQBkoOYJ5Oxl
PFMDr30MhiCl6JIXldlOlYKN9SHy+bVyUYfjEC6BIAQwGHo=
BAgMADEJMAcGA1UEBhMAMR4wHAYJKoZIhvcNAQkBFg9tYXJ0aW5Ac3RhdmEubWUwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz+c8ncAhT1twwTKqeFXmEusn22ufgbLbyFPTrge2FD2QA
OuBTRFi4UrDneFPHID09VQIbbr8XtTj/abBOOvPWJEObvdZXONJR588wXdbZs/+1hR4n+U1FqYga
t4/qBtj0SUrwhSj8qUNQlaHaHLcF/bdx+912/1NzKyomquaMkF7YL0S129dYMNttXB+aNjMBASis
oJYZUL/S+ajEW8gXTi1SK5fd6vPkZmOvmpCZq0vSVbnClbgOXzZROM4RA6BMvyImkosfTH93GOJ9
oOWp5hzlJPHfrHr0nVUgNPnLaZ2KBtNrSmNIesAohB6eHIFPFESbuRpZjN/T1IOdylk5AgMBAAGj
gZEwgY4wgYsGA1UdEQSBgzCBgIYUVVJOOnRpemVuOnBhY2thZ2VpZD2GM1VSTjp0aXplbjpkZXZp
Y2VpZD0yLjAjSkp5M1FMdS9aV2ZvM1lrenFrN3BrVjhWcUZjPYYzVVJOOnRpemVuOmRldmljZWlk
PTIuMCNjT3M3WlVtOFNVd0U3b1l2N3NDR2JMYkhnUUk9MA0GCSqGSIb3DQEBCwUAA4IBAQBn6ost
ejibK5fC6CsVjOhSJ5t8zcxcnT2ScySkCEv9MYwp/k6VFYoTHb57/37Ltlcl8VWldoXBfUlddkEH
N/WPyp2waql4fnNPWZa1s/U6G+QD2uEgVhraMt4T6mHlWAWAWch4NzErthRobMC40nkdrtwI5CBM
P0cietYBSWi6ctfXoYiBAvN2+ShVsoZsNTMmeTqmhueerNaQdFaYom2ruDnWYoyZjPjYKJqvsY/8
ikdzbJ742ev8adsnvLFtX1mIZ5Wy/VrdlFm94qOFvA1cPI4+BQr2AkNZO6eMvtj3klxPALj9kLhO
Y1uxcV8ZOPDFRBXcVrwWTl9Qn6MT7RKP
</X509Certificate>
<X509Certificate>
MIIDuzCCAqOgAwIBAgICL+cwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAktSMRQwEgYDVQQI
Expand Down
2 changes: 2 additions & 0 deletions SleepAsAndroidServiceReal/inc/sleep_sap.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,7 @@ gboolean find_peers();
gboolean request_service_connection(void);
gboolean terminate_service_connection(void);
gboolean send_data(char *message);
gboolean get_tracking_started_from_watch();
void set_tracking_started_from_watch(gboolean value);

#endif
18 changes: 17 additions & 1 deletion SleepAsAndroidServiceReal/src/sleep_sap.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,16 @@
#define SLEEP_PROFILE_ID "/system/sleepassamsung"
#define SLEEP_CHANNELID 1750

static bool tracking_started_from_watch = false;

gboolean get_tracking_started_from_watch() {
return tracking_started_from_watch;
}
void set_tracking_started_from_watch(gboolean value) {
tracking_started_from_watch = value;
}


struct priv {
sap_agent_h agent;
sap_socket_h socket;
Expand Down Expand Up @@ -118,7 +128,12 @@ static void on_service_connection_created(sap_peer_agent_h peer_agent,
sprintf(&outstr, "Version %s",&version[0]);
send_data(outstr);
free(&version[0]);
send_data("STARTING"); // TODO: This should be send only when started from watch, right?

if (tracking_started_from_watch == true) {
dlog_print(DLOG_INFO, TAG, "App control started from WATCH - sending STARTING delayed");
send_data("STARTING"); // TODO: This should be send only when started from watch, right?
tracking_started_from_watch = false;
}
// update_ui("Connection Established");
break;

Expand Down Expand Up @@ -385,6 +400,7 @@ gboolean agent_initialize() {
void terminate_sap() {
sap_set_device_status_changed_cb(on_device_status_changed_empty, NULL);
sap_agent_destroy(priv_data.agent);
tracking_started_from_watch = false;
}

void initialize_sap(data_received_cb data_received) {
Expand Down
70 changes: 52 additions & 18 deletions SleepAsAndroidServiceReal/src/sleepasandroidnativeservice.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@ static gint64 paused_till = 0;
// What pause state does UI see.
static bool ui_pause_secs_remaining = 0;

static bool ui_in_background = false;
static bool ui_paused = false;

static bool hr_supported = false;

typedef struct motion_data {
Expand Down Expand Up @@ -120,7 +123,7 @@ static void hr_sensor_event_callback(sensor_h sensor, sensor_event_s *event, voi
case SENSOR_HRM:
hrm_value = event->values[0];
if (hrm_value != 0.0f) {
dlog_print(DLOG_INFO, TAG, "HRM: %f" , hrm_value);
//dlog_print(DLOG_INFO, TAG, "HRM: %f" , hrm_value);
}
if (hrm_value > 20.0f && hrm_value < 200.0f) {
// We got a real value.. let's sum them till we have 10 samples
Expand Down Expand Up @@ -294,17 +297,29 @@ static Eina_Bool update_ui_cb(void *data EINA_UNUSED) {
// Update pause state, if required.
const int pause_secs_remaining = pause_seconds_remaining();
// dlog_print(DLOG_INFO, TAG, "Pause sec: %d", pause_secs_remaining);

if (pause_secs_remaining != ui_pause_secs_remaining) {
ui_pause_secs_remaining = pause_secs_remaining;

Eina_Strbuf *strbuf = eina_strbuf_new();
eina_strbuf_append_printf(strbuf, "pause_state:%d", pause_secs_remaining);
char *txt = eina_strbuf_string_steal(strbuf);
eina_strbuf_free(strbuf);
send_ui_command(txt);
free(txt);
if (!ui_in_background || ui_pause_secs_remaining == 0 || !ui_paused) {
Eina_Strbuf *strbuf = eina_strbuf_new();
eina_strbuf_append_printf(strbuf, "pause_state:%d", pause_secs_remaining);
char *txt = eina_strbuf_string_steal(strbuf);
eina_strbuf_free(strbuf);
send_ui_command(txt);
free(txt);
}

if (ui_pause_secs_remaining > 0) {
ui_paused = true;
} else {
ui_paused = false;
}
}

// TODO update time here...
send_ui_command("update_time");

return ECORE_CALLBACK_RENEW;
}

Expand Down Expand Up @@ -340,7 +355,9 @@ static void stop_tracking() {
is_tracking = false;
stop_accelerometer();
stop_hr();
// dlog_print(DLOG_INFO, TAG, "stop_tracking before CPU lock release");
device_power_release_lock(POWER_LOCK_CPU);
// dlog_print(DLOG_INFO, TAG, "stop_tracking after CPU lock release");
ecore_timer_del(send_motion_timer);
ecore_timer_del(update_ui_timer);
if (hr_timer) {
Expand Down Expand Up @@ -406,15 +423,15 @@ static Eina_Bool vibrate_one_sec(void *data) {
}

static void start_alarm(int alarm_delay) {
device_power_request_lock(POWER_LOCK_DISPLAY, 0);
device_power_request_lock(POWER_LOCK_DISPLAY, 0);
send_ui_command("alarm_started");

if(device_haptic_open(0, &haptic_handle) != DEVICE_ERROR_NONE) {
dlog_print(DLOG_ERROR, TAG, "Failed to get vibrator!");
}

alarm_timer = ecore_timer_add(2, vibrate_one_sec, NULL);
if (alarm_delay > 0) {
if (alarm_delay >= 0) {
alarm_timer = ecore_timer_add(2, vibrate_one_sec, NULL);
ecore_timer_delay(alarm_timer, alarm_delay / 1000);
}
}
Expand Down Expand Up @@ -478,6 +495,7 @@ static void handle_data_received(unsigned int payload_length, void *buffer) {
free(split_data);
} else if (eina_str_has_prefix(data, "StopApp")) {
stop_tracking();
dlog_print(DLOG_INFO, TAG, "Service app trying to exit due to StopApp");
stop_ui();
service_app_exit();
} else if (eina_str_has_prefix(data, "BatchSize")) {
Expand Down Expand Up @@ -539,38 +557,54 @@ bool service_app_create(void *data) {
return true;
}



void service_app_terminate(void *data) {
dlog_print(DLOG_INFO, TAG, "Service app terminate callback");
terminate_sap();
service_app_exit();
return;
}

void service_app_control(app_control_h app_control, void *data) {
dlog_print(DLOG_INFO, LOG_TAG, "Service app control received");
dlog_print(DLOG_INFO, TAG, "Service app control received");
char *caller_id = NULL;
if (app_control_get_caller(app_control, &caller_id) == APP_CONTROL_ERROR_NONE) {
dlog_print(DLOG_INFO, LOG_TAG, "Caller: %s", caller_id);
dlog_print(DLOG_INFO, TAG, "Caller: %s", caller_id);
free(caller_id);
}

char *action_value = NULL;
if (app_control_get_extra_data(app_control, "app_action", &action_value) == APP_CONTROL_ERROR_NONE) {
dlog_print(DLOG_INFO, LOG_TAG, "App control action: %s", action_value);
if (action_value != NULL && strcmp(action_value, "pause") == 0) {
dlog_print(DLOG_INFO, TAG, "App control action: %s", action_value);
if (action_value != NULL && strcmp(action_value, "start") == 0) {
if (!send_data("STARTING")) {
dlog_print(DLOG_INFO, TAG, "App control started from WATCH - cannot send STARTING");
set_tracking_started_from_watch(true);
} else {
dlog_print(DLOG_INFO, TAG, "App control started from WATCH - STARTING sent");
}
} else if (action_value != NULL && strcmp(action_value, "pause") == 0) {
send_data("PAUSE");
} else if (action_value != NULL && strcmp(action_value, "resume") == 0) {
send_data("RESUME");
} else if (action_value != NULL && strcmp(action_value, "snooze") == 0) {
send_data("SNOOZE");
} else if (action_value != NULL && strcmp(action_value, "dismiss") == 0) {
send_data("DISMISS");
} else if (action_value != NULL && strcmp(action_value, "terminate") == 0) {
send_data("STOP");
service_app_exit();
} else if (action_value != NULL && strcmp(action_value, "app_in_background") == 0) {
ui_in_background = true;
dlog_print(DLOG_INFO, TAG, "ui to background");
} else if (action_value != NULL && strcmp(action_value, "app_in_foreground") == 0) {
ui_in_background = false;
dlog_print(DLOG_INFO, TAG, "ui to foreground");
} else {
dlog_print(DLOG_INFO, LOG_TAG, "Unsupported action! Doing nothing...");
dlog_print(DLOG_INFO, TAG, "Unsupported action! Doing nothing...");
free(action_value);
}
} else {
dlog_print(DLOG_ERROR, LOG_TAG, "Failed to get app control attribute");
dlog_print(DLOG_ERROR, TAG, "Failed to get app control attribute");
}
}

Expand Down
2 changes: 1 addition & 1 deletion SleepAsAndroidServiceReal/tizen-manifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<manifest xmlns="http://tizen.org/ns/packages" api-version="2.3.1" package="com.urbandroid.sleep" version="1.0.9">
<manifest xmlns="http://tizen.org/ns/packages" api-version="2.3.1" package="com.urbandroid.sleep" version="1.0.13">
<profile name="wearable"/>
<service-application appid="com.urbandroid.sleep.service" exec="sleepasandroidnativeservice" multiple="false" nodisplay="true" taskmanage="false" type="capp">
<label>sleepasandroidnativeservice</label>
Expand Down
Loading

0 comments on commit be72eeb

Please sign in to comment.