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