110e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase/* 28fe7e0a88ecc4a995a3a86b2ef60143fb0ffa1b0Jorim Jaggi * Copyright (C) 2016 The Android Open Source Project 310e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * 410e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * Licensed under the Apache License, Version 2.0 (the "License"); 510e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * you may not use this file except in compliance with the License. 610e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * You may obtain a copy of the License at 710e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * 810e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * http://www.apache.org/licenses/LICENSE-2.0 910e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * 1010e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * Unless required by applicable law or agreed to in writing, software 1110e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * distributed under the License is distributed on an "AS IS" BASIS, 1210e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1310e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * See the License for the specific language governing permissions and 148fe7e0a88ecc4a995a3a86b2ef60143fb0ffa1b0Jorim Jaggi * limitations under the License 1510e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase */ 1610e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase 178fe7e0a88ecc4a995a3a86b2ef60143fb0ffa1b0Jorim Jaggipackage com.android.server.wm.animation; 1810e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase 1910e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haaseimport android.graphics.Rect; 208fe7e0a88ecc4a995a3a86b2ef60143fb0ffa1b0Jorim Jaggiimport android.view.animation.ClipRectAnimation; 218fe7e0a88ecc4a995a3a86b2ef60143fb0ffa1b0Jorim Jaggiimport android.view.animation.Transformation; 2210e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase 2310e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase/** 2410e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * Special case of ClipRectAnimation that animates only the left/right 2510e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * dimensions of the clip, picking up the other dimensions from whatever is 2610e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * set on the transform already. 2710e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * 2810e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * @hide 2910e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase */ 3010e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haasepublic class ClipRectLRAnimation extends ClipRectAnimation { 3110e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase 3210e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase /** 3310e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * Constructor. Passes in 0 for Top/Bottom parameters of ClipRectAnimation 3410e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase */ 3510e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase public ClipRectLRAnimation(int fromL, int fromR, int toL, int toR) { 3610e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase super(fromL, 0, fromR, 0, toL, 0, toR, 0); 3710e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase } 3810e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase 3910e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase /** 4010e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * Calculates and sets clip rect on given transformation. It uses existing values 4110e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase * on the Transformation for Top/Bottom clip parameters. 4210e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase */ 4310e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase @Override 4410e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase protected void applyTransformation(float it, Transformation tr) { 4510e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase Rect oldClipRect = tr.getClipRect(); 4610e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase tr.setClipRect(mFromRect.left + (int) ((mToRect.left - mFromRect.left) * it), 4710e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase oldClipRect.top, 4810e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase mFromRect.right + (int) ((mToRect.right - mFromRect.right) * it), 4910e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase oldClipRect.bottom); 5010e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase } 5110e23ab61b820fb3149b2f89003753d98ebd6a80Chet Haase} 52