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

Commit 096e9b48 authored by Darrell Shi's avatar Darrell Shi Committed by Android (Google) Code Review
Browse files

Merge "Show only enabled complications on dream overlay."

parents 484e4efc 5a7d9a84
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -31,8 +31,10 @@ import androidx.lifecycle.ViewModelStore;
import com.android.internal.policy.PhoneWindow;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitorCallback;
import com.android.settingslib.dream.DreamBackend;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dreams.complication.Complication;
import com.android.systemui.dreams.complication.ComplicationUtils;
import com.android.systemui.dreams.dagger.DreamOverlayComponent;
import com.android.systemui.dreams.touch.DreamOverlayTouchMonitor;

@@ -57,6 +59,7 @@ public class DreamOverlayService extends android.service.dreams.DreamOverlayServ
    // content area).
    private final DreamOverlayContainerViewController mDreamOverlayContainerViewController;
    private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
    private final DreamBackend mDreamBackend;

    // A reference to the {@link Window} used to hold the dream overlay.
    private Window mWindow;
@@ -109,6 +112,7 @@ public class DreamOverlayService extends android.service.dreams.DreamOverlayServ
        setCurrentState(Lifecycle.State.CREATED);
        mLifecycleRegistry = component.getLifecycleRegistry();
        mDreamOverlayTouchMonitor = component.getDreamOverlayTouchMonitor();
        mDreamBackend = component.getDreamBackend();
        mDreamOverlayTouchMonitor.init();
    }

@@ -130,6 +134,9 @@ public class DreamOverlayService extends android.service.dreams.DreamOverlayServ
    public void onStartDream(@NonNull WindowManager.LayoutParams layoutParams) {
        setCurrentState(Lifecycle.State.STARTED);
        mExecutor.execute(() -> {
            mStateController.setAvailableComplicationTypes(
                    ComplicationUtils.convertComplicationTypes(
                            mDreamBackend.getEnabledComplications()));
            addOverlayWindowLocked(layoutParams);
            setCurrentState(Lifecycle.State.RESUMED);
            mStateController.setOverlayActive(true);
+1 −3
Original line number Diff line number Diff line
@@ -131,9 +131,7 @@ public class DreamOverlayStateController implements
                .filter(complication -> {
                    @Complication.ComplicationType
                    final int requiredTypes = complication.getRequiredTypeAvailability();

                    return requiredTypes == Complication.COMPLICATION_TYPE_NONE
                            || (requiredTypes & getAvailableComplicationTypes()) == requiredTypes;
                    return (requiredTypes & getAvailableComplicationTypes()) == requiredTypes;
                })
                .collect(Collectors.toCollection(HashSet::new))
                : mComplications);
+12 −0
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@ import static com.android.systemui.dreams.complication.Complication.COMPLICATION

import com.android.settingslib.dream.DreamBackend;

import java.util.Set;

/**
 * A collection of utility methods for working with {@link Complication}.
 */
@@ -50,4 +52,14 @@ public class ComplicationUtils {
                return COMPLICATION_TYPE_NONE;
        }
    }

    /**
     * Converts a set of {@link com.android.settingslib.dream.DreamBackend.ComplicationType} to
     * a combined complications types state.
     */
    @Complication.ComplicationType
    public static int convertComplicationTypes(@DreamBackend.ComplicationType Set<Integer> types) {
        return types.stream().mapToInt(ComplicationUtils::convertComplicationType).reduce(
                COMPLICATION_TYPE_NONE, (a, b) -> a | b);
    }
}
+5 −0
Original line number Diff line number Diff line
@@ -44,6 +44,11 @@ public class DreamClockDateComplication implements Complication {
        mComponentFactory = componentFactory;
    }

    @Override
    public int getRequiredTypeAvailability() {
        return COMPLICATION_TYPE_DATE;
    }

    /**
     * Create {@link DreamClockDateViewHolder}.
     */
+5 −0
Original line number Diff line number Diff line
@@ -44,6 +44,11 @@ public class DreamClockTimeComplication implements Complication {
        mComponentFactory = componentFactory;
    }

    @Override
    public int getRequiredTypeAvailability() {
        return COMPLICATION_TYPE_TIME;
    }

    /**
     * Create {@link DreamClockTimeViewHolder}.
     */
Loading