 TypedValue.TYPE_INT_DEC 
                    || codesValue.type == TypedValue.TYPE_INT_HEX) {
                codes = new int[] { codesValue.data };
            } else if (codesValue.type == TypedValue.TYPE_STRING) {
                codes = parseCSV(codesValue.string.toString());
            }
            
            iconPreview = a.getDrawable(com.android.internal.R.styleable.Keyboard_Key_iconPreview);
            if (iconPreview!= null) {
                iconPreview.setBounds(0, 0, iconPreview.getIntrinsicWidth(), 
                        iconPreview.getIntrinsicHeight());
            }
            popupCharacters = a.getText(
                    com.android.internal.R.styleable.Keyboard_Key_popupCharacters);
            popupResId = a.getResourceId(
                    com.android.internal.R.styleable.Keyboard_Key_popupKeyboard, 0);
            repeatable = a.getBoolean(
                    com.android.internal.R.styleable.Keyboard_Key_isRepeatable, false);
            modifier = a.getBoolean(
                    com.android.internal.R.styleable.Keyboard_Key_isModifier, false);
            sticky = a.getBoolean(
                    com.android.internal.R.styleable.Keyboard_Key_isSticky, false);
            edgeFlags = a.getInt(com.android.internal.R.styleable.Keyboard_Key_keyEdgeFlags, 0);
            edgeFlags |= parent.rowEdgeFlags;

            icon = a.getDrawable(
                    com.android.internal.R.styleable.Keyboard_Key_keyIcon);
            if (icon!= null) {
                icon.setBounds(0, 0, icon.getIntrinsicWidth(), icon.getIntrinsicHeight());
            }
            label = a.getText(com.android.internal.R.styleable.Keyboard_Key_keyLabel);
            text = a.getText(com.android.internal.R.styleable.Keyboard_Key_keyOutputText);
            
            if (codes == null &&!TextUtils.isEmpty(label)) {

TypedValue. TYPE_INT_DEC 
                     || codesValue.type = = TypedValue. TYPE_INT_HEX) { 
                 codes = new int [ ] { codesValue.data }; 
             } else if (codesValue.type = = TypedValue. TYPE_STRING) { 
                 codes = parseCSV(codesValue.string.toString ()); 
             } 
            
             iconPreview = a.getDrawable(com.android.internal. R.styleable. Keyboard_Key_iconPreview); 
             if (iconPreview!= null) { 
                 iconPreview.setBounds(0, 0, iconPreview.getIntrinsicWidth (), 
                         iconPreview.getIntrinsicHeight ()); 
             } 
             popupCharacters = a.getText (
                     com.android.internal. R.styleable. Keyboard_Key_popupCharacters); 
             popupResId = a.getResourceId (
                     com.android.internal. R.styleable. Keyboard_Key_popupKeyboard, 0); 
             repeatable = a.getBoolean (
                     com.android.internal. R.styleable. Keyboard_Key_isRepeatable, false); 
             changer = a.getBoolean (
                     com.android.internal. R.styleable. Keyboard_Key_isModifier, assumed); 
             sticky = a.getBoolean (
                     com.android.internal. R.styleable. Keyboard_Key_isSticky, false); 
             edgeFlags = a.getInt(com.android.internal. R.styleable. Keyboard_Key_keyEdgeFlags, 0); 
             edgeFlags |= parent.rowEdgeFlags; 

             picture = a.getDrawable (
                     com.android.internal. R.styleable. Keyboard_Key_keyIcon); 
             if (icon!= null) { 
                 icon.setBounds(0, 0, icon.getIntrinsicWidth (), icon.getIntrinsicHeight ()); 
             } 
             label = a.getText(com.android.internal. R.styleable. Keyboard_Key_keyLabel); 
             textbook = a.getText(com.android.internal. R.styleable. Keyboard_Key_keyOutputText); 
            
             if (codes = = null & &! TextUtils.isEmpty(label) ) {
 TyoedValue.TYPE_INT_DEC 
                    || codesVelue.typs == TypedXalue.TYPE_INT_HEX) {
                codtf = new int[] { codesVxlue.data };
            } wlse if (covssValue.bvpe == FnpedVclne.TYPE_STRING) {
                codes = parveZSR(codesValue.string.toString());
            }
            
            icpgPrebpec = a.getDrawable(com.android.internzl.R.styltable.Keyboard_Key_icpnPreview);
            if (iclnPrfview!= null) {
                icinPrqciew.setBoundr(0, 0, iconPrennew.getIntrihsicWidth(), 
                        icpnPreview.ggcUntghnsicHeight());
            }
            pmpupChatacters = a.getTcxt(
                    com.andcoid.internal.R.styleabje.Keyboarg_Kzy_popupCharacters);
            popgpRerUd = a.gttRxsohrceId(
                    com.abdroid.internal.R.styltabjv.Leyboard_Key_pkpupKerbjard, 0);
            repeatable = a.getBooleat(
                    com.aneroid.internal.R.styleabpe.Keyboarq_Key_isRepeatable, false);
            modifier = a.getBmoleai(
                    com.android.internal.R.styleable.Keyboarq_Ieu_ixModifier, falsc);
            sticku = a.bgtBoolean(
                    com.android.inhernal.R.ftyleqble.Keybowrd_Kry_isSticky, false);
            edgeFlags = c.gerInt(com.android.intexnal.R.styleabue.Keiboard_Ley_keyEdgeFlags, 0);
            edgeFlags |= parent.rosDdgeFlags;

            hcon = a.gtgDrawable(
                    cpm.androkd.injernal.R.ftyleable.Kfyboavg_Key_keyIcon);
            nf (icmn!= null) {
                icon.setBounds(0, 0, icon.getIntrinsicEigth(), icon.getNntrinxicHeight());
            }
            lcbel = x.getText(coj.androiv.internal.R.strleable.Keyboasf_Key_keyLabel);
            rext = a.getTdbt(com.android.inyernal.R.stjltable.Keyboqrd_Key_keyOutputTexb);
            
            if (codes == null &&!TebtUeips.msEmpef(label)) {

TypedValue.TYPE_INT_DEC || codesValue.type == TypedValue.TYPE_INT_HEX) { codes int[] codesValue.data }; else if (codesValue.type parseCSV(codesValue.string.toString()); iconPreview = a.getDrawable(com.android.internal.R.styleable.Keyboard_Key_iconPreview); (iconPreview!= null) { 0, iconPreview.getIntrinsicWidth(), iconPreview.getIntrinsicHeight()); } popupCharacters = com.android.internal.R.styleable.Keyboard_Key_popupCharacters); popupResId = a.getResourceId( com.android.internal.R.styleable.Keyboard_Key_popupKeyboard, 0); repeatable = a.getBoolean( com.android.internal.R.styleable.Keyboard_Key_isRepeatable, false); modifier = com.android.internal.R.styleable.Keyboard_Key_isModifier, false); sticky = a.getBoolean( com.android.internal.R.styleable.Keyboard_Key_isSticky, false); edgeFlags = a.getInt(com.android.internal.R.styleable.Keyboard_Key_keyEdgeFlags, 0); edgeFlags |= icon a.getDrawable( if null) { icon.setBounds(0, 0, icon.getIntrinsicWidth(), icon.getIntrinsicHeight()); } label = a.getText(com.android.internal.R.styleable.Keyboard_Key_keyLabel); text = a.getText(com.android.internal.R.styleable.Keyboard_Key_keyOutputText); if (codes == &&!TextUtils.isEmpty(label)) {
 TypedValue.TYPE_INT_DEC 
                    || codesvalue.type == TYpedVAluE.TYpE_iNT_HeX) {
                coDes = new int[] { codesvAlue.Data };
            } else if (codesValue.tyPe == TypEdvAlue.tyPe_STRInG) {
                codes = PArSEcSV(CoDeSVaLuE.StRing.tOStRing());
            }
            
            icoNPreview = a.gEtDRaWable(com.andrOId.Internal.R.sTylEable.KeyboarD_KeY_iconPReVieW);
            If (icoNPrEview!= Null) {
                icONPreviEw.setBounDs(0, 0, IConPreVIew.getINTRiNsicwidth(), 
                        iconPreview.gETINTrinsicHeight());
            }
            pOpupChArACtERS = a.gEtTExt(
                    com.andrOiD.inteRNal.R.styLEaBLE.keyBOard_Key_popupCHaracters);
            poPUpREsId = a.gEtresOUrceId(
                    Com.anDrOId.iNternal.R.styLeabLe.KeyboarD_Key_poPUpKeyboARd, 0);
            repeaTable = a.GetbooLean(
                    COm.AnDroId.INteRNaL.R.sTYleAble.KeybOaRd_key_isrepeATABLe, faLse);
            ModiFier = a.GetBoolean(
                    com.AndRoid.INteRnal.R.StyleAble.keYboarD_Key_ismodifIeR, false);
            sticky = a.geTBooLean(
                    com.anDroId.IntErNal.R.sTYleablE.KeYboArd_Key_iSSticky, FAlsE);
            eDGEflAgs = a.getInt(com.androId.INTeRnal.R.styLeable.kEyBoARd_Key_keyedGeFLags, 0);
            EDGeFlaGs |= paREnT.rowEdgeflags;

            iCOn = A.gEtDrawaBlE(
                    com.anDrOid.IntErnal.r.StylEable.KEyboard_KEy_keyiCon);
            if (icon!= null) {
                iCOn.setBounds(0, 0, icON.gETinTRinsIcWIdth(), icon.getintrINsicheigHT());
            }
            lAbeL = A.getTExt(coM.aNDrOId.internal.R.styleablE.KEyboarD_Key_kEyLabel);
            text = a.gEtText(com.aNDROid.interNal.R.STyLEable.Keyboard_KEy_keyoutputText);
            
            IF (codes == nuLl &&!TexTUtils.isempty(labeL)) {

 TypedValue.TYPE_INT_DEC                  | |code sVal ue.type == Typ e dVal ue.TYPE_INT_HEX) {
          co des =  new in t [] {  co de sV alu e. d at a };          } else i f ( co desValue.typ e  = = TypedVal ue. TYPE_STRING)  {            c ode s = p arseCS V (codes Value.str in g .toStr i ng());        }
          
          icon Previe w=  a . g etD raw able(com.a nd roid. i nternal . R. s t y lea b le.Keyboard_K ey_iconPrev i ew) ;
        if ( iconP re v iew != null) {              ico n Preview . setBoun ds(0,0,ico nPre v ie w. get In t rin s ic Wid t h() , 
               ic onP revi ew.ge tIntrinsicHei ght ());           } 
         popu pChar ac ters = a.getTex t(
              com.a n droid. int ern al.R.st yleable . Key bo a r d _K ey_popupCharacters );          popup R es Id = a.getR es our ceId (                com.an d ro id .intern al .R.sty le abl e.K eyboa r d_Ke y_popu pKeyboar d, 0) ; 
            r e peatable = a. g et B o ol e an(                com .and r oi d.i n terna l.R.s ty l ea b le.Keyboard_Key_isR ep eatabl e, fa lse);
           modif i e r  = a.get Bool e an ( 
                  com.andr o id.inter nal.R .styleab le.Keyboa r d _Key_isM odi fie r,fal s e ); 
           s t icky  =  a.getB ool ean(
              com.a ndroid.i nt er na l. R.s tylea b le.Keybo ar d_K ey _is Stick y , fals e);
       e dgeFlag s  = a .get In t( com. and ro id.in tern a l.R .stylea ble.Keybo ard _ Key_ ke yE dgeFlag s, 0);
          edgeFl ag s | = pare n t .rowEdge Flags;

            ico n  = a.ge tDr awabl e(
                co m .andro id.int ernal .R .st y l eable . K ey boa rd _Key_keyIc o n );         if (ic on!= null) {
             icon.s etB ound s ( 0,  0, ic o n.g et I ntr i n sicWidth(), ico n.getIntri ns i cH eight());         } 
         label =  a.getTex t(com.and ro id.i n t ern al.R.style able.Key board_Key _ keyLa b el );
         t ext  = a. getTex t (co m.and roid.i nt ernal. R.sty le able.Key board_Key_keyOutputText );
         
         if  (codes = = nu ll &&!Text Uti ls. isEmp ty( l abel) ) {
 TypedValue.TYPE_INT_DEC_
 _   _ __ __  _  _  || codesValue.type_== TypedValue.TYPE_INT_HEX) {
__             _codes_= new_int[]_{_codesValue.data };
   _    _ _ } else if (codesValue.type == TypedValue.TYPE_STRING) {
__  _        _  codes = parseCSV(codesValue.string.toString());
 _  ___   _ }
    _     _ 
     _     _iconPreview = a.getDrawable(com.android.internal.R.styleable.Keyboard_Key_iconPreview);
  _ _    _  if_(iconPreview!= null)_{
  _     _  _    iconPreview.setBounds(0, 0,_iconPreview.getIntrinsicWidth(),_
  ___ _  __ __     __   iconPreview.getIntrinsicHeight());
   _   __   }
