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.content.Context;
20faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haaseimport android.os.Bundle;
21faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haaseimport android.view.LayoutInflater;
22faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haaseimport android.view.View;
23faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haaseimport android.view.ViewGroup;
24d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.Fade;
25d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.ChangeBounds;
26d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.Scene;
27d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.TransitionSet;
28d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.TransitionManager;
29faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
30faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
31faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haasepublic class Demo1 extends Activity {
32faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    ViewGroup mSceneRoot;
33faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    static Scene mCurrentScene;
34faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    boolean mFirstTime = true;
35faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    Scene mSearchScreen, mResultsScreen;
36faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    TransitionManager mTransitionManager = null;
37faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
38faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    @Override
39faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    public void onCreate(Bundle savedInstanceState) {
40faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        super.onCreate(savedInstanceState);
41faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        setContentView(R.layout.search_screen);
42faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
43faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        View container = (View) findViewById(R.id.container);
44faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        mSceneRoot = (ViewGroup) container.getParent();
45faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
46faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase//        mResultsScreen = new MyScene(mSceneRoot, R.layout.results_screen);
47faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase//        mSearchScreen = new MyScene(mSceneRoot, R.layout.search_screen);
48faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        mResultsScreen = new Scene(mSceneRoot);
49faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        mResultsScreen.setEnterAction(new Runnable() {
50faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            @Override
51faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            public void run() {
52faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase                LayoutInflater inflater = (LayoutInflater)
53faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase                        getSystemService(Context.LAYOUT_INFLATER_SERVICE);
54faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase                inflater.inflate(R.layout.results_screen, mSceneRoot);
55faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            }
56faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        });
57faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        mSearchScreen = new Scene(mSceneRoot);
58faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        mSearchScreen.setEnterAction(new Runnable() {
59faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            @Override
60faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            public void run() {
61faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase                LayoutInflater inflater = (LayoutInflater)
62faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase                        getSystemService(Context.LAYOUT_INFLATER_SERVICE);
63faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase                inflater.inflate(R.layout.search_screen, mSceneRoot);
64faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            }
65faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        });
66faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
67faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    }
68faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase
69faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    public void sendMessage(View view) {
70faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        if (mFirstTime) {
71faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            mFirstTime = false;
72d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haase            TransitionSet transition = new TransitionSet();
73ff58f92a0a77ad849ba714b5adac96790eca0048Chet Haase            transition.addTransition(new Fade().addTarget(R.id.resultsText).
74ff58f92a0a77ad849ba714b5adac96790eca0048Chet Haase                    addTarget(R.id.resultsList)).
75ff58f92a0a77ad849ba714b5adac96790eca0048Chet Haase                    addTransition(new ChangeBounds().addTarget(R.id.searchContainer));
76faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            mTransitionManager = new TransitionManager();
77faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            mTransitionManager.setTransition(mSearchScreen, transition);
78faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            mTransitionManager.setTransition(mResultsScreen, transition);
79faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        }
80faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        if (mCurrentScene == mResultsScreen) {
81faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            mTransitionManager.transitionTo(mSearchScreen);
82faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            mCurrentScene = mSearchScreen;
83faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        } else {
84faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            mTransitionManager.transitionTo(mResultsScreen);
85faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase            mCurrentScene = mResultsScreen;
86faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase        }
87faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase    }
88faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase}
89