/* * Copyright (C) 2019 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.NonNull; import androidx.annotation.Nullable; /** * AppEntityInfo is responsible for storing app information shown in {@link R.xml.app_view.xml}. */ public class AppEntityInfo { private final Drawable mIcon; private final CharSequence mTitle; private final CharSequence mSummary; private final View.OnClickListener mClickListener; /** * Gets the drawable for the icon of app entity. * * @return the drawable for the icon of app entity. */ public Drawable getIcon() { return mIcon; } /** * Gets the text for the title of app enitity. * * @return the text for the title of app enitity. */ public CharSequence getTitle() { return mTitle; } /** * Gets the text for the summary of app enitity. * * @return the text for the summary of app enitity. */ public CharSequence getSummary() { return mSummary; } /** * Gets the click listener for the app entity view. * * @return click listener for the app entity view. */ public View.OnClickListener getClickListener() { return mClickListener; } private AppEntityInfo(Builder builder) { mIcon = builder.mIcon; mTitle = builder.mTitle; mSummary = builder.mSummary; mClickListener = builder.mClickListener; } /** * Builder class for {@link AppEntityInfo} */ public static class Builder { private Drawable mIcon; private CharSequence mTitle; private CharSequence mSummary; private View.OnClickListener mClickListener; /** * Creates an instance of a {@link AppEntityInfo} based on the current builder settings. * * @return The {@link AppEntityInfo}. */ public AppEntityInfo build() { return new AppEntityInfo(this); } /** * Sets the drawable for the icon. */ public Builder setIcon(@NonNull Drawable icon) { mIcon = icon; return this; } /** * Sets the text for the title. */ public Builder setTitle(@Nullable CharSequence title) { mTitle = title; return this; } /** * Sets the text for the summary. */ public Builder setSummary(@Nullable CharSequence summary) { mSummary = summary; return this; } /** * Sets the click listener for app entity view. */ public Builder setOnClickListener(@Nullable View.OnClickListener clickListener) { mClickListener = clickListener; return this; } } }