replicant-packages_apps_Email/src/com/android/email/activity/setup/AccountSetupABFragment.java

121 lines
4.5 KiB
Java

/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.email.activity.setup;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import com.android.email.R;
import com.android.email.activity.UiUtilities;
import com.android.email.service.EmailServiceUtils;
public class AccountSetupABFragment extends AccountSetupFragment {
private static final String ACCOUNT_EMAIL_ARG = "accountEmail";
private static final String USER_PROTOCOL_ARG = "userProtocol";
private static final String PROVIDER_PROTOCOL_ARG = "providerProtocol";
private String mAccountEmail;
private String mUserProtocol;
private String mProviderProtocol;
public interface Callback extends AccountSetupFragment.Callback {
void onABProtocolDisambiguated(String chosenProtocol);
}
public AccountSetupABFragment() {}
/**
* Setup flow fragment for disambiguating the user's choice of protocol (when launched from the
* system account manager) and what is indicated in providers.xml
*
* @param accountEmail Email address of account being set up
* @param userProtocol Protocol that the user initiated account creation for
* @param providerProtocol Protocol indicated in providers.xml
* @return Fresh ready-to-use disambiguation fragment
*/
public static AccountSetupABFragment newInstance(final String accountEmail,
final String userProtocol, final String providerProtocol) {
final Bundle b = new Bundle(3);
b.putString(ACCOUNT_EMAIL_ARG, accountEmail);
b.putString(USER_PROTOCOL_ARG, userProtocol);
b.putString(PROVIDER_PROTOCOL_ARG, providerProtocol);
final AccountSetupABFragment f = new AccountSetupABFragment();
f.setArguments(b);
return f;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final Bundle b = getArguments();
mAccountEmail = b.getString(ACCOUNT_EMAIL_ARG);
mUserProtocol = b.getString(USER_PROTOCOL_ARG);
mProviderProtocol = b.getString(PROVIDER_PROTOCOL_ARG);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final Context context = inflater.getContext();
final String userProtocolName =
EmailServiceUtils.getServiceInfo(context, mUserProtocol).name;
final String providerProtocolName =
EmailServiceUtils.getServiceInfo(context, mProviderProtocol).name;
final View view = inflateTemplatedView(inflater, container,
R.layout.account_setup_ab_fragment, R.string.account_setup_ab_headline);
final TextView abInstructions = UiUtilities.getView(view, R.id.ab_instructions);
abInstructions.setText(context.getString(R.string.account_setup_ab_instructions_format,
mAccountEmail, userProtocolName, providerProtocolName));
final View nextButton = UiUtilities.getView(view, R.id.next);
nextButton.setVisibility(View.INVISIBLE);
final Button abButtonA = UiUtilities.getView(view, R.id.ab_button_a);
abButtonA.setOnClickListener(this);
abButtonA.setText(userProtocolName);
final Button abButtonB = UiUtilities.getView(view, R.id.ab_button_b);
abButtonB.setOnClickListener(this);
abButtonB.setText(providerProtocolName);
return view;
}
@Override
public void onClick(View v) {
final int viewId = v.getId();
final Callback callback = (Callback) getActivity();
if (viewId == R.id.ab_button_a) {
callback.onABProtocolDisambiguated(mUserProtocol);
} else if (viewId == R.id.ab_button_b) {
callback.onABProtocolDisambiguated(mProviderProtocol);
} else {
super.onClick(v);
}
}
}