@Override
    public void bind(StickerLine data, int position, Context context) {
      ll.removeAllViews();
      ll.setTag(TAG_KEY, data.getPackCount());
      for (final Sticker s : data.getLine()) {
        StickerView sv;
        if (s != null && s.getFileReference256() != null) {

          sv = stickersCache.get(s.getFileReference128().getFileId());
          if (sv == null) {
            sv = new StickerView(context);
            sv.setPadding(STICKER_PADDING, STICKER_PADDING, STICKER_PADDING, STICKER_PADDING);
            sv.bind(s.getFileReference128(), STICKER_SIZE);
            stickersCache.put(s.getFileReference128().getFileId(), sv);

          } else if (sv.isLoaded()) {
            if (sv.getParent() != null) {
              ((LinearLayout) sv.getParent()).removeView(sv);
            }
            sv.shortenFade();
          }

          sv.setOnClickListener(
              new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                  keyboard.onStickerClicked(s);
                }
              });
          ll.addView(sv, stikerlp);
        }
      }
    }