AccountSetupActivity.java revision 9d3e01c589e1f281941cff9abc59aba0b0f33e78
1/*
2 * Copyright (C) 2010 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.email.activity.setup;
18
19import android.app.Activity;
20import android.os.Bundle;
21
22import com.android.emailcommon.Logging;
23import com.android.mail.utils.LogUtils;
24
25/**
26 * Superclass of all of the account setup activities; ensures that SetupData state is saved/restored
27 * automatically as required
28 */
29public class AccountSetupActivity extends Activity implements SetupData.SetupDataContainer {
30    private static final boolean DEBUG_SETUP_FLOWS = false;  // Don't check in set to true
31    protected SetupData mSetupData;
32
33    @Override
34    public void onCreate(Bundle savedInstanceState) {
35        if (savedInstanceState != null) {
36            mSetupData = savedInstanceState.getParcelable(SetupData.EXTRA_SETUP_DATA);
37        } else {
38            final Bundle b = getIntent().getExtras();
39            if (b != null) {
40                mSetupData = b.getParcelable(SetupData.EXTRA_SETUP_DATA);
41            }
42        }
43        if (mSetupData == null) {
44            mSetupData = new SetupData();
45        }
46
47        super.onCreate(savedInstanceState);
48        if (DEBUG_SETUP_FLOWS) {
49            LogUtils.d(Logging.LOG_TAG, "%s onCreate %s", getClass().getName(), mSetupData.debugString());
50        }
51    }
52
53    @Override
54    public void onSaveInstanceState(Bundle outState) {
55        super.onSaveInstanceState(outState);
56        outState.putParcelable(SetupData.EXTRA_SETUP_DATA, mSetupData);
57    }
58
59    @Override
60    public SetupData getSetupData() {
61        return mSetupData;
62    }
63
64    @Override
65    public void setSetupData(SetupData setupData) {
66        mSetupData = setupData;
67    }
68}
69