124069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling/* 224069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * Copyright (C) 2014 The Android Open Source Project 324069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * 424069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * Licensed under the Apache License, Version 2.0 (the "License"); 524069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * you may not use this file except in compliance with the License. 624069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * You may obtain a copy of the License at 724069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * 824069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * http://www.apache.org/licenses/LICENSE-2.0 924069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * 1024069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * Unless required by applicable law or agreed to in writing, software 1124069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * distributed under the License is distributed on an "AS IS" BASIS, 1224069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1324069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * See the License for the specific language governing permissions and 1424069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * limitations under the License. 1524069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling */ 1624069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling 1724069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberlingpackage com.android.camera.session; 1824069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling 1924069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberlingimport android.content.ContentResolver; 2024069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberlingimport android.location.Location; 2124069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling 2224069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberlingimport java.io.File; 2324069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling 2424069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling/** 2524069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * Creates {@link StackSaver} instances. 2624069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling */ 2724069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberlingpublic class StackSaverFactory { 2824069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling private final String mCameraDirectory; 2924069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling private final ContentResolver mContentResolver; 3024069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling 3124069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling /** 3224069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * Create a new stack saver factory. 3324069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * 3424069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * @param cameraDirectory the directory in which the camera stores images. 3524069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * @param contentResolver the Android content resolver used to include 3624069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * images into the media store. 3724069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling */ 3824069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling public StackSaverFactory(String cameraDirectory, 3924069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling ContentResolver contentResolver) { 4024069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling mCameraDirectory = cameraDirectory; 4124069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling mContentResolver = contentResolver; 4224069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling } 4324069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling 4424069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling /** 4524069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * Creates a new StackSaver. 4624069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * 4724069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * @param mTitle the title of this stack session. 4824069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * @param location the GPS location that the media in this session was 4924069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * created at. 5024069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling * @return A StackSaver that is set up to save images in a stacked location. 5124069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling */ 5224069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling public StackSaver create(String mTitle, Location location) { 5324069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling return new StackSaverImpl(new File(mCameraDirectory, mTitle), location, mContentResolver); 5424069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling } 5524069e7a9cc9b4f908f18a71301285ccf5e164f6Sascha Haeberling} 56