1732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov/*
2732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov * Copyright (C) 2010 The Android Open Source Project
3732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov *
4732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov * Licensed under the Apache License, Version 2.0 (the "License");
5732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov * you may not use this file except in compliance with the License.
6732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov * You may obtain a copy of the License at
7732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov *
8732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov *      http://www.apache.org/licenses/LICENSE-2.0
9732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov *
10732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov * Unless required by applicable law or agreed to in writing, software
11732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov * distributed under the License is distributed on an "AS IS" BASIS,
12732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov * See the License for the specific language governing permissions and
14732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov * limitations under the License.
15732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov */
16732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikovpackage com.android.contacts.list;
17732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov
18732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikovimport android.net.Uri;
19732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov
20732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov/**
21416b569901ce4c577c1f76c3f29496d1adab29e1Dmitri Plotnikov * Action callbacks that can be sent by a contact list.
22732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov */
23732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikovpublic interface OnContactBrowserActionListener  {
24732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov
25732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov    /**
26d959104d37df65f0d6de9290c3fa2b59065be0fcDmitri Plotnikov     * Notification of selection change, invoked when the selection of activated
27d959104d37df65f0d6de9290c3fa2b59065be0fcDmitri Plotnikov     * item(s) is change by either a user action or some other event, e.g. sync.
28d959104d37df65f0d6de9290c3fa2b59065be0fcDmitri Plotnikov     */
29d959104d37df65f0d6de9290c3fa2b59065be0fcDmitri Plotnikov    void onSelectionChange();
30d959104d37df65f0d6de9290c3fa2b59065be0fcDmitri Plotnikov
31d959104d37df65f0d6de9290c3fa2b59065be0fcDmitri Plotnikov    /**
321323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov     * Opens the specified contact for viewing.
3360ad01b47e1073bac4b9299a54673132f4451378Daniel Lehmann     *
3460ad01b47e1073bac4b9299a54673132f4451378Daniel Lehmann     * @param contactLookupUri The lookup-uri of the Contact that should be opened
35732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov     */
36e20d3432a370dd3996deec2df4e3cdf726c94992Daniel Lehmann    void onViewContactAction(Uri contactLookupUri);
37732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov
38732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov    /**
391323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov     * Creates a new contact.
40732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov     */
41732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov    void onCreateNewContactAction();
42732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov
43732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov    /**
441323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov     * Opens the specified contact for editing.
45732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov     */
46732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov    void onEditContactAction(Uri contactLookupUri);
471323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov
481323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov    /**
491323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov     * Initiates the contact deletion process.
501323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov     */
511323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov    void onDeleteContactAction(Uri contactUri);
521323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov
531323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov    /**
541323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov     * Adds the specified contact to favorites
551323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov     */
561323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov    void onAddToFavoritesAction(Uri contactUri);
571323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov
581323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov    /**
591323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov     * Removes the specified contact from favorites.
601323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov     */
611323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov    void onRemoveFromFavoritesAction(Uri contactUri);
621323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov
631323d69c40649914ae2195088573a20cc35da86eDmitri Plotnikov    /**
64e3fbfd99842607a0c208d0a930878bb54bb91dedDmitri Plotnikov     * Closes the contact browser.
65e3fbfd99842607a0c208d0a930878bb54bb91dedDmitri Plotnikov     */
66e3fbfd99842607a0c208d0a930878bb54bb91dedDmitri Plotnikov    void onFinishAction();
676e850a046fcea8ba82a793b43944051246d08180Dmitri Plotnikov
686e850a046fcea8ba82a793b43944051246d08180Dmitri Plotnikov    /**
696e850a046fcea8ba82a793b43944051246d08180Dmitri Plotnikov     * Invoked if the requested selected contact is not found in the list.
706e850a046fcea8ba82a793b43944051246d08180Dmitri Plotnikov     */
716e850a046fcea8ba82a793b43944051246d08180Dmitri Plotnikov    void onInvalidSelection();
72732f65236e7f804941e84757c077a84eb11eab16Dmitri Plotnikov}
73