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.LayoutInflater; 21faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haaseimport android.view.View; 22faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haaseimport android.view.ViewGroup; 23d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.Scene; 24d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.Transition; 25faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haaseimport android.widget.Button; 26faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haaseimport android.widget.LinearLayout; 27d82c8ac4db7091d2e976af4c89a1734465d20cd2Chet Haaseimport android.transition.TransitionManager; 28faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase 29faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase 30faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haaseimport java.util.HashMap; 31faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase 32faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haasepublic class UniqueIds extends Activity { 33faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase ViewGroup mSceneRoot; 34faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase static Scene mCurrentScene; 35faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase TransitionManager mTransitionManager = null; 36faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase HashMap<Button, ToggleScene> mSceneMap = new HashMap<Button, ToggleScene>(); 37faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase 38faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase @Override 39faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase public void onCreate(Bundle savedInstanceState) { 40faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase super.onCreate(savedInstanceState); 41faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase setContentView(R.layout.unique_id_test); 42faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase 43faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase LinearLayout container = (LinearLayout) findViewById(R.id.container); 44faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase LayoutInflater inflater = getLayoutInflater(); 45faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase Button button = (Button) inflater.inflate(R.layout.button_template, null); 46faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase container.addView(button); 47faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase ToggleScene scene = new ToggleScene(container, button); 48faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase mSceneMap.put(button, scene); 49faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase button = (Button) inflater.inflate(R.layout.button_template, null); 50faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase container.addView(button); 51faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase scene = new ToggleScene(container, button); 52faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase mSceneMap.put(button, scene); 53faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase } 54faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase 55faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase public void sendMessage(View view) { 56faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase mSceneMap.get(view).changeToScene(); 57faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase } 58faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase 59faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase class ToggleScene { 60faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase Scene mScene; 61faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase Transition mTransition; 62faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase Button mButton; 63faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase 64faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase ToggleScene(ViewGroup rootView, Button button) { 65faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase mScene = new Scene(rootView); 66faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase mButton = button; 67faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase mScene.setEnterAction(new Runnable() { 68faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase @Override 69faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase public void run() { 70faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase if (mButton.getLeft() == 0) { 71faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase mButton.offsetLeftAndRight(500); 72faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase } else { 73faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase int width = mButton.getWidth(); 74faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase mButton.setLeft(0); 75faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase mButton.setRight(width); 76faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase } 77faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase } 78faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase }); 79faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase } 80faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase 81faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase void changeToScene() { 82faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase TransitionManager.go(mScene); 83faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase } 84faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase } 85faebd8f0795b7d275fb4e503533c8c0c4a9acc21Chet Haase} 86