196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project/* 296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * you may not use this file except in compliance with the License. 696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * You may obtain a copy of the License at 796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 1096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 1196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 1296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * See the License for the specific language governing permissions and 1496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * limitations under the License. 1596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 1696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 1796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectpackage com.android.email.activity.setup; 1896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 19d5059731780b81c91eff85be8830cafad41f3ed1Andy Stadlerimport com.android.email.R; 20cd09545b87979fa6b4337f17b5a001f0ef7b5269Andrew Stadlerimport com.android.email.activity.ActivityHelper; 212fbb3db5d86210d03175ce77ff08c989a96c5864Makoto Onukiimport com.android.email.activity.UiUtilities; 22f5418f1f93b02e7fab9f15eb201800b65510998eMarc Blankimport com.android.emailcommon.provider.Account; 2396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 2496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport android.app.Activity; 25fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadlerimport android.app.FragmentTransaction; 2696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport android.content.Intent; 2796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport android.os.Bundle; 28e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadlerimport android.view.View; 29e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadlerimport android.view.View.OnClickListener; 30e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadlerimport android.widget.Button; 3196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 32fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler/** 33fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler * Provides setup flow for IMAP/POP accounts. 34fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler * 35fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler * Uses AccountSetupIncomingFragment for primary UI. Uses AccountCheckSettingsFragment to validate 36fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler * the settings as entered. If the account is OK, proceeds to AccountSetupOutgoing. 37fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler */ 381b156352f3fc160da5ba050c2437bcd1c995b326Andrew Stadlerpublic class AccountSetupIncoming extends AccountSetupActivity 39e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler implements AccountSetupIncomingFragment.Callback, OnClickListener { 4096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 41fb4333b3a5051b08d3a255000bb1b8331e2a1d43Andrew Stadler /* package */ AccountSetupIncomingFragment mFragment; 42e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler private Button mNextButton; 434c3a8ede019f8683a7d15defd995790c4b5ebdacAndrew Stadler /* package */ boolean mNextButtonEnabled; 4496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 455b2424bf6f32fdfd65b02a9a311e7226dc48f1c1Andrew Stadler public static void actionIncomingSettings(Activity fromActivity, int mode, Account account) { 465b2424bf6f32fdfd65b02a9a311e7226dc48f1c1Andrew Stadler SetupData.setFlowMode(mode); 475b2424bf6f32fdfd65b02a9a311e7226dc48f1c1Andrew Stadler SetupData.setAccount(account); 48e6cc662abc0b5fffe223cda5e980b4f05a4e91ddMarc Blank fromActivity.startActivity(new Intent(fromActivity, AccountSetupIncoming.class)); 4996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 5096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 5196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project @Override 5296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void onCreate(Bundle savedInstanceState) { 5396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project super.onCreate(savedInstanceState); 54cd09545b87979fa6b4337f17b5a001f0ef7b5269Andrew Stadler ActivityHelper.debugSetWindowFlags(this); 5596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project setContentView(R.layout.account_setup_incoming); 5696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 578bcb572ccfdac6974c111fe6dfc753a5e0d4e7caAndrew Stadler mFragment = (AccountSetupIncomingFragment) 588bcb572ccfdac6974c111fe6dfc753a5e0d4e7caAndrew Stadler getFragmentManager().findFragmentById(R.id.setup_fragment); 5996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 601b156352f3fc160da5ba050c2437bcd1c995b326Andrew Stadler // Configure fragment 611b156352f3fc160da5ba050c2437bcd1c995b326Andrew Stadler mFragment.setCallback(this); 62e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler 632fbb3db5d86210d03175ce77ff08c989a96c5864Makoto Onuki mNextButton = (Button) UiUtilities.getView(this, R.id.next); 64e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler mNextButton.setOnClickListener(this); 652fbb3db5d86210d03175ce77ff08c989a96c5864Makoto Onuki UiUtilities.getView(this, R.id.previous).setOnClickListener(this); 661b156352f3fc160da5ba050c2437bcd1c995b326Andrew Stadler } 6796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 6896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 69e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler * Implements View.OnClickListener 70e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler */ 71e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler @Override 72e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler public void onClick(View view) { 73e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler switch (view.getId()) { 74e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler case R.id.next: 75e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler mFragment.onNext(); 76e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler break; 77e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler case R.id.previous: 78e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler onBackPressed(); 79e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler break; 80e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler } 81e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler } 82e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler 83e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler /** 84fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler * Implements AccountServerBaseFragment.Callback 85fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler * 86fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler * Launches the account checker. Positive results are reported to onCheckSettingsOk(). 87da8836a76cd8a6eaa7e3693eeacc6393870b2066Andrew Stadler */ 88fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler public void onProceedNext(int checkMode, AccountServerBaseFragment target) { 89fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler AccountCheckSettingsFragment checkerFragment = 90fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler AccountCheckSettingsFragment.newInstance(checkMode, target); 9131e25767918193217c884db72aaa98e50a4957d3Dianne Hackborn FragmentTransaction transaction = getFragmentManager().beginTransaction(); 92f946ff001914abce9ea06b1ceecd29cdb7e10ef3Andy Stadler transaction.add(checkerFragment, AccountCheckSettingsFragment.TAG); 93fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler transaction.addToBackStack("back"); 94fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler transaction.commit(); 9596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 961b156352f3fc160da5ba050c2437bcd1c995b326Andrew Stadler 9796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 988bcb572ccfdac6974c111fe6dfc753a5e0d4e7caAndrew Stadler * Implements AccountServerBaseFragment.Callback 9996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 100fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler public void onEnableProceedButtons(boolean enable) { 101fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler mNextButtonEnabled = enable; 102e6c6587b04a589eeb04006f75759c09ea10811e0Andy Stadler mNextButton.setEnabled(enable); 10396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 10496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 1051b156352f3fc160da5ba050c2437bcd1c995b326Andrew Stadler /** 1061a5e1e159352f6e21bde878eebca3e3a1896045cAndrew Stadler * Implements AccountServerBaseFragment.Callback 107fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler * 108fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler * If the checked settings are OK, proceed to outgoing settings screen 1091b156352f3fc160da5ba050c2437bcd1c995b326Andrew Stadler */ 1102731aef45c6f2f9792ae698ebf7d65ca6338a02cAndrew Stadler public void onCheckSettingsComplete(int result, int setupMode) { 1112731aef45c6f2f9792ae698ebf7d65ca6338a02cAndrew Stadler if (result == AccountCheckSettingsFragment.CHECK_SETTINGS_OK) { 1125b2424bf6f32fdfd65b02a9a311e7226dc48f1c1Andrew Stadler AccountSetupOutgoing.actionOutgoingSettings(this, SetupData.getFlowMode(), 1135b2424bf6f32fdfd65b02a9a311e7226dc48f1c1Andrew Stadler SetupData.getAccount()); 1145b2424bf6f32fdfd65b02a9a311e7226dc48f1c1Andrew Stadler finish(); 115fd14496c494a0d38c35c3788c9cc55f1984592e4Andrew Stadler } 11696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 11796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project} 118