/*
 * Copyright (C) 2014 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */

package com.android.test.dynamic;

import android.app.Activity;
import android.graphics.drawable.Animatable2;
import android.graphics.drawable.AnimatedVectorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.GridLayout;
import android.widget.ScrollView;

public class AnimatedVectorDrawableTest extends Activity implements View.OnClickListener {
    private static final String LOGCAT = "AnimatedVectorDrawableTest";

    protected int[] icon = {
            R.drawable.ic_rotate_2_portrait_v2_animation,
            R.drawable.ic_signal_airplane_v2_animation,
            R.drawable.ic_hourglass_animation,
            R.drawable.animation_vector_linear_progress_bar,
            R.drawable.animation_vector_drawable_grouping_1,
            R.drawable.animation_vector_progress_bar,
            R.drawable.animation_vector_drawable_favorite,
            R.drawable.animation_vector_drawable01,
            // Duplicate to test constant state.
            R.drawable.animation_vector_drawable01,
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        ScrollView scrollView = new ScrollView(this);
        GridLayout container = new GridLayout(this);
        scrollView.addView(container);
        container.setColumnCount(1);

        for (int i = 0; i < icon.length; i++) {
            Button button = new Button(this);
            button.setWidth(400);
            button.setHeight(400);
            button.setBackgroundResource(icon[i]);
            AnimatedVectorDrawable d = (AnimatedVectorDrawable) button.getBackground();
            d.registerAnimationCallback(new Animatable2.AnimationCallback() {
                @Override
                public void onAnimationStart(Drawable drawable) {
                    Log.v(LOGCAT, "Animator start");
                }

                @Override
                public void onAnimationEnd(Drawable drawable) {
                        Log.v(LOGCAT, "Animator end");
                }
            });

            container.addView(button);
            button.setOnClickListener(this);
        }

        setContentView(scrollView);
    }

    @Override
    public void onClick(View v) {
        AnimatedVectorDrawable d = (AnimatedVectorDrawable) v.getBackground();
        d.start();
    }
}
