Android Open Source - appboy-android-sdk Decision Fragment






From Project

Back to project page appboy-android-sdk.

License

The source code is released under:

Copyright (c) 2014 Appboy, Inc. All rights reserved. * Use of source code or binaries contained within Appboy's Android SDK is permitted only to enable use of the Appboy platform by customers of Appb...

If you think the Android project appboy-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.appboy.sample;
/*  w ww.  j ava2 s .c  o m*/
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.GestureDetector;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.Animation;
import android.view.animation.Interpolator;
import android.view.animation.RotateAnimation;
import android.widget.Button;
import android.widget.ImageView;

import com.appboy.Appboy;
import com.appboy.Constants;

import java.util.Random;

public class DecisionFragment extends Fragment {
  private static final String TAG = String.format("%s.%s", Constants.APPBOY_LOG_TAG_PREFIX, DecisionFragment.class.getName());

  private ImageView mSpinner;
  private Random mRandom;
  private Interpolator mInterpolator;
  private float mCurrentSpinnerInDegrees;
  private final int mSpinnerDuration = 5;
  private Button mSpinButton;
  private Animation.AnimationListener mSpinAnimationListener;

  public DecisionFragment() {}

  @Override
  public void onAttach(final Activity activity) {
    super.onAttach(activity);
    mRandom = new Random();
    mInterpolator = new AccelerateDecelerateInterpolator();
    mCurrentSpinnerInDegrees = 0f;
  }

  @Override
  public View onCreateView(LayoutInflater layoutInflater, ViewGroup container, Bundle savedInstanceState) {
    View contentView = layoutInflater.inflate(R.layout.decision, container, false);
    mSpinner = (ImageView) contentView.findViewById(R.id.spinner);
    mSpinButton = (Button) contentView.findViewById(R.id.spin);
    return contentView;
  }

  @Override
  public void onStart() {
    super.onStart();
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
    resetSpinner();

    mSpinAnimationListener = new Animation.AnimationListener() {
      public void onAnimationStart(Animation animation) {
        mSpinButton.setEnabled(false);
      }
      public void onAnimationEnd(Animation animation) {
        mSpinButton.setEnabled(true);
      }
      public void onAnimationRepeat(Animation animation) { }
    };

    mSpinButton.setOnClickListener(new View.OnClickListener() {
      public void onClick(View view) {
        performSpin();
      }
    });
  }

  public void performSpin() {
    float rotationDegrees = getRotationInDegrees();
    Animation animation = getRotationAnimation(rotationDegrees);
    animation.setAnimationListener(mSpinAnimationListener);
    spin(animation, rotationDegrees);
  }

  private float getRotationInDegrees() {
    float minRotationDegrees = mSpinnerDuration * 2 * 360f;
    return minRotationDegrees + mRandom.nextInt(360);
  }

  private Animation getRotationAnimation(float rotationDegrees) {
    RotateAnimation rotationAnimation = new RotateAnimation(mCurrentSpinnerInDegrees, mCurrentSpinnerInDegrees + rotationDegrees,
      Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
    rotationAnimation.setStartOffset(0l);
    rotationAnimation.setDuration(mSpinnerDuration * 1000l);
    rotationAnimation.setFillAfter(true);
    rotationAnimation.setInterpolator(mInterpolator);
    return rotationAnimation;
  }

  private void spin(Animation animation, float rotationDegrees) {
    Appboy.getInstance(getActivity()).logCustomEvent("spin");
    mSpinner.startAnimation(animation);
    mCurrentSpinnerInDegrees += rotationDegrees;
    mCurrentSpinnerInDegrees %= 360f;
  }

  private void resetSpinner() {
    mCurrentSpinnerInDegrees = 0;
    mSpinner.clearAnimation();
  }
}




Java Source Code List

com.android.vending.billing.utils.Base64DecoderException.java
com.android.vending.billing.utils.Base64.java
com.android.vending.billing.utils.IabException.java
com.android.vending.billing.utils.IabHelper.java
com.android.vending.billing.utils.IabResult.java
com.android.vending.billing.utils.Inventory.java
com.android.vending.billing.utils.Purchase.java
com.android.vending.billing.utils.Security.java
com.android.vending.billing.utils.SkuDetails.java
com.appboy.AppboyAdmReceiver.java
com.appboy.AppboyGcmReceiver.java
com.appboy.AppboyNotificationUtils.java
com.appboy.helloworld.HelloAppboyActivity.java
com.appboy.sample.AppboyBroadcastReceiver.java
com.appboy.sample.AppboyFragmentActivity.java
com.appboy.sample.CustomAppboyNavigator.java
com.appboy.sample.CustomSlideupManagerListener.java
com.appboy.sample.CustomSlideupViewFactory.java
com.appboy.sample.DecisionFragment.java
com.appboy.sample.DroidBoyActivity.java
com.appboy.sample.DroidGirlActivity.java
com.appboy.sample.DroidboyApplication.java
com.appboy.sample.FeedCategoriesFragment.java
com.appboy.sample.FeedFragmentActivity.java
com.appboy.sample.FeedbackFragmentActivity.java
com.appboy.sample.PreferencesActivity.java
com.appboy.sample.SlideupTesterActivity.java
com.appboy.sample.Test.java
com.appboy.sample.UserProfileDialog.java
com.appboy.sample.util.SharedPrefsUtil.java
com.appboy.ui.AppboyFeedFragment.java
com.appboy.ui.AppboyFeedbackFragment.java
com.appboy.ui.AppboyNavigator.java
com.appboy.ui.AppboyWebViewActivity.java
com.appboy.ui.actions.ActionFactory.java
com.appboy.ui.actions.ActivityAction.java
com.appboy.ui.actions.GooglePlayAppDetailsAction.java
com.appboy.ui.actions.IAction.java
com.appboy.ui.actions.ViewAction.java
com.appboy.ui.actions.WebAction.java
com.appboy.ui.activities.AppboyBaseActivity.java
com.appboy.ui.activities.AppboyBaseFragmentActivity.java
com.appboy.ui.activities.AppboyFeedActivity.java
com.appboy.ui.adapters.AppboyListAdapter.java
com.appboy.ui.configuration.XmlUIConfigurationProvider.java
com.appboy.ui.slideups.AppboySlideupManager.java
com.appboy.ui.slideups.ISlideupManagerListener.java
com.appboy.ui.slideups.ISlideupViewFactory.java
com.appboy.ui.slideups.ISlideupViewLifecycleListener.java
com.appboy.ui.slideups.SlideupCloser.java
com.appboy.ui.slideups.SlideupOperation.java
com.appboy.ui.slideups.SlideupViewWrapper.java
com.appboy.ui.slideups.SwipeDismissTouchListener.java
com.appboy.ui.slideups.TouchAwareSwipeDismissTouchListener.java
com.appboy.ui.support.DrawingUtils.java
com.appboy.ui.support.StringUtils.java
com.appboy.ui.support.UriUtils.java
com.appboy.ui.support.ViewUtils.java
com.appboy.ui.widget.BannerImageCardView.java
com.appboy.ui.widget.BaseCardView.java
com.appboy.ui.widget.CaptionedImageCardView.java
com.appboy.ui.widget.CrossPromotionSmallCardView.java
com.appboy.ui.widget.DefaultCardView.java
com.appboy.ui.widget.ShortNewsCardView.java
com.appboy.ui.widget.StarRatingView.java
com.appboy.ui.widget.TextAnnouncementCardView.java