1769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio/* 2769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio * Copyright (C) 2014 The Android Open Source Project 3769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio * 4769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio * Licensed under the Apache License, Version 2.0 (the "License"); 5769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio * you may not use this file except in compliance with the License. 6769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio * You may obtain a copy of the License at 7769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio * 8769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio * http://www.apache.org/licenses/LICENSE-2.0 9769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio * 10769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio * Unless required by applicable law or agreed to in writing, software 11769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio * distributed under the License is distributed on an "AS IS" BASIS, 12769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio * See the License for the specific language governing permissions and 14769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio * limitations under the License. 15769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio */ 16769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 17769630c8956fa844545d964166da90cc802fabacFabrice Di Megliopackage com.android.settings.dashboard; 18769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 192ebc8a01696c4e7dd29863b92a15ae0bbbbb254dJason Monkimport android.app.Activity; 20769630c8956fa844545d964166da90cc802fabacFabrice Di Meglioimport android.content.Context; 21769630c8956fa844545d964166da90cc802fabacFabrice Di Meglioimport android.util.AttributeSet; 22769630c8956fa844545d964166da90cc802fabacFabrice Di Meglioimport android.view.LayoutInflater; 23769630c8956fa844545d964166da90cc802fabacFabrice Di Meglioimport android.view.View; 24769630c8956fa844545d964166da90cc802fabacFabrice Di Meglioimport android.widget.FrameLayout; 25769630c8956fa844545d964166da90cc802fabacFabrice Di Meglioimport android.widget.ImageView; 26769630c8956fa844545d964166da90cc802fabacFabrice Di Meglioimport android.widget.TextView; 272ebc8a01696c4e7dd29863b92a15ae0bbbbb254dJason Monk 282ebc8a01696c4e7dd29863b92a15ae0bbbbb254dJason Monkimport com.android.settings.ProfileSelectDialog; 29769630c8956fa844545d964166da90cc802fabacFabrice Di Meglioimport com.android.settings.R; 30769630c8956fa844545d964166da90cc802fabacFabrice Di Meglioimport com.android.settings.Utils; 31769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 32769630c8956fa844545d964166da90cc802fabacFabrice Di Megliopublic class DashboardTileView extends FrameLayout implements View.OnClickListener { 33769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 34769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio private static final int DEFAULT_COL_SPAN = 1; 35769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 36769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio private ImageView mImageView; 37769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio private TextView mTitleTextView; 38769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio private TextView mStatusTextView; 3947a25e76409aec1ae29b983779addf39722377f6Fabrice Di Meglio private View mDivider; 40769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 41769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio private int mColSpan = DEFAULT_COL_SPAN; 42769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 43769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio private DashboardTile mTile; 44769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 45769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio public DashboardTileView(Context context) { 46769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio this(context, null); 47769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio } 48769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 49769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio public DashboardTileView(Context context, AttributeSet attrs) { 50769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio super(context, attrs); 51769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 52769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio final View view = LayoutInflater.from(context).inflate(R.layout.dashboard_tile, this); 53769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 54769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio mImageView = (ImageView) view.findViewById(R.id.icon); 55769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio mTitleTextView = (TextView) view.findViewById(R.id.title); 56769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio mStatusTextView = (TextView) view.findViewById(R.id.status); 5747a25e76409aec1ae29b983779addf39722377f6Fabrice Di Meglio mDivider = view.findViewById(R.id.tile_divider); 58769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 59769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio setOnClickListener(this); 6039490546d37db544caf489a9c19e4a793131fe58Fabrice Di Meglio setBackgroundResource(R.drawable.dashboard_tile_background); 6139490546d37db544caf489a9c19e4a793131fe58Fabrice Di Meglio setFocusable(true); 62769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio } 63769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 64769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio public TextView getTitleTextView() { 65769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio return mTitleTextView; 66769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio } 67769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 68769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio public TextView getStatusTextView() { 69769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio return mStatusTextView; 70769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio } 71769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 72769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio public ImageView getImageView() { 73769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio return mImageView; 74769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio } 75769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 76769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio public void setTile(DashboardTile tile) { 77769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio mTile = tile; 78769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio } 79769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 8047a25e76409aec1ae29b983779addf39722377f6Fabrice Di Meglio public void setDividerVisibility(boolean visible) { 8147a25e76409aec1ae29b983779addf39722377f6Fabrice Di Meglio mDivider.setVisibility(visible ? View.VISIBLE : View.GONE); 8247a25e76409aec1ae29b983779addf39722377f6Fabrice Di Meglio } 8347a25e76409aec1ae29b983779addf39722377f6Fabrice Di Meglio 84769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio void setColumnSpan(int span) { 85769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio mColSpan = span; 86769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio } 87769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 88769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio int getColumnSpan() { 89769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio return mColSpan; 90769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio } 91769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio 92769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio @Override 93769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio public void onClick(View v) { 94769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio if (mTile.fragment != null) { 95769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio Utils.startWithFragment(getContext(), mTile.fragment, mTile.fragmentArguments, null, 0, 96a9e77993d1f82a230ff381134d4a22eff4a907cdFabrice Di Meglio mTile.titleRes, mTile.getTitle(getResources())); 97769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio } else if (mTile.intent != null) { 982ebc8a01696c4e7dd29863b92a15ae0bbbbb254dJason Monk int numUserHandles = mTile.userHandle.size(); 992ebc8a01696c4e7dd29863b92a15ae0bbbbb254dJason Monk if (numUserHandles > 1) { 1002ebc8a01696c4e7dd29863b92a15ae0bbbbb254dJason Monk ProfileSelectDialog.show(((Activity) getContext()).getFragmentManager(), mTile); 1012ebc8a01696c4e7dd29863b92a15ae0bbbbb254dJason Monk } else if (numUserHandles == 1) { 1022ebc8a01696c4e7dd29863b92a15ae0bbbbb254dJason Monk getContext().startActivityAsUser(mTile.intent, mTile.userHandle.get(0)); 1032ebc8a01696c4e7dd29863b92a15ae0bbbbb254dJason Monk } else { 1042ebc8a01696c4e7dd29863b92a15ae0bbbbb254dJason Monk getContext().startActivity(mTile.intent); 1052ebc8a01696c4e7dd29863b92a15ae0bbbbb254dJason Monk } 106769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio } 107769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio } 108769630c8956fa844545d964166da90cc802fabacFabrice Di Meglio} 109