/** * Switch to an item's view when it is touched * * @param ownerId the PersonItem.INTERNAL_ID of the person whose media should be shown */ private void onView(String ownerId) { PersonItem person = PersonManager.findPersonByInternalId(getContentResolver(), ownerId); Intent browseMediaIntent = new Intent(PeopleBrowserActivity.this, MediaBrowserActivity.class); browseMediaIntent.putExtra(getString(R.string.extra_parent_id), ownerId); // not really the best place to manage person re-locking, but never mind... if (!person.isLocked()) { if (person.lockExpired()) { person.setLockStatus(PersonItem.PERSON_LOCKED); PersonManager.updatePerson(getContentResolver(), person); } else { browseMediaIntent.putExtra( getString(R.string.extra_media_visibility), MediaItem.MEDIA_PRIVATE); } } else { UIUtilities.showToast(PeopleBrowserActivity.this, R.string.message_view_locked_person, true); } startActivityForResult(browseMediaIntent, R.id.intent_media_browser); }
// setBackgroundDrawable is deprecated from API 16+ (Jelly Bean), but we still want to target // earlier versions; // since this is purely a name change, there's no real reason to do anything platform-independent @SuppressWarnings("deprecation") private void updatePeopleIcons(boolean fadeIn) { mPendingIconsUpdate = false; final GridView grid = mGrid; final FastBitmapDrawable icon = mDefaultIcon; final int count = grid.getChildCount(); for (int i = 0; i < count; i++) { final View view = grid.getChildAt(i); final PersonViewHolder holder = (PersonViewHolder) view.getTag(); if (holder.queryIcon) { // if the icon has gone missing (recently imported or cache deletion), regenerate it String personCacheId = PersonItem.getCacheId(holder.personInternalId); FastBitmapDrawable cachedIcon = ImageCacheUtilities.getCachedIcon( MediaTablet.DIRECTORY_THUMBS, personCacheId, ImageCacheUtilities.NULL_DRAWABLE); if (ImageCacheUtilities.NULL_DRAWABLE.equals(cachedIcon)) { PersonManager.reloadPersonIcon( getResources(), getContentResolver(), holder.personInternalId); cachedIcon = ImageCacheUtilities.getCachedIcon(MediaTablet.DIRECTORY_THUMBS, personCacheId, icon); } if (fadeIn) { CrossFadeDrawable d = holder.transition; d.setEnd(cachedIcon.getBitmap()); holder.display.setBackgroundDrawable(d); d.startTransition(MediaTablet.ANIMATION_FADE_TRANSITION_DURATION); } else { holder.display.setBackgroundDrawable(cachedIcon); } holder.loader.setVisibility(View.GONE); holder.queryIcon = false; if (holder.selected) { holder.overlay.setBackgroundResource(R.drawable.item_public); holder.overlay.setPadding(0, 0, 0, 0); } else { holder.overlay.setBackgroundDrawable(null); } } } grid.invalidate(); }