Ejemplo n.º 1
0
 @Override
 public boolean isRowEnabled(int section, int row) {
   if (onlyUsers && !isAdmin) {
     ArrayList<TLRPC.TL_contact> arr =
         ContactsController.getInstance()
             .usersSectionsDict
             .get(ContactsController.getInstance().sortedUsersSectionsArray.get(section));
     return row < arr.size();
   } else {
     if (section == 0) {
       if (needPhonebook || isAdmin) {
         if (row == 1) {
           return false;
         }
       } else {
         if (row == 3) {
           return false;
         }
       }
       return true;
     } else if (section - 1 < ContactsController.getInstance().sortedUsersSectionsArray.size()) {
       ArrayList<TLRPC.TL_contact> arr =
           ContactsController.getInstance()
               .usersSectionsDict
               .get(ContactsController.getInstance().sortedUsersSectionsArray.get(section - 1));
       return row < arr.size();
     }
   }
   return true;
 }
Ejemplo n.º 2
0
 @Override
 public int getItemViewType(int section, int position) {
   if (onlyUsers && !isAdmin) {
     ArrayList<TLRPC.TL_contact> arr =
         ContactsController.getInstance()
             .usersSectionsDict
             .get(ContactsController.getInstance().sortedUsersSectionsArray.get(section));
     return position < arr.size() ? 0 : 4;
   } else {
     if (section == 0) {
       if (needPhonebook || isAdmin) {
         if (position == 1) {
           return 3;
         }
       } else {
         if (position == 3) {
           return 3;
         }
       }
       return 2;
     } else if (section - 1 < ContactsController.getInstance().sortedUsersSectionsArray.size()) {
       ArrayList<TLRPC.TL_contact> arr =
           ContactsController.getInstance()
               .usersSectionsDict
               .get(ContactsController.getInstance().sortedUsersSectionsArray.get(section - 1));
       return position < arr.size() ? 0 : 4;
     }
   }
   return 1;
 }
