1 /*
2  * Copyright (C) 2019 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.internal.app.chooser;
18 
19 import android.service.chooser.ChooserTarget;
20 import android.text.TextUtils;
21 
22 /**
23  * A TargetInfo for Direct Share. Includes a {@link ChooserTarget} representing the
24  * Direct Share deep link into an application.
25  */
26 public interface ChooserTargetInfo extends TargetInfo {
getModifiedScore()27     float getModifiedScore();
28 
getChooserTarget()29     ChooserTarget getChooserTarget();
30 
31     /**
32      * Do not label as 'equals', since this doesn't quite work
33      * as intended with java 8.
34      */
isSimilar(ChooserTargetInfo other)35     default boolean isSimilar(ChooserTargetInfo other) {
36         if (other == null) return false;
37 
38         ChooserTarget ct1 = getChooserTarget();
39         ChooserTarget ct2 = other.getChooserTarget();
40 
41         // If either is null, there is not enough info to make an informed decision
42         // about equality, so just exit
43         if (ct1 == null || ct2 == null) return false;
44 
45         if (ct1.getComponentName().equals(ct2.getComponentName())
46                 && TextUtils.equals(getDisplayLabel(), other.getDisplayLabel())
47                 && TextUtils.equals(getExtendedInfo(), other.getExtendedInfo())) {
48             return true;
49         }
50 
51         return false;
52     }
53 }
54