List of usage examples for java.lang.ref WeakReference WeakReference
public WeakReference(T referent)
From source file:android.support.v7.internal.view.menu.MenuBuilder.java
/** * Add a presenter to this menu that uses an alternate context for * inflating menu items. This will only hold a WeakReference; you do not * need to explicitly remove a presenter, but you can using * {@link #removeMenuPresenter(MenuPresenter)}. * * @param presenter The presenter to add * @param menuContext The context used to inflate menu items *///w ww.j av a2 s .c o m public void addMenuPresenter(MenuPresenter presenter, Context menuContext) { mPresenters.add(new WeakReference<MenuPresenter>(presenter)); presenter.initForMenu(menuContext, this); mIsActionItemsStale = true; }
From source file:android.support.design.widget.BottomSheetBehavior.java
@Override public boolean onLayoutChild(CoordinatorLayout parent, V child, int layoutDirection) { if (ViewCompat.getFitsSystemWindows(parent) && !ViewCompat.getFitsSystemWindows(child)) { ViewCompat.setFitsSystemWindows(child, true); }//from www. java 2s . c o m int savedTop = child.getTop(); // First let the parent lay it out parent.onLayoutChild(child, layoutDirection); // Offset the bottom sheet mParentHeight = parent.getHeight(); int peekHeight; if (mPeekHeightAuto) { if (mPeekHeightMin == 0) { mPeekHeightMin = parent.getResources() .getDimensionPixelSize(R.dimen.design_bottom_sheet_peek_height_min); } peekHeight = Math.max(mPeekHeightMin, mParentHeight - parent.getWidth() * 9 / 16); } else { peekHeight = mPeekHeight; } mMinOffset = Math.max(0, mParentHeight - child.getHeight()); mMaxOffset = Math.max(mParentHeight - peekHeight, mMinOffset); if (mState == STATE_EXPANDED) { ViewCompat.offsetTopAndBottom(child, mMinOffset); } else if (mHideable && mState == STATE_HIDDEN) { ViewCompat.offsetTopAndBottom(child, mParentHeight); } else if (mState == STATE_COLLAPSED) { ViewCompat.offsetTopAndBottom(child, mMaxOffset); } else if (mState == STATE_DRAGGING || mState == STATE_SETTLING) { ViewCompat.offsetTopAndBottom(child, savedTop - child.getTop()); } if (mViewDragHelper == null) { mViewDragHelper = ViewDragHelper.create(parent, mDragCallback); } mViewRef = new WeakReference<>(child); mNestedScrollingChildRef = new WeakReference<>(findScrollingChild(child)); return true; }
From source file:com.battlelancer.seriesguide.ui.EpisodesActivity.java
@Override public void onAttachFragment(Fragment fragment) { mFragments.add(new WeakReference<>(fragment)); }
From source file:io.werval.runtime.util.TypeResolver.java
private static Map<TypeVariable<?>, Type> getTypeVariableMap(final Class<?> targetType) { Reference<Map<TypeVariable<?>, Type>> ref = CACHE.get(targetType); Map<TypeVariable<?>, Type> map = ref != null ? ref.get() : null; if (map == null) { map = new HashMap<>(); // Populate interfaces buildTypeVariableMap(targetType.getGenericInterfaces(), map); // Populate super classes and interfaces Type genericType = targetType.getGenericSuperclass(); Class<?> type = targetType.getSuperclass(); while (type != null && !Object.class.equals(type)) { if (genericType instanceof ParameterizedType) { buildTypeVariableMap((ParameterizedType) genericType, map); }//from ww w.j ava 2 s.c o m buildTypeVariableMap(type.getGenericInterfaces(), map); genericType = type.getGenericSuperclass(); type = type.getSuperclass(); } // Populate enclosing classes type = targetType; while (type.isMemberClass()) { genericType = type.getGenericSuperclass(); if (genericType instanceof ParameterizedType) { buildTypeVariableMap((ParameterizedType) genericType, map); } type = type.getEnclosingClass(); } if (cacheEnabled) { CACHE.put(targetType, new WeakReference<>(map)); } } return map; }
From source file:com.actionbarsherlock.internal.view.menu.MenuBuilder.java
/** * Add a presenter to this menu. This will only hold a WeakReference; * you do not need to explicitly remove a presenter, but you can using * {@link #removeMenuPresenter(MenuPresenter)}. * * @param presenter The presenter to add *//*w ww . j a va 2s .c o m*/ public void addMenuPresenter(MenuPresenter presenter) { mPresenters.add(new WeakReference<MenuPresenter>(presenter)); presenter.initForMenu(mContext, this); mIsActionItemsStale = true; }
From source file:com.fastbootmobile.encore.app.fragments.PlaybackQueueFragment.java
public PlaybackQueueFragment() { mHandler = new PlaybackQueueHandler(new WeakReference<>(this)); mPlayFabClickListener = new View.OnClickListener() { @Override//from w w w .j a v a 2 s .co m public void onClick(View v) { switch (PlaybackProxy.getState()) { case PlaybackService.STATE_PAUSED: case PlaybackService.STATE_STOPPED: case PlaybackService.STATE_PAUSING: PlaybackProxy.play(); break; case PlaybackService.STATE_BUFFERING: case PlaybackService.STATE_PLAYING: PlaybackProxy.pause(); break; } } }; mNextClickListener = new View.OnClickListener() { @Override public void onClick(View v) { PlaybackProxy.next(); } }; mPreviousClickListener = new View.OnClickListener() { @Override public void onClick(View v) { PlaybackProxy.previous(); } }; mSeekListener = new SeekBar.OnSeekBarChangeListener() { private int mStartProgress; @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { } @Override public void onStartTrackingTouch(SeekBar seekBar) { mLockSeekBarUpdate = true; mStartProgress = seekBar.getProgress(); } @Override public void onStopTrackingTouch(SeekBar seekBar) { mLockSeekBarUpdate = false; int endProgress = seekBar.getProgress(); if (endProgress != mStartProgress) { PlaybackProxy.seek(endProgress); } } }; mRepeatClickListener = new View.OnClickListener() { @Override public void onClick(View v) { boolean currentMode = PlaybackProxy.isRepeatMode(); boolean newMode = !currentMode; PlaybackProxy.setRepeatMode(newMode); v.animate().rotationBy(-360).setDuration(600).start(); if (newMode) { ((ImageView) v).setImageResource(R.drawable.ic_replay); } else { ((ImageView) v).setImageResource(R.drawable.ic_replay_gray); } } }; mShuffleClickListener = new View.OnClickListener() { @Override public void onClick(View v) { boolean currentMode = PlaybackProxy.isShuffleMode(); boolean newMode = !currentMode; PlaybackProxy.setShuffleMode(newMode); if (newMode) { ((ImageView) v).setImageResource(R.drawable.ic_shuffle); } else { ((ImageView) v).setImageResource(R.drawable.ic_shuffle_gray); } } }; mLikeClickListener = new View.OnClickListener() { @Override public void onClick(View v) { ListenLogger logger = new ListenLogger(getActivity()); PlaybackQueueAdapter.ViewHolder tag = (PlaybackQueueAdapter.ViewHolder) v.getTag(); boolean isLiked = logger.isLiked(tag.song.getRef()); if (isLiked) { logger.removeLike(tag.song); ((ImageView) v).setImageResource(R.drawable.ic_thumbs_up_gray); } else { logger.addLike(tag.song); final AutoMixBucket bucket = AutoMixManager.getDefault().getCurrentPlayingBucket(); if (bucket != null) { new Thread() { public void run() { try { bucket.notifyLike(); } catch (EchoNestException e) { Log.e(TAG, "Unable to notify like event to EchoNest"); } } }.start(); } ((ImageView) v).setImageResource(R.drawable.ic_thumbs_up); } } }; mDislikeClickListener = new View.OnClickListener() { @Override public void onClick(View v) { ListenLogger logger = new ListenLogger(getActivity()); PlaybackQueueAdapter.ViewHolder tag = (PlaybackQueueAdapter.ViewHolder) v.getTag(); boolean isDisliked = logger.isDisliked(tag.song.getRef()); if (isDisliked) { logger.removeDislike(tag.song); ((ImageView) v).setImageResource(R.drawable.ic_thumb_down_gray); } else { logger.addDislike(tag.song); final AutoMixBucket bucket = AutoMixManager.getDefault().getCurrentPlayingBucket(); if (bucket != null) { new Thread() { public void run() { try { bucket.notifyDislike(); } catch (EchoNestException e) { Log.e(TAG, "Unable to notify dislike event to EchoNest"); } } }.start(); } ((ImageView) v).setImageResource(R.drawable.ic_thumb_down); } } }; mAlbumArtClickListener = new View.OnClickListener() { @Override @TargetApi(Build.VERSION_CODES.LOLLIPOP) public void onClick(View v) { PlaybackQueueAdapter.ViewHolder tag = (PlaybackQueueAdapter.ViewHolder) v.getTag(); if (tag.song.getAlbum() != null) { Bitmap hero = ((MaterialTransitionDrawable) tag.ivAlbumArt.getDrawable()).getFinalDrawable() .getBitmap(); Intent intent = AlbumActivity.craftIntent(getActivity(), hero, tag.song.getAlbum(), tag.song.getProvider(), 0xFF333333); if (Utils.hasLollipop()) { ActivityOptions opts = ActivityOptions.makeSceneTransitionAnimation(getActivity(), v, "itemImage"); getActivity().startActivity(intent, opts.toBundle()); } else { startActivity(intent); } } else { Toast.makeText(getActivity(), R.string.toast_song_no_album, Toast.LENGTH_SHORT).show(); } } }; }
From source file:biz.laenger.android.vpbs.ViewPagerBottomSheetBehavior.java
@Override public boolean onLayoutChild(CoordinatorLayout parent, V child, int layoutDirection) { if (ViewCompat.getFitsSystemWindows(parent) && !ViewCompat.getFitsSystemWindows(child)) { ViewCompat.setFitsSystemWindows(child, true); }/* ww w.j a va2 s. c o m*/ int savedTop = child.getTop(); // First let the parent lay it out parent.onLayoutChild(child, layoutDirection); // Offset the bottom sheet mParentHeight = parent.getHeight(); int peekHeight; if (mPeekHeightAuto) { if (mPeekHeightMin == 0) { mPeekHeightMin = parent.getResources() .getDimensionPixelSize(R.dimen.design_bottom_sheet_peek_height_min); } peekHeight = Math.max(mPeekHeightMin, mParentHeight - parent.getWidth() * 9 / 16); } else { peekHeight = mPeekHeight; } mMinOffset = Math.max(0, mParentHeight - child.getHeight()); mMaxOffset = Math.max(mParentHeight - peekHeight, mMinOffset); if (mState == STATE_EXPANDED) { ViewCompat.offsetTopAndBottom(child, mMinOffset); } else if (mHideable && mState == STATE_HIDDEN) { ViewCompat.offsetTopAndBottom(child, mParentHeight); } else if (mState == STATE_COLLAPSED) { ViewCompat.offsetTopAndBottom(child, mMaxOffset); } else if (mState == STATE_DRAGGING || mState == STATE_SETTLING) { ViewCompat.offsetTopAndBottom(child, savedTop - child.getTop()); } if (mViewDragHelper == null) { mViewDragHelper = ViewDragHelper.create(parent, mDragCallback); } mViewRef = new WeakReference<>(child); findAllScrollableChild(child); return true; }
From source file:biz.wolschon.finance.jgnucash.mysql.impl.GnucashDatabase.java
/** * {@inheritDoc}/*from w ww . j av a2 s. c o m*/ * @see biz.wolschon.fileformats.gnucash.GnucashWritableFile#getAccountByID(java.lang.String) */ @Override public GnucashWritableAccount getAccountByID(final String aGUID) { GnucashWritableAccount retval = null; WeakReference<GnucashWritableAccount> ref = myAccountByIDCache.get(aGUID); if (ref != null) { retval = ref.get(); } if (retval != null) { return retval; } LOG.info("getAccountByID(aGUID=" + aGUID + ")"); String sql = "select * from accounts where guid = ?"; try { retval = myJDBCTemplate.queryForObject(sql, new AccountRowMapper(this), aGUID); myAccountByIDCache.put(aGUID, new WeakReference<GnucashWritableAccount>(retval)); return retval; } catch (org.springframework.dao.EmptyResultDataAccessException e) { Collection<? extends GnucashWritableAccount> writableRootAccounts = getWritableRootAccounts(); for (GnucashWritableAccount gnucashWritableAccount : writableRootAccounts) { if (gnucashWritableAccount.getId().equals(aGUID)) { retval = gnucashWritableAccount; myAccountByIDCache.put(aGUID, new WeakReference<GnucashWritableAccount>(retval)); return retval; } } throw e; } }
From source file:br.com.anteros.social.facebook.AnterosFacebookSession.java
public void setOnLoginListener(OnLoginListener onLoginListener) { this.onLoginListener = new WeakReference<OnLoginListener>(onLoginListener); }
From source file:android.support.v7.widget.AppCompatTextHelper.java
private void updateTypefaceAndStyle(Context context, TintTypedArray a) { mStyle = a.getInt(R.styleable.TextAppearance_android_textStyle, mStyle); if (a.hasValue(R.styleable.TextAppearance_android_fontFamily) || a.hasValue(R.styleable.TextAppearance_fontFamily)) { mFontTypeface = null;//from w ww .j a v a 2 s . c o m int fontFamilyId = a.hasValue(R.styleable.TextAppearance_fontFamily) ? R.styleable.TextAppearance_fontFamily : R.styleable.TextAppearance_android_fontFamily; if (!context.isRestricted()) { final WeakReference<TextView> textViewWeak = new WeakReference<>(mView); ResourcesCompat.FontCallback replyCallback = new ResourcesCompat.FontCallback() { @Override public void onFontRetrieved(@NonNull Typeface typeface) { onAsyncTypefaceReceived(textViewWeak, typeface); } @Override public void onFontRetrievalFailed(int reason) { // Do nothing. } }; try { // Note the callback will be triggered on the UI thread. mFontTypeface = a.getFont(fontFamilyId, mStyle, replyCallback); // If this call gave us an immediate result, ignore any pending callbacks. mAsyncFontPending = mFontTypeface == null; } catch (UnsupportedOperationException | Resources.NotFoundException e) { // Expected if it is not a font resource. } } if (mFontTypeface == null) { // Try with String. This is done by TextView JB+, but fails in ICS String fontFamilyName = a.getString(fontFamilyId); if (fontFamilyName != null) { mFontTypeface = Typeface.create(fontFamilyName, mStyle); } } return; } if (a.hasValue(R.styleable.TextAppearance_android_typeface)) { // Ignore previous pending fonts mAsyncFontPending = false; int typefaceIndex = a.getInt(R.styleable.TextAppearance_android_typeface, SANS); switch (typefaceIndex) { case SANS: mFontTypeface = Typeface.SANS_SERIF; break; case SERIF: mFontTypeface = Typeface.SERIF; break; case MONOSPACE: mFontTypeface = Typeface.MONOSPACE; break; } } }