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.content.Intent; 2272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.os.Bundle; 2372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.view.KeyEvent; 2472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.view.View; 2572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.view.View.OnClickListener; 2672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.view.View.OnKeyListener; 27d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport android.view.Window; 2872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.widget.Button; 2972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.widget.EditText; 3072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.widget.TextView; 31c39597e09610998e858d181e758ff8ae3f945b94Tom Taylorimport android.widget.Toast; 3272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 33ab845dee6565a8dfc384186bc8f2e801a2b087e1Ye Wenimport com.android.mms.LogTag; 3472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport com.android.mms.R; 3572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 3672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project/** 3772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * This activity provides the function to edit the duration of given slide. 3872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project */ 3972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectpublic class EditSlideDurationActivity extends Activity { 4072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public static final String SLIDE_INDEX = "slide_index"; 4172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public static final String SLIDE_TOTAL = "slide_total"; 4272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public static final String SLIDE_DUR = "dur"; 4372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 4472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private TextView mLabel; 4572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private Button mDone; 4672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private EditText mDur; 4772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 4872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private int mCurSlide; 4972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private int mTotal; 5072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 5172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private Bundle mState; 5272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // State. 5372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final static String STATE = "state"; 54ab845dee6565a8dfc384186bc8f2e801a2b087e1Ye Wen private final static String TAG = LogTag.TAG; 5572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private static final boolean DEBUG = false; 56150c4179995cc0a75f934ef194372f9295957ca2Joe Onorato private static final boolean LOCAL_LOGV = false; 5772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 5872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project @Override 5972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project protected void onCreate(Bundle icicle) { 6072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project super.onCreate(icicle); 6172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project requestWindowFeature(Window.FEATURE_NO_TITLE); 6272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project setContentView(R.layout.edit_slide_duration); 6372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 6472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project int dur; 6572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (icicle == null) { 6672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Get extra from intent. 6772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Intent intent = getIntent(); 6872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mCurSlide = intent.getIntExtra(SLIDE_INDEX, 1); 6972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mTotal = intent.getIntExtra(SLIDE_TOTAL, 1); 7072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project dur = intent.getIntExtra(SLIDE_DUR, 8); 7172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } else { 7272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mState = icicle.getBundle(STATE); 7372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 7472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mCurSlide = mState.getInt(SLIDE_INDEX, 1); 7572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mTotal = mState.getInt(SLIDE_TOTAL, 1); 7672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project dur = mState.getInt(SLIDE_DUR, 8); 7772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 7872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 7972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Label. 8072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mLabel = (TextView) findViewById(R.id.label); 8172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mLabel.setText(getString(R.string.duration_selector_title) + " " + (mCurSlide + 1) + "/" + mTotal); 8272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 8372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Input text field. 8472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mDur = (EditText) findViewById(R.id.text); 8572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mDur.setText(String.valueOf(dur)); 8672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mDur.setOnKeyListener(mOnKeyListener); 8772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 8872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Done button. 8972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mDone = (Button) findViewById(R.id.done); 9072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mDone.setOnClickListener(mOnDoneClickListener); 9172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 9272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 9372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project /* 9472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * (non-Javadoc) 9572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * @see android.app.Activity#onSaveInstanceState(android.os.Bundle) 9672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project */ 9772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project @Override 9872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project protected void onSaveInstanceState(Bundle outState) { 9972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project super.onSaveInstanceState(outState); 10072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 10172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mState = new Bundle(); 10272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mState.putInt(SLIDE_INDEX, mCurSlide); 10372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mState.putInt(SLIDE_TOTAL, mTotal); 1047eedb5a0bbf7c83fbf57df7ad1b97ca3ae438017Tom Taylor 1057eedb5a0bbf7c83fbf57df7ad1b97ca3ae438017Tom Taylor int durValue; 1067eedb5a0bbf7c83fbf57df7ad1b97ca3ae438017Tom Taylor try { 1077eedb5a0bbf7c83fbf57df7ad1b97ca3ae438017Tom Taylor durValue = Integer.parseInt(mDur.getText().toString()); 1087eedb5a0bbf7c83fbf57df7ad1b97ca3ae438017Tom Taylor } catch (NumberFormatException e) { 1097eedb5a0bbf7c83fbf57df7ad1b97ca3ae438017Tom Taylor // On an illegal value, set the duration back to a default value. 1107eedb5a0bbf7c83fbf57df7ad1b97ca3ae438017Tom Taylor durValue = 5; 1117eedb5a0bbf7c83fbf57df7ad1b97ca3ae438017Tom Taylor } 1127eedb5a0bbf7c83fbf57df7ad1b97ca3ae438017Tom Taylor mState.putInt(SLIDE_DUR, durValue); 11372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 11472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project outState.putBundle(STATE, mState); 11572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 11672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 11772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final OnKeyListener mOnKeyListener = new OnKeyListener() { 11872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public boolean onKey(View v, int keyCode, KeyEvent event) { 11972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (event.getAction() != KeyEvent.ACTION_DOWN) { 12072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return false; 12172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 12272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 12372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project switch (keyCode) { 12472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project case KeyEvent.KEYCODE_DPAD_CENTER: 12572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Edit complete. 12672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project editDone(); 12772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project break; 12872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 12972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return false; 13072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 13172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project }; 13272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 13372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final OnClickListener mOnDoneClickListener = new OnClickListener() { 13472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public void onClick(View v) { 13572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Edit complete. 13672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project editDone(); 13772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 13872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project }; 13972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 14072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project protected void editDone() { 14172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Set result to parent, and close window. 14272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Check the duration. 14372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project String dur = mDur.getText().toString(); 144c39597e09610998e858d181e758ff8ae3f945b94Tom Taylor int durValue = 0; 14572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project try { 146c39597e09610998e858d181e758ff8ae3f945b94Tom Taylor durValue = Integer.valueOf(dur); 14772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } catch (NumberFormatException e) { 148c39597e09610998e858d181e758ff8ae3f945b94Tom Taylor notifyUser(R.string.duration_not_a_number); 149c39597e09610998e858d181e758ff8ae3f945b94Tom Taylor return; 150c39597e09610998e858d181e758ff8ae3f945b94Tom Taylor } 151c39597e09610998e858d181e758ff8ae3f945b94Tom Taylor if (durValue <= 0) { 152c39597e09610998e858d181e758ff8ae3f945b94Tom Taylor notifyUser(R.string.duration_zero); 15372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return; 15472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 15572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 15672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Set result. 15772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project setResult(RESULT_OK, new Intent(mDur.getText().toString())); 15872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project finish(); 15972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 16072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 161c39597e09610998e858d181e758ff8ae3f945b94Tom Taylor private void notifyUser(int msgId) { 162c39597e09610998e858d181e758ff8ae3f945b94Tom Taylor mDur.requestFocus(); 163c39597e09610998e858d181e758ff8ae3f945b94Tom Taylor mDur.selectAll(); 164c39597e09610998e858d181e758ff8ae3f945b94Tom Taylor Toast.makeText(this, msgId, Toast.LENGTH_SHORT).show(); 165c39597e09610998e858d181e758ff8ae3f945b94Tom Taylor return; 16672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 16772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project} 168