package net.everythingandroid.smspopup.provider; import java.util.List; import android.net.Uri; import android.provider.BaseColumns; public class SmsPopupContract { public static final String CONTENT_AUTHORITY = "net.everythingandroid.smspopup.provider"; public static final Uri BASE_CONTENT_URI = Uri.parse("content://" + CONTENT_AUTHORITY); interface ContactNotificationsColumns { String CONTACT_ID = "contact_id"; String CONTACT_LOOKUPKEY = "contact_lookupkey"; String CONTACT_NAME = "contact_displayname"; String ENABLED = "contact_enabled"; String POPUP_ENABLED = "contact_popup_enabled"; String RINGTONE = "contact_ringtone"; String VIBRATE_ENABLED = "contact_vibrate_enabled"; String VIBRATE_PATTERN = "contact_vibrate_pattern"; String VIBRATE_PATTERN_CUSTOM = "contact_vibrate_pattern_custom"; String LED_ENABLED = "contact_led_enabled"; String LED_PATTERN = "contact_led_pattern"; String LED_PATTERN_CUSTOM = "contact_led_pattern_custom"; String LED_COLOR = "contact_led_color"; String LED_COLOR_CUSTOM = "contact_led_color_custom"; String SUMMARY = "contact_summary"; } interface QuickMessagesColumns { String QUICKMESSAGE = "quickmessage_message"; String ORDER = "quickmessage_order"; } public static class ContactNotifications implements ContactNotificationsColumns, BaseColumns { public static final String PATH_CONTACTS = "contacts"; public static final String PATH_CONTACTS_LOOKUP = "contactslookup"; public static final Uri CONTENT_URI = BASE_CONTENT_URI.buildUpon().appendPath(PATH_CONTACTS).build(); public static final Uri CONTENT_LOOKUP_URI = BASE_CONTENT_URI.buildUpon().appendPath(PATH_CONTACTS_LOOKUP).build(); public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.everythingandroid.contact"; public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.everythingandroid.contact"; public static final String[] PROJECTION_SUMMARY = new String[] { _ID, CONTACT_NAME, SUMMARY }; public static final String DEFAULT_SORT = CONTACT_NAME + ", " + _ID; public static Uri buildContactUri(String id) { return CONTENT_URI.buildUpon().appendPath(id).build(); } public static Uri buildContactUri(long id) { return CONTENT_URI.buildUpon().appendPath(String.valueOf(id)).build(); } public static String getContactId(Uri uri) { final int size = uri.getPathSegments().size(); if (size >= 2 && size <= 3) { return uri.getLastPathSegment(); } return null; } public static Uri buildLookupUri(String lookupKey) { return buildLookupUri(null, lookupKey); } public static Uri buildLookupUri(String contactId, String lookupKey) { if (lookupKey == null) { return null; } if (contactId == null) { return CONTENT_LOOKUP_URI.buildUpon().appendPath(lookupKey).build(); } return CONTENT_LOOKUP_URI.buildUpon() .appendPath(lookupKey).appendPath(contactId).build(); } public static String getLookupKey(Uri uri) { final List<String> segments = uri.getPathSegments(); if (segments.size() > 1) { // getPathSegments() decodes the segment, so we need to encode again as we want // to keep LOOKUP_URI in encoded format return Uri.encode(uri.getPathSegments().get(1)); } return null; } } public static class QuickMessages implements QuickMessagesColumns, BaseColumns { public static final String PATH_QUICKMESSAGES = "quickmessages"; public static final String PATH_QUICKMESSAGES_UPDATE_ORDER = "updateorder"; public static final Uri CONTENT_URI = BASE_CONTENT_URI.buildUpon().appendPath(PATH_QUICKMESSAGES).build(); public static final Uri UPDATE_ORDER_URI = BASE_CONTENT_URI.buildUpon().appendPath(PATH_QUICKMESSAGES) .appendPath(PATH_QUICKMESSAGES_UPDATE_ORDER).build(); public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.everythingandroid.quickmessage"; public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.everythingandroid.quickmessage"; public static final String DEFAULT_SORT = ORDER + ", " + _ID; public static Uri buildQuickMessageUri(String quickMessageId) { return CONTENT_URI.buildUpon().appendPath(quickMessageId).build(); } public static String getQuickMessageId(Uri uri) { final List<String> segments = uri.getPathSegments(); return segments.get(segments.size() - 1); } public static Uri buildQuickMessageOrderUpdateUri(String quickMessageId) { return UPDATE_ORDER_URI.buildUpon().appendPath(quickMessageId).build(); } } }