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

Commit 74040f2e authored by Coco Duan's avatar Coco Duan
Browse files

Provide responsive layoutParams for clock time complication

Bug: b/378163332
Flag: android.service.dreams.dreams_v2
Test: on foldable and tablet
Change-Id: Id3c4094285e00aaef314271cad8abeebad784c97
parent 50f04b29
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -137,7 +137,7 @@ public class DreamClockTimeComplicationTest extends SysuiTestCase {
    @Test
    public void testComplicationViewHolderContentAccessors() {
        final DreamClockTimeComplication.DreamClockTimeViewHolder viewHolder =
                new DreamClockTimeComplication.DreamClockTimeViewHolder(mView, mLayoutParams,
                new DreamClockTimeComplication.DreamClockTimeViewHolder(mView, () -> mLayoutParams,
                        mViewController);
        assertThat(viewHolder.getView()).isEqualTo(mView);
        assertThat(viewHolder.getLayoutParams()).isEqualTo(mLayoutParams);
+5 −4
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import com.android.systemui.util.condition.ConditionalCoreStartable;

import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Provider;

/**
 * Clock Time Complication that produce Clock Time view holder.
@@ -96,16 +97,16 @@ public class DreamClockTimeComplication implements Complication {
     */
    public static class DreamClockTimeViewHolder implements ViewHolder {
        private final TextClock mView;
        private final ComplicationLayoutParams mLayoutParams;
        private final Provider<ComplicationLayoutParams> mLayoutParamsProvider;

        @Inject
        DreamClockTimeViewHolder(
                @Named(DREAM_CLOCK_TIME_COMPLICATION_VIEW) TextClock view,
                @Named(DREAM_CLOCK_TIME_COMPLICATION_LAYOUT_PARAMS)
                        ComplicationLayoutParams layoutParams,
                Provider<ComplicationLayoutParams> layoutParamsProvider,
                DreamClockTimeViewController viewController) {
            mView = view;
            mLayoutParams = layoutParams;
            mLayoutParamsProvider = layoutParamsProvider;
            viewController.init();

            // Support localized AM/PM marker for 12h mode in content description.
@@ -122,7 +123,7 @@ public class DreamClockTimeComplication implements Complication {

        @Override
        public ComplicationLayoutParams getLayoutParams() {
            return mLayoutParams;
            return mLayoutParamsProvider.get();
        }
    }

+10 −4
Original line number Diff line number Diff line
@@ -16,9 +16,13 @@

package com.android.systemui.complication.dagger;

import static android.service.dreams.Flags.dreamsV2;

import android.content.Context;
import android.content.res.Resources;
import android.view.ViewGroup;

import com.android.systemui.communal.util.WindowSizeUtils;
import com.android.systemui.complication.ComplicationLayoutParams;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.flags.FeatureFlags;
@@ -52,14 +56,17 @@ public interface RegisteredComplicationsModule {
    int DREAM_HOME_CONTROLS_CHIP_COMPLICATION_WEIGHT = 4;
    int DREAM_MEDIA_ENTRY_COMPLICATION_WEIGHT = 3;
    int DREAM_WEATHER_COMPLICATION_WEIGHT = 0;
    int DREAM_WEATHER_COMPLICATION_COMPACT_WEIGHT = 5;

    /**
     * Provides layout parameters for the clock time complication.
     */
    @Provides
    @Named(DREAM_CLOCK_TIME_COMPLICATION_LAYOUT_PARAMS)
    static ComplicationLayoutParams provideClockTimeLayoutParams(FeatureFlags featureFlags) {
        if (featureFlags.isEnabled(Flags.HIDE_SMARTSPACE_ON_DREAM_OVERLAY)) {
    static ComplicationLayoutParams provideClockTimeLayoutParams(FeatureFlags featureFlags,
            Context context) {
        if (featureFlags.isEnabled(Flags.HIDE_SMARTSPACE_ON_DREAM_OVERLAY)
                && (!dreamsV2() || !WindowSizeUtils.isCompactWindowSize(context))) {
            return new ComplicationLayoutParams(0,
                    ViewGroup.LayoutParams.WRAP_CONTENT,
                    ComplicationLayoutParams.POSITION_BOTTOM
@@ -72,8 +79,7 @@ public interface RegisteredComplicationsModule {
                ComplicationLayoutParams.POSITION_BOTTOM
                        | ComplicationLayoutParams.POSITION_START,
                ComplicationLayoutParams.DIRECTION_UP,
                DREAM_CLOCK_TIME_COMPLICATION_WEIGHT,
                0 /*margin*/);
                DREAM_CLOCK_TIME_COMPLICATION_WEIGHT);
    }

    /**