PlaceholderItem.java revision 51cafa0a35546a42c573357aa7a031a79cf9ba1b
1/* 2 * Copyright (C) 2013 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.camera.data; 18 19import android.graphics.Bitmap; 20import android.net.Uri; 21import android.view.View; 22 23import com.android.camera.data.FilmstripItemAttributes.Attributes; 24import com.android.camera.debug.Log; 25import com.android.camera.util.Size; 26import com.google.common.base.Optional; 27 28import java.util.Date; 29import java.util.UUID; 30 31/** 32 * A LocalData that does nothing but only shows a view. 33 */ 34public class PlaceholderItem implements FilmstripItem { 35 private static final Log.Tag TAG = new Log.Tag("PlaceholderItem"); 36 private static final String SIMPLE_VIEW_URI_SCHEME = "simple_view_data"; 37 38 private static final FilmstripItemAttributes PLACEHOLDER_ITEM_ATTRIBUTES = 39 new FilmstripItemAttributes.Builder() 40 .with(Attributes.CAN_SWIPE_IN_FULL_SCREEN) 41 .build(); 42 43 private final View mView; 44 private final Metadata mMetaData; 45 private final FilmstripItemType mItemViewType; 46 private final FilmstripItemData mItemData; 47 private final FilmstripItemAttributes mAttributes; 48 49 public PlaceholderItem( 50 View v, FilmstripItemType viewType, int width, int height) { 51 mView = v; 52 mItemViewType = viewType; 53 Size dimensions = new Size(width, height); 54 Date creationDate = new Date(0); 55 Date lastModifiedDate = new Date(0); 56 mMetaData = new Metadata(); 57 mMetaData.setLoaded(true); 58 Uri.Builder builder = new Uri.Builder(); 59 String uuid = UUID.randomUUID().toString(); 60 builder.scheme(SIMPLE_VIEW_URI_SCHEME).appendPath(uuid); 61 Uri uri = builder.build(); 62 63 mItemData = new FilmstripItemData( 64 -1, 65 uuid, 66 "", 67 creationDate, 68 lastModifiedDate, 69 "" /* path */, 70 uri, 71 dimensions, 72 0, 73 0, 74 Location.UNKNOWN); 75 76 mAttributes = PLACEHOLDER_ITEM_ATTRIBUTES; 77 } 78 79 @Override 80 public FilmstripItemData getData() { 81 return mItemData; 82 } 83 84 @Override 85 public FilmstripItemAttributes getAttributes() { 86 return mAttributes; 87 } 88 89 @Override 90 public FilmstripItemType getItemViewType() { 91 return mItemViewType; 92 } 93 94 @Override 95 public FilmstripItem refresh() { 96 return this; 97 } 98 99 @Override 100 public boolean delete() { 101 return false; 102 } 103 104 @Override 105 public View getView(Optional<View> optionalView, int viewWidthPx, int viewHeightPx, 106 LocalFilmstripDataAdapter adapter, boolean isInProgress, 107 VideoClickedCallback videoClickedCallback) { 108 return mView; 109 } 110 111 @Override 112 public void loadFullImage(int w, int h, View view) { 113 // do nothing. 114 } 115 116 @Override 117 public void recycle(View view) { 118 // Do nothing. 119 } 120 121 @Override 122 public Optional<MediaDetails> getMediaDetails() { 123 return Optional.absent(); 124 } 125 126 @Override 127 public Metadata getMetadata() { 128 return mMetaData; 129 } 130 131 @Override 132 public Optional<Bitmap> generateThumbnail(int boundingWidthPx, int boundingHeightPx) { 133 return Optional.absent(); 134 } 135 136 @Override 137 public Size getDimensions() { 138 return mItemData.getDimensions(); 139 } 140 141 @Override 142 public int getOrientation() { 143 return mItemData.getOrientation(); 144 } 145} 146