package com.permissionnanny.demo.content; import android.annotation.TargetApi; import android.app.Dialog; import android.content.ContentValues; import android.content.Context; import android.provider.BaseColumns; import android.provider.CalendarContract; import android.provider.ContactsContract; import android.provider.MediaStore; import android.provider.Telephony; import com.permissionnanny.demo.ContentRequestFactory; import com.permissionnanny.lib.request.content.ContentRequest; /** * */ @TargetApi(19) public class DemoContentRequestFactory implements ContentRequestFactory { private String[] mLabels = new String[]{ "Calendar", "Contacts", "Audio", "Files", "Files - insert", "Files - update", "Files - delete", "Images", "Video", "Carriers", "MMS", "MMS+SMS", "SMS", }; private ContentRequest[] mRequests = new ContentRequest[]{ ContentRequest.newBuilder().select() .uri(CalendarContract.Calendars.CONTENT_URI) .sortOrder(BaseColumns._ID + " limit 5") .build(), ContentRequest.newBuilder().select() .uri(ContactsContract.Contacts.CONTENT_URI) .sortOrder(BaseColumns._ID + " limit 5") .build(), ContentRequest.newBuilder().select() .uri(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI) .sortOrder(BaseColumns._ID + " limit 5") .build(), ContentRequest.newBuilder().select() .uri(MediaStore.Files.getContentUri("external")) .sortOrder(BaseColumns._ID + " limit 5") .build(), null, null, null, ContentRequest.newBuilder().select() .uri(MediaStore.Images.Media.EXTERNAL_CONTENT_URI) .sortOrder(BaseColumns._ID + " limit 5") .build(), ContentRequest.newBuilder().select() .uri(MediaStore.Video.Media.EXTERNAL_CONTENT_URI) .sortOrder(BaseColumns._ID + " limit 5") .build(), ContentRequest.newBuilder().select() .uri(Telephony.Carriers.CONTENT_URI) .sortOrder(BaseColumns._ID + " limit 5") .build(), ContentRequest.newBuilder().select() .uri(Telephony.Mms.CONTENT_URI) .sortOrder(BaseColumns._ID + " limit 5") .build(), ContentRequest.newBuilder().select() .uri(Telephony.MmsSms.CONTENT_CONVERSATIONS_URI) .sortOrder(BaseColumns._ID + " limit 5") .build(), ContentRequest.newBuilder().select() .uri(Telephony.Sms.CONTENT_URI) .sortOrder(BaseColumns._ID + " limit 5") .build() }; static final String FILE = "/storage/sdcard/permission-nanny"; @Override public ContentRequest getRequest(int position) { ContentValues val = new ContentValues(); switch (position) { case 4: val.put(MediaStore.Files.FileColumns.DATA, FILE); return ContentRequest.newBuilder().insert() .uri(MediaStore.Files.getContentUri("external")) .contentValues(val) .build(); case 5: val.put("latitude", 123); val.put("longitude", 456); return ContentRequest.newBuilder().update() .uri(MediaStore.Files.getContentUri("external")) .contentValues(val) .selection(MediaStore.Files.FileColumns.DATA + "='" + FILE + "'") .build(); case 6: return ContentRequest.newBuilder().delete() .uri(MediaStore.Files.getContentUri("external")) .selection(MediaStore.Files.FileColumns.DATA + "='" + FILE + "'") .build(); } return mRequests[position]; } @Override public int getCount() { return mLabels.length; } @Override public String getLabel(int position) { return mLabels[position]; } @Override public boolean hasExtras(int position) { return false; } @Override public Dialog buildDialog(Context context, int position) { return null; } }