120 lines
3.4 KiB
Java
120 lines
3.4 KiB
Java
/*
|
|
* Copyright (C) 2018 The Android Open Source Project
|
|
*
|
|
* 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.android.settingslib.widget;
|
|
|
|
import android.graphics.drawable.Drawable;
|
|
import android.view.View;
|
|
|
|
import androidx.annotation.IntRange;
|
|
import androidx.annotation.Nullable;
|
|
|
|
import java.util.Comparator;
|
|
import com.android.settingslib.widget.preference.barchart.R;
|
|
/**
|
|
* A class responsible for saving bar view information.
|
|
*/
|
|
public class BarViewInfo implements Comparable<BarViewInfo> {
|
|
|
|
private final Drawable mIcon;
|
|
private View.OnClickListener mClickListener;
|
|
private CharSequence mTitle;
|
|
private CharSequence mSummary;
|
|
private @Nullable CharSequence mContentDescription;
|
|
// A number indicates this bar's height. The larger number shows a higher bar view.
|
|
private int mHeight;
|
|
// A real height of bar view.
|
|
private int mNormalizedHeight;
|
|
|
|
/**
|
|
* Construct a BarViewInfo instance.
|
|
*
|
|
* @param icon The icon of bar view.
|
|
* @param barHeight The height of bar view. Larger number shows a higher bar view.
|
|
* @param title The string for title. If this is null, use the height of the bar.
|
|
* @param summary The string for summary.
|
|
* @param contentDescription Optional text that briefly describes the contents of the icon.
|
|
*/
|
|
public BarViewInfo(Drawable icon, @IntRange(from = 0) int barHeight,
|
|
@Nullable CharSequence title, CharSequence summary,
|
|
@Nullable CharSequence contentDescription) {
|
|
mIcon = icon;
|
|
mHeight = barHeight;
|
|
mTitle = title;
|
|
mSummary = summary;
|
|
mContentDescription = contentDescription;
|
|
}
|
|
|
|
/**
|
|
* Set a click listener for bar view.
|
|
*/
|
|
public void setClickListener(@Nullable View.OnClickListener listener) {
|
|
mClickListener = listener;
|
|
}
|
|
|
|
@Override
|
|
public int compareTo(BarViewInfo other) {
|
|
// Descending order
|
|
return Comparator.comparingInt((BarViewInfo barViewInfo) -> barViewInfo.mHeight)
|
|
.compare(other, this);
|
|
}
|
|
|
|
void setHeight(@IntRange(from = 0) int height) {
|
|
mHeight = height;
|
|
}
|
|
|
|
void setTitle(CharSequence title) {
|
|
mTitle = title;
|
|
}
|
|
|
|
void setSummary(CharSequence summary) {
|
|
mSummary = summary;
|
|
}
|
|
|
|
Drawable getIcon() {
|
|
return mIcon;
|
|
}
|
|
|
|
int getHeight() {
|
|
return mHeight;
|
|
}
|
|
|
|
View.OnClickListener getClickListener() {
|
|
return mClickListener;
|
|
}
|
|
|
|
@Nullable
|
|
CharSequence getTitle() {
|
|
return mTitle;
|
|
}
|
|
|
|
CharSequence getSummary() {
|
|
return mSummary;
|
|
}
|
|
|
|
public @Nullable CharSequence getContentDescription() {
|
|
return mContentDescription;
|
|
}
|
|
|
|
void setNormalizedHeight(@IntRange(from = 0) int barHeight) {
|
|
mNormalizedHeight = barHeight;
|
|
}
|
|
|
|
int getNormalizedHeight() {
|
|
return mNormalizedHeight;
|
|
}
|
|
}
|