Android Open Source - Aviary-Android-SDK I A P Buy Button






From Project

Back to project page Aviary-Android-SDK.

License

The source code is released under:

AVIARY API TERMS OF USE Full Legal Agreement The following terms and conditions and the terms and conditions at http://www.aviary.com/terms (collectively, the ?Terms??) govern your use of any and ...

If you think the Android project Aviary-Android-SDK listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.aviary.android.feather.widget;
//from  w  w  w.  j ava  2 s.co  m
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.util.Pair;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.aviary.android.feather.R;
import com.aviary.android.feather.cds.CdsUtils;
import com.aviary.android.feather.cds.CdsUtils.PackOption;
import com.aviary.android.feather.widget.IAPDialogMain.PackOptionWithPrice;

public class IAPBuyButton extends RelativeLayout {

  TextView mTextView;
  View mProgress;
  PackOptionWithPrice mOption;
  long mPackId;

  public IAPBuyButton ( Context context, AttributeSet attrs ) {
    super( context, attrs );
  }

  @Override
  protected void onFinishInflate() {
    super.onFinishInflate();
    mTextView = (TextView) findViewById( R.id.aviary_buy_button_text );
    mProgress = findViewById( R.id.aviary_buy_button_loader );
  }

  public PackOptionWithPrice getPackOption() {
    return mOption;
  }

  @Override
  protected void onDetachedFromWindow() {
    super.onDetachedFromWindow();
    getHandler().removeCallbacks( checkDownloadStatus );
  };
  
  Runnable checkDownloadStatus = new Runnable() {
    
    @Override
    public void run() {
      Log.d( VIEW_LOG_TAG, "checkDownloadStatus for " + mPackId );
      if( mPackId > -1 && null != getContext() && null != mOption ) {
        Pair<PackOption, String> result = CdsUtils.getPackOptionDownloadStatus( getContext(), mPackId );
        if( null != result ) {
          if( null != getContext() ) {
            setPackOption( new PackOptionWithPrice( result.first ), mPackId );
          }
        }
      }
    }
  };
  
  public void setPackOption( PackOptionWithPrice option, long packId ) {
    if ( null != option && option.equals( mOption ) ) {
      // no need to update
      return;
    }

    mOption = option;
    mPackId = packId;
    
//    if( LoggerFactory.LOG_ENABLED ) {
//      Log.i( VIEW_LOG_TAG, "setPackOption(" + packId + "): " + option );
//    }

    if( null != getHandler() )
      getHandler().removeCallbacks( checkDownloadStatus );
    
    if ( null == option ) {
      return;
    }
    
    setEnabled( true );
    
    switch ( option.option ) {
      case RESTORE:
        mTextView.setText( R.string.feather_iap_restore );
        mProgress.setVisibility( View.INVISIBLE );
        mTextView.setVisibility( View.VISIBLE );
        break;

      case PURCHASE:
        mProgress.setVisibility( View.INVISIBLE );
        mTextView.setVisibility( View.VISIBLE );
        if ( null != option.price ) {
          mTextView.setText( option.price );
        } else {
          mTextView.setText( R.string.feather_iap_unavailable );
        }
        break;

      case OWNED:
        mProgress.setVisibility( View.INVISIBLE );
        mTextView.setVisibility( View.VISIBLE );
        mTextView.setText( R.string.feather_iap_owned );
        setEnabled( false );
        break;

      case ERROR:
        mProgress.setVisibility( View.INVISIBLE );
        mTextView.setVisibility( View.VISIBLE );
        mTextView.setText( R.string.feather_iap_retry );
        break;

      case FREE:
        mProgress.setVisibility( View.INVISIBLE );
        mTextView.setVisibility( View.VISIBLE );
        mTextView.setText( R.string.feather_iap_download );
        break;
        
      case DOWNLOAD_COMPLETE:
        mProgress.setVisibility( View.INVISIBLE );
        mTextView.setVisibility( View.VISIBLE );
        mTextView.setText( R.string.feather_iap_installing );      
        setEnabled( false );
        break;

      case DOWNLOADING:
        mProgress.setVisibility( View.VISIBLE );
        mTextView.setVisibility( View.INVISIBLE );
        setEnabled( false );
        
        if( null != getHandler() )
          getHandler().postDelayed( checkDownloadStatus, (long) ( ( Math.random() * 100 ) + 900 ) );
        break;

      case PACK_OPTION_BEING_DETERMINED:
        mProgress.setVisibility( View.VISIBLE );
        mTextView.setVisibility( View.INVISIBLE );
        setEnabled( false );
        break;

      case DOWNLOAD_ERROR:
        mProgress.setVisibility( View.INVISIBLE );
        mTextView.setVisibility( View.VISIBLE );
        mTextView.setText( R.string.feather_iap_retry );
        break;
    }
  }

}




Java Source Code List

