Merge "Remove ComplicationHostViewComponent." into tm-dev

This commit is contained in:
Bryce Lee
2022-03-02 21:12:15 +00:00
committed by Android (Google) Code Review
7 changed files with 72 additions and 118 deletions

View File

@@ -27,7 +27,6 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.systemui.R; import com.android.systemui.R;
import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dreams.complication.ComplicationHostViewController; import com.android.systemui.dreams.complication.ComplicationHostViewController;
import com.android.systemui.dreams.complication.dagger.ComplicationHostViewComponent;
import com.android.systemui.dreams.dagger.DreamOverlayComponent; import com.android.systemui.dreams.dagger.DreamOverlayComponent;
import com.android.systemui.dreams.dagger.DreamOverlayModule; import com.android.systemui.dreams.dagger.DreamOverlayModule;
import com.android.systemui.util.ViewController; import com.android.systemui.util.ViewController;
@@ -69,7 +68,7 @@ public class DreamOverlayContainerViewController extends ViewController<DreamOve
@Inject @Inject
public DreamOverlayContainerViewController( public DreamOverlayContainerViewController(
DreamOverlayContainerView containerView, DreamOverlayContainerView containerView,
ComplicationHostViewComponent.Factory complicationHostViewFactory, ComplicationHostViewController complicationHostViewController,
@Named(DreamOverlayModule.DREAM_OVERLAY_CONTENT_VIEW) ViewGroup contentView, @Named(DreamOverlayModule.DREAM_OVERLAY_CONTENT_VIEW) ViewGroup contentView,
DreamOverlayStatusBarViewController statusBarViewController, DreamOverlayStatusBarViewController statusBarViewController,
@Main Handler handler, @Main Handler handler,
@@ -84,7 +83,7 @@ public class DreamOverlayContainerViewController extends ViewController<DreamOve
mView.getResources().getDimensionPixelSize( mView.getResources().getDimensionPixelSize(
R.dimen.dream_overlay_notifications_drag_area_height); R.dimen.dream_overlay_notifications_drag_area_height);
mComplicationHostViewController = complicationHostViewFactory.create().getController(); mComplicationHostViewController = complicationHostViewController;
final View view = mComplicationHostViewController.getView(); final View view = mComplicationHostViewController.getView();
mDreamOverlayContentView.addView(view, mDreamOverlayContentView.addView(view,

View File

@@ -16,7 +16,7 @@
package com.android.systemui.dreams.complication; package com.android.systemui.dreams.complication;
import static com.android.systemui.dreams.complication.dagger.ComplicationHostViewComponent.SCOPED_COMPLICATIONS_LAYOUT; import static com.android.systemui.dreams.complication.dagger.ComplicationHostViewModule.SCOPED_COMPLICATIONS_LAYOUT;
import static com.android.systemui.dreams.complication.dagger.ComplicationModule.SCOPED_COMPLICATIONS_MODEL; import static com.android.systemui.dreams.complication.dagger.ComplicationModule.SCOPED_COMPLICATIONS_MODEL;
import android.graphics.Rect; import android.graphics.Rect;

View File

@@ -16,8 +16,8 @@
package com.android.systemui.dreams.complication; package com.android.systemui.dreams.complication;
import static com.android.systemui.dreams.complication.dagger.ComplicationHostViewComponent.COMPLICATION_MARGIN; import static com.android.systemui.dreams.complication.dagger.ComplicationHostViewModule.COMPLICATION_MARGIN;
import static com.android.systemui.dreams.complication.dagger.ComplicationHostViewComponent.SCOPED_COMPLICATIONS_LAYOUT; import static com.android.systemui.dreams.complication.dagger.ComplicationHostViewModule.SCOPED_COMPLICATIONS_LAYOUT;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;

View File

@@ -1,98 +0,0 @@
/*
* Copyright (C) 2022 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.systemui.dreams.complication.dagger;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import android.content.res.Resources;
import android.view.LayoutInflater;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.android.internal.util.Preconditions;
import com.android.systemui.R;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dreams.complication.ComplicationHostViewController;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import javax.inject.Named;
import javax.inject.Scope;
import dagger.Module;
import dagger.Provides;
import dagger.Subcomponent;
/**
* {@link ComplicationHostViewComponent} encapsulates the shared logic around the host view layer
* for complications. Anything that references the layout should be provided through this component
* and its child module. The factory should be used in order to best tie the lifetime of the view
* to components.
*/
@Subcomponent(modules = {
ComplicationHostViewComponent.ComplicationHostViewModule.class,
})
@ComplicationHostViewComponent.ComplicationHostViewScope
public interface ComplicationHostViewComponent {
String SCOPED_COMPLICATIONS_LAYOUT = "scoped_complications_layout";
String COMPLICATION_MARGIN = "complication_margin";
/** Scope annotation for singleton items within {@link ComplicationHostViewComponent}. */
@Documented
@Retention(RUNTIME)
@Scope
@interface ComplicationHostViewScope {}
/**
* Factory for generating a new scoped component.
*/
@Subcomponent.Factory
interface Factory {
ComplicationHostViewComponent create();
}
/** */
ComplicationHostViewController getController();
/**
* Module for providing a scoped host view.
*/
@Module
abstract class ComplicationHostViewModule {
/**
* Generates a {@link ConstraintLayout}, which can host
* {@link com.android.systemui.dreams.complication.Complication} instances.
*/
@Provides
@Named(SCOPED_COMPLICATIONS_LAYOUT)
@ComplicationHostViewScope
static ConstraintLayout providesComplicationHostView(
LayoutInflater layoutInflater) {
return Preconditions.checkNotNull((ConstraintLayout)
layoutInflater.inflate(R.layout.dream_overlay_complications_layer,
null),
"R.layout.dream_overlay_complications_layer did not properly inflated");
}
@Provides
@Named(COMPLICATION_MARGIN)
@ComplicationHostViewScope
static int providesComplicationPadding(@Main Resources resources) {
return resources.getDimensionPixelSize(R.dimen.dream_overlay_complication_margin);
}
}
}

View File

@@ -0,0 +1,63 @@
/*
* Copyright (C) 2022 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.systemui.dreams.complication.dagger;
import android.content.res.Resources;
import android.view.LayoutInflater;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.android.internal.util.Preconditions;
import com.android.systemui.R;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dreams.dagger.DreamOverlayComponent;
import javax.inject.Named;
import dagger.Module;
import dagger.Provides;
/**
* Module for providing a scoped host view.
*/
@Module
public abstract class ComplicationHostViewModule {
public static final String SCOPED_COMPLICATIONS_LAYOUT = "scoped_complications_layout";
public static final String COMPLICATION_MARGIN = "complication_margin";
/**
* Generates a {@link ConstraintLayout}, which can host
* {@link com.android.systemui.dreams.complication.Complication} instances.
*/
@Provides
@Named(SCOPED_COMPLICATIONS_LAYOUT)
@DreamOverlayComponent.DreamOverlayScope
static ConstraintLayout providesComplicationHostView(
LayoutInflater layoutInflater) {
return Preconditions.checkNotNull((ConstraintLayout)
layoutInflater.inflate(R.layout.dream_overlay_complications_layer,
null),
"R.layout.dream_overlay_complications_layer did not properly inflated");
}
@Provides
@Named(COMPLICATION_MARGIN)
@DreamOverlayComponent.DreamOverlayScope
static int providesComplicationPadding(@Main Resources resources) {
return resources.getDimensionPixelSize(R.dimen.dream_overlay_complication_margin);
}
}

View File

@@ -35,9 +35,10 @@ import dagger.Provides;
/** /**
* Module for housing components related to rendering complications. * Module for housing components related to rendering complications.
*/ */
@Module(subcomponents = { @Module(includes = {
ComplicationHostViewModule.class,
}, subcomponents = {
ComplicationViewModelComponent.class, ComplicationViewModelComponent.class,
ComplicationHostViewComponent.class,
}) })
public interface ComplicationModule { public interface ComplicationModule {
String SCOPED_COMPLICATIONS_MODEL = "scoped_complications_model"; String SCOPED_COMPLICATIONS_MODEL = "scoped_complications_model";

View File

@@ -33,7 +33,6 @@ import androidx.test.filters.SmallTest;
import com.android.systemui.R; import com.android.systemui.R;
import com.android.systemui.SysuiTestCase; import com.android.systemui.SysuiTestCase;
import com.android.systemui.dreams.complication.ComplicationHostViewController; import com.android.systemui.dreams.complication.ComplicationHostViewController;
import com.android.systemui.dreams.complication.dagger.ComplicationHostViewComponent;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -65,12 +64,6 @@ public class DreamOverlayContainerViewControllerTest extends SysuiTestCase {
@Mock @Mock
ComplicationHostViewController mComplicationHostViewController; ComplicationHostViewController mComplicationHostViewController;
@Mock
ComplicationHostViewComponent.Factory mComplicationHostViewComponentFactory;
@Mock
ComplicationHostViewComponent mComplicationHostViewComponent;
@Mock @Mock
ViewGroup mDreamOverlayContentView; ViewGroup mDreamOverlayContentView;
@@ -88,14 +81,10 @@ public class DreamOverlayContainerViewControllerTest extends SysuiTestCase {
DREAM_OVERLAY_NOTIFICATIONS_DRAG_AREA_HEIGHT); DREAM_OVERLAY_NOTIFICATIONS_DRAG_AREA_HEIGHT);
when(mDreamOverlayContainerView.getResources()).thenReturn(mResources); when(mDreamOverlayContainerView.getResources()).thenReturn(mResources);
when(mDreamOverlayContainerView.getViewTreeObserver()).thenReturn(mViewTreeObserver); when(mDreamOverlayContainerView.getViewTreeObserver()).thenReturn(mViewTreeObserver);
when(mComplicationHostViewComponentFactory.create())
.thenReturn(mComplicationHostViewComponent);
when(mComplicationHostViewComponent.getController())
.thenReturn(mComplicationHostViewController);
mController = new DreamOverlayContainerViewController( mController = new DreamOverlayContainerViewController(
mDreamOverlayContainerView, mDreamOverlayContainerView,
mComplicationHostViewComponentFactory, mComplicationHostViewController,
mDreamOverlayContentView, mDreamOverlayContentView,
mDreamOverlayStatusBarViewController, mDreamOverlayStatusBarViewController,
mHandler, mHandler,