blob: 5b05484f223eace788520f0e48363a30fcf5adb7 [file] [log] [blame]
/*
* Copyright (C) 2020 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.customization.widget;
import android.content.Context;
import android.content.res.ColorStateList;
import android.util.AttributeSet;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.android.customization.model.theme.ThemeBundle;
import com.android.wallpaper.R;
/** A view for displaying style info. */
public class ThemeInfoView extends LinearLayout {
private static final int WIFI_ICON_PREVIEW_INDEX = 0;
private static final int SHAPE_PREVIEW_INDEX = 0;
private TextView mTitle;
private TextView mFontPreviewTextView;
private ImageView mIconPreviewImageView;
private ImageView mAppPreviewImageView;
private ImageView mShapePreviewImageView;
public ThemeInfoView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
mTitle = findViewById(R.id.style_info_title);
mFontPreviewTextView = findViewById(R.id.font_preview);
mIconPreviewImageView = findViewById(R.id.qs_preview_icon);
mAppPreviewImageView = findViewById(R.id.app_preview_icon);
mShapePreviewImageView = findViewById(R.id.shape_preview_icon);
}
/** Populates theme info. */
public void populateThemeInfo(@NonNull ThemeBundle selectedTheme) {
ThemeBundle.PreviewInfo previewInfo = selectedTheme.getPreviewInfo();
if (previewInfo != null) {
mTitle.setText(getContext().getString(
R.string.style_info_description, selectedTheme.getTitle()));
if (previewInfo.headlineFontFamily != null) {
mTitle.setTypeface(previewInfo.headlineFontFamily);
mFontPreviewTextView.setTypeface(previewInfo.headlineFontFamily);
}
if (previewInfo.icons.get(WIFI_ICON_PREVIEW_INDEX) != null) {
mIconPreviewImageView.setImageDrawable(
previewInfo.icons.get(WIFI_ICON_PREVIEW_INDEX));
}
if (previewInfo.shapeAppIcons.get(SHAPE_PREVIEW_INDEX) != null) {
mAppPreviewImageView.setBackground(
previewInfo.shapeAppIcons.get(SHAPE_PREVIEW_INDEX));
}
if (previewInfo.shapeDrawable != null) {
mShapePreviewImageView.setImageDrawable(previewInfo.shapeDrawable);
mShapePreviewImageView.setImageTintList(
ColorStateList.valueOf(previewInfo.resolveAccentColor(getResources())));
}
}
}
}