Do not poll all device info again, just the battery capacity
This commit is contained in:
+44
-1
@@ -277,9 +277,52 @@ static guint battery_info_get_current_capacity(plist_t battery_info)
|
||||
return (guint)current_capacity;
|
||||
}
|
||||
|
||||
gboolean device_poll_battery_capacity(const char *uuid, device_info_t *device_info, GError **error) {
|
||||
plist_t node = NULL;
|
||||
idevice_t phone = NULL;
|
||||
lockdownd_client_t client = NULL;
|
||||
gboolean res = FALSE;
|
||||
|
||||
printf("%s: %s\n", __func__, uuid);
|
||||
|
||||
if (!device_info) {
|
||||
return res;
|
||||
}
|
||||
|
||||
printf("%s\n", __func__);
|
||||
|
||||
g_mutex_lock(idevice_mutex);
|
||||
if (!device_connect(uuid, &phone, &client, error)) {
|
||||
goto leave_cleanup;
|
||||
}
|
||||
|
||||
if (!*device_info) {
|
||||
/* make new device info */
|
||||
*device_info = device_info_new();
|
||||
}
|
||||
|
||||
/* get current battery capacity */
|
||||
node = NULL;
|
||||
lockdownd_get_value(client, "com.apple.mobile.battery", NULL, &node);
|
||||
(*device_info)->battery_capacity = battery_info_get_current_capacity(node);
|
||||
plist_free(node);
|
||||
|
||||
res = TRUE;
|
||||
|
||||
leave_cleanup:
|
||||
if (client) {
|
||||
lockdownd_client_free(client);
|
||||
}
|
||||
idevice_free(phone);
|
||||
g_mutex_unlock(idevice_mutex);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
gboolean device_get_info(const char *uuid, device_info_t *device_info, GError **error)
|
||||
{
|
||||
uint64_t interval = 60;
|
||||
uint8_t boolean = FALSE;
|
||||
uint64_t integer = 60;
|
||||
plist_t node = NULL;
|
||||
idevice_t phone = NULL;
|
||||
lockdownd_client_t client = NULL;
|
||||
|
||||
@@ -46,6 +46,7 @@ char *device_sbs_save_wallpaper(sbservices_client_t sbc, const char *uuid, GErro
|
||||
|
||||
device_info_t device_info_new();
|
||||
void device_info_free(device_info_t device_info);
|
||||
gboolean device_poll_battery_capacity(const char *uuid, device_info_t *device_info, GError **error);
|
||||
gboolean device_get_info(const char *uuid, device_info_t *device_info, GError **error);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1979,7 +1979,7 @@ static gboolean update_battery_info_cb(gpointer user_data)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (device_get_info(uuid, &device_info, &error)) {
|
||||
if (device_poll_battery_capacity(uuid, &device_info, &error)) {
|
||||
clutter_actor_set_size(battery_level, (guint) (((double) (device_info->battery_capacity) / 100.0) * 15), 6);
|
||||
if (device_info->battery_capacity == 100) {
|
||||
res = FALSE;
|
||||
|
||||
Reference in New Issue
Block a user