Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9504d243 authored by Wenbo Jie (介文博)'s avatar Wenbo Jie (介文博) Committed by Android (Google) Code Review
Browse files

Merge "[DocsUI M3] Util function for resolving material colors" into main

parents b60cefbe df956df6
Loading
Loading
Loading
Loading
+7 −15
Original line number Diff line number Diff line
@@ -22,13 +22,13 @@ import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.util.Log;
import android.util.TypedValue;
import android.view.MotionEvent;

import androidx.annotation.ColorRes;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;

import com.android.documentsui.R;
import com.android.documentsui.util.ColorUtils;

/**
 * A {@link SwipeRefreshLayout} that does not intercept any touch events. This relies on its nested
@@ -46,20 +46,12 @@ public class DocumentsSwipeRefreshLayout extends SwipeRefreshLayout {
        super(context, attrs);

        if (isUseMaterial3FlagEnabled()) {
            TypedValue spinnerColor = new TypedValue();
            context.getTheme()
                    .resolveAttribute(
                            com.google.android.material.R.attr.colorOnPrimaryContainer,
                            spinnerColor,
                            true);
            setColorSchemeResources(spinnerColor.resourceId);
            TypedValue spinnerBackgroundColor = new TypedValue();
            context.getTheme()
                    .resolveAttribute(
                            com.google.android.material.R.attr.colorPrimaryContainer,
                            spinnerBackgroundColor,
                            true);
            setProgressBackgroundColorSchemeResource(spinnerBackgroundColor.resourceId);
            setColorSchemeColors(
                    ColorUtils.resolveMaterialColorAttribute(
                            context, com.google.android.material.R.attr.colorOnPrimaryContainer));
            setProgressBackgroundColorSchemeColor(
                    ColorUtils.resolveMaterialColorAttribute(
                            context, com.google.android.material.R.attr.colorPrimaryContainer));
        } else {
            final int[] styledAttrs = {android.R.attr.colorAccent};

+36 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2025 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.documentsui.util

import android.content.Context
import android.util.TypedValue
import androidx.annotation.AttrRes

class ColorUtils {
    companion object {
        /**
         * Resolve a color attribute from the Material3 theme, example usage.
         * resolveMaterialColorAttribute(context, com.google.android.material.R.attr.XXX).
         */
        @JvmStatic
        fun resolveMaterialColorAttribute(context: Context, @AttrRes colorAttrId: Int): Int {
            val typedValue = TypedValue()
            context.theme.resolveAttribute(colorAttrId, typedValue, true)
            return typedValue.data
        }
    }
}