com.aviary.android.feather.AlertActivity.java
com.aviary.android.feather.AviaryMainController.java
com.aviary.android.feather.FeatherActivity.java
com.aviary.android.feather.async_tasks.AsyncImageManager.java
com.aviary.android.feather.async_tasks.DownloadImageAsyncTask.java
com.aviary.android.feather.async_tasks.ExifTask.java
com.aviary.android.feather.effects.AbstractContentPanel.java
com.aviary.android.feather.effects.AbstractOptionPanel.java
com.aviary.android.feather.effects.AbstractPanelLoaderService.java
com.aviary.android.feather.effects.AbstractPanel.java
com.aviary.android.feather.effects.AdjustEffectPanel.java
com.aviary.android.feather.effects.BordersPanel.java
com.aviary.android.feather.effects.ColorSplashPanel.java
com.aviary.android.feather.effects.CropPanel.java
com.aviary.android.feather.effects.DelayedSpotDrawPanel.java
com.aviary.android.feather.effects.DrawingPanel.java
com.aviary.android.feather.effects.EffectsPanel.java
com.aviary.android.feather.effects.EnhanceEffectPanel.java
com.aviary.android.feather.effects.MemePanel.java
com.aviary.android.feather.effects.NativeEffectRangePanel.java
com.aviary.android.feather.effects.SimpleStatusMachine.java
com.aviary.android.feather.effects.SliderEffectPanel.java
com.aviary.android.feather.effects.StickersPanel.java
com.aviary.android.feather.effects.TextPanel.java
com.aviary.android.feather.effects.TiltShiftPanel.java
com.aviary.android.feather.graphics.CdsPreviewTransformer.java
com.aviary.android.feather.graphics.GalleryBottomIndicatorDrawable.java
com.aviary.android.feather.graphics.GalleryTopIndicatorDrawable.java
com.aviary.android.feather.graphics.GlowBitmapDrawable.java
com.aviary.android.feather.graphics.GlowDrawable.java
com.aviary.android.feather.graphics.PluginDividerDrawable.java
com.aviary.android.feather.graphics.PreviewFillColorDrawable.java
com.aviary.android.feather.graphics.PreviewSpotDrawable.java
com.aviary.android.feather.graphics.RepeatableHorizontalDrawable.java
com.aviary.android.feather.opengl.AviaryGLSurfaceView.java
com.aviary.android.feather.utils.PackIconCallable.java
com.aviary.android.feather.utils.SimpleBitmapCache.java
com.aviary.android.feather.utils.ThreadUtils.java
com.aviary.android.feather.utils.TypefaceUtils.java
com.aviary.android.feather.utils.UIUtils.java
com.aviary.android.feather.widget.AdjustImageView.java
com.aviary.android.feather.widget.AviaryAbsSpinner.java
com.aviary.android.feather.widget.AviaryAdapterView.java
com.aviary.android.feather.widget.AviaryBadgeToolLayout.java
com.aviary.android.feather.widget.AviaryBottomBarViewFlipper.java
com.aviary.android.feather.widget.AviaryButton.java
com.aviary.android.feather.widget.AviaryEdgeEffect.java
com.aviary.android.feather.widget.AviaryGalleryTopIndicatorView.java
com.aviary.android.feather.widget.AviaryGallery.java
com.aviary.android.feather.widget.AviaryHighlightImageButton.java
com.aviary.android.feather.widget.AviaryImageRestoreSwitcher.java
com.aviary.android.feather.widget.AviaryImageSwitcher.java
com.aviary.android.feather.widget.AviaryNavBarViewFlipper.java
com.aviary.android.feather.widget.AviarySeekBar.java
com.aviary.android.feather.widget.AviaryTextView.java
com.aviary.android.feather.widget.AviaryToast.java
com.aviary.android.feather.widget.AviaryToggleButton.java
com.aviary.android.feather.widget.AviaryWheel.java
com.aviary.android.feather.widget.AviaryWorkspaceIndicator.java
com.aviary.android.feather.widget.AviaryWorkspace.java
com.aviary.android.feather.widget.CellLayout.java
com.aviary.android.feather.widget.CropImageView.java
com.aviary.android.feather.widget.DrawableHighlightView.java
com.aviary.android.feather.widget.EffectThumbLayout.java
com.aviary.android.feather.widget.HighlightView.java
com.aviary.android.feather.widget.IAPBuyButton.java
com.aviary.android.feather.widget.IAPDialogDetail.java
com.aviary.android.feather.widget.IAPDialogList.java
com.aviary.android.feather.widget.IAPDialogMain.java
com.aviary.android.feather.widget.ImageViewDrawableOverlay.java
com.aviary.android.feather.widget.ImageViewSpotDraw.java
com.aviary.android.feather.widget.ImageViewTiltiShiftTouch.java
com.aviary.android.feather.widget.ImageViewTouchAndDraw.java
com.aviary.android.feather.widget.PointCloud.java
com.aviary.android.feather.widget.ScrollerRunnable.java
com.aviary.android.feather.widget.VibrationHelper.java
com.aviary.android.feather.widget.VibrationWidget.java