forked from enlightenment/enlightenment
wizard - missing bluez5 service checks for enabling bluez5 module
we were missing this - add it in like connman for release.
This commit is contained in:
parent
afc1f44ac7
commit
6cb62a79ae
|
@ -800,8 +800,8 @@ group "E_Config" struct {
|
||||||
value "resizable" uchar: 0;
|
value "resizable" uchar: 0;
|
||||||
}
|
}
|
||||||
group "E_Config_Gadcon_Client" struct {
|
group "E_Config_Gadcon_Client" struct {
|
||||||
value "name" string: "tasks";
|
value "name" string: "bluez5";
|
||||||
value "id" string: "tasks.0";
|
value "id" string: "bluez5";
|
||||||
value "geom.pos" int: 352;
|
value "geom.pos" int: 352;
|
||||||
value "geom.size" int: 32;
|
value "geom.size" int: 32;
|
||||||
value "geom.res" int: 800;
|
value "geom.res" int: 800;
|
||||||
|
@ -811,13 +811,13 @@ group "E_Config" struct {
|
||||||
value "geom.size_h" double: 0.0;
|
value "geom.size_h" double: 0.0;
|
||||||
value "state_info.seq" int: 12;
|
value "state_info.seq" int: 12;
|
||||||
value "state_info.flags" int: 0;
|
value "state_info.flags" int: 0;
|
||||||
value "style" string: "inset";
|
value "style" string: "plain";
|
||||||
value "autoscroll" uchar: 1;
|
value "autoscroll" uchar: 0;
|
||||||
value "resizable" uchar: 0;
|
value "resizable" uchar: 0;
|
||||||
}
|
}
|
||||||
group "E_Config_Gadcon_Client" struct {
|
group "E_Config_Gadcon_Client" struct {
|
||||||
value "name" string: "xkbswitch";
|
value "name" string: "tasks";
|
||||||
value "id" string: "xkbswitch";
|
value "id" string: "tasks.0";
|
||||||
value "geom.pos" int: 384;
|
value "geom.pos" int: 384;
|
||||||
value "geom.size" int: 32;
|
value "geom.size" int: 32;
|
||||||
value "geom.res" int: 800;
|
value "geom.res" int: 800;
|
||||||
|
@ -827,6 +827,22 @@ group "E_Config" struct {
|
||||||
value "geom.size_h" double: 0.0;
|
value "geom.size_h" double: 0.0;
|
||||||
value "state_info.seq" int: 13;
|
value "state_info.seq" int: 13;
|
||||||
value "state_info.flags" int: 0;
|
value "state_info.flags" int: 0;
|
||||||
|
value "style" string: "inset";
|
||||||
|
value "autoscroll" uchar: 1;
|
||||||
|
value "resizable" uchar: 0;
|
||||||
|
}
|
||||||
|
group "E_Config_Gadcon_Client" struct {
|
||||||
|
value "name" string: "xkbswitch";
|
||||||
|
value "id" string: "xkbswitch";
|
||||||
|
value "geom.pos" int: 416;
|
||||||
|
value "geom.size" int: 32;
|
||||||
|
value "geom.res" int: 800;
|
||||||
|
value "geom.pos_x" double: 0.0;
|
||||||
|
value "geom.pos_y" double: 0.0;
|
||||||
|
value "geom.size_w" double: 0.0;
|
||||||
|
value "geom.size_h" double: 0.0;
|
||||||
|
value "state_info.seq" int: 14;
|
||||||
|
value "state_info.flags" int: 0;
|
||||||
value "style" string: "plain";
|
value "style" string: "plain";
|
||||||
value "autoscroll" uchar: 0;
|
value "autoscroll" uchar: 0;
|
||||||
value "resizable" uchar: 0;
|
value "resizable" uchar: 0;
|
||||||
|
@ -1096,6 +1112,12 @@ group "E_Config" struct {
|
||||||
value "delayed" uchar: 1;
|
value "delayed" uchar: 1;
|
||||||
value "priority" int: 0;
|
value "priority" int: 0;
|
||||||
}
|
}
|
||||||
|
group "E_Config_Module" struct {
|
||||||
|
value "name" string: "bluez5";
|
||||||
|
value "enabled" uchar: 1;
|
||||||
|
value "delayed" uchar: 1;
|
||||||
|
value "priority" int: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
group "xkb.used_layouts" list {
|
group "xkb.used_layouts" list {
|
||||||
group "E_Config_XKB_Layout" struct {
|
group "E_Config_XKB_Layout" struct {
|
||||||
|
|
|
@ -797,10 +797,26 @@ group "E_Config" struct {
|
||||||
value "autoscroll" uchar: 0;
|
value "autoscroll" uchar: 0;
|
||||||
value "resizable" uchar: 0;
|
value "resizable" uchar: 0;
|
||||||
}
|
}
|
||||||
|
group "E_Config_Gadcon_Client" struct {
|
||||||
|
value "name" string: "bluez5";
|
||||||
|
value "id" string: "bluez5";
|
||||||
|
value "geom.pos" int: 352;
|
||||||
|
value "geom.size" int: 32;
|
||||||
|
value "geom.res" int: 800;
|
||||||
|
value "geom.pos_x" double: 0.0;
|
||||||
|
value "geom.pos_y" double: 0.0;
|
||||||
|
value "geom.size_w" double: 0.0;
|
||||||
|
value "geom.size_h" double: 0.0;
|
||||||
|
value "state_info.seq" int: 12;
|
||||||
|
value "state_info.flags" int: 0;
|
||||||
|
value "style" string: "plain";
|
||||||
|
value "autoscroll" uchar: 0;
|
||||||
|
value "resizable" uchar: 0;
|
||||||
|
}
|
||||||
group "E_Config_Gadcon_Client" struct {
|
group "E_Config_Gadcon_Client" struct {
|
||||||
value "name" string: "tasks";
|
value "name" string: "tasks";
|
||||||
value "id" string: "tasks.0";
|
value "id" string: "tasks.0";
|
||||||
value "geom.pos" int: 352;
|
value "geom.pos" int: 384;
|
||||||
value "geom.size" int: 32;
|
value "geom.size" int: 32;
|
||||||
value "geom.res" int: 800;
|
value "geom.res" int: 800;
|
||||||
value "geom.pos_x" double: 0.0;
|
value "geom.pos_x" double: 0.0;
|
||||||
|
@ -816,7 +832,7 @@ group "E_Config" struct {
|
||||||
group "E_Config_Gadcon_Client" struct {
|
group "E_Config_Gadcon_Client" struct {
|
||||||
value "name" string: "xkbswitch";
|
value "name" string: "xkbswitch";
|
||||||
value "id" string: "xkbswitch";
|
value "id" string: "xkbswitch";
|
||||||
value "geom.pos" int: 384;
|
value "geom.pos" int: 416;
|
||||||
value "geom.size" int: 32;
|
value "geom.size" int: 32;
|
||||||
value "geom.res" int: 800;
|
value "geom.res" int: 800;
|
||||||
value "geom.pos_x" double: 0.0;
|
value "geom.pos_x" double: 0.0;
|
||||||
|
@ -832,14 +848,14 @@ group "E_Config" struct {
|
||||||
group "E_Config_Gadcon_Client" struct {
|
group "E_Config_Gadcon_Client" struct {
|
||||||
value "name" string: "tiling";
|
value "name" string: "tiling";
|
||||||
value "id" string: "Tiling 0";
|
value "id" string: "Tiling 0";
|
||||||
value "geom.pos" int: 588;
|
value "geom.pos" int: 768;
|
||||||
value "geom.size" int: 40;
|
value "geom.size" int: 40;
|
||||||
value "geom.res" int: 955;
|
value "geom.res" int: 800;
|
||||||
value "geom.pos_x" double: 0.0000000000000000000000000;
|
value "geom.pos_x" double: 0.0000000000000000000000000;
|
||||||
value "geom.pos_y" double: 0.0000000000000000000000000;
|
value "geom.pos_y" double: 0.0000000000000000000000000;
|
||||||
value "geom.size_w" double: 0.0000000000000000000000000;
|
value "geom.size_w" double: 0.0000000000000000000000000;
|
||||||
value "geom.size_h" double: 0.0000000000000000000000000;
|
value "geom.size_h" double: 0.0000000000000000000000000;
|
||||||
value "state_info.seq" int: 3;
|
value "state_info.seq" int: 14;
|
||||||
value "state_info.flags" int: 3;
|
value "state_info.flags" int: 3;
|
||||||
value "orient" int: 0;
|
value "orient" int: 0;
|
||||||
value "autoscroll" uchar: 0;
|
value "autoscroll" uchar: 0;
|
||||||
|
@ -1111,6 +1127,12 @@ group "E_Config" struct {
|
||||||
value "delayed" uchar: 1;
|
value "delayed" uchar: 1;
|
||||||
value "priority" int: 0;
|
value "priority" int: 0;
|
||||||
}
|
}
|
||||||
|
group "E_Config_Module" struct {
|
||||||
|
value "name" string: "bluez5";
|
||||||
|
value "enabled" uchar: 1;
|
||||||
|
value "delayed" uchar: 1;
|
||||||
|
value "priority" int: 0;
|
||||||
|
}
|
||||||
group "E_Config_Module" struct {
|
group "E_Config_Module" struct {
|
||||||
value "name" string: "tiling";
|
value "name" string: "tiling";
|
||||||
value "enabled" uchar: 1;
|
value "enabled" uchar: 1;
|
||||||
|
|
|
@ -22,6 +22,7 @@ if get_option(m) == true
|
||||||
'page_090',
|
'page_090',
|
||||||
'page_100',
|
'page_100',
|
||||||
'page_110',
|
'page_110',
|
||||||
|
'page_115',
|
||||||
'page_120',
|
'page_120',
|
||||||
'page_130',
|
'page_130',
|
||||||
'page_150',
|
'page_150',
|
||||||
|
|
|
@ -0,0 +1,183 @@
|
||||||
|
/* Setup if we need bluez5? */
|
||||||
|
#include "e_wizard.h"
|
||||||
|
#include "e_wizard_api.h"
|
||||||
|
|
||||||
|
static void
|
||||||
|
_recommend_bluez5(E_Wizard_Page *pg EINA_UNUSED)
|
||||||
|
{
|
||||||
|
Evas_Object *of, *ob;
|
||||||
|
|
||||||
|
api->wizard_title_set(_("Bluetooth Management"));
|
||||||
|
|
||||||
|
of = elm_frame_add(e_comp->elm);
|
||||||
|
ob = elm_label_add(of);
|
||||||
|
elm_object_content_set(of, ob);
|
||||||
|
#if defined(USE_MODULE_BLUEZ5)
|
||||||
|
elm_object_text_set(of, _("BlueZ Bluetooth service not found"));
|
||||||
|
|
||||||
|
|
||||||
|
elm_object_text_set(ob, _("Install/Enable BlueZ 5 / bluetoothd service for network management support"));
|
||||||
|
#else
|
||||||
|
elm_object_text_set(of, _("Bluez5 module disabled"));
|
||||||
|
elm_object_text_set(ob, _("Install it for Bluetooth management support"));
|
||||||
|
#endif
|
||||||
|
evas_object_show(ob);
|
||||||
|
evas_object_show(of);
|
||||||
|
|
||||||
|
api->wizard_page_show(of);
|
||||||
|
// pg->data = o;
|
||||||
|
|
||||||
|
api->wizard_button_next_enable_set(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eldbus_Connection *conn;
|
||||||
|
static Eldbus_Pending *pending_bluez5;
|
||||||
|
static Ecore_Timer *bluez5_timeout = NULL;
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_bluez5_fail(void *data)
|
||||||
|
{
|
||||||
|
E_Wizard_Page *pg = data;
|
||||||
|
E_Config_Module *em;
|
||||||
|
Eina_List *l;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(e_config->modules, l, em)
|
||||||
|
{
|
||||||
|
if (!em->name) continue;
|
||||||
|
if (!strcmp(em->name, "bluez5"))
|
||||||
|
{
|
||||||
|
e_config->modules = eina_list_remove_list
|
||||||
|
(e_config->modules, l);
|
||||||
|
if (em->name) eina_stringshare_del(em->name);
|
||||||
|
free(em);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
e_config_save_queue();
|
||||||
|
|
||||||
|
bluez5_timeout = NULL;
|
||||||
|
_recommend_bluez5(pg);
|
||||||
|
return EINA_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_page_next_call(void *data EINA_UNUSED)
|
||||||
|
{
|
||||||
|
api->wizard_next();
|
||||||
|
return ECORE_CALLBACK_CANCEL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_check_bluez5_owner(void *data, const Eldbus_Message *msg,
|
||||||
|
Eldbus_Pending *pending EINA_UNUSED)
|
||||||
|
{
|
||||||
|
const char *id;
|
||||||
|
pending_bluez5 = NULL;
|
||||||
|
|
||||||
|
if (bluez5_timeout)
|
||||||
|
{
|
||||||
|
ecore_timer_del(bluez5_timeout);
|
||||||
|
bluez5_timeout = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (eldbus_message_error_get(msg, NULL, NULL))
|
||||||
|
goto fail;
|
||||||
|
|
||||||
|
if (!eldbus_message_arguments_get(msg, "s", &id))
|
||||||
|
goto fail;
|
||||||
|
|
||||||
|
if (id[0] != ':')
|
||||||
|
goto fail;
|
||||||
|
|
||||||
|
api->wizard_button_next_enable_set(1);
|
||||||
|
ecore_idler_add(_page_next_call, NULL);
|
||||||
|
return;
|
||||||
|
|
||||||
|
fail:
|
||||||
|
_bluez5_fail(data);
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
|
||||||
|
E_API int
|
||||||
|
wizard_page_init(E_Wizard_Page *pg EINA_UNUSED, Eina_Bool *need_xdg_desktops EINA_UNUSED, Eina_Bool *need_xdg_icons EINA_UNUSED)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
E_API int
|
||||||
|
wizard_page_shutdown(E_Wizard_Page *pg EINA_UNUSED)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
E_API int
|
||||||
|
wizard_page_show(E_Wizard_Page *pg)
|
||||||
|
{
|
||||||
|
Eina_Bool have_bluez5 = EINA_FALSE;
|
||||||
|
|
||||||
|
#if defined(USE_MODULE_BLUEZ5)
|
||||||
|
conn = eldbus_connection_get(ELDBUS_CONNECTION_TYPE_SYSTEM);
|
||||||
|
#endif
|
||||||
|
if (conn)
|
||||||
|
{
|
||||||
|
if (pending_bluez5)
|
||||||
|
eldbus_pending_cancel(pending_bluez5);
|
||||||
|
|
||||||
|
pending_bluez5 = eldbus_name_owner_get(conn, "org.bluez",
|
||||||
|
_check_bluez5_owner, pg);
|
||||||
|
if (bluez5_timeout)
|
||||||
|
ecore_timer_del(bluez5_timeout);
|
||||||
|
bluez5_timeout = ecore_timer_loop_add(0.5, _bluez5_fail, pg);
|
||||||
|
have_bluez5 = EINA_TRUE;
|
||||||
|
api->wizard_button_next_enable_set(0);
|
||||||
|
}
|
||||||
|
if (!have_bluez5)
|
||||||
|
{
|
||||||
|
E_Config_Module *em;
|
||||||
|
Eina_List *l;
|
||||||
|
EINA_LIST_FOREACH(e_config->modules, l, em)
|
||||||
|
{
|
||||||
|
if (!em->name) continue;
|
||||||
|
if (!strcmp(em->name, "bluez5"))
|
||||||
|
{
|
||||||
|
e_config->modules = eina_list_remove_list
|
||||||
|
(e_config->modules, l);
|
||||||
|
if (em->name) eina_stringshare_del(em->name);
|
||||||
|
free(em);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
e_config_save_queue();
|
||||||
|
_recommend_bluez5(pg);
|
||||||
|
}
|
||||||
|
api->wizard_title_set(_("Checking to see if BlueZ exists"));
|
||||||
|
return 1; /* 1 == show ui, and wait for user, 0 == just continue */
|
||||||
|
}
|
||||||
|
|
||||||
|
E_API int
|
||||||
|
wizard_page_hide(E_Wizard_Page *pg EINA_UNUSED)
|
||||||
|
{
|
||||||
|
if (pending_bluez5)
|
||||||
|
{
|
||||||
|
eldbus_pending_cancel(pending_bluez5);
|
||||||
|
pending_bluez5 = NULL;
|
||||||
|
}
|
||||||
|
if (bluez5_timeout)
|
||||||
|
{
|
||||||
|
ecore_timer_del(bluez5_timeout);
|
||||||
|
bluez5_timeout = NULL;
|
||||||
|
}
|
||||||
|
if (conn)
|
||||||
|
eldbus_connection_unref(conn);
|
||||||
|
conn = NULL;
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
E_API int
|
||||||
|
wizard_page_apply(E_Wizard_Page *pg EINA_UNUSED)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
*/
|
Loading…
Reference in New Issue