void received_data(DictionaryIterator *received, void *context) {
	uint8_t packetId = dict_find(received, 0)->value->uint8;

	if (packetId == 3)
	{
		received_config(received);
		return;
	}
	else if (!gotConfig)
		return;

	if ((packetId == 0 || packetId == 4) && curWindow > 1)
	{
		switchWindow(1);
	}

	switch (curWindow)
	{
	case 0:
		menu_data_received(packetId, received);
		break;
	case 1:
		notification_received_data(packetId, received);
		break;
	case 2:
		list_data_received(packetId, received);
		break;
	}

	app_comm_set_sniff_interval(SNIFF_INTERVAL_REDUCED);
}
void menu_data_received(int packetId, DictionaryIterator* data)
{
	switch (packetId)
	{
	case 0:
		show_quit();
		notification_window_init(true);
		notification_received_data(packetId, data);
		break;
	case 2:
		window_stack_pop(true);
		init_notification_list_window();
		list_data_received(packetId, data);
		break;
	case 3:
		show_menu();
		break;
	}
}
void received_data(DictionaryIterator *received, void *context) {
	gotNotification = true;

	uint8_t packetId = dict_find(received, 0)->value->uint8;
	if(packetId == 3){
	  //Retrieve isNotificationListenerSupported;
	  isNotificationListenerSupported = dict_find(received, 3)->value->uint8;
	}
 
  if ((packetId == 3) || (packetId == 10))
	{
		//Retrieve options when loading main menu or when they are changed
		options_data_received(received);
	}
 
	if (packetId == 0 && curWindow > 1)
	{
		switchWindow(1);
	}
	
	switch (curWindow)
	{
	case 0:
		menu_data_received(packetId, received);
		break;
	case 1:
		notification_received_data(packetId, received);
		break;
	case 2:
		list_data_received(packetId, received);
		break;
	}
	

	app_comm_set_sniff_interval(SNIFF_INTERVAL_REDUCED);
	app_comm_set_sniff_interval(SNIFF_INTERVAL_NORMAL);
}