• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2025 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.wm.shell.bubbles.bar
18 
19 import android.content.Intent
20 import android.graphics.Rect
21 import com.android.wm.shell.shared.bubbles.BubbleBarLocation
22 
23 /** Controller that takes care of the bubble bar drag events. */
24 interface BubbleBarDragListener {
25 
26     /** Called when the drag event is over the bubble bar drop zone. */
onDragItemOverBubbleBarDragZonenull27     fun onDragItemOverBubbleBarDragZone(location: BubbleBarLocation)
28 
29     /** Called when the drag event leaves the bubble bar drop zone. */
30     fun onItemDraggedOutsideBubbleBarDropZone()
31 
32     /** Called when the drop event happens over the bubble bar drop zone. */
33     fun onItemDroppedOverBubbleBarDragZone(location: BubbleBarLocation, itemIntent: Intent)
34 
35     /**
36      * Returns mapping of the bubble bar locations to the corresponding
37      * [rect][android.graphics.Rect] zone.
38      */
39     fun getBubbleBarDropZones(l: Int, t: Int, r: Int, b: Int): Map<BubbleBarLocation, Rect>
40 }
41