1faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase/*
2faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * Copyright (C) 2013 The Android Open Source Project
3faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase *
4faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * Licensed under the Apache License, Version 2.0 (the "License");
5faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * you may not use this file except in compliance with the License.
6faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * You may obtain a copy of the License at
7faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase *
8faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase *      http://www.apache.org/licenses/LICENSE-2.0
9faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase *
10faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * Unless required by applicable law or agreed to in writing, software
11faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * distributed under the License is distributed on an "AS IS" BASIS,
12faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * See the License for the specific language governing permissions and
14faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase * limitations under the License.
15faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase */
16faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haasepackage com.android.transitiontests;
17faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
18faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haaseimport android.app.Activity;
19faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haaseimport android.os.Bundle;
20faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haaseimport android.view.View;
21faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haaseimport android.view.ViewGroup;
22d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.Scene;
23d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.Transition;
24d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.TransitionSet;
25faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haaseimport android.widget.Button;
26d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.Fade;
27d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.ChangeBounds;
28d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.TransitionManager;
29faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
30faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
31faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haasepublic class SequenceTest extends Activity {
32faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
33faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    Button mRemovingButton, mInvisibleButton, mGoneButton;
34faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    Scene mScene1, mScene2;
35faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    ViewGroup mSceneRoot;
36d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase    TransitionSet sequencedFade, reverseSequencedFade;
37d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase    Scene mCurrentScene;
38faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
39faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    @Override
40faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    public void onCreate(Bundle savedInstanceState) {
41faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        super.onCreate(savedInstanceState);
42faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        setContentView(R.layout.fading_test);
43faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
44faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        View container = (View) findViewById(R.id.container);
45faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        mSceneRoot = (ViewGroup) container.getParent();
46faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
47faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        mRemovingButton = (Button) findViewById(R.id.removingButton);
48faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        mInvisibleButton = (Button) findViewById(R.id.invisibleButton);
49faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        mGoneButton = (Button) findViewById(R.id.goneButton);
50faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
51d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase        mScene1 = Scene.getSceneForLayout(mSceneRoot, R.layout.fading_test, this);
52d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase        mScene2 = Scene.getSceneForLayout(mSceneRoot, R.layout.fading_test_scene_2, this);
53faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
54ff58f92a0a77ad849ba714b5adac96790eca0048Chet Haase        Transition fade1 = new Fade().addTarget(R.id.removingButton);
55ff58f92a0a77ad849ba714b5adac96790eca0048Chet Haase        Transition fade2 = new Fade().addTarget(R.id.invisibleButton);
56ff58f92a0a77ad849ba714b5adac96790eca0048Chet Haase        Transition fade3 = new Fade().addTarget(R.id.goneButton);
57d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase        TransitionSet fader = new TransitionSet().
58d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase                setOrdering(TransitionSet.ORDERING_SEQUENTIAL);
59d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase        fader.addTransition(fade1).addTransition(fade2).addTransition(fade3).
60d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase                addTransition(new ChangeBounds());
61faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        sequencedFade = fader;
62faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
63d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase        reverseSequencedFade = new TransitionSet().
64d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase                setOrdering(TransitionSet.ORDERING_SEQUENTIAL);
65d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase        reverseSequencedFade.addTransition(new ChangeBounds()).addTransition(fade3).addTransition(fade2).
66d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase                addTransition(fade1);
67faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
68d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase        mCurrentScene = mScene1;
69faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    }
70faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
71faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    public void sendMessage(View view) {
72d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase        if (mCurrentScene == mScene1) {
73faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            TransitionManager.go(mScene2, sequencedFade);
74d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase            mCurrentScene = mScene2;
75faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        } else {
76faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            TransitionManager.go(mScene1, reverseSequencedFade);
77d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase            mCurrentScene = mScene1;
78faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        }
79faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    }
80faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase}
81