1 /*
2  * Copyright (C) 2022 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.systemui.media.dream;
18 
19 import static com.android.systemui.media.dream.dagger.MediaComplicationComponent.MediaComplicationModule.MEDIA_COMPLICATION_CONTAINER;
20 import static com.android.systemui.media.dream.dagger.MediaComplicationComponent.MediaComplicationModule.MEDIA_COMPLICATION_LAYOUT_PARAMS;
21 
22 import android.view.View;
23 import android.widget.FrameLayout;
24 
25 import com.android.systemui.complication.Complication;
26 import com.android.systemui.complication.ComplicationLayoutParams;
27 
28 import javax.inject.Inject;
29 import javax.inject.Named;
30 
31 /**
32  * {@link Complication.ViewHolder} implementation for media control.
33  */
34 public class MediaViewHolder implements Complication.ViewHolder {
35     private final FrameLayout mContainer;
36     private final MediaComplicationViewController mViewController;
37     private final ComplicationLayoutParams mLayoutParams;
38 
39     @Inject
MediaViewHolder(@amedMEDIA_COMPLICATION_CONTAINER) FrameLayout container, MediaComplicationViewController controller, @Named(MEDIA_COMPLICATION_LAYOUT_PARAMS) ComplicationLayoutParams layoutParams)40     MediaViewHolder(@Named(MEDIA_COMPLICATION_CONTAINER) FrameLayout container,
41             MediaComplicationViewController controller,
42             @Named(MEDIA_COMPLICATION_LAYOUT_PARAMS) ComplicationLayoutParams layoutParams) {
43         mContainer = container;
44         mViewController = controller;
45         mViewController.init();
46         mLayoutParams = layoutParams;
47     }
48 
49     @Override
getView()50     public View getView() {
51         return mContainer;
52     }
53 
54     @Override
getLayoutParams()55     public ComplicationLayoutParams getLayoutParams() {
56         return mLayoutParams;
57     }
58 }
59