Android Open Source - The-Weather-App L Utils






From Project

Back to project page The-Weather-App.

License

The source code is released under:

Apache License

If you think the Android project The-Weather-App listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright 2014 Google Inc. All rights reserved.
 *//w ww.j a v  a 2  s  . c  om
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.sachinshinde.theweatherapp.utils;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.ActivityOptions;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.Typeface;
import android.graphics.drawable.AnimatedStateListDrawable;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Handler;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.ActivityOptionsCompat;
import android.support.v7.app.ActionBarActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.sachinshinde.theweatherapp.R;


@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public class LUtils {
    private static final int[] STATE_CHECKED = new int[]{android.R.attr.state_checked};
    private static final int[] STATE_UNCHECKED = new int[]{};

    private static Typeface sMediumTypeface;

    protected ActionBarActivity mActivity;
    private Handler mHandler = new Handler();

    private LUtils(ActionBarActivity activity) {
        mActivity = activity;
    }

    public static LUtils getInstance(ActionBarActivity activity) {
        return new LUtils(activity);
    }

    private static boolean hasL() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP;
    }

    public void startActivityWithTransition(Intent intent, final View clickedView,
                                            final String transitionName) {
        ActivityOptions options = null;
        if (hasL() && clickedView != null && !TextUtils.isEmpty(transitionName)) {
//            options = ActivityOptions.makeSceneTransitionAnimation(
//                    mActivity, clickedView, transitionName);
        }

        mActivity.startActivity(intent, (options != null) ? options.toBundle() : null);
    }

    public void setMediumTypeface(TextView textView) {
        if (hasL()) {
            if (sMediumTypeface == null) {
                sMediumTypeface = Typeface.create("sans-serif-medium", Typeface.NORMAL);
            }

            textView.setTypeface(sMediumTypeface);
        } else {
            textView.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD);
        }
    }

    public int getStatusBarColor() {
        if (!hasL()) {
            // On pre-L devices, you can have any status bar color so long as it's black.
            return Color.BLACK;
        }

        return mActivity.getWindow().getStatusBarColor();
    }

    public void setStatusBarColor(int color) {
        if (!hasL()) {
            return;
        }

        mActivity.getWindow().setStatusBarColor(color);
    }

//    public void setOrAnimatePlusCheckIcon(final ImageView imageView, boolean isCheck,
//                                          boolean allowAnimate) {
//        if (!hasL()) {
//            compatSetOrAnimatePlusCheckIcon(imageView, isCheck, allowAnimate);
//            return;
//        }
//
//        Drawable drawable = imageView.getDrawable();
//        if (!(drawable instanceof AnimatedStateListDrawable)) {
//            drawable = mActivity.getResources().getDrawable(R.drawable.add_schedule_fab_icon_anim);
//            imageView.setImageDrawable(drawable);
//        }
//        imageView.setColorFilter(isCheck ?
//                mActivity.getResources().getColor(R.color.theme_accent_1) : Color.WHITE);
//        if (allowAnimate) {
//            imageView.setImageState(isCheck ? STATE_UNCHECKED : STATE_CHECKED, false);
//            drawable.jumpToCurrentState();
//            imageView.setImageState(isCheck ? STATE_CHECKED : STATE_UNCHECKED, false);
//        } else {
//            imageView.setImageState(isCheck ? STATE_CHECKED : STATE_UNCHECKED, false);
//            drawable.jumpToCurrentState();
//        }
//    }