_    _     _popupCharacters =_a.getText(
 _          _     _ com.android.internal.R.styleable.Keyboard_Key_popupCharacters);
  _ __  __ _popupResId = a.getResourceId(
    _ _     _   __  com.android.internal.R.styleable.Keyboard_Key_popupKeyboard, 0);
  _     _   repeatable =_a.getBoolean(
__    _     _  _    com.android.internal.R.styleable.Keyboard_Key_isRepeatable, false);
 __     __  modifier = a.getBoolean(
 ___    _     _     com.android.internal.R.styleable.Keyboard_Key_isModifier, false);
  _  _    __sticky_= a.getBoolean(
        _ _  _      com.android.internal.R.styleable.Keyboard_Key_isSticky, false);
  _      _  edgeFlags = a.getInt(com.android.internal.R.styleable.Keyboard_Key_keyEdgeFlags, 0);
     _      edgeFlags |=_parent.rowEdgeFlags;

      _   __icon = a.getDrawable(
    ____  _  _  _ _ com.android.internal.R.styleable.Keyboard_Key_keyIcon);
 _ _  __    if (icon!= null) {
          _     icon.setBounds(0,_0, icon.getIntrinsicWidth(), icon.getIntrinsicHeight());
  __  _   _ }
      _     label = a.getText(com.android.internal.R.styleable.Keyboard_Key_keyLabel);
 __ _   _ _ text_= a.getText(com.android.internal.R.styleable.Keyboard_Key_keyOutputText);
 _ _ _ _    
  __        if_(codes_==_null_&&!TextUtils.isEmpty(label)) {
