14b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee/* 24b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * Copyright (C) 2011 The Android Open Source Project 34b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * 44b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * Licensed under the Apache License, Version 2.0 (the "License"); 54b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * you may not use this file except in compliance with the License. 64b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * You may obtain a copy of the License at 74b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * 84b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * http://www.apache.org/licenses/LICENSE-2.0 94b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * 104b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * Unless required by applicable law or agreed to in writing, software 114b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * distributed under the License is distributed on an "AS IS" BASIS, 124b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * See the License for the specific language governing permissions and 144b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * limitations under the License 154b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee */ 16aeaba441ddb05dede8bd86291ca78f42d670d54cFlavio Lerda 174b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjeepackage com.android.providers.contacts; 184b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee 194b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjeeimport android.content.ContentValues; 204b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjeeimport android.database.Cursor; 214b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjeeimport android.net.Uri; 224b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjeeimport android.os.ParcelFileDescriptor; 234b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee 2438210445730ee04c351c7cc1b3800cfe23e34325Makoto Onukiimport com.android.providers.contacts.VoicemailContentProvider.UriData; 2538210445730ee04c351c7cc1b3800cfe23e34325Makoto Onuki 269cf06e7bcb0be759f1c930412fd2e41eba4f5f03Debashish Chatterjeeimport java.io.FileNotFoundException; 279cf06e7bcb0be759f1c930412fd2e41eba4f5f03Debashish Chatterjee 284b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee/** 294b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * Defines interfaces for communication between voicemail content provider and voicemail table 304b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * implementations. 314b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee */ 324b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjeepublic interface VoicemailTable { 334b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee /** 344b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * Interface that the voicemail content provider uses to delegate database level operations 354b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * to the appropriate voicemail table implementation. 364b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee */ 374b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee public interface Delegate { 384b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee public Uri insert(UriData uriData, ContentValues values); 394b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee public int delete(UriData uriData, String selection, String[] selectionArgs); 404b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee public Cursor query(UriData uriData, String[] projection, String selection, 414b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee String[] selectionArgs, String sortOrder); 424b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee public int update(UriData uriData, ContentValues values, String selection, 434b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee String[] selectionArgs); 444b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee public String getType(UriData uriData); 459cf06e7bcb0be759f1c930412fd2e41eba4f5f03Debashish Chatterjee public ParcelFileDescriptor openFile(UriData uriData, String mode) 469cf06e7bcb0be759f1c930412fd2e41eba4f5f03Debashish Chatterjee throws FileNotFoundException; 474b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee } 484b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee 494b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee /** 504b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * A helper interface that an implementation of {@link Delegate} uses to access common 514b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * functionality across different voicemail tables. 524b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee */ 534b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee public interface DelegateHelper { 544b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee /** 554b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee * Inserts source_package field into ContentValues. Used in insert operations. 564b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee */ 574b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee public void checkAndAddSourcePackageIntoValues(UriData uriData, ContentValues values); 589cf06e7bcb0be759f1c930412fd2e41eba4f5f03Debashish Chatterjee 599cf06e7bcb0be759f1c930412fd2e41eba4f5f03Debashish Chatterjee /** 609cf06e7bcb0be759f1c930412fd2e41eba4f5f03Debashish Chatterjee * Opens the file pointed to by the column "_data". 619cf06e7bcb0be759f1c930412fd2e41eba4f5f03Debashish Chatterjee * @throws FileNotFoundException 629cf06e7bcb0be759f1c930412fd2e41eba4f5f03Debashish Chatterjee */ 639cf06e7bcb0be759f1c930412fd2e41eba4f5f03Debashish Chatterjee public ParcelFileDescriptor openDataFile(UriData uriData, String mode) 649cf06e7bcb0be759f1c930412fd2e41eba4f5f03Debashish Chatterjee throws FileNotFoundException; 654b571ba0de4fac4ff9d2a4277032b8c6548fdbfaDebashish Chatterjee } 669cf06e7bcb0be759f1c930412fd2e41eba4f5f03Debashish Chatterjee} 67