16cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi/* 26cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi * Copyright (C) 2017 The Android Open Source Project 36cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi * 46cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi * Licensed under the Apache License, Version 2.0 (the "License"); you may not 56cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi * use this file except in compliance with the License. You may obtain a copy of 66cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi * the License at 76cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi * 86cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi * http://www.apache.org/licenses/LICENSE-2.0 96cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi * 106cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi * Unless required by applicable law or agreed to in writing, software 116cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 126cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 136cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi * License for the specific language governing permissions and limitations under 146cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi * the License. 156cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi */ 166cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi 176cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishipackage com.android.storagemanager.utils; 186cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi 196cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishiimport android.view.View; 206cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishiimport android.view.animation.Animation; 216cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishiimport android.view.animation.Animation.AnimationListener; 226cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishiimport android.view.animation.AnimationUtils; 236cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi 246cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishipublic class Utils { 256cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi 266cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi public static void handleLoadingContainer( 276cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi View loading, View doneLoading, boolean done, boolean animate) { 286cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi setViewShown(loading, !done, animate); 296cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi setViewShown(doneLoading, done, animate); 306cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi } 316cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi 326cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi private static void setViewShown(final View view, boolean shown, boolean animate) { 336cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi if (animate) { 346cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi Animation animation = 356cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi AnimationUtils.loadAnimation( 366cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi view.getContext(), 376cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi shown ? android.R.anim.fade_in : android.R.anim.fade_out); 386cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi if (shown) { 396cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi view.setVisibility(View.VISIBLE); 406cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi } else { 416cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi animation.setAnimationListener( 426cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi new AnimationListener() { 436cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi @Override 446cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi public void onAnimationStart(Animation animation) {} 456cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi 466cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi @Override 476cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi public void onAnimationRepeat(Animation animation) {} 486cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi 496cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi @Override 506cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi public void onAnimationEnd(Animation animation) { 516cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi view.setVisibility(View.GONE); 526cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi } 536cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi }); 546cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi } 556cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi view.startAnimation(animation); 566cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi } else { 576cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi view.clearAnimation(); 586cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi view.setVisibility(shown ? View.VISIBLE : View.GONE); 596cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi } 606cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi } 616cec0d1675449e0e5339a2ce924a44513c41bf51Daniel Nishi} 62