/* * ****************************************************************************** * Copyright (c) 2013-2014 Gabriele Mariotti. * * 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 it.gmariotti.cardslib.demo.extras.utils; import android.annotation.TargetApi; import android.app.ActivityOptions; import android.content.Intent; import android.graphics.Color; import android.graphics.Outline; import android.os.Build; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.widget.Toolbar; import android.view.View; import android.view.ViewOutlineProvider; import android.widget.ImageButton; import it.gmariotti.cardslib.demo.extras.R; @TargetApi(Build.VERSION_CODES.LOLLIPOP) public class LPreviewUtilsBase { protected ActionBarActivity mActivity; private ActionBarDrawerToggle mDrawerToggle; private Toolbar mActionBarToolbar; LPreviewUtilsBase(ActionBarActivity activity) { mActivity = activity; } public static LPreviewUtilsBase getInstance(ActionBarActivity activity) { return new LPreviewUtilsBase(activity); } public boolean hasL() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP; } //---------------------------------------------------------------------------- // ActionBar //---------------------------------------------------------------------------- public boolean shouldChangeActionBarForDrawer() { return false; } //---------------------------------------------------------------------------- // Circle Button //---------------------------------------------------------------------------- public void setupCircleButton(ImageButton sourceButton) { if (hasL()){ if (sourceButton != null){ final int size = mActivity.getResources().getDimensionPixelSize(R.dimen.hd_fab_size); sourceButton.setOutlineProvider( new ViewOutlineProvider(){ @Override public void getOutline(View view, Outline outline) { outline.setOval(0, 0, size, size); } }); sourceButton.setClipToOutline(true); } } } //---------------------------------------------------------------------------- // Navigation Drawer //---------------------------------------------------------------------------- public ActionBarDrawerToggle setupDrawerToggle(DrawerLayout drawerLayout, final DrawerLayout.DrawerListener drawerListener){ mDrawerToggle = new ActionBarDrawerToggle( mActivity, /* host Activity */ drawerLayout, /* DrawerLayout object */ mActionBarToolbar, /* nav drawer icon to replace 'Up' caret */ R.string.app_name, /* "open drawer" description */ R.string.app_name /* "close drawer" description */ ); drawerLayout.setDrawerListener(mDrawerToggle); return mDrawerToggle; } //---------------------------------------------------------------------------- // Methods //---------------------------------------------------------------------------- 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 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 setViewElevation(View v, float elevation) { if (hasL()) { v.setElevation(elevation); } } }