//    public void compatSetOrAnimatePlusCheckIcon(final ImageView imageView, boolean isCheck,
//                                                boolean allowAnimate) {
//
//        final int imageResId = isCheck
//                ? R.drawable.add_schedule_button_icon_checked
//                : R.drawable.add_fab;
//
//        if (imageView.getTag() != null) {
//            if (imageView.getTag() instanceof Animator) {
//                Animator anim = (Animator) imageView.getTag();
//                anim.end();
//                imageView.setAlpha(1f);
//            }
//        }
//
//        if (allowAnimate && isCheck) {
//            int duration = mActivity.getResources().getInteger(
//                    android.R.integer.config_shortAnimTime);
//
//            Animator outAnimator = ObjectAnimator.ofFloat(imageView, View.ALPHA, 0f);
//            outAnimator.setDuration(duration / 2);
//            outAnimator.addListener(new AnimatorListenerAdapter() {
//                @Override
//                public void onAnimationEnd(Animator animation) {
//                    imageView.setImageResource(imageResId);
//                }
//            });
//
//            AnimatorSet inAnimator = new AnimatorSet();
//            outAnimator.setDuration(duration);
//            inAnimator.playTogether(
//                    ObjectAnimator.ofFloat(imageView, View.ALPHA, 1f),
//                    ObjectAnimator.ofFloat(imageView, View.SCALE_X, 0f, 1f),
//                    ObjectAnimator.ofFloat(imageView, View.SCALE_Y, 0f, 1f)
//            );
//
//            AnimatorSet set = new AnimatorSet();
//            set.playSequentially(outAnimator, inAnimator);
//            set.addListener(new AnimatorListenerAdapter() {
//                @Override
//                public void onAnimationEnd(Animator animation) {
//                    imageView.setTag(null);
//                }
//            });
//            imageView.setTag(set);
//            set.start();
//        } else {
//            mHandler.post(new Runnable() {
//                @Override
//                public void run() {
//                    imageView.setImageResource(imageResId);
//                }
//            });
//        }
//    }

    public static void launchActivity(Activity activity, View transitionView, Class<?> cls) {
        ActivityOptionsCompat options = ActivityOptionsCompat.makeCustomAnimation(activity, R.anim.slide_in_right, R.anim.slide_out_left);
//                ActivityOptionsCompat.makeSceneTransitionAnimation(
//                        activity, transitionView, "");
        Intent intent = new Intent(activity, cls);
        ActivityCompat.startActivity(activity, intent, options.toBundle());
//        activity.overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
    }
}




Java Source Code List

com.sachinshinde.theweatherapp.ApplicationTest.java
com.sachinshinde.theweatherapp.db.LocationDBHandler.java
com.sachinshinde.theweatherapp.db.LocationsProvider.java
com.sachinshinde.theweatherapp.db.Locations.java
com.sachinshinde.theweatherapp.libs.SwipeDismissRecyclerViewTouchListener.java
com.sachinshinde.theweatherapp.libs.SwipeDismissTouchListener.java
com.sachinshinde.theweatherapp.ui.main.activities.AboutClass.java
com.sachinshinde.theweatherapp.ui.main.activities.AllCities.java
com.sachinshinde.theweatherapp.ui.main.activities.BaseActivity.java
com.sachinshinde.theweatherapp.ui.main.activities.LocationDetailActivity.java
com.sachinshinde.theweatherapp.ui.main.activities.LocationListActivity.java
com.sachinshinde.theweatherapp.ui.main.fragments.LocationDetailFragment.java
com.sachinshinde.theweatherapp.ui.main.fragments.LocationListFragment.java
com.sachinshinde.theweatherapp.ui.main.fragments.NavigationDrawerFragment.java
com.sachinshinde.theweatherapp.ui.main.views.DrawShadowFrameLayout.java
com.sachinshinde.theweatherapp.ui.main.views.MultiSwipeRefreshLayout.java
com.sachinshinde.theweatherapp.ui.main.views.ScrimInsetsFrameLayout.java
com.sachinshinde.theweatherapp.ui.main.views.ScrimInsetsScrollView.java
com.sachinshinde.theweatherapp.utils.ChangeLog.java
com.sachinshinde.theweatherapp.utils.Constant.java
com.sachinshinde.theweatherapp.utils.LUtils.java
com.sachinshinde.theweatherapp.utils.LogUtils.java
com.sachinshinde.theweatherapp.utils.PrefUtils.java
com.sachinshinde.theweatherapp.utils.UIUtils.java
com.sachinshinde.theweatherapp.utils.Utilities.java