MediaFormatpublic class MediaFormat extends android.app.Activity Confirm and execute a format of the sdcard.
Multiple confirmations are required: first, a general "are you sure
you want to do this?" prompt, followed by a keyguard pattern trace if the user
has defined one, followed by a final strongly-worded "THIS WILL ERASE EVERYTHING
ON THE SD CARD" prompt. If at any time the phone is allowed to go to sleep, is
locked, et cetera, then the confirmation sequence is abandoned. |
Fields Summary |
---|
private static final int | KEYGUARD_REQUEST | private android.view.LayoutInflater | mInflater | private com.android.internal.widget.LockPatternUtils | mLockUtils | private android.view.View | mInitialView | private android.widget.Button | mInitiateButton | private android.view.View | mFinalView | private android.widget.Button | mFinalButton | private Button.OnClickListener | mFinalClickListenerThe user has gone through the multiple confirmation, so now we go ahead
and invoke the Mount Service to format the SD card. | private Button.OnClickListener | mInitiateListenerIf the user clicks to begin the reset sequence, we next require a
keyguard confirmation if the user has currently enabled one. If there
is no keyguard available, we simply go to the final confirmation prompt. |
Methods Summary |
---|
private void | establishFinalConfirmationState()Configure the UI for the final confirmation interaction
if (mFinalView == null) {
mFinalView = mInflater.inflate(R.layout.media_format_final, null);
mFinalButton =
(Button) mFinalView.findViewById(R.id.execute_media_format);
mFinalButton.setOnClickListener(mFinalClickListener);
}
setContentView(mFinalView);
| private void | establishInitialState()In its initial state, the activity presents a button for the user to
click in order to initiate a confirmation sequence. This method is
called from various other points in the code to reset the activity to
this base state.
Reinflating views from resources is expensive and prevents us from
caching widget pointers, so we use a single-inflate pattern: we lazy-
inflate each view, caching all of the widget pointers we'll need at the
time, then simply reuse the inflated views directly whenever we need
to change contents.
if (mInitialView == null) {
mInitialView = mInflater.inflate(R.layout.media_format_primary, null);
mInitiateButton =
(Button) mInitialView.findViewById(R.id.initiate_media_format);
mInitiateButton.setOnClickListener(mInitiateListener);
}
setContentView(mInitialView);
| protected void | onActivityResult(int requestCode, int resultCode, android.content.Intent data)
super.onActivityResult(requestCode, resultCode, data);
if (requestCode != KEYGUARD_REQUEST) {
return;
}
// If the user entered a valid keyguard trace, present the final
// confirmation prompt; otherwise, go back to the initial state.
if (resultCode == Activity.RESULT_OK) {
establishFinalConfirmationState();
} else {
establishInitialState();
}
| protected void | onCreate(android.os.Bundle savedState)
super.onCreate(savedState);
mInitialView = null;
mFinalView = null;
mInflater = LayoutInflater.from(this);
mLockUtils = new LockPatternUtils(getContentResolver());
establishInitialState();
| public void | onPause()Abandon all progress through the confirmation sequence by returning
to the initial view any time the activity is interrupted (e.g. by
idle timeout).
super.onPause();
establishInitialState();
| private void | runKeyguardConfirmation()Keyguard validation is run using the standard {@link ConfirmLockPattern}
component as a subactivity
final Intent intent = new Intent();
intent.setClassName("com.android.settings",
"com.android.settings.ConfirmLockPattern");
// supply header and footer text in the intent
intent.putExtra(ConfirmLockPattern.HEADER_TEXT,
getText(R.string.media_format_gesture_prompt));
intent.putExtra(ConfirmLockPattern.FOOTER_TEXT,
getText(R.string.media_format_gesture_explanation));
startActivityForResult(intent, KEYGUARD_REQUEST);
|
|