15fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu/* 25fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu * Copyright (C) 2015 The Android Open Source Project 35fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu * 45fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu * Licensed under the Apache License, Version 2.0 (the "License"); 55fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu * you may not use this file except in compliance with the License. 65fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu * You may obtain a copy of the License at 75fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu * 85fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu * http://www.apache.org/licenses/LICENSE-2.0 95fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu * 105fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu * Unless required by applicable law or agreed to in writing, software 115fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu * distributed under the License is distributed on an "AS IS" BASIS, 125fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu * See the License for the specific language governing permissions and 145fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu * limitations under the License. 155fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu */ 165fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu 175fb629902527b7c688358ece3ef1f181322fc2abSenpo Hupackage com.android.camera.session; 185fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu 195fb629902527b7c688358ece3ef1f181322fc2abSenpo Huimport android.location.Location; 205fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu 21f0ff1a9aa44d04f680af7cec8b97c3b01d3e76bdSascha Haeberlingimport com.android.camera.app.MediaSaver; 22f0ff1a9aa44d04f680af7cec8b97c3b01d3e76bdSascha Haeberling 235fb629902527b7c688358ece3ef1f181322fc2abSenpo Hupublic class CaptureSessionFactoryImpl implements CaptureSessionFactory { 245fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu /** Sub-directory for storing temporary session files. */ 255fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu private static final String TEMP_SESSIONS = "TEMP_SESSIONS"; 265fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu 275fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu private final MediaSaver mMediaSaver; 285fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu private final PlaceholderManager mPlaceholderManager; 295fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu private final SessionStorageManager mSessionStorageManager; 305fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu private final StackSaverFactory mStackSaverFactory; 315fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu 325fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu public CaptureSessionFactoryImpl(MediaSaver mediaSaver, PlaceholderManager placeholderManager, 335fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu SessionStorageManager sessionStorageManager, StackSaverFactory stackSaverFactory) { 345fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu mMediaSaver = mediaSaver; 355fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu mPlaceholderManager = placeholderManager; 365fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu mSessionStorageManager = sessionStorageManager; 375fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu mStackSaverFactory = stackSaverFactory; 385fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu } 395fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu 405fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu @Override 41f0ff1a9aa44d04f680af7cec8b97c3b01d3e76bdSascha Haeberling public CaptureSession createNewSession(CaptureSessionManager sessionManager, 42f0ff1a9aa44d04f680af7cec8b97c3b01d3e76bdSascha Haeberling SessionNotifier sessionNotifier, String title, long sessionStartTime, 43f0ff1a9aa44d04f680af7cec8b97c3b01d3e76bdSascha Haeberling Location location) { 445fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu TemporarySessionFile temporarySessionFile = new TemporarySessionFile( 455fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu mSessionStorageManager, TEMP_SESSIONS, title); 465fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu return new CaptureSessionImpl(title, sessionStartTime, location, temporarySessionFile, 47f0ff1a9aa44d04f680af7cec8b97c3b01d3e76bdSascha Haeberling sessionManager, sessionNotifier, mPlaceholderManager, mMediaSaver, 485fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu mStackSaverFactory.create(title, location)); 495fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu } 505fb629902527b7c688358ece3ef1f181322fc2abSenpo Hu} 51