PhotoPagerAdapter.java revision 928a39fb533255b34145285fabbd4f51961df63a
1f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein/* 2f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein * Copyright (C) 2011 Google Inc. 3f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein * Licensed to The Android Open Source Project. 4f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein * 5f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein * Licensed under the Apache License, Version 2.0 (the "License"); 6f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein * you may not use this file except in compliance with the License. 7f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein * You may obtain a copy of the License at 8f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein * 9f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein * http://www.apache.org/licenses/LICENSE-2.0 10f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein * 11f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein * Unless required by applicable law or agreed to in writing, software 12f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein * distributed under the License is distributed on an "AS IS" BASIS, 13f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein * See the License for the specific language governing permissions and 15f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein * limitations under the License. 16f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein */ 17f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein 18f77a7eb196d16110c7b1087352b423913821ff61Andrew Sappersteinpackage com.android.ex.photo.adapters; 19f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein 20f77a7eb196d16110c7b1087352b423913821ff61Andrew Sappersteinimport android.app.Fragment; 21f77a7eb196d16110c7b1087352b423913821ff61Andrew Sappersteinimport android.app.FragmentManager; 22f77a7eb196d16110c7b1087352b423913821ff61Andrew Sappersteinimport android.content.Context; 23f77a7eb196d16110c7b1087352b423913821ff61Andrew Sappersteinimport android.database.Cursor; 24f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein 25f77a7eb196d16110c7b1087352b423913821ff61Andrew Sappersteinimport com.android.ex.photo.Intents; 26f77a7eb196d16110c7b1087352b423913821ff61Andrew Sappersteinimport com.android.ex.photo.Intents.PhotoViewIntentBuilder; 27f77a7eb196d16110c7b1087352b423913821ff61Andrew Sappersteinimport com.android.ex.photo.fragments.PhotoViewFragment; 28f77a7eb196d16110c7b1087352b423913821ff61Andrew Sappersteinimport com.android.ex.photo.provider.PhotoContract; 29f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein 30f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein/** 31f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein * Pager adapter for the photo view 32f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein */ 33f77a7eb196d16110c7b1087352b423913821ff61Andrew Sappersteinpublic class PhotoPagerAdapter extends BaseCursorPagerAdapter { 34f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein private int mContentUriIndex; 35f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein private int mPhotoNameIndex; 36928a39fb533255b34145285fabbd4f51961df63aAndrew Sapperstein private int mThumbnailUriIndex; 37f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein 38f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein public PhotoPagerAdapter(Context context, FragmentManager fm, Cursor c) { 39f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein super(context, fm, c); 40f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein } 41f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein 42f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein @Override 430c18e5deef5209d21b527a01feb6b789715eb48eAndrew Sapperstein public Fragment getItem(Context context, Cursor cursor, int position) { 44f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein final String photoUri = cursor.getString(mContentUriIndex); 45f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein final String photoName = cursor.getString(mPhotoNameIndex); 46928a39fb533255b34145285fabbd4f51961df63aAndrew Sapperstein final String thumbnailUri = cursor.getString(mThumbnailUriIndex); 47f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein 48f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein // create new PhotoViewFragment 49f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein final PhotoViewIntentBuilder builder = 50f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein Intents.newPhotoViewFragmentIntentBuilder(mContext); 51f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein builder 52f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein .setPhotoName(photoName) 53928a39fb533255b34145285fabbd4f51961df63aAndrew Sapperstein .setResolvedPhotoUri(photoUri) 54928a39fb533255b34145285fabbd4f51961df63aAndrew Sapperstein .setThumbnailUri(thumbnailUri); 55f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein 560c18e5deef5209d21b527a01feb6b789715eb48eAndrew Sapperstein return new PhotoViewFragment(builder.build(), position, this); 57f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein } 58f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein 59f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein @Override 60f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein public Cursor swapCursor(Cursor newCursor) { 61f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein mContentUriIndex = 62f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein newCursor.getColumnIndex(PhotoContract.PhotoViewColumns.CONTENT_URI); 63928a39fb533255b34145285fabbd4f51961df63aAndrew Sapperstein mThumbnailUriIndex = 64928a39fb533255b34145285fabbd4f51961df63aAndrew Sapperstein newCursor.getColumnIndex(PhotoContract.PhotoViewColumns.THUMBNAIL_URI); 65f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein mPhotoNameIndex = 66f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein newCursor.getColumnIndex(PhotoContract.PhotoViewColumns.NAME); 67f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein 68f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein return super.swapCursor(newCursor); 69f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein } 700c18e5deef5209d21b527a01feb6b789715eb48eAndrew Sapperstein 710c18e5deef5209d21b527a01feb6b789715eb48eAndrew Sapperstein public String getPhotoUri(Cursor cursor) { 720c18e5deef5209d21b527a01feb6b789715eb48eAndrew Sapperstein return cursor.getString(mContentUriIndex); 730c18e5deef5209d21b527a01feb6b789715eb48eAndrew Sapperstein } 74f77a7eb196d16110c7b1087352b423913821ff61Andrew Sapperstein} 75