Ejemplo n.º 3
0
  @Override
  public View getSectionHeaderView(int section, View convertView, ViewGroup parent) {
    if (usersAsSections) {
      if (section < ContactsController.getInstance().sortedUsersSectionsArray.size()) {
        if (convertView == null) {
          convertView = new SettingsSectionLayout(mContext);
          convertView.setBackgroundColor(0xffffffff);
        }
        ((SettingsSectionLayout) convertView)
            .setText(ContactsController.getInstance().sortedUsersSectionsArray.get(section));
        return convertView;
      }
    } else {
      if (section == 0) {
        if (convertView == null) {
          LayoutInflater li =
              (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
          convertView = li.inflate(R.layout.empty_layout, parent, false);
        }
        return convertView;
      }
    }

    if (convertView == null) {
      convertView = new SettingsSectionLayout(mContext);
      convertView.setBackgroundColor(0xffffffff);
    }
    ((SettingsSectionLayout) convertView)
        .setText(ContactsController.getInstance().sortedContactsSectionsArray.get(section - 1));
    return convertView;
  }
Ejemplo n.º 4
0
 @Override
 public int getCountForSection(int section) {
   if (searching && searchWas) {
     return searchResult == null ? 0 : searchResult.size();
   }
   ArrayList<TLRPC.TL_contact> arr =
       ContactsController.getInstance()
           .usersSectionsDict
           .get(ContactsController.getInstance().sortedUsersSectionsArray.get(section));
   return arr.size();
 }
Ejemplo n.º 5
0
 @Override
 public int getSectionCount() {
   int count = 0;
   if (usersAsSections) {
     count += ContactsController.getInstance().sortedUsersSectionsArray.size();
   } else {
     count++;
   }
   if (!onlyUsers) {
     count += ContactsController.getInstance().sortedContactsSectionsArray.size();
   }
   return count;
 }
Ejemplo n.º 6
0
 @Override
 public int getSectionCount() {
   if (searching && searchWas) {
     return searchResult == null || searchResult.isEmpty() ? 0 : 1;
   }
   return ContactsController.getInstance().sortedUsersSectionsArray.size();
 }
Ejemplo n.º 7
0
 @Override
 public Object getItem(int section, int position) {
   if (onlyUsers && !isAdmin) {
     if (section < ContactsController.getInstance().sortedUsersSectionsArray.size()) {
       ArrayList<TLRPC.TL_contact> arr =
           ContactsController.getInstance()
               .usersSectionsDict
               .get(ContactsController.getInstance().sortedUsersSectionsArray.get(section));
       if (position < arr.size()) {
         return MessagesController.getInstance().getUser(arr.get(position).user_id);
       }
     }
     return null;
   } else {
     if (section == 0) {
       return null;
     } else {
       if (section - 1 < ContactsController.getInstance().sortedUsersSectionsArray.size()) {
         ArrayList<TLRPC.TL_contact> arr =
             ContactsController.getInstance()
                 .usersSectionsDict
                 .get(ContactsController.getInstance().sortedUsersSectionsArray.get(section - 1));
         if (position < arr.size()) {
           return MessagesController.getInstance().getUser(arr.get(position).user_id);
         }
         return null;
       }
     }
   }
   if (needPhonebook) {
     return ContactsController.getInstance().phoneBookContacts.get(position);
   }
   return null;
 }
Ejemplo n.º 8
0
 @Override
 public int getSectionHeaderViewType(int section) {
   if (usersAsSections) {
     if (section < ContactsController.getInstance().sortedUsersSectionsArray.size()) {
       return 1;
     }
   } else if (section == 0) {
     return 0;
   }
   return 1;
 }
 private void updateSubtitle() {
   if (actionBar == null) {
     return;
   }
   if (currentChat != null || currentUser == null) {
     return;
   }
   if (currentUser.id / 1000 != 777
       && currentUser.id / 1000 != 333
       && ContactsController.getInstance().contactsDict.get(currentUser.id) == null
       && (ContactsController.getInstance().contactsDict.size() != 0
           || !ContactsController.getInstance().isLoadingContacts())) {
     if (currentUser.phone != null && currentUser.phone.length() != 0) {
       nameTextView.setText(PhoneFormat.getInstance().format("+" + currentUser.phone));
     } else {
       nameTextView.setText(
           ContactsController.formatName(currentUser.first_name, currentUser.last_name));
     }
   } else {
     nameTextView.setText(
         ContactsController.formatName(currentUser.first_name, currentUser.last_name));
   }
   CharSequence printString =
       MessagesController.getInstance().printingStrings.get(currentMessageObject.getDialogId());
   if (printString == null || printString.length() == 0) {
     lastPrintString = null;
     setTypingAnimation(false);
     TLRPC.User user = MessagesController.getInstance().getUser(currentUser.id);
     if (user != null) {
       currentUser = user;
     }
     onlineTextView.setText(LocaleController.formatUserStatus(currentUser));
   } else {
     lastPrintString = printString;
     onlineTextView.setText(printString);
     setTypingAnimation(true);
   }
 }
Ejemplo n.º 10
0
 @Override
 public int getSectionCount() {
   int count = ContactsController.getInstance().sortedUsersSectionsArray.size();
   if (!onlyUsers) {
     count++;
   }
   if (isAdmin) {
     count++;
   }
   if (needPhonebook) {
     count++;
   }
   return count;
 }
Ejemplo n.º 11
0
 @Override
 public View getSectionHeaderView(int section, View convertView, ViewGroup parent) {
   if (convertView == null) {
     convertView = new SettingsSectionLayout(mContext);
     convertView.setBackgroundColor(0xffffffff);
   }
   if (searching && searchWas) {
     ((SettingsSectionLayout) convertView)
         .setText(LocaleController.getString("AllContacts", R.string.AllContacts));
   } else {
     ((SettingsSectionLayout) convertView)
         .setText(ContactsController.getInstance().sortedUsersSectionsArray.get(section));
   }
   return convertView;
 }
Ejemplo n.º 12
0
 @Override
 public View getSectionHeaderView(int section, View convertView, ViewGroup parent) {
   if (convertView == null) {
     convertView = new LetterSectionCell(mContext);
   }
   if (onlyUsers && !isAdmin) {
     if (section < ContactsController.getInstance().sortedUsersSectionsArray.size()) {
       ((LetterSectionCell) convertView)
           .setLetter(ContactsController.getInstance().sortedUsersSectionsArray.get(section));
     } else {
       ((LetterSectionCell) convertView).setLetter("");
     }
   } else {
     if (section == 0) {
       ((LetterSectionCell) convertView).setLetter("");
     } else if (section - 1 < ContactsController.getInstance().sortedUsersSectionsArray.size()) {
       ((LetterSectionCell) convertView)
           .setLetter(ContactsController.getInstance().sortedUsersSectionsArray.get(section - 1));
     } else {
       ((LetterSectionCell) convertView).setLetter("");
     }
   }
   return convertView;
 }
Ejemplo n.º 13
0
 @Override
 public int getCountForSection(int section) {
   if (onlyUsers && !isAdmin) {
     if (section < ContactsController.getInstance().sortedUsersSectionsArray.size()) {
       ArrayList<TLRPC.TL_contact> arr =
           ContactsController.getInstance()
               .usersSectionsDict
               .get(ContactsController.getInstance().sortedUsersSectionsArray.get(section));
       int count = arr.size();
       if (section != (ContactsController.getInstance().sortedUsersSectionsArray.size() - 1)
           || needPhonebook) {
         count++;
       }
       return count;
     }
   } else {
     if (section == 0) {
       if (needPhonebook || isAdmin) {
         return 2;
       } else {
         return 4;
       }
     } else if (section - 1 < ContactsController.getInstance().sortedUsersSectionsArray.size()) {
       ArrayList<TLRPC.TL_contact> arr =
           ContactsController.getInstance()
               .usersSectionsDict
               .get(ContactsController.getInstance().sortedUsersSectionsArray.get(section - 1));
       int count = arr.size();
       if (section - 1 != (ContactsController.getInstance().sortedUsersSectionsArray.size() - 1)
           || needPhonebook) {
         count++;
       }
       return count;
     }
   }
   if (needPhonebook) {
     return ContactsController.getInstance().phoneBookContacts.size();
   }
   return 0;
 }
Ejemplo n.º 14
0
 @Override
 public int getCountForSection(int section) {
   if (usersAsSections) {
     if (section < ContactsController.getInstance().sortedUsersSectionsArray.size()) {
       ArrayList<TLRPC.TL_contact> arr =
           ContactsController.getInstance()
               .usersSectionsDict
               .get(ContactsController.getInstance().sortedUsersSectionsArray.get(section));
       return arr.size();
     }
   } else {
     if (section == 0) {
       return ContactsController.getInstance().contacts.size() + 1;
     }
   }
   ArrayList<ContactsController.Contact> arr =
       ContactsController.getInstance()
           .contactsSectionsDict
           .get(ContactsController.getInstance().sortedContactsSectionsArray.get(section - 1));
   return arr.size();
 }
Ejemplo n.º 15
0
    @Override
    public View getItemView(int section, int position, View convertView, ViewGroup parent) {
      TLRPC.User user;
      int size;

      if (searchWas && searching) {
        user = MessagesController.getInstance().getUser(searchResult.get(position).id);
        size = searchResult.size();
      } else {
        ArrayList<TLRPC.TL_contact> arr =
            ContactsController.getInstance()
                .usersSectionsDict
                .get(ContactsController.getInstance().sortedUsersSectionsArray.get(section));
        user = MessagesController.getInstance().getUser(arr.get(position).user_id);
        size = arr.size();
      }

      if (convertView == null) {
        LayoutInflater li =
            (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = li.inflate(R.layout.group_create_row_layout, parent, false);
      }
      ContactListRowHolder holder = (ContactListRowHolder) convertView.getTag();
      if (holder == null) {
        holder = new ContactListRowHolder(convertView);
        convertView.setTag(holder);
      }

      ImageView checkButton = (ImageView) convertView.findViewById(R.id.settings_row_check_button);
      if (selectedContacts.containsKey(user.id)) {
        checkButton.setImageResource(R.drawable.btn_check_on_holo_light);
      } else {
        checkButton.setImageResource(R.drawable.btn_check_off_holo_light);
      }

      View divider = convertView.findViewById(R.id.settings_row_divider);
      if (position == size - 1) {
        divider.setVisibility(View.INVISIBLE);
      } else {
        divider.setVisibility(View.VISIBLE);
      }

      if (searchWas && searching) {
        holder.nameTextView.setText(searchResultNames.get(position));
      } else {
        String name = ContactsController.formatName(user.first_name, user.last_name);
        if (name.length() == 0) {
          if (user.phone != null && user.phone.length() != 0) {
            name = PhoneFormat.getInstance().format("+" + user.phone);
          } else {
            name = LocaleController.getString("HiddenName", R.string.HiddenName);
          }
        }
        holder.nameTextView.setText(name);
      }

      TLRPC.FileLocation photo = null;
      if (user.photo != null) {
        photo = user.photo.photo_small;
      }
      int placeHolderId = AndroidUtilities.getUserAvatarForId(user.id);
      holder.avatarImage.setImage(photo, "50_50", placeHolderId);

      holder.messageTextView.setText(LocaleController.formatUserStatus(user));
      if (user.status != null
          && user.status.expires > ConnectionsManager.getInstance().getCurrentTime()) {
        holder.messageTextView.setTextColor(0xff357aa8);
      } else {
        holder.messageTextView.setTextColor(0xff808080);
      }

      return convertView;
    }
Ejemplo n.º 16
0
  @Override
  public View getItemView(int section, int position, View convertView, ViewGroup parent) {

    TLRPC.User user = null;
    int count = 0;
    if (usersAsSections) {
      if (section < ContactsController.getInstance().sortedUsersSectionsArray.size()) {
        ArrayList<TLRPC.TL_contact> arr =
            ContactsController.getInstance()
                .usersSectionsDict
                .get(ContactsController.getInstance().sortedUsersSectionsArray.get(section));
        user = MessagesController.getInstance().getUser(arr.get(position).user_id);
        count = arr.size();
      }
    } else {
      if (section == 0) {
        if (position == 0) {
          if (convertView == null) {
            LayoutInflater li =
                (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = li.inflate(R.layout.contacts_invite_row_layout, parent, false);
            TextView textView = (TextView) convertView.findViewById(R.id.messages_list_row_name);
            textView.setText(LocaleController.getString("InviteFriends", R.string.InviteFriends));
          }
          View divider = convertView.findViewById(R.id.settings_row_divider);
          if (ContactsController.getInstance().contacts.isEmpty()) {
            divider.setVisibility(View.INVISIBLE);
          } else {
            divider.setVisibility(View.VISIBLE);
          }
          return convertView;
        }
        user =
            MessagesController.getInstance()
                .getUser(ContactsController.getInstance().contacts.get(position - 1).user_id);
        count = ContactsController.getInstance().contacts.size();
      }
    }
    if (user != null) {
      if (convertView == null) {
        convertView = new ChatOrUserCell(mContext);
        ((ChatOrUserCell) convertView).usePadding = false;
      }

      ((ChatOrUserCell) convertView).setData(user, null, null, null, null);

      if (ignoreUsers != null) {
        if (ignoreUsers.containsKey(user.id)) {
          ((ChatOrUserCell) convertView).drawAlpha = 0.5f;
        } else {
          ((ChatOrUserCell) convertView).drawAlpha = 1.0f;
        }
      }

      ((ChatOrUserCell) convertView).useSeparator = position != count - 1;

      return convertView;
    }

    TextView textView;
    if (convertView == null) {
      LayoutInflater li =
          (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      convertView = li.inflate(R.layout.settings_row_button_layout, parent, false);
      textView = (TextView) convertView.findViewById(R.id.settings_row_text);
    } else {
      textView = (TextView) convertView.findViewById(R.id.settings_row_text);
    }

    View divider = convertView.findViewById(R.id.settings_row_divider);
    ArrayList<ContactsController.Contact> arr =
        ContactsController.getInstance()
            .contactsSectionsDict
            .get(ContactsController.getInstance().sortedContactsSectionsArray.get(section - 1));
    ContactsController.Contact contact = arr.get(position);
    if (divider != null) {
      if (position == arr.size() - 1) {
        divider.setVisibility(View.INVISIBLE);
      } else {
        divider.setVisibility(View.VISIBLE);
      }
    }
    if (contact.first_name != null && contact.last_name != null) {
      textView.setText(contact.first_name + " " + contact.last_name);
    } else if (contact.first_name != null && contact.last_name == null) {
      textView.setText(contact.first_name);
    } else {
      textView.setText(contact.last_name);
    }
    return convertView;
  }
Ejemplo n.º 17
0
  @Override
  public View getItemView(int section, int position, View convertView, ViewGroup parent) {
    int type = getItemViewType(section, position);
    if (type == 4) {
      if (convertView == null) {
        convertView = new DividerCell(mContext);
        convertView.setPadding(
            AndroidUtilities.dp(LocaleController.isRTL ? 28 : 72),
            0,
            AndroidUtilities.dp(LocaleController.isRTL ? 72 : 28),
            0);
      }
    } else if (type == 3) {
      if (convertView == null) {
        convertView = new GreySectionCell(mContext);
        ((GreySectionCell) convertView)
            .setText(LocaleController.getString("Contacts", R.string.Contacts).toUpperCase());
      }
    } else if (type == 2) {
      if (convertView == null) {
        convertView = new TextCell(mContext);
      }
      TextCell actionCell = (TextCell) convertView;
      if (needPhonebook) {
        actionCell.setTextAndIcon(
            LocaleController.getString("InviteFriends", R.string.InviteFriends),
            R.drawable.menu_invite);
      } else if (isAdmin) {
        actionCell.setTextAndIcon(
            LocaleController.getString("InviteToGroupByLink", R.string.InviteToGroupByLink),
            R.drawable.menu_invite);
      } else {
        if (position == 0) {
          actionCell.setTextAndIcon(
              LocaleController.getString("NewGroup", R.string.NewGroup), R.drawable.menu_newgroup);
        } else if (position == 1) {
          actionCell.setTextAndIcon(
              LocaleController.getString("NewSecretChat", R.string.NewSecretChat),
              R.drawable.menu_secret);
        } else if (position == 2) {
          actionCell.setTextAndIcon(
              LocaleController.getString("NewBroadcastList", R.string.NewBroadcastList),
              R.drawable.menu_broadcast);
        }
      }
    } else if (type == 1) {
      if (convertView == null) {
        convertView = new TextCell(mContext);
      }
      ContactsController.Contact contact =
          ContactsController.getInstance().phoneBookContacts.get(position);
      if (contact.first_name != null && contact.last_name != null) {
        if (isContainUTF8(contact.display_name)) {
          ((TextCell) convertView).setText(contact.display_name);
        } else {
          ((TextCell) convertView).setText(contact.first_name + " " + contact.last_name);
        }
      } else if (contact.first_name != null && contact.last_name == null) {
        ((TextCell) convertView).setText(contact.first_name);
      } else {
        ((TextCell) convertView).setText(contact.last_name);
      }
    } else if (type == 0) {
      if (convertView == null) {
        convertView = new UserCell(mContext, 58);
        ((UserCell) convertView).setStatusColors(0xffa8a8a8, 0xff3b84c0);
      }

      ArrayList<TLRPC.TL_contact> arr =
          ContactsController.getInstance()
              .usersSectionsDict
              .get(
                  ContactsController.getInstance()
                      .sortedUsersSectionsArray
                      .get(section - (onlyUsers && !isAdmin ? 0 : 1)));
      TLRPC.User user = MessagesController.getInstance().getUser(arr.get(position).user_id);
      if (isContainUTF8(user.first_name) || isContainUTF8(user.last_name)) {
        ((UserCell) convertView).setData(user, user.last_name + user.first_name, null, 0);
      } else {
        ((UserCell) convertView).setData(user, null, null, 0);
      }

      if (checkedMap != null) {
        ((UserCell) convertView)
            .setChecked(checkedMap.containsKey(user.id), !scrolling && Build.VERSION.SDK_INT > 10);
      }
      if (ignoreUsers != null) {
        if (ignoreUsers.containsKey(user.id)) {
          ViewProxy.setAlpha(convertView, 0.5f);
        } else {
          ViewProxy.setAlpha(convertView, 1.0f);
        }
      }
    }
    return convertView;
  }