115b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang/* 215b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang * Copyright (C) 2012 The Android Open Source Project 315b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang * 415b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang * Licensed under the Apache License, Version 2.0 (the "License"); 515b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang * you may not use this file except in compliance with the License. 615b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang * You may obtain a copy of the License at 715b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang * 815b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang * http://www.apache.org/licenses/LICENSE-2.0 915b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang * 1015b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang * Unless required by applicable law or agreed to in writing, software 1115b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang * distributed under the License is distributed on an "AS IS" BASIS, 1215b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1315b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang * See the License for the specific language governing permissions and 1415b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang * limitations under the License. 1515b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang */ 1615b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang 1715b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Changpackage com.android.gallery3d.data; 1815b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang 193b4a8aeb0353fa18a2b5267b3952a80a6c6d4d13Chih-Chung Changimport java.util.concurrent.atomic.AtomicBoolean; 2015b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang 2115b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang// This is a simple MediaSet which contains only one MediaItem -- a SnailItem. 2245f089d69141e3fb0dfaad9bc34d275b61eb2aeeBobby Georgescupublic class SnailAlbum extends SingleItemAlbum { 237817979db0c52ffeacb951625b1e821eba303285Ahbong Chang @SuppressWarnings("unused") 243b4a8aeb0353fa18a2b5267b3952a80a6c6d4d13Chih-Chung Chang private static final String TAG = "SnailAlbum"; 253b4a8aeb0353fa18a2b5267b3952a80a6c6d4d13Chih-Chung Chang private AtomicBoolean mDirty = new AtomicBoolean(false); 2615b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang 2745f089d69141e3fb0dfaad9bc34d275b61eb2aeeBobby Georgescu public SnailAlbum(Path path, SnailItem item) { 2845f089d69141e3fb0dfaad9bc34d275b61eb2aeeBobby Georgescu super(path, item); 2915b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang } 3015b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang 3115b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang @Override 32705dc819661cb8c8e839a04577b0641bd6caad53John Reck public long reload() { 33705dc819661cb8c8e839a04577b0641bd6caad53John Reck if (mDirty.compareAndSet(true, false)) { 34705dc819661cb8c8e839a04577b0641bd6caad53John Reck ((SnailItem) getItem()).updateVersion(); 35705dc819661cb8c8e839a04577b0641bd6caad53John Reck mDataVersion = nextVersionNumber(); 36705dc819661cb8c8e839a04577b0641bd6caad53John Reck } 37705dc819661cb8c8e839a04577b0641bd6caad53John Reck return mDataVersion; 3815b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang } 393b4a8aeb0353fa18a2b5267b3952a80a6c6d4d13Chih-Chung Chang 403b4a8aeb0353fa18a2b5267b3952a80a6c6d4d13Chih-Chung Chang public void notifyChange() { 413b4a8aeb0353fa18a2b5267b3952a80a6c6d4d13Chih-Chung Chang mDirty.set(true); 423b4a8aeb0353fa18a2b5267b3952a80a6c6d4d13Chih-Chung Chang notifyContentChanged(); 433b4a8aeb0353fa18a2b5267b3952a80a6c6d4d13Chih-Chung Chang } 4415b351a22d02e89d882fc9fe32b3f4c512080e0aChih-Chung Chang} 45