#include "TuiLayout.h"
#include "TuiLayout_w1440.h"
#include "TZ_Vendor_debug_tl.h"
#include <string.h>

#define W1440_SCREEN_WIDTH				1440
#define W1440_SCREEN_HEIGHT_DEFAULT		3040

void initLayoutW1440() {
	//screen
	SCREEN_PIX_PER_DP							= 4;
	SCREEN_PUNCHCUT_HEIGHT						= 20 * SCREEN_PIX_PER_DP;
	
	SCREEN_WIDTH								= W1440_SCREEN_WIDTH;
	SCREEN_HEIGHT								= W1440_SCREEN_HEIGHT_DEFAULT;
	DBG_LOG("Screen size: %d, %d", SCREEN_WIDTH, SCREEN_HEIGHT);
	setScreenType(SCREEN_TYPE_DEFAULT);

	BACKUP_MNEMONIC_LIST_COLUMN_COUNT			= 2;
	BACKUP_MNEMONIC_LIST_TOP_MARGIN				= 219 * SCREEN_PIX_PER_DP;

	BACKUP_MNEMONIC_LIST_SIDE_MARGIN			= 45 * SCREEN_PIX_PER_DP;
	BACKUP_MNEMONIC_LIST_TEXTBOX_HEIGHT			= 20 * SCREEN_PIX_PER_DP;
	BACKUP_MNEMONIC_LIST_NUMBER_WIDTH			= 25 * SCREEN_PIX_PER_DP;
	BACKUP_MNEMONIC_LIST_NUMBER_DISTANCE		= 6 * SCREEN_PIX_PER_DP;
	BACKUP_MNEMONIC_LIST_TEXTBOX_DISTANCE		= 33 * SCREEN_PIX_PER_DP;
	BACKUP_MNEMONIC_LIST_TEXTBOX_LINE_DISTANCE	= 11 * SCREEN_PIX_PER_DP;

	BACKUP_QUIZ_TEXTINPUT_START_TOP_MARGIN		= 215 * SCREEN_PIX_PER_DP;
	BACKUP_QUIZ_TEXTINPUT_LEFT_MARGIN			= 59 * SCREEN_PIX_PER_DP;
	BACKUP_QUIZ_TEXTINPUT_WIDTH					= 160 * SCREEN_PIX_PER_DP;
	BACKUP_QUIZ_TEXTINPUT_HEIGHT				= 26 * SCREEN_PIX_PER_DP;
	BACKUP_QUIZ_TEXTINPUT_LINE_DISTANCE			= 8 * SCREEN_PIX_PER_DP;
	BACKUP_QUIZ_BUTTON_START_TOP_MARGIN			= BACKUP_QUIZ_TEXTINPUT_START_TOP_MARGIN;
	BACKUP_QUIZ_BUTTON_LEFT_MARGIN				= 13 * SCREEN_PIX_PER_DP;
	BACKUP_QUIZ_BUTTON_WIDTH					= 69 * SCREEN_PIX_PER_DP;
	BACKUP_QUIZ_BUTTON_HEIGHT					= 36 * SCREEN_PIX_PER_DP;
	BACKUP_QUIZ_NEXT_DISTANCE					= 99 * SCREEN_PIX_PER_DP;
	BACKUP_QUIZ_KEYPAD_START_X					= 0;
	BACKUP_QUIZ_KEYPAD_START_Y					= 513 * SCREEN_PIX_PER_DP;

	//confirm
	CONFIRM_TEXT_SIDE_MARGIN					= 24 * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_ADDRESS_HEIGHT					= 40 * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_2ND_ADDRESS_Y_DISTANCE         = 40 * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_AREA_WIDTH						= 312 * SCREEN_PIX_PER_DP;
	CONFIRM_DIVIDER_SIDE_MARGIN					= 20 * SCREEN_PIX_PER_DP;
	CONFIRM_DIVIDER_LINE_DISTANCE				= 20 * SCREEN_PIX_PER_DP;
	CONFIRM_DIVIDER_LINE_DISTANCE2              = 15 * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_TOKEN_NAME_LINE_DISTANCE       = 20 * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_TOKEN_AMOUNT_LINE_DISTANCE     = 20 * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_AMOUNT_LINE_DISTANCE			= 20 * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_GAS_SIDE_MARGIN				= 90 * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_GAS_PRICE_LINE_DISTANCE		= 10 * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_GAS_LIMIT_LINE_DISTANCE		= 5 * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_DATA_LINE_DISTANCE				= 38 * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_DATA_LENGTH_LINE_DISTANCE      = 15 * SCREEN_PIX_PER_DP;
	CONFIRM_TEXT_DATA_LINE_FIXED_DISTANCE       = 56 * SCREEN_PIX_PER_DP;

	//keypad
	CONTROL_KEYPAD_BUTTON_DISTANCE_WIDTH		= 7 * SCREEN_PIX_PER_DP;
	CONTROL_KEYPAD_BUTTON_DISTANCE_HEIGHT		= 8 * SCREEN_PIX_PER_DP;
	CONTROL_KEYPAD_BUTTON_MARGIN_WIDTH			= CONTROL_KEYPAD_BUTTON_DISTANCE_WIDTH / 2;
	CONTROL_KEYPAD_BUTTON_MARGIN_HEIGHT			= CONTROL_KEYPAD_BUTTON_DISTANCE_HEIGHT / 2;
	CONTROL_KEYPAD_BUTTON_WIDTH					= 28 * SCREEN_PIX_PER_DP + CONTROL_KEYPAD_BUTTON_DISTANCE_WIDTH;
	CONTROL_KEYPAD_BUTTON_HEIGHT				= 41 * SCREEN_PIX_PER_DP + CONTROL_KEYPAD_BUTTON_DISTANCE_HEIGHT;
	CONTROL_KEYPAD_TOP_MARGIN					= 43 * SCREEN_PIX_PER_DP - CONTROL_KEYPAD_BUTTON_MARGIN_HEIGHT;
	CONTROL_KEYPAD_SIDE_MARGIN_LEFT				= 8 * SCREEN_PIX_PER_DP - CONTROL_KEYPAD_BUTTON_MARGIN_WIDTH;
	CONTROL_KEYPAD_SIDE_MARGIN_RIGHT			= 9 * SCREEN_PIX_PER_DP - CONTROL_KEYPAD_BUTTON_MARGIN_WIDTH;
	CONTROL_KEYPAD_BACK_SPACE_WIDTH				= 40 * SCREEN_PIX_PER_DP + CONTROL_KEYPAD_BUTTON_DISTANCE_WIDTH;
	CONTROL_KEYPAD_BACK_SPACE_HEIGHT			= 41 * SCREEN_PIX_PER_DP + CONTROL_KEYPAD_BUTTON_DISTANCE_HEIGHT;

	int32_t keyAdjustment[CONTROL_KEYPAD_COLUMN_COUNT * 3][2] = {
	{0,0}, {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, // qwert...
	{2,0}, {2,0}, {2,0}, {2,0}, {2,0}, {2,0}, {2,0}, {2,0}, {2,0}, {0,0}, // asdaf...
	{2,0}, {2,0}, {2,0}, {2,0}, {2,0}, {2,0}, {2,0}, {0,0}, {0,0}, {0,0} }; // zxcv
	memcpy(keypadLoctionAdjustment, keyAdjustment, sizeof(keyAdjustment));

	backspaceLoctionAdjustment[0] = 1;
	backspaceLoctionAdjustment[1] = 0;

	//restore
	RESTORE_KEYPAD_START_X						= 0;
	RESTORE_KEYPAD_START_Y						= 513 * SCREEN_PIX_PER_DP;

	RESTORE_MNEMONIC_TEXTBOX_WIDTH				= 72 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_TEXTBOX_HEIGHT				= 22 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_TEXTINPUT_START_X			= 24 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_TEXTINPUT_START_Y			= 367 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_TEXTINPUT_WIDTH			= 213 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_TEXTINPUT_HEIGHT			= 26 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_TEXTINPUT_CURSOR_MARGIN	= 1 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_TEXTINPUT_LINE_START_Y		= 401 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_LIST_TEXT_AREA_TOP_MARGIN	= 168 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_LIST_TEXT_AREA_SIDE_MARGIN = 24 * SCREEN_PIX_PER_DP;

	RESTORE_MNEMONIC_LIST_TEXT_AREA_WIDTH		= 312 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_LIST_TEXT_AREA_HEIGHT		= 166 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_LIST_TOP_MARGIN			= 180 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_LIST_SIDE_MARGIN			= 32 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_LIST_MAX_COUNT				= 24;
	RESTORE_MNEMONIC_LIST_COLUMN_COUNT			= 4;
	RESTORE_MNEMONIC_LIST_LINE_DISTANCE			= 2 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_RECOMMEND_TOP_MARGIN		= 417 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_RECOMMEND_SIDE_MARGIN		= 24 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_RECOMMEND_COLUMN_COUNT		= 3;
	RESTORE_MNEMONIC_RECOMMEND_LINE_DISTANCE	= 10;
	RESTORE_MNEMONIC_RECOMMEND_WIDTH			= 101 * SCREEN_PIX_PER_DP;
	RESTORE_MNEMONIC_RECOMMEND_HEIGHT			= 30 * SCREEN_PIX_PER_DP;

	//pinpad
	PINPAD_SOFTKEY_DP							= 48;
	PINPAD_SOFTKEY_HEIGHT						= 192;
#if defined(SUPPORT_DISPLAY_HIDE_NOTCH)
	PINPAD_BOTTOM_BAR_HEIGHT					= 152;
#else
	PINPAD_BOTTOM_BAR_HEIGHT					= 0;
#endif
	PINPAD_KEY_WIDTH							= 440;
	PINPAD_KEY_HEIGHT							= 216;
	PINPAD_STAR_SIZE							= (5 * SCREEN_PIX_PER_DP);
	PINPAD_HEIGHT_DP							= 289;

	PINPAD_COL1_LEFT_HD							= (8 * SCREEN_PIX_PER_DP);
	PINPAD_COL1_RIGHT_HD						= (PINPAD_COL1_LEFT_HD + PINPAD_KEY_WIDTH);
	PINPAD_COL2_LEFT_HD							= (PINPAD_COL1_RIGHT_HD + 7 * SCREEN_PIX_PER_DP);
	PINPAD_COL2_RIGHT_HD						= (PINPAD_COL2_LEFT_HD + PINPAD_KEY_WIDTH);
	PINPAD_COL3_LEFT_HD							= (PINPAD_COL2_RIGHT_HD + 7 * SCREEN_PIX_PER_DP);
	PINPAD_COL3_RIGHT_HD						= (PINPAD_COL3_LEFT_HD + PINPAD_KEY_WIDTH);

	PINPAD_LINE1_TOP_HD							= (SCREEN_HEIGHT - PINPAD_SOFTKEY_HEIGHT - (PINPAD_HEIGHT_DP - 43) * SCREEN_PIX_PER_DP);
	PINPAD_LINE1_BOTTOM_HD						= (PINPAD_LINE1_TOP_HD + PINPAD_KEY_HEIGHT);
	PINPAD_LINE2_TOP_HD							= (PINPAD_LINE1_BOTTOM_HD + 6 * SCREEN_PIX_PER_DP);
	PINPAD_LINE2_BOTTOM_HD						= (PINPAD_LINE2_TOP_HD + PINPAD_KEY_HEIGHT);
	PINPAD_LINE3_TOP_HD							= (PINPAD_LINE2_BOTTOM_HD + 6 * SCREEN_PIX_PER_DP);
	PINPAD_LINE3_BOTTOM_HD						= (PINPAD_LINE3_TOP_HD + PINPAD_KEY_HEIGHT);
	PINPAD_LINE4_TOP_HD							= (PINPAD_LINE3_BOTTOM_HD + 6 * SCREEN_PIX_PER_DP);
	PINPAD_LINE4_BOTTOM_HD						= (PINPAD_LINE4_TOP_HD + PINPAD_KEY_HEIGHT);

	PINPAD_SOFTKEY_LEFT							= 0;
	PINPAD_SOFTKEY_TOP							= ((STANDARD_SCREEN_HEIGHT_DP - PINPAD_SOFTKEY_DP) * SCREEN_PIX_PER_DP);
	PINPAD_SOFTKEY_BACK_LEFT					= ((34 + 184) * SCREEN_PIX_PER_DP);
	PINPAD_SOFTKEY_BACK_RIGHT					= ((34 + 184 + 108) * SCREEN_PIX_PER_DP);
	PINPAD_SOFTKEY_BACK_TOP						= ((STANDARD_SCREEN_HEIGHT_DP - PINPAD_SOFTKEY_DP) * SCREEN_PIX_PER_DP);
	PINPAD_SOFTKEY_BACK_BOTTOM					= (STANDARD_SCREEN_HEIGHT_DP * SCREEN_PIX_PER_DP);
	PINPAD_SOFTKEY_BACK_BHR_LEFT				= SCREEN_WIDTH - PINPAD_SOFTKEY_BACK_RIGHT;
	PINPAD_SOFTKEY_BACK_BHR_RIGHT				= SCREEN_WIDTH - PINPAD_SOFTKEY_BACK_LEFT;
	PINPAD_SOFTKEY_BACK_BHR_TOP					= PINPAD_SOFTKEY_BACK_TOP;
	PINPAD_SOFTKEY_BACK_BHR_BOTTOM				= PINPAD_SOFTKEY_BACK_BOTTOM;

	PINPAD_STATUS_BAR_HEIGHT					= (38 * SCREEN_PIX_PER_DP);
	PINPAD_ACTION_BAR_TOP						= (PINPAD_STATUS_BAR_HEIGHT);
	PINPAD_ACTION_BAR_HEIGHT					= (48 * SCREEN_PIX_PER_DP);
	PINPAD_ACTION_BAR_TEXT_LEFT_DP				= 56;

	PINPAD_PIN_BOX_DISTANCE						= 251; // 225 + 26 [(100(increased dp)-48(soft_key dp))/2]
	PINPAD_PIN_BOX_WIDTH						= (41 * SCREEN_PIX_PER_DP);
	PINPAD_PIN_BOX_HEIGHT						= (41 * SCREEN_PIX_PER_DP);
	PINPAD_PIN_BOX_SPACE						= (7 * SCREEN_PIX_PER_DP);
	PINPAD_PIN_BOX_IMG_WIDTH					= PINPAD_PIN_BOX_WIDTH;
	PINPAD_PIN_BOX_IMG_HEIGHT					= PINPAD_PIN_BOX_HEIGHT;
	PINPAD_PIN_BOX_TOP							= (PINPAD_PIN_BOX_DISTANCE * SCREEN_PIX_PER_DP);
	PINPAD_PIN_BOX_BOTTOM						= (PINPAD_PIN_BOX_TOP + PINPAD_PIN_BOX_HEIGHT);

	PINPAD_PIN_TEXT_TOP							= (PINPAD_PIN_BOX_BOTTOM + 15 * SCREEN_PIX_PER_DP);
	PINPAD_PIN_TEXT_BOTTOM						= (PINPAD_LINE1_TOP_HD - 1);

	PINPAD_PROMPT_DISTANCE						= 38;
	PINPAD_PROMPT_AREA_TOP						= (PINPAD_ACTION_BAR_TOP + PINPAD_ACTION_BAR_HEIGHT);
	PINPAD_PROMPT_AREA_BOTTOM					= ((PINPAD_PIN_BOX_DISTANCE - PINPAD_PROMPT_DISTANCE) * SCREEN_PIX_PER_DP);

	PINPAD_SECURE_ICON_WIDTH					= 28;
	PINPAD_SECURE_ICON_TOP						= (STANDARD_SCREEN_HEIGHT_DP - PINPAD_SOFTKEY_DP - PINPAD_HEIGHT_DP + 7);
	PINPAD_SECURE_ICON_TEXT_DISTANCE			= 2;
	PINPAD_SECURE_MODE_TEXT_TOP					= (STANDARD_SCREEN_HEIGHT_DP - PINPAD_SOFTKEY_DP - PINPAD_HEIGHT_DP + 14);

	PINPAD_ACTION_BAR_BACK_BUTTON_SIZE			= (24 * SCREEN_PIX_PER_DP);
	PINPAD_ACTION_BAR_BACK_BUTTON_LEFT			= (12 * SCREEN_PIX_PER_DP);
	PINPAD_ACTION_BAR_BACK_BUTTON_RIGHT			= (PINPAD_ACTION_BAR_BACK_BUTTON_LEFT + PINPAD_ACTION_BAR_BACK_BUTTON_SIZE);
	PINPAD_ACTION_BAR_BACK_BUTTON_TOP			= (24 * SCREEN_PIX_PER_DP + (PINPAD_ACTION_BAR_HEIGHT - PINPAD_ACTION_BAR_BACK_BUTTON_SIZE) / 2);
	PINPAD_ACTION_BAR_BACK_BUTTON_BOTTOM		= (PINPAD_ACTION_BAR_BACK_BUTTON_TOP + PINPAD_ACTION_BAR_BACK_BUTTON_SIZE);
}

