172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project/* 272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Copyright (C) 2008 Esmertec AG. 372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * 572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * you may not use this file except in compliance with the License. 772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * You may obtain a copy of the License at 872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * 972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 1072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * 1172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 1272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 1372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * See the License for the specific language governing permissions and 1572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * limitations under the License. 1672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project */ 1772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 1872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectpackage com.android.mms.ui; 1972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 2072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.app.Activity; 2172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.app.AlertDialog; 2272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.content.ContentUris; 2372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.content.Context; 2472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.content.DialogInterface; 2572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.content.Intent; 2672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.content.res.Resources; 2772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.media.RingtoneManager; 2872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.net.Uri; 2972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.os.Bundle; 3072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.os.Handler; 3172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.provider.Settings; 32d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport android.text.InputFilter; 33d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport android.text.InputFilter.LengthFilter; 3472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.text.TextUtils; 3572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.util.Log; 3672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.view.Menu; 3772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.view.MenuItem; 3872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.view.SubMenu; 3972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.view.View; 4072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.view.View.OnClickListener; 4172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.widget.Button; 42d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport android.widget.EditText; 4372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.widget.ImageButton; 4472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.widget.Toast; 45d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chen 46d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.ExceedMessageSizeException; 47ab845dee6565a8dfc384186bc8f2e801a2b087e1Ye Wenimport com.android.mms.LogTag; 48d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.MmsApp; 49d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.MmsConfig; 50d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.R; 51d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.ResolutionException; 52d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.TempFileProvider; 53d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.UnsupportContentTypeException; 54d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.model.IModelChangedObserver; 55d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.model.LayoutModel; 56d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.model.Model; 57d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.model.SlideModel; 58d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.model.SlideshowModel; 59d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.ui.BasicSlideEditorView.OnTextChangedListener; 60d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.ui.MessageUtils.ResizeImageResultCallback; 61d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.google.android.mms.ContentType; 62d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.google.android.mms.MmsException; 63d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.google.android.mms.pdu.PduBody; 64d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.google.android.mms.pdu.PduPart; 65d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.google.android.mms.pdu.PduPersister; 6672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 6772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project/** 6872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * This activity allows user to edit the contents of a slide. 6972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project */ 7072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectpublic class SlideEditorActivity extends Activity { 71ab845dee6565a8dfc384186bc8f2e801a2b087e1Ye Wen private static final String TAG = LogTag.TAG; 7272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private static final boolean DEBUG = false; 73150c4179995cc0a75f934ef194372f9295957ca2Joe Onorato private static final boolean LOCAL_LOGV = false; 7472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 7572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Key for extra data. 7672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public static final String SLIDE_INDEX = "slide_index"; 7772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 7872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Menu ids. 7972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int MENU_REMOVE_TEXT = 0; 8072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int MENU_ADD_PICTURE = 1; 8172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int MENU_TAKE_PICTURE = 2; 8272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int MENU_DEL_PICTURE = 3; 8372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int MENU_ADD_AUDIO = 4; 8472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int MENU_DEL_AUDIO = 5; 8572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int MENU_ADD_VIDEO = 6; 8672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int MENU_ADD_SLIDE = 7; 8772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int MENU_DEL_VIDEO = 8; 8872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int MENU_LAYOUT = 9; 8972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int MENU_DURATION = 10; 9072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int MENU_PREVIEW_SLIDESHOW = 11; 9172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int MENU_RECORD_SOUND = 12; 9272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int MENU_SUB_AUDIO = 13; 93867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor private final static int MENU_TAKE_VIDEO = 14; 9472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 9572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Request code. 9672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int REQUEST_CODE_EDIT_TEXT = 0; 9772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int REQUEST_CODE_CHANGE_PICTURE = 1; 9872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int REQUEST_CODE_TAKE_PICTURE = 2; 9972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int REQUEST_CODE_CHANGE_MUSIC = 3; 10072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int REQUEST_CODE_RECORD_SOUND = 4; 10172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int REQUEST_CODE_CHANGE_VIDEO = 5; 10272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int REQUEST_CODE_CHANGE_DURATION = 6; 103867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor private final static int REQUEST_CODE_TAKE_VIDEO = 7; 10472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 10572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // number of items in the duration selector dialog that directly map from 10672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // item index to duration in seconds (duration = index + 1) 10772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static int NUM_DIRECT_DURATIONS = 10; 10872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 10972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private ImageButton mNextSlide; 11072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private ImageButton mPreSlide; 11172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private Button mPreview; 11272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private Button mReplaceImage; 11372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private Button mRemoveSlide; 1145751c241c4a9cb19668788e2ae83ca6e8287375cSoojung Shin private EditText mTextEditor; 11572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private Button mDone; 11672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private BasicSlideEditorView mSlideView; 11772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 11872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private SlideshowModel mSlideshowModel; 11972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private SlideshowEditor mSlideshowEditor; 12072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private SlideshowPresenter mPresenter; 12172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private boolean mDirty; 12272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 12372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private int mPosition; 12472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private Uri mUri; 12572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 12672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static String MESSAGE_URI = "message_uri"; 127661957caeb3110ae3328a995edd467ceedc07a36Tom Taylor private AsyncDialog mAsyncDialog; // Used for background tasks. 12872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 12972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project @Override 13072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project protected void onCreate(Bundle savedInstanceState) { 13172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project super.onCreate(savedInstanceState); 13272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project setContentView(R.layout.edit_slide_activity); 13372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 13472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideView = (BasicSlideEditorView) findViewById(R.id.slide_editor_view); 13572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideView.setOnTextChangedListener(mOnTextChangedListener); 13672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 13772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mPreSlide = (ImageButton) findViewById(R.id.pre_slide_button); 13872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mPreSlide.setOnClickListener(mOnNavigateBackward); 13972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 14072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mNextSlide = (ImageButton) findViewById(R.id.next_slide_button); 14172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mNextSlide.setOnClickListener(mOnNavigateForward); 14272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 14372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mPreview = (Button) findViewById(R.id.preview_button); 14472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mPreview.setOnClickListener(mOnPreview); 14572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 14672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mReplaceImage = (Button) findViewById(R.id.replace_image_button); 14772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mReplaceImage.setOnClickListener(mOnReplaceImage); 14872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 14972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mRemoveSlide = (Button) findViewById(R.id.remove_slide_button); 15072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mRemoveSlide.setOnClickListener(mOnRemoveSlide); 15172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 1525751c241c4a9cb19668788e2ae83ca6e8287375cSoojung Shin mTextEditor = (EditText) findViewById(R.id.text_message); 1535751c241c4a9cb19668788e2ae83ca6e8287375cSoojung Shin mTextEditor.setFilters(new InputFilter[] { 1545751c241c4a9cb19668788e2ae83ca6e8287375cSoojung Shin new LengthFilter(MmsConfig.getMaxTextLimit())}); 1555751c241c4a9cb19668788e2ae83ca6e8287375cSoojung Shin 15672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mDone = (Button) findViewById(R.id.done_button); 15772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mDone.setOnClickListener(mDoneClickListener); 15872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 15972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project initActivityState(savedInstanceState, getIntent()); 16072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 16172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project try { 16272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowModel = SlideshowModel.createFromMessageUri(this, mUri); 163e028faa922b4bf0eaf3834cb450677fcd3549cb5Todor Kalaydjiev // Confirm that we have at least 1 slide to display 164e028faa922b4bf0eaf3834cb450677fcd3549cb5Todor Kalaydjiev if (mSlideshowModel.size() == 0) { 165e028faa922b4bf0eaf3834cb450677fcd3549cb5Todor Kalaydjiev Log.e(TAG, "Loaded slideshow is empty; can't edit nothingness, exiting."); 166e028faa922b4bf0eaf3834cb450677fcd3549cb5Todor Kalaydjiev finish(); 167e028faa922b4bf0eaf3834cb450677fcd3549cb5Todor Kalaydjiev return; 168e028faa922b4bf0eaf3834cb450677fcd3549cb5Todor Kalaydjiev } 16972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Register an observer to watch whether the data model is changed. 17072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowModel.registerModelChangedObserver(mModelChangedObserver); 17172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowEditor = new SlideshowEditor(this, mSlideshowModel); 17272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mPresenter = (SlideshowPresenter) PresenterFactory.getPresenter( 17372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project "SlideshowPresenter", this, mSlideView, mSlideshowModel); 174edd39351defc331fc268a6ed88338f64fe6f17cfTom Taylor 17572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Sanitize mPosition 17672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (mPosition >= mSlideshowModel.size()) { 17772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mPosition = Math.max(0, mSlideshowModel.size() - 1); 17872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } else if (mPosition < 0) { 17972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mPosition = 0; 18072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 18172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 18272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project showCurrentSlide(); 18372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (MmsException e) { 18472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Log.e(TAG, "Create SlideshowModel failed!", e); 18572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project finish(); 18672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return; 18772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 18872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 18972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 19072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private void initActivityState(Bundle savedInstanceState, Intent intent) { 19172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (savedInstanceState != null) { 19272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mUri = (Uri) savedInstanceState.getParcelable(MESSAGE_URI); 19372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mPosition = savedInstanceState.getInt(SLIDE_INDEX, 0); 19472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } else { 19572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mUri = intent.getData(); 19672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mPosition = intent.getIntExtra(SLIDE_INDEX, 0); 19772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 19872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 19972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 20072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project @Override 20172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project protected void onSaveInstanceState(Bundle outState) { 20272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project super.onSaveInstanceState(outState); 20372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 20472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project outState.putInt(SLIDE_INDEX, mPosition); 20572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project outState.putParcelable(MESSAGE_URI, mUri); 20672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 20772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 20872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project @Override 20972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project protected void onPause() { 21072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project super.onPause(); 21172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 212661957caeb3110ae3328a995edd467ceedc07a36Tom Taylor // remove any callback to display a progress spinner 213661957caeb3110ae3328a995edd467ceedc07a36Tom Taylor if (mAsyncDialog != null) { 214661957caeb3110ae3328a995edd467ceedc07a36Tom Taylor mAsyncDialog.clearPendingProgressDialog(); 215661957caeb3110ae3328a995edd467ceedc07a36Tom Taylor } 216661957caeb3110ae3328a995edd467ceedc07a36Tom Taylor 21772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project synchronized (this) { 21872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (mDirty) { 21972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project try { 22072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project PduBody pb = mSlideshowModel.toPduBody(); 221469db72fcf219fd4c60bc9b01c728bdc3e866d40Tom Taylor PduPersister.getPduPersister(this).updateParts(mUri, pb, null); 22272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowModel.sync(pb); 22372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (MmsException e) { 22472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Log.e(TAG, "Cannot update the message: " + mUri, e); 22572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 22672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 22772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 22872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 22972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 23072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project @Override 23172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project protected void onDestroy() { 23272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project super.onDestroy(); 23372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 23472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (mSlideshowModel != null) { 23572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowModel.unregisterModelChangedObserver( 23672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mModelChangedObserver); 23772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 23872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 23972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 24072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final IModelChangedObserver mModelChangedObserver = 24172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project new IModelChangedObserver() { 24272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public void onModelChanged(Model model, boolean dataChanged) { 24372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project synchronized (SlideEditorActivity.this) { 24472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mDirty = true; 24572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 24672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project setResult(RESULT_OK); 24772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 24872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project }; 24972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 25072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final OnClickListener mOnRemoveSlide = new OnClickListener() { 25172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public void onClick(View v) { 25272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Validate mPosition 25372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (mPosition >= 0 && mPosition < mSlideshowModel.size()) { 25472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowEditor.removeSlide(mPosition); 25572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project int size = mSlideshowModel.size(); 25672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (size > 0) { 25772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (mPosition >= size) { 25872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mPosition--; 25972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 26072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project showCurrentSlide(); 26172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } else { 26272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project finish(); 26372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return; 26472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 26572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 26672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 26772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project }; 26872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 26972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final OnTextChangedListener mOnTextChangedListener = new OnTextChangedListener() { 27072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public void onTextChanged(String s) { 271b79df272305c0c27954b7bd44de0e5df97e3e639Tom Taylor if (!isFinishing()) { 272b79df272305c0c27954b7bd44de0e5df97e3e639Tom Taylor mSlideshowEditor.changeText(mPosition, s); 273b79df272305c0c27954b7bd44de0e5df97e3e639Tom Taylor } 27472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 27572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project }; 27672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 27772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final OnClickListener mOnPreview = new OnClickListener() { 27872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public void onClick(View v) { 27972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project previewSlideshow(); 28072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 28172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project }; 28272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 28372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final OnClickListener mOnReplaceImage = new OnClickListener() { 28472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public void onClick(View v) { 285d9e91d95f4c8ed00d881e41b6af9783bec61cfc8Satish Roddom SlideModel slide = mSlideshowModel.get(mPosition); 2864ee7aa9aec45dd564c0e82928fa5a8378e856dcfWei Huang if (slide != null && slide.hasVideo()) { 287d9e91d95f4c8ed00d881e41b6af9783bec61cfc8Satish Roddom Toast.makeText(SlideEditorActivity.this, R.string.cannot_add_picture_and_video, 288d9e91d95f4c8ed00d881e41b6af9783bec61cfc8Satish Roddom Toast.LENGTH_SHORT).show(); 289d9e91d95f4c8ed00d881e41b6af9783bec61cfc8Satish Roddom return; 290d9e91d95f4c8ed00d881e41b6af9783bec61cfc8Satish Roddom } 29172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null); 29272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project intent.setType(ContentType.IMAGE_UNSPECIFIED); 29372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project startActivityForResult(intent, REQUEST_CODE_CHANGE_PICTURE); 29472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 29572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project }; 29672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 29772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final OnClickListener mOnNavigateBackward = new OnClickListener() { 29872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public void onClick(View v) { 29972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (mPosition > 0) { 30072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mPosition --; 30172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project showCurrentSlide(); 30272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 30372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 30472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project }; 30572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 30672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final OnClickListener mOnNavigateForward = new OnClickListener() { 30772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public void onClick(View v) { 30872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (mPosition < mSlideshowModel.size() - 1) { 30972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mPosition ++; 31072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project showCurrentSlide(); 31172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 31272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 31372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project }; 31472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 31572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final OnClickListener mDoneClickListener = new OnClickListener() { 31672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public void onClick(View v) { 31772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Intent data = new Intent(); 31872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project data.putExtra("done", true); 31972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project setResult(RESULT_OK, data); 32072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project finish(); 32172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 32272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project }; 32372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 324661957caeb3110ae3328a995edd467ceedc07a36Tom Taylor private AsyncDialog getAsyncDialog() { 325661957caeb3110ae3328a995edd467ceedc07a36Tom Taylor if (mAsyncDialog == null) { 326661957caeb3110ae3328a995edd467ceedc07a36Tom Taylor mAsyncDialog = new AsyncDialog(this); 327661957caeb3110ae3328a995edd467ceedc07a36Tom Taylor } 328661957caeb3110ae3328a995edd467ceedc07a36Tom Taylor return mAsyncDialog; 329661957caeb3110ae3328a995edd467ceedc07a36Tom Taylor } 330661957caeb3110ae3328a995edd467ceedc07a36Tom Taylor 33172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private void previewSlideshow() { 332661957caeb3110ae3328a995edd467ceedc07a36Tom Taylor MessageUtils.viewMmsMessageAttachment(SlideEditorActivity.this, mUri, mSlideshowModel, 3337616b16b95cc2d2c694cf199851a55ce8391b94eTom Taylor getAsyncDialog()); 33472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 33572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 33672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private void updateTitle() { 33772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project setTitle(getString(R.string.slide_show_part, (mPosition + 1), mSlideshowModel.size())); 33872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 33972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 34072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project @Override 34172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public boolean onPrepareOptionsMenu(Menu menu) { 3427bf703913dfb4c253b645279d69b7c6d25634880Tom Taylor if (isFinishing()) { 3437bf703913dfb4c253b645279d69b7c6d25634880Tom Taylor return false; 3447bf703913dfb4c253b645279d69b7c6d25634880Tom Taylor } 34572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project menu.clear(); 34672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 34772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project SlideModel slide = mSlideshowModel.get(mPosition); 34872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 3494ee7aa9aec45dd564c0e82928fa5a8378e856dcfWei Huang if (slide == null) { 3504ee7aa9aec45dd564c0e82928fa5a8378e856dcfWei Huang return false; 3514ee7aa9aec45dd564c0e82928fa5a8378e856dcfWei Huang } 3524ee7aa9aec45dd564c0e82928fa5a8378e856dcfWei Huang 35372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Preview slideshow. 35472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project menu.add(0, MENU_PREVIEW_SLIDESHOW, 0, R.string.preview_slideshow).setIcon( 35572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project com.android.internal.R.drawable.ic_menu_play_clip); 35672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 35772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Text 35872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (slide.hasText() && !TextUtils.isEmpty(slide.getText().getText())) { 35972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project //"Change text" if text is set. 36072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project menu.add(0, MENU_REMOVE_TEXT, 0, R.string.remove_text).setIcon( 36172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project R.drawable.ic_menu_remove_text); 36272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 36372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 36472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Picture 36572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (slide.hasImage()) { 36672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project menu.add(0, MENU_DEL_PICTURE, 0, R.string.remove_picture).setIcon( 36772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project R.drawable.ic_menu_remove_picture); 36872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } else if (!slide.hasVideo()) { 36972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project menu.add(0, MENU_ADD_PICTURE, 0, R.string.add_picture).setIcon( 37072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project R.drawable.ic_menu_picture); 37172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project menu.add(0, MENU_TAKE_PICTURE, 0, R.string.attach_take_photo).setIcon( 37272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project R.drawable.ic_menu_picture); 37372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 37472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 37572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Music 37672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (slide.hasAudio()) { 37772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project menu.add(0, MENU_DEL_AUDIO, 0, R.string.remove_music).setIcon( 37872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project R.drawable.ic_menu_remove_sound); 37972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } else if (!slide.hasVideo()) { 38047471dad88703d5befcbf65abd9e0cf28872bcb3Tom Taylor if (MmsConfig.getAllowAttachAudio()) { 38147471dad88703d5befcbf65abd9e0cf28872bcb3Tom Taylor SubMenu subMenu = menu.addSubMenu(0, MENU_SUB_AUDIO, 0, R.string.add_music) 38247471dad88703d5befcbf65abd9e0cf28872bcb3Tom Taylor .setIcon(R.drawable.ic_menu_add_sound); 38347471dad88703d5befcbf65abd9e0cf28872bcb3Tom Taylor subMenu.add(0, MENU_ADD_AUDIO, 0, R.string.attach_sound); 38447471dad88703d5befcbf65abd9e0cf28872bcb3Tom Taylor subMenu.add(0, MENU_RECORD_SOUND, 0, R.string.attach_record_sound); 38547471dad88703d5befcbf65abd9e0cf28872bcb3Tom Taylor } else { 38647471dad88703d5befcbf65abd9e0cf28872bcb3Tom Taylor menu.add(0, MENU_RECORD_SOUND, 0, R.string.attach_record_sound) 38747471dad88703d5befcbf65abd9e0cf28872bcb3Tom Taylor .setIcon(R.drawable.ic_menu_add_sound); 38847471dad88703d5befcbf65abd9e0cf28872bcb3Tom Taylor } 38972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 39072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 39172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Video 39272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (slide.hasVideo()) { 39372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project menu.add(0, MENU_DEL_VIDEO, 0, R.string.remove_video).setIcon( 3942f56791329cefc49ce79663b8d3aff50594cc1f3The Android Open Source Project R.drawable.ic_menu_remove_video); 39572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } else if (!slide.hasAudio() && !slide.hasImage()) { 39672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project menu.add(0, MENU_ADD_VIDEO, 0, R.string.add_video).setIcon(R.drawable.ic_menu_movie); 397867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor menu.add(0, MENU_TAKE_VIDEO, 0, R.string.attach_record_video) 398867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor .setIcon(R.drawable.ic_menu_movie); 39972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 40072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 40172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Add slide 40272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project menu.add(0, MENU_ADD_SLIDE, 0, R.string.add_slide).setIcon( 40372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project R.drawable.ic_menu_add_slide); 40472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 40572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Slide duration 40672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project String duration = getResources().getString(R.string.duration_sec); 40772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project menu.add(0, MENU_DURATION, 0, 40872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project duration.replace("%s", String.valueOf(slide.getDuration() / 1000))).setIcon( 40972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project R.drawable.ic_menu_duration); 41072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 41172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Slide layout 41272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project int resId; 41372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (mSlideshowModel.getLayout().getLayoutType() == LayoutModel.LAYOUT_TOP_TEXT) { 41472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project resId = R.string.layout_top; 41572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } else { 41672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project resId = R.string.layout_bottom; 41772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 41872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // FIXME: set correct icon when layout icon is available. 41972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project menu.add(0, MENU_LAYOUT, 0, resId).setIcon(R.drawable.ic_menu_picture); 42072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return true; 42172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 42272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 42372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project @Override 42472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public boolean onOptionsItemSelected(MenuItem item) { 42572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project switch (item.getItemId()) { 42672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case MENU_PREVIEW_SLIDESHOW: 42772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project previewSlideshow(); 42872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 42972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 43072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case MENU_REMOVE_TEXT: 43172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project SlideModel slide = mSlideshowModel.get(mPosition); 4324ee7aa9aec45dd564c0e82928fa5a8378e856dcfWei Huang if (slide != null) { 4334ee7aa9aec45dd564c0e82928fa5a8378e856dcfWei Huang slide.removeText(); 4344ee7aa9aec45dd564c0e82928fa5a8378e856dcfWei Huang } 43572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 43672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 43772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case MENU_ADD_PICTURE: 43872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null); 43972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project intent.setType(ContentType.IMAGE_UNSPECIFIED); 44072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project startActivityForResult(intent, REQUEST_CODE_CHANGE_PICTURE); 44172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 44272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 44372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case MENU_TAKE_PICTURE: 444b8eae066a7ba60722de07300bf990d519f5c81d8Tom Taylor MessageUtils.capturePicture(this, REQUEST_CODE_TAKE_PICTURE); 44572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 44672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 44772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case MENU_DEL_PICTURE: 44872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowEditor.removeImage(mPosition); 44972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project setReplaceButtonText(R.string.add_picture); 45072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 45172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 45272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case MENU_ADD_AUDIO: 45372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project MessageUtils.selectAudio(this, REQUEST_CODE_CHANGE_MUSIC); 45472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 45572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 45672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case MENU_RECORD_SOUND: 45715057746d75afb5fec583f30064b382c18403608Tom Taylor slide = mSlideshowModel.get(mPosition); 45815057746d75afb5fec583f30064b382c18403608Tom Taylor int currentSlideSize = slide.getSlideSize(); 45915057746d75afb5fec583f30064b382c18403608Tom Taylor long sizeLimit = ComposeMessageActivity.computeAttachmentSizeLimit(mSlideshowModel, 46015057746d75afb5fec583f30064b382c18403608Tom Taylor currentSlideSize); 46115057746d75afb5fec583f30064b382c18403608Tom Taylor MessageUtils.recordSound(this, REQUEST_CODE_RECORD_SOUND, sizeLimit); 46272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 46372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 46472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case MENU_DEL_AUDIO: 46572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowEditor.removeAudio(mPosition); 46672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 46772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 46872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case MENU_ADD_VIDEO: 46972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project intent = new Intent(Intent.ACTION_GET_CONTENT); 47072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project intent.setType(ContentType.VIDEO_UNSPECIFIED); 47102277c6b787e8e29ee22b1df745eb8549d3ff023Tom Taylor intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true); 47272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project startActivityForResult(intent, REQUEST_CODE_CHANGE_VIDEO); 47372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 47472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 475867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor case MENU_TAKE_VIDEO: 476867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor slide = mSlideshowModel.get(mPosition); 477867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor currentSlideSize = slide.getSlideSize(); 478867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor sizeLimit = ComposeMessageActivity.computeAttachmentSizeLimit(mSlideshowModel, 479867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor currentSlideSize); 480867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor if (sizeLimit > 0) { 481867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor MessageUtils.recordVideo(this, REQUEST_CODE_TAKE_VIDEO, sizeLimit); 482867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor } else { 483867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor Toast.makeText(this, 484867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor getString(R.string.message_too_big_for_video), 485867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor Toast.LENGTH_SHORT).show(); 486867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor } 487867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor break; 488867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor 48972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case MENU_DEL_VIDEO: 49072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowEditor.removeVideo(mPosition); 49172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 49272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 49372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case MENU_ADD_SLIDE: 49472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mPosition++; 49572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if ( mSlideshowEditor.addNewSlide(mPosition) ) { 49672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // add successfully 49772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project showCurrentSlide(); 49872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } else { 49972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // move position back 50072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mPosition--; 50172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Toast.makeText(this, R.string.cannot_add_slide_anymore, 50272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Toast.LENGTH_SHORT).show(); 50372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 50472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 50572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 50672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case MENU_LAYOUT: 50772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project showLayoutSelectorDialog(); 50872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 50972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 51072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case MENU_DURATION: 51172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project showDurationDialog(); 51272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 51372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 51472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 51572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return true; 51672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 51772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 51872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private void setReplaceButtonText(int text) { 51972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mReplaceImage.setText(text); 52072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 52172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 52272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private void showDurationDialog() { 52372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project AlertDialog.Builder builder = new AlertDialog.Builder(this); 52472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project builder.setIcon(R.drawable.ic_mms_duration); 52572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project String title = getResources().getString(R.string.duration_selector_title); 52672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project builder.setTitle(title + (mPosition + 1) + "/" + mSlideshowModel.size()); 52772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 52872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project builder.setItems(R.array.select_dialog_items, 52972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project new DialogInterface.OnClickListener() { 53072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public void onClick(DialogInterface dialog, int which) { 53172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if ((which >= 0) && (which < NUM_DIRECT_DURATIONS)) { 53272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowEditor.changeDuration( 53372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mPosition, (which + 1) * 1000); 53472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } else { 53572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Intent intent = new Intent(SlideEditorActivity.this, 53672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project EditSlideDurationActivity.class); 53772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project intent.putExtra(EditSlideDurationActivity.SLIDE_INDEX, mPosition); 53872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project intent.putExtra(EditSlideDurationActivity.SLIDE_TOTAL, 53972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowModel.size()); 54072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project intent.putExtra(EditSlideDurationActivity.SLIDE_DUR, 54172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowModel.get(mPosition).getDuration() / 1000); // in seconds 54272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project startActivityForResult(intent, REQUEST_CODE_CHANGE_DURATION); 54372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 544c4a34a0ccd414e2bba937e8abd105a0383afff35Tom Taylor dialog.dismiss(); 54572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 54672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project }); 54772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 54872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project builder.show(); 54972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 55072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 55172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private void showLayoutSelectorDialog() { 55272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project AlertDialog.Builder builder = new AlertDialog.Builder(this); 55372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project builder.setIcon(R.drawable.ic_mms_layout); 55472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 55572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project String title = getResources().getString(R.string.layout_selector_title); 55672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project builder.setTitle(title + (mPosition + 1) + "/" + mSlideshowModel.size()); 55772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 55872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project LayoutSelectorAdapter adapter = new LayoutSelectorAdapter(this); 55972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project builder.setAdapter(adapter, new DialogInterface.OnClickListener() { 56072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public void onClick(DialogInterface dialog, int which) { 56172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project switch (which) { 5626bf6dd8f9327299fd4a829fb7844568f96dd5278Tom Taylor case 0: // Top text. 56372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowEditor.changeLayout(LayoutModel.LAYOUT_TOP_TEXT); 56472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 5656bf6dd8f9327299fd4a829fb7844568f96dd5278Tom Taylor case 1: // Bottom text. 5666bf6dd8f9327299fd4a829fb7844568f96dd5278Tom Taylor mSlideshowEditor.changeLayout(LayoutModel.LAYOUT_BOTTOM_TEXT); 5676bf6dd8f9327299fd4a829fb7844568f96dd5278Tom Taylor break; 56872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 569c4a34a0ccd414e2bba937e8abd105a0383afff35Tom Taylor dialog.dismiss(); 57072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 57172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project }); 57272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 57372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project builder.show(); 57472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 57572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 57672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project @Override 57772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project protected void onActivityResult(int requestCode, int resultCode, Intent data) { 57872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (resultCode != RESULT_OK) { 57972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return; 58072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 58172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 58272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project switch(requestCode) { 58372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case REQUEST_CODE_EDIT_TEXT: 58472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // XXX where does this come from? Action is probably not the 58572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // right place to have the text... 58672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowEditor.changeText(mPosition, data.getAction()); 58772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 58872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 58972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case REQUEST_CODE_TAKE_PICTURE: 590b0664c5822ee07642617a73c932b02a2636a2223Tom Taylor Uri pictureUri = null; 5912fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor boolean showError = false; 59272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project try { 5932fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor pictureUri = TempFileProvider.renameScrapFile(".jpg", 5941450f3f35f29fbf8b2701dc8e8bceda326fbfcedTom Taylor Integer.toString(mPosition), this); 5952fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor 5962fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor if (pictureUri == null) { 5972fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor showError = true; 5982fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor } else { 599b8eae066a7ba60722de07300bf990d519f5c81d8Tom Taylor // Remove the old captured picture's thumbnail from the cache 600b8eae066a7ba60722de07300bf990d519f5c81d8Tom Taylor MmsApp.getApplication().getThumbnailManager().removeThumbnail(pictureUri); 601b8eae066a7ba60722de07300bf990d519f5c81d8Tom Taylor 6022fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor mSlideshowEditor.changeImage(mPosition, pictureUri); 6032fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor setReplaceButtonText(R.string.replace_image); 604b0664c5822ee07642617a73c932b02a2636a2223Tom Taylor } 60572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (MmsException e) { 60672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Log.e(TAG, "add image failed", e); 6072fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor showError = true; 60872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (UnsupportContentTypeException e) { 60972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project MessageUtils.showErrorDialog(SlideEditorActivity.this, 61072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.unsupported_media_format, getPictureString()), 61172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.select_different_media, getPictureString())); 61272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (ResolutionException e) { 613b0664c5822ee07642617a73c932b02a2636a2223Tom Taylor MessageUtils.resizeImageAsync(this, pictureUri, new Handler(), 614edd39351defc331fc268a6ed88338f64fe6f17cfTom Taylor mResizeImageCallback, false); 61572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (ExceedMessageSizeException e) { 616b0664c5822ee07642617a73c932b02a2636a2223Tom Taylor MessageUtils.resizeImageAsync(this, pictureUri, new Handler(), 617f79b803adc0cee3778cf6aac52d203896cde5d95Christian Gustafsson mResizeImageCallback, false); 61872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 6192fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor if (showError) { 6202fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor notifyUser("add picture failed"); 6212fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor Toast.makeText(SlideEditorActivity.this, 6222fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor getResourcesString(R.string.failed_to_add_media, getPictureString()), 6232fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor Toast.LENGTH_SHORT).show(); 6242fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor } 62572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 62672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 62772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case REQUEST_CODE_CHANGE_PICTURE: 62872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project try { 62972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowEditor.changeImage(mPosition, data.getData()); 63072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project setReplaceButtonText(R.string.replace_image); 63172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (MmsException e) { 63272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Log.e(TAG, "add image failed", e); 63372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project notifyUser("add picture failed"); 63472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Toast.makeText(SlideEditorActivity.this, 63572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.failed_to_add_media, getPictureString()), 63672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Toast.LENGTH_SHORT).show(); 63772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (UnsupportContentTypeException e) { 63872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project MessageUtils.showErrorDialog(SlideEditorActivity.this, 63972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.unsupported_media_format, getPictureString()), 64072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.select_different_media, getPictureString())); 64172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (ResolutionException e) { 642edd39351defc331fc268a6ed88338f64fe6f17cfTom Taylor MessageUtils.resizeImageAsync(this, data.getData(), new Handler(), 643edd39351defc331fc268a6ed88338f64fe6f17cfTom Taylor mResizeImageCallback, false); 64472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (ExceedMessageSizeException e) { 645f79b803adc0cee3778cf6aac52d203896cde5d95Christian Gustafsson MessageUtils.resizeImageAsync(this, data.getData(), new Handler(), 646f79b803adc0cee3778cf6aac52d203896cde5d95Christian Gustafsson mResizeImageCallback, false); 64772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 64872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 64972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 65072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case REQUEST_CODE_CHANGE_MUSIC: 65172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case REQUEST_CODE_RECORD_SOUND: 65272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Uri uri; 65372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (requestCode == REQUEST_CODE_CHANGE_MUSIC) { 65472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project uri = (Uri) data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); 65572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (Settings.System.DEFAULT_RINGTONE_URI.equals(uri)) { 65672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return; 65772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 65872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } else { 65972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project uri = data.getData(); 66072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 66172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 66272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project try { 66372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowEditor.changeAudio(mPosition, uri); 66472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (MmsException e) { 66572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Log.e(TAG, "add audio failed", e); 66672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project notifyUser("add music failed"); 66772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Toast.makeText(SlideEditorActivity.this, 66872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.failed_to_add_media, getAudioString()), 66972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Toast.LENGTH_SHORT).show(); 67072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (UnsupportContentTypeException e) { 67172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project MessageUtils.showErrorDialog(SlideEditorActivity.this, 67272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.unsupported_media_format, getAudioString()), 67372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.select_different_media, getAudioString())); 67472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (ExceedMessageSizeException e) { 67572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project MessageUtils.showErrorDialog(SlideEditorActivity.this, 67672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.exceed_message_size_limitation), 67772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.failed_to_add_media, getAudioString())); 67872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 67972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 68072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 681867b50f32a3035ac38178eebd827f0c8012781c2Tom Taylor case REQUEST_CODE_TAKE_VIDEO: 68272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project try { 6832fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor Uri videoUri = TempFileProvider.renameScrapFile(".3gp", 6841450f3f35f29fbf8b2701dc8e8bceda326fbfcedTom Taylor Integer.toString(mPosition), this); 6852fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor 6862fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor mSlideshowEditor.changeVideo(mPosition, videoUri); 6872fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor } catch (MmsException e) { 6882fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor notifyUser("add video failed"); 6892fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor Toast.makeText(SlideEditorActivity.this, 6902fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor getResourcesString(R.string.failed_to_add_media, getVideoString()), 6912fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor Toast.LENGTH_SHORT).show(); 6922fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor } catch (UnsupportContentTypeException e) { 6932fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor MessageUtils.showErrorDialog(SlideEditorActivity.this, 6942fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor getResourcesString(R.string.unsupported_media_format, getVideoString()), 6952fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor getResourcesString(R.string.select_different_media, getVideoString())); 6962fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor } catch (ExceedMessageSizeException e) { 6972fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor MessageUtils.showErrorDialog(SlideEditorActivity.this, 6982fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor getResourcesString(R.string.exceed_message_size_limitation), 6992fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor getResourcesString(R.string.failed_to_add_media, getVideoString())); 7002fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor } 7012fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor break; 7022fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor 7032fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor case REQUEST_CODE_CHANGE_VIDEO: 7042fddde28ed2ccb3c156d596160e3a504c83ce444Tom Taylor try { 70572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowEditor.changeVideo(mPosition, data.getData()); 70672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (MmsException e) { 70772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Log.e(TAG, "add video failed", e); 70872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project notifyUser("add video failed"); 70972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Toast.makeText(SlideEditorActivity.this, 71072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.failed_to_add_media, getVideoString()), 71172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Toast.LENGTH_SHORT).show(); 71272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (UnsupportContentTypeException e) { 71372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project MessageUtils.showErrorDialog(SlideEditorActivity.this, 71472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.unsupported_media_format, getVideoString()), 71572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.select_different_media, getVideoString())); 71672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (ExceedMessageSizeException e) { 71772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project MessageUtils.showErrorDialog(SlideEditorActivity.this, 71872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.exceed_message_size_limitation), 71972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.failed_to_add_media, getVideoString())); 72072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 72172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 72272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 72372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case REQUEST_CODE_CHANGE_DURATION: 72472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowEditor.changeDuration(mPosition, 72572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Integer.valueOf(data.getAction()) * 1000); 72672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 72772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 72872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 72972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 73072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final ResizeImageResultCallback mResizeImageCallback = new ResizeImageResultCallback() { 731edd39351defc331fc268a6ed88338f64fe6f17cfTom Taylor public void onResizeResult(PduPart part, boolean append) { 73272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Context context = SlideEditorActivity.this; 73372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (part == null) { 73472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Toast.makeText(SlideEditorActivity.this, 73572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.failed_to_add_media, getPictureString()), 73672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Toast.LENGTH_SHORT).show(); 73772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return; 73872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 73972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 74072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project try { 74172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project long messageId = ContentUris.parseId(mUri); 74272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project PduPersister persister = PduPersister.getPduPersister(context); 743469db72fcf219fd4c60bc9b01c728bdc3e866d40Tom Taylor Uri newUri = persister.persistPart(part, messageId, null); 74472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mSlideshowEditor.changeImage(mPosition, newUri); 74572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 74672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project setReplaceButtonText(R.string.replace_image); 74772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (MmsException e) { 74872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project notifyUser("add picture failed"); 74972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Toast.makeText(SlideEditorActivity.this, 75072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.failed_to_add_media, getPictureString()), 75172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Toast.LENGTH_SHORT).show(); 75272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (UnsupportContentTypeException e) { 75372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project MessageUtils.showErrorDialog(SlideEditorActivity.this, 75472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.unsupported_media_format, getPictureString()), 75572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.select_different_media, getPictureString())); 75672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (ResolutionException e) { 75772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project MessageUtils.showErrorDialog(SlideEditorActivity.this, 75872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.failed_to_resize_image), 75972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.resize_image_error_information)); 76072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (ExceedMessageSizeException e) { 76172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project MessageUtils.showErrorDialog(SlideEditorActivity.this, 76272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.exceed_message_size_limitation), 76372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project getResourcesString(R.string.failed_to_add_media, getPictureString())); 76472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 76572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 76672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project }; 76772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 76872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private String getResourcesString(int id, String mediaName) { 76972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Resources r = getResources(); 77072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return r.getString(id, mediaName); 77172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 77272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 77372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private String getResourcesString(int id) { 77472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Resources r = getResources(); 77572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return r.getString(id); 77672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 77772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 77872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private String getAudioString() { 77972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return getResourcesString(R.string.type_audio); 78072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 78172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 78272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private String getPictureString() { 78372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return getResourcesString(R.string.type_picture); 78472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 78572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 78672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private String getVideoString() { 78772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return getResourcesString(R.string.type_video); 78872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 78972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 79072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private void notifyUser(String message) { 79172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (LOCAL_LOGV) { 79272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Log.v(TAG, "notifyUser: message=" + message); 79372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 79472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 79572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 79672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private void showCurrentSlide() { 79772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mPresenter.setLocation(mPosition); 79851e4621fa12400b1e79cc18b7bb0f9a83af6b622Tom Taylor mPresenter.present(null); 79972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project updateTitle(); 80072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 80172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (mSlideshowModel.get(mPosition).hasImage()) { 80272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project setReplaceButtonText(R.string.replace_image); 80372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } else { 80472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project setReplaceButtonText(R.string.add_picture); 80572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 80672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 80772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project} 808