/*
LinkingHelpFragment.java
Copyright (c) 2016 NTT DOCOMO,INC.
Released under the MIT license
http://opensource.org/licenses/mit-license.php
*/
package org.deviceconnect.android.deviceplugin.linking.setting.fragment;
import android.animation.Animator;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import org.deviceconnect.android.deviceplugin.linking.R;
import java.util.ArrayList;
import java.util.List;
public class LinkingHelpFragment extends Fragment {
private static final String EXTRA_RES_ID = "resId";
private boolean mDestroy;
public static LinkingHelpFragment newInstance(final int resId) {
LinkingHelpFragment fragment = new LinkingHelpFragment();
Bundle arguments = new Bundle();
arguments.putInt(EXTRA_RES_ID, resId);
fragment.setArguments(arguments);
return fragment;
}
@Nullable
@Override
public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) {
int resId = getArguments().getInt(EXTRA_RES_ID);
View root = inflater.inflate(resId, container, false);
View v = root.findViewById(R.id.fragment_help_balloon1);
if (v != null) {
createAnimation(v);
}
View v2 = root.findViewById(R.id.fragment_help_balloon2);
if (v2 != null) {
createAnimation(v2);
}
return root;
}
@Override
public void onDestroyView() {
mDestroy = true;
super.onDestroyView();
}
private void createAnimation(final View v) {
float size = 12.0f * getResources().getDisplayMetrics().density;
long time = 1000;
List<Animator> animatorList = new ArrayList<>();
ObjectAnimator fadeIn = ObjectAnimator.ofFloat(v, "translationY", -size, 0);
fadeIn.setDuration(time);
animatorList.add(fadeIn);
ObjectAnimator fadeOut = ObjectAnimator.ofFloat(v, "translationY", 0, -size);
fadeOut.setDuration(time);
animatorList.add(fadeOut);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playSequentially(animatorList);
animatorSet.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
if (!mDestroy) {
animation.start();
}
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
animatorSet.start();
}
}