1/*
2 * Copyright (C) 2016 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
17package com.android.dialer.database;
18
19import android.net.Uri;
20import android.provider.BaseColumns;
21import android.provider.CallLog;
22import android.provider.OpenableColumns;
23
24import com.android.dialerbind.ObjectFactory;
25
26/**
27 * Contains definitions for the supported URIs and columns for the voicemail archive table.
28 * All the fields excluding MIME_TYPE, _DATA, ARCHIVED, SERVER_ID, mirror the fields in the
29 * contract provided in {@link CallLog.Calls}.
30 */
31public final class VoicemailArchiveContract {
32
33    /** The authority used by the voicemail archive provider. */
34    public static final String AUTHORITY = ObjectFactory.getVoicemailArchiveProviderAuthority();
35
36    /** A content:// style uri for the voicemail archive provider */
37    public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY);
38
39    public static final class VoicemailArchive implements BaseColumns, OpenableColumns {
40
41        public static final String VOICEMAIL_ARCHIVE_TABLE = "voicemail_archive_table";
42
43        public static final Uri CONTENT_URI = Uri.withAppendedPath(
44                AUTHORITY_URI,
45                VOICEMAIL_ARCHIVE_TABLE);
46
47        /**
48         * @see android.provider.CallLog.Calls#NUMBER
49         * TYPE: TEXT
50         */
51        public static final String NUMBER = CallLog.Calls.NUMBER;
52
53        /**
54         * @see android.provider.CallLog.Calls#DATE
55         * TYPE: LONG
56         */
57        public static final String DATE = CallLog.Calls.DATE;
58
59        /**
60         * @see android.provider.CallLog.Calls#DURATION
61         * TYPE: LONG
62         */
63        public static final String DURATION =  CallLog.Calls.DURATION;
64
65        /**
66         * The mime type of the archived voicemail file.
67         * TYPE: TEXT
68         */
69        public static final String MIME_TYPE = "mime_type";
70
71        /**
72         * @see android.provider.CallLog.Calls#COUNTRY_ISO
73         * TYPE: LONG
74         */
75        public static final String COUNTRY_ISO = CallLog.Calls.COUNTRY_ISO;
76
77        /**
78         * The path of the archived voicemail file.
79         * TYPE: TEXT
80         */
81        public static final String _DATA = "_data";
82
83        /**
84         * @see android.provider.CallLog.Calls#GEOCODED_LOCATION
85         * TYPE: TEXT
86         */
87        public static final String GEOCODED_LOCATION = CallLog.Calls.GEOCODED_LOCATION;
88
89        /**
90         * @see android.provider.CallLog.Calls#CACHED_NAME
91         * TYPE: TEXT
92         */
93        public static final String CACHED_NAME = CallLog.Calls.CACHED_NAME;
94
95        /**
96         * @see android.provider.CallLog.Calls#CACHED_NUMBER_TYPE
97         * TYPE: INTEGER
98         */
99        public static final String CACHED_NUMBER_TYPE = CallLog.Calls.CACHED_NUMBER_TYPE;
100
101        /**
102         * @see android.provider.CallLog.Calls#CACHED_NUMBER_LABEL
103         * TYPE: TEXT
104         */
105        public static final String CACHED_NUMBER_LABEL = CallLog.Calls.CACHED_NUMBER_LABEL;
106
107        /**
108         * @see android.provider.CallLog.Calls#CACHED_LOOKUP_URI
109         * TYPE: TEXT
110         */
111        public static final String CACHED_LOOKUP_URI = CallLog.Calls.CACHED_LOOKUP_URI;
112
113        /**
114         * @see android.provider.CallLog.Calls#CACHED_MATCHED_NUMBER
115         * TYPE: TEXT
116         */
117        public static final String CACHED_MATCHED_NUMBER = CallLog.Calls.CACHED_MATCHED_NUMBER;
118
119        /**
120         * @see android.provider.CallLog.Calls#CACHED_NORMALIZED_NUMBER
121         * TYPE: TEXT
122         */
123        public static final String CACHED_NORMALIZED_NUMBER =
124                CallLog.Calls.CACHED_NORMALIZED_NUMBER;
125
126        /**
127         * @see android.provider.CallLog.Calls#CACHED_PHOTO_ID
128         * TYPE: LONG
129         */
130        public static final String CACHED_PHOTO_ID = CallLog.Calls.CACHED_PHOTO_ID;
131
132        /**
133         * @see android.provider.CallLog.Calls#CACHED_FORMATTED_NUMBER
134         * TYPE: TEXT
135         */
136        public static final String CACHED_FORMATTED_NUMBER = CallLog.Calls.CACHED_FORMATTED_NUMBER;
137
138        /**
139         * If the voicemail was archived by the user by pressing the archive button, this is set to
140         * 1 (true). If the voicemail was archived for the purpose of forwarding to other
141         * applications, this is set to 0 (false).
142         * TYPE: INTEGER
143         */
144        public static final String ARCHIVED = "archived_by_user";
145
146        /**
147         * @see android.provider.CallLog.Calls#NUMBER_PRESENTATION
148         * TYPE: INTEGER
149         */
150        public static final String NUMBER_PRESENTATION = CallLog.Calls.NUMBER_PRESENTATION;
151
152        /**
153         * @see android.provider.CallLog.Calls#PHONE_ACCOUNT_COMPONENT_NAME
154         * TYPE: TEXT
155         */
156        public static final String ACCOUNT_COMPONENT_NAME =
157                CallLog.Calls.PHONE_ACCOUNT_COMPONENT_NAME;
158
159        /**
160         * @see android.provider.CallLog.Calls#PHONE_ACCOUNT_ID
161         * TYPE: TEXT
162         */
163        public static final String ACCOUNT_ID = CallLog.Calls.PHONE_ACCOUNT_ID;
164
165        /**
166         * @see android.provider.CallLog.Calls#FEATURES
167         * TYPE: INTEGER
168         */
169        public static final String FEATURES = CallLog.Calls.FEATURES;
170
171        /**
172         * The id of the voicemail on the server.
173         * TYPE: INTEGER
174         */
175        public static final String SERVER_ID = "server_id";
176
177        /**
178         * @see android.provider.CallLog.Calls#TRANSCRIPTION
179         * TYPE: TEXT
180         */
181        public static final String TRANSCRIPTION = CallLog.Calls.TRANSCRIPTION;
182
183        /**
184         * @see android.provider.CallLog.Calls#CACHED_PHOTO_URI
185         * TYPE: TEXT
186         */
187        public static final String CACHED_PHOTO_URI = CallLog.Calls.CACHED_PHOTO_URI;
188
189        /**
190         * The MIME type of a {@link #CONTENT_URI} single voicemail.
191         */
192        public static final String CONTENT_ITEM_TYPE =
193                "vnd.android.cursor.item/voicmail_archive_table";
194
195        public static final Uri buildWithId(int id) {
196            return Uri.withAppendedPath(CONTENT_URI, Integer.toString(id));
197        }
198
199        /** Not instantiable. */
200        private VoicemailArchive() {
201        }
202    }
203}
204