1733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki/* 2733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki * Copyright (C) 2016 The Android Open Source Project 3733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki * 4733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki * Licensed under the Apache License, Version 2.0 (the "License"); 5733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki * you may not use this file except in compliance with the License. 6733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki * You may obtain a copy of the License at 7733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki * 8733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki * http://www.apache.org/licenses/LICENSE-2.0 9733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki * 10733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki * Unless required by applicable law or agreed to in writing, software 11733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki * distributed under the License is distributed on an "AS IS" BASIS, 12733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki * See the License for the specific language governing permissions and 14733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki * limitations under the License. 15733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki */ 16733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki 17733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Arakipackage android.support.transition; 18733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki 19733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Arakiimport android.animation.Animator; 20733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Arakiimport android.view.ViewGroup; 21733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki 22733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Arakiclass VisibilityIcs extends TransitionIcs implements VisibilityImpl { 23733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki 24733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki @Override 25733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki public void init(TransitionInterface external, Object internal) { 26733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki mExternalTransition = external; 27733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki if (internal == null) { 28733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki mTransition = new VisibilityWrapper((VisibilityInterface) external); 29733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki } else { 30733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki mTransition = (VisibilityPort) internal; 31733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki } 32733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki } 33733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki 34733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki @Override 35733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki public boolean isVisible(TransitionValues values) { 36733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki return ((VisibilityPort) mTransition).isVisible(values); 37733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki } 38733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki 39733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki @Override 40733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki public Animator onAppear(ViewGroup sceneRoot, TransitionValues startValues, int startVisibility, 41733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki TransitionValues endValues, int endVisibility) { 42733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki return ((VisibilityPort) mTransition).onAppear(sceneRoot, startValues, startVisibility, 43733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki endValues, endVisibility); 44733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki } 45733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki 46733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki @Override 47733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki public Animator onDisappear(ViewGroup sceneRoot, TransitionValues startValues, 48733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki int startVisibility, TransitionValues endValues, int endVisibility) { 49733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki return ((VisibilityPort) mTransition).onDisappear(sceneRoot, startValues, startVisibility, 50733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki endValues, endVisibility); 51733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki } 52733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki 53733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki private static class VisibilityWrapper extends VisibilityPort { 54733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki 55733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki private VisibilityInterface mVisibility; 56733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki 57733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki VisibilityWrapper(VisibilityInterface visibility) { 58733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki mVisibility = visibility; 59733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki } 60733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki 61733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki @Override 62733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki public void captureStartValues(TransitionValues transitionValues) { 63733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki mVisibility.captureStartValues(transitionValues); 64733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki } 65733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki 66733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki @Override 67733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki public void captureEndValues(TransitionValues transitionValues) { 68733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki mVisibility.captureEndValues(transitionValues); 69733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki } 70733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki 71733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki @Override 72733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki public Animator createAnimator(ViewGroup sceneRoot, TransitionValues startValues, 73733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki TransitionValues endValues) { 74733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki return mVisibility.createAnimator(sceneRoot, startValues, endValues); 75733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki } 76733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki 77733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki @Override 78733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki public boolean isVisible(TransitionValues values) { 79733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki return mVisibility.isVisible(values); 80733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki } 81733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki 82733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki @Override 83733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki public Animator onAppear(ViewGroup sceneRoot, TransitionValues startValues, 84733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki int startVisibility, 85733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki TransitionValues endValues, int endVisibility) { 86733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki return mVisibility.onAppear(sceneRoot, startValues, startVisibility, 87733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki endValues, endVisibility); 88733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki } 89733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki 90733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki @Override 91733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki public Animator onDisappear(ViewGroup sceneRoot, TransitionValues startValues, 92733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki int startVisibility, TransitionValues endValues, int endVisibility) { 93733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki return mVisibility.onDisappear(sceneRoot, startValues, startVisibility, 94733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki endValues, endVisibility); 95733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki } 96733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki 97733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki } 98733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki 99733b5aaadf1b1f5dc3038876dbfbabb79f649b03Yuichi Araki} 100