/* * Copyright (C) 2015 AChep@xda <artemchep@gmail.com> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */ package com.achep.base.ui.widgets; import android.content.Context; import android.content.res.Resources; import android.support.annotation.NonNull; import android.text.TextUtils; import android.util.AttributeSet; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.achep.acdisplay.R; import com.achep.base.dashboard.DashboardTile; import com.achep.base.ui.activities.SettingsActivity; import com.achep.base.utils.RippleUtils; public class DashboardTileView extends LinearLayout implements View.OnClickListener { private static final int DEFAULT_COL_SPAN = 1; private ImageView mImageView; private TextView mTitleTextView; private TextView mStatusTextView; private View mDivider; private int mColSpan = DEFAULT_COL_SPAN; private DashboardTile mTile; public DashboardTileView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onFinishInflate() { super.onFinishInflate(); mImageView = (ImageView) findViewById(R.id.icon); mTitleTextView = (TextView) findViewById(R.id.title); mStatusTextView = (TextView) findViewById(R.id.status); mDivider = findViewById(R.id.tile_divider); setOnClickListener(this); setFocusable(true); RippleUtils.makeFor(this, true); } public void setDashboardTile(@NonNull DashboardTile tile) { mTile = tile; Resources res = getResources(); if (tile.iconRes > 0) { mImageView.setImageResource(tile.iconRes); } else { mImageView.setImageDrawable(null); mImageView.setBackground(null); } mTitleTextView.setText(tile.getTitle(res)); CharSequence summary = tile.getSummary(res); if (!TextUtils.isEmpty(summary)) { mStatusTextView.setVisibility(View.VISIBLE); mStatusTextView.setText(summary); } else { mStatusTextView.setVisibility(View.GONE); } } public void setDividerVisibility(boolean visible) { mDivider.setVisibility(visible ? View.VISIBLE : View.GONE); } void setColumnSpan(int span) { mColSpan = span; } int getColumnSpan() { return mColSpan; } @Override public void onClick(View v) { if (mTile.fragment != null) { SettingsActivity.Utils.startWithFragment(getContext(), mTile.fragment, mTile.fragmentArguments, null, 0, mTile.titleRes, mTile.getTitle(getResources())); } else if (mTile.intent != null) { getContext().startActivity(mTile.intent); } } }