@Override public void setAttribute(final View view, DOMAttr attr, AttrLayoutContext attrCtx) { final String year = getString(attr.getResourceDesc(), attrCtx.getXMLInflaterContext()); Object datePickerObject = getDatePickerObject(view); // Delegamos al final porque los atributos maxDate y minDate tienen prioridad (ganan si están // definidos) // sobre startYear y endYear Locale currentLocale = fieldCurrentLocale.get(datePickerObject); Calendar tempDate = Calendar.getInstance(currentLocale); tempDate.clear(); if (!TextUtils.isEmpty(year)) { int yearInt = Integer.parseInt(year); if ("endYear".equals(name)) tempDate.set(yearInt, Calendar.DECEMBER /*11*/, 31); else if ("startYear".equals(name)) tempDate.set(yearInt, Calendar.JANUARY /*0*/, 1); } else { // Caso de eliminación de atributo, intrepretamos como el deseo de poner los valores por // defecto (más o menos es así en el código fuente) // hay que tener en cuenta que es un valor explícito por lo que ignoramos/reemplazamos los // posibles valores anteriores if ("endYear".equals(name)) tempDate.set(DEFAULT_END_YEAR, Calendar.DECEMBER /*11*/, 31); else if ("startYear".equals(name)) tempDate.set(DEFAULT_START_YEAR, Calendar.JANUARY /*0*/, 1); } methodMaxMinDate.invoke(datePickerObject, tempDate.getTimeInMillis()); }
@Override public void setAttribute(final View view, DOMAttr attr, AttrLayoutContext attrCtx) { final int height = getDimensionWithNameIntRound(attr.getResourceDesc(), attrCtx.getXMLInflaterContext()); Runnable task = new Runnable() { @Override public void run() { ViewGroup.LayoutParams params = view.getLayoutParams(); params.height = height; } }; PendingViewPostCreateProcess pendingViewPostCreateProcess = attrCtx.getPendingViewPostCreateProcess(); if (pendingViewPostCreateProcess != null) { pendingViewPostCreateProcess.addPendingLayoutParamsTask(task); } else { task.run(); PendingViewPostCreateProcess.onChangedLayoutParams(view); } }
@Override public void setAttribute(TattrTarget target, DOMAttr attr, TattrContext attrCtx) { int id = getIdentifier(attr.getResourceDesc(), attrCtx.getXMLInflaterContext()); setField(target, id); }