@Override public PhotoViewer.PlaceProviderObject getPlaceForPhoto( MessageObject messageObject, TLRPC.FileLocation fileLocation, int index) { if (fileLocation == null) { return null; } TLRPC.User user = MessagesController.getInstance().users.get(user_id); if (user != null && user.photo != null && user.photo.photo_big != null) { TLRPC.FileLocation photoBig = user.photo.photo_big; if (photoBig.local_id == fileLocation.local_id && photoBig.volume_id == fileLocation.volume_id && photoBig.dc_id == fileLocation.dc_id) { int count = listView.getChildCount(); for (int a = 0; a < count; a++) { View view = listView.getChildAt(a); BackupImageView avatarImage = (BackupImageView) view.findViewById(R.id.settings_avatar_image); if (avatarImage != null) { int coords[] = new int[2]; avatarImage.getLocationInWindow(coords); PhotoViewer.PlaceProviderObject object = new PhotoViewer.PlaceProviderObject(); object.viewX = coords[0]; object.viewY = coords[1] - Utilities.statusBarHeight; object.parentView = listView; object.imageReceiver = avatarImage.imageReceiver; object.user_id = user_id; object.thumb = object.imageReceiver.getBitmap(); object.size = -1; return object; } } } } return null; }
@Override public View getView(int i, View view, ViewGroup viewGroup) { int type = getItemViewType(i); if (type == 0) { if (view == null) { LayoutInflater li = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = li.inflate(R.layout.settings_wallpapers_my_row, viewGroup, false); } View parentView = view.findViewById(R.id.parent); ImageView imageView = (ImageView) view.findViewById(R.id.image); View selection = view.findViewById(R.id.selection); if (i == 0) { if (selectedBackground == -1 || selectedColor != 0 || selectedBackground == 1000001) { imageView.setBackgroundColor(0x5A475866); } else { imageView.setBackgroundColor(0x5A000000); } imageView.setImageResource(R.drawable.ic_gallery_background); if (selectedBackground == -1) { selection.setVisibility(View.VISIBLE); } else { selection.setVisibility(View.INVISIBLE); } } else { imageView.setImageBitmap(null); TLRPC.WallPaper wallPaper = wallPapers.get(i - 1); imageView.setBackgroundColor(0xff000000 | wallPaper.bg_color); if (wallPaper.id == selectedBackground) { selection.setVisibility(View.VISIBLE); } else { selection.setVisibility(View.INVISIBLE); } } } else if (type == 1) { if (view == null) { LayoutInflater li = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = li.inflate(R.layout.settings_wallpapers_other_row, viewGroup, false); } BackupImageView image = (BackupImageView) view.findViewById(R.id.image); View selection = view.findViewById(R.id.selection); TLRPC.WallPaper wallPaper = wallPapers.get(i - 1); TLRPC.PhotoSize size = FileLoader.getClosestPhotoSizeWithSize(wallPaper.sizes, AndroidUtilities.dp(100)); if (size != null && size.location != null) { image.setImage(size.location, "100_100", 0); } if (wallPaper.id == selectedBackground) { selection.setVisibility(View.VISIBLE); } else { selection.setVisibility(View.INVISIBLE); } } return view; }
@Override public View getView(int i, View view, ViewGroup viewGroup) { int type = getItemViewType(i); if (type == 0) { MessageObject message = messages.get(i); if (view == null) { LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = li.inflate(R.layout.media_photo_layout, viewGroup, false); } ViewGroup.LayoutParams params = view.getLayoutParams(); params.width = itemWidth; params.height = itemWidth; view.setLayoutParams(params); BackupImageView imageView = (BackupImageView)view.findViewById(R.id.media_photo_image); if (message.messageOwner.media != null && message.messageOwner.media.photo != null && !message.messageOwner.media.photo.sizes.isEmpty()) { ArrayList<TLRPC.PhotoSize> sizes = message.messageOwner.media.photo.sizes; boolean set = false; // for (TLRPC.PhotoSize size : sizes) { // if (size.type != null && size.type.equals("m")) { // set = true; // imageView.setImage(size.location, null, R.drawable.photo_placeholder); // break; // } // } if (!set) { if (message.imagePreview != null) { imageView.setImageBitmap(message.imagePreview); } else { imageView.setImage(message.messageOwner.media.photo.sizes.get(0).location, null, R.drawable.photo_placeholder_in); } } } else { imageView.setImageResource(R.drawable.photo_placeholder_in); } } else if (type == 1) { MessageObject message = messages.get(i); if (view == null) { LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = li.inflate(R.layout.media_video_layout, viewGroup, false); } ViewGroup.LayoutParams params = view.getLayoutParams(); params.width = itemWidth; params.height = itemWidth; view.setLayoutParams(params); TextView textView = (TextView)view.findViewById(R.id.chat_video_time); BackupImageView imageView = (BackupImageView)view.findViewById(R.id.media_photo_image); if (message.messageOwner.media.video != null && message.messageOwner.media.video.thumb != null) { int duration = message.messageOwner.media.video.duration; int minutes = duration / 60; int seconds = duration - minutes * 60; textView.setText(String.format("%d:%02d", minutes, seconds)); if (message.imagePreview != null) { imageView.setImageBitmap(message.imagePreview); } else { imageView.setImage(message.messageOwner.media.video.thumb.location, null, R.drawable.photo_placeholder_in); } textView.setVisibility(View.VISIBLE); } else { textView.setVisibility(View.GONE); imageView.setImageResource(R.drawable.photo_placeholder_in); } } else if (type == 2) { if (view == null) { LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = li.inflate(R.layout.media_loading_layout, viewGroup, false); } ViewGroup.LayoutParams params = view.getLayoutParams(); params.width = itemWidth; params.height = itemWidth; view.setLayoutParams(params); } return view; }
@Override public View getView(int i, View view, ViewGroup viewGroup) { int type = getItemViewType(i); if (type == 0) { BackupImageView avatarImage; TextView onlineText; TLRPC.User user = MessagesController.getInstance().users.get(user_id); if (view == null) { LayoutInflater li = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = li.inflate(R.layout.user_profile_avatar_layout, viewGroup, false); onlineText = (TextView) view.findViewById(R.id.settings_online); avatarImage = (BackupImageView) view.findViewById(R.id.settings_avatar_image); avatarImage.processDetach = false; avatarImage.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { TLRPC.User user = MessagesController.getInstance().users.get(user_id); if (user.photo != null && user.photo.photo_big != null) { PhotoViewer.getInstance() .openPhoto(user.photo.photo_big, UserProfileActivity.this); } } }); } else { avatarImage = (BackupImageView) view.findViewById(R.id.settings_avatar_image); onlineText = (TextView) view.findViewById(R.id.settings_online); } TextView textView = (TextView) view.findViewById(R.id.settings_name); Typeface typeface = Utilities.getTypeface("fonts/rmedium.ttf"); textView.setTypeface(typeface); textView.setText(Utilities.formatName(user.first_name, user.last_name)); onlineText.setText(LocaleController.formatUserStatus(user)); TLRPC.FileLocation photo = null; TLRPC.FileLocation photoBig = null; if (user.photo != null) { photo = user.photo.photo_small; photoBig = user.photo.photo_big; } avatarImage.setImage(photo, "50_50", Utilities.getUserAvatarForId(user.id)); avatarImage.imageReceiver.setVisible( !PhotoViewer.getInstance().isShowingImage(photoBig), false); return view; } else if (type == 1) { if (view == null) { LayoutInflater li = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = li.inflate(R.layout.settings_section_layout, viewGroup, false); } TextView textView = (TextView) view.findViewById(R.id.settings_section_text); if (i == phoneSectionRow) { textView.setText(LocaleController.getString("PHONE", R.string.PHONE)); } else if (i == settingsSectionRow) { textView.setText(LocaleController.getString("SETTINGS", R.string.SETTINGS)); } else if (i == sharedMediaSectionRow) { textView.setText(LocaleController.getString("SHAREDMEDIA", R.string.SHAREDMEDIA)); } } else if (type == 2) { final TLRPC.User user = MessagesController.getInstance().users.get(user_id); if (view == null) { LayoutInflater li = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = li.inflate(R.layout.user_profile_phone_layout, viewGroup, false); view.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { if (user.phone == null || user.phone.length() == 0 || getParentActivity() == null) { return; } selectedPhone = user.phone; AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); builder.setItems( new CharSequence[] { LocaleController.getString("Copy", R.string.Copy), LocaleController.getString("Call", R.string.Call) }, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { if (i == 1) { try { Intent intent = new Intent( Intent.ACTION_DIAL, Uri.parse("tel:+" + selectedPhone)); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); getParentActivity().startActivity(intent); } catch (Exception e) { FileLog.e("tmessages", e); } } else if (i == 0) { int sdk = android.os.Build.VERSION.SDK_INT; if (sdk < android.os.Build.VERSION_CODES.HONEYCOMB) { android.text.ClipboardManager clipboard = (android.text.ClipboardManager) ApplicationLoader.applicationContext.getSystemService( Context.CLIPBOARD_SERVICE); clipboard.setText(selectedPhone); } else { android.content.ClipboardManager clipboard = (android.content.ClipboardManager) ApplicationLoader.applicationContext.getSystemService( Context.CLIPBOARD_SERVICE); android.content.ClipData clip = android.content.ClipData.newPlainText("label", selectedPhone); clipboard.setPrimaryClip(clip); } } } }); showAlertDialog(builder); } }); } ImageButton button = (ImageButton) view.findViewById(R.id.settings_edit_name); button.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { TLRPC.User user = MessagesController.getInstance().users.get(user_id); if (user == null || user instanceof TLRPC.TL_userEmpty) { return; } NotificationCenter.getInstance() .postNotificationName(MessagesController.closeChats); Bundle args = new Bundle(); args.putInt("user_id", user_id); presentFragment(new ChatActivity(args), true); } }); TextView textView = (TextView) view.findViewById(R.id.settings_row_text); TextView detailTextView = (TextView) view.findViewById(R.id.settings_row_text_detail); View divider = view.findViewById(R.id.settings_row_divider); if (i == phoneRow) { if (user.phone != null && user.phone.length() != 0) { textView.setText(PhoneFormat.getInstance().format("+" + user.phone)); } else { textView.setText("Unknown"); } divider.setVisibility(View.INVISIBLE); detailTextView.setText(LocaleController.getString("PhoneMobile", R.string.PhoneMobile)); } } else if (type == 3) { if (view == null) { LayoutInflater li = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = li.inflate(R.layout.user_profile_leftright_row_layout, viewGroup, false); } TextView textView = (TextView) view.findViewById(R.id.settings_row_text); TextView detailTextView = (TextView) view.findViewById(R.id.settings_row_text_detail); View divider = view.findViewById(R.id.settings_row_divider); if (i == sharedMediaRow) { textView.setText(LocaleController.getString("SharedMedia", R.string.SharedMedia)); if (totalMediaCount == -1) { detailTextView.setText(LocaleController.getString("Loading", R.string.Loading)); } else { detailTextView.setText(String.format("%d", totalMediaCount)); } divider.setVisibility(View.INVISIBLE); } else if (i == settingsTimerRow) { TLRPC.EncryptedChat encryptedChat = MessagesController.getInstance().encryptedChats.get((int) (dialog_id >> 32)); textView.setText(LocaleController.getString("MessageLifetime", R.string.MessageLifetime)); divider.setVisibility(View.VISIBLE); if (encryptedChat.ttl == 0) { detailTextView.setText( LocaleController.getString( "ShortMessageLifetimeForever", R.string.ShortMessageLifetimeForever)); } else if (encryptedChat.ttl == 2) { detailTextView.setText( LocaleController.getString( "ShortMessageLifetime2s", R.string.ShortMessageLifetime2s)); } else if (encryptedChat.ttl == 5) { detailTextView.setText( LocaleController.getString( "ShortMessageLifetime5s", R.string.ShortMessageLifetime5s)); } else if (encryptedChat.ttl == 60) { detailTextView.setText( LocaleController.getString( "ShortMessageLifetime1m", R.string.ShortMessageLifetime1m)); } else if (encryptedChat.ttl == 60 * 60) { detailTextView.setText( LocaleController.getString( "ShortMessageLifetime1h", R.string.ShortMessageLifetime1h)); } else if (encryptedChat.ttl == 60 * 60 * 24) { detailTextView.setText( LocaleController.getString( "ShortMessageLifetime1d", R.string.ShortMessageLifetime1d)); } else if (encryptedChat.ttl == 60 * 60 * 24 * 7) { detailTextView.setText( LocaleController.getString( "ShortMessageLifetime1w", R.string.ShortMessageLifetime1w)); } else { detailTextView.setText(String.format("%d", encryptedChat.ttl)); } } } else if (type == 4) { if (view == null) { LayoutInflater li = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = li.inflate(R.layout.user_profile_identicon_layout, viewGroup, false); } TextView textView = (TextView) view.findViewById(R.id.settings_row_text); View divider = view.findViewById(R.id.settings_row_divider); divider.setVisibility(View.VISIBLE); IdenticonView identiconView = (IdenticonView) view.findViewById(R.id.identicon_view); TLRPC.EncryptedChat encryptedChat = MessagesController.getInstance().encryptedChats.get((int) (dialog_id >> 32)); identiconView.setBytes(encryptedChat.auth_key); textView.setText(LocaleController.getString("EncryptionKey", R.string.EncryptionKey)); } else if (type == 5) { if (view == null) { LayoutInflater li = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = li.inflate(R.layout.settings_row_button_layout, viewGroup, false); } TextView textView = (TextView) view.findViewById(R.id.settings_row_text); View divider = view.findViewById(R.id.settings_row_divider); if (i == settingsNotificationsRow) { textView.setText( LocaleController.getString( "NotificationsAndSounds", R.string.NotificationsAndSounds)); divider.setVisibility(View.INVISIBLE); } } return view; }