private void processSelectionOption(int which, TLRPC.TL_messages_stickerSet stickerSet) {
   if (which == 0) {
     StickersQuery.removeStickersSet(
         getParentActivity(), stickerSet.set, (stickerSet.set.flags & 2) == 0 ? 1 : 2);
   } else if (which == 1) {
     StickersQuery.removeStickersSet(getParentActivity(), stickerSet.set, 0);
   } else if (which == 2) {
     try {
       Intent intent = new Intent(Intent.ACTION_SEND);
       intent.setType("text/plain");
       intent.putExtra(
           Intent.EXTRA_TEXT,
           String.format(
               Locale.US, "https://telegram.me/addstickers/%s", stickerSet.set.short_name));
       getParentActivity()
           .startActivityForResult(
               Intent.createChooser(
                   intent, LocaleController.getString("StickersShare", R.string.StickersShare)),
               500);
     } catch (Exception e) {
       FileLog.e("tmessages", e);
     }
   } else if (which == 3) {
     try {
       if (Build.VERSION.SDK_INT < 11) {
         android.text.ClipboardManager clipboard =
             (android.text.ClipboardManager)
                 ApplicationLoader.applicationContext.getSystemService(
                     Context.CLIPBOARD_SERVICE);
         clipboard.setText(
             String.format(
                 Locale.US, "https://telegram.me/addstickers/%s", stickerSet.set.short_name));
       } else {
         android.content.ClipboardManager clipboard =
             (android.content.ClipboardManager)
                 ApplicationLoader.applicationContext.getSystemService(
                     Context.CLIPBOARD_SERVICE);
         android.content.ClipData clip =
             android.content.ClipData.newPlainText(
                 "label",
                 String.format(
                     Locale.US,
                     "https://telegram.me/addstickers/%s",
                     stickerSet.set.short_name));
         clipboard.setPrimaryClip(clip);
       }
       Toast.makeText(
               getParentActivity(),
               LocaleController.getString("LinkCopied", R.string.LinkCopied),
               Toast.LENGTH_SHORT)
           .show();
     } catch (Exception e) {
       FileLog.e("tmessages", e);
     }
   }
 }
 @Override
 public boolean onFragmentCreate() {
   super.onFragmentCreate();
   StickersQuery.checkStickers();
   NotificationCenter.getInstance().addObserver(this, NotificationCenter.stickersDidLoaded);
   updateRows();
   return true;
 }
 private void updateRows() {
   rowCount = 0;
   ArrayList<TLRPC.TL_messages_stickerSet> stickerSets = StickersQuery.getStickerSets();
   if (!stickerSets.isEmpty()) {
     stickersStartRow = 0;
     stickersEndRow = stickerSets.size();
     rowCount += stickerSets.size();
   } else {
     stickersStartRow = -1;
     stickersEndRow = -1;
   }
   stickersInfoRow = rowCount++;
   if (listAdapter != null) {
     listAdapter.notifyDataSetChanged();
   }
 }
 @Override
 public View getView(int i, View view, ViewGroup viewGroup) {
   int type = getItemViewType(i);
   if (type == 0) {
     if (view == null) {
       view = new StickerSetCell(mContext);
       view.setBackgroundColor(0xffffffff);
       ((StickerSetCell) view)
           .setOnOptionsClick(
               new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
                   StickerSetCell cell = (StickerSetCell) v.getParent();
                   final TLRPC.TL_messages_stickerSet stickerSet = cell.getStickersSet();
                   AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity());
                   builder.setTitle(stickerSet.set.title);
                   CharSequence[] items;
                   final int[] options;
                   if ((stickerSet.set.flags & 4) != 0) {
                     options = new int[] {0, 2, 3};
                     items =
                         new CharSequence[] {
                           (stickerSet.set.flags & 2) == 0
                               ? LocaleController.getString(
                                   "StickersHide", R.string.StickersHide)
                               : LocaleController.getString(
                                   "StickersShow", R.string.StickersShow),
                           LocaleController.getString("StickersShare", R.string.StickersShare),
                           LocaleController.getString("StickersCopy", R.string.StickersCopy),
                         };
                   } else {
                     options = new int[] {0, 1, 2, 3};
                     items =
                         new CharSequence[] {
                           (stickerSet.set.flags & 2) == 0
                               ? LocaleController.getString(
                                   "StickersHide", R.string.StickersHide)
                               : LocaleController.getString(
                                   "StickersShow", R.string.StickersShow),
                           LocaleController.getString("StickersRemove", R.string.StickersRemove),
                           LocaleController.getString("StickersShare", R.string.StickersShare),
                           LocaleController.getString("StickersCopy", R.string.StickersCopy),
                         };
                   }
                   builder.setItems(
                       items,
                       new DialogInterface.OnClickListener() {
                         @Override
                         public void onClick(DialogInterface dialog, int which) {
                           processSelectionOption(options[which], stickerSet);
                         }
                       });
                   showDialog(builder.create());
                 }
               });
     }
     ArrayList<TLRPC.TL_messages_stickerSet> arrayList = StickersQuery.getStickerSets();
     ((StickerSetCell) view).setStickersSet(arrayList.get(i), i != arrayList.size() - 1);
   } else if (type == 1) {
     if (view == null) {
       view = new TextInfoPrivacyCell(mContext);
       String text = LocaleController.getString("StickersInfo", R.string.StickersInfo);
       String botName = "@stickers";
       int index = text.indexOf(botName);
       if (index != -1) {
         try {
           SpannableStringBuilder stringBuilder = new SpannableStringBuilder(text);
           URLSpanNoUnderline spanNoUnderline =
               new URLSpanNoUnderline("@stickers") {
                 @Override
                 public void onClick(View widget) {
                   MessagesController.openByUserName("stickers", StickersActivity.this, 1);
                 }
               };
           stringBuilder.setSpan(
               spanNoUnderline,
               index,
               index + botName.length(),
               Spanned.SPAN_INCLUSIVE_INCLUSIVE);
           ((TextInfoPrivacyCell) view).setText(stringBuilder);
         } catch (Exception e) {
           FileLog.e("tmessages", e);
           ((TextInfoPrivacyCell) view).setText(text);
         }
       } else {
         ((TextInfoPrivacyCell) view).setText(text);
       }
       view.setBackgroundResource(R.drawable.greydivider_bottom);
     }
   }
   return view;
 }