/* * Copyright (C) 2007 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.tencent.tws.assistant.app; import android.content.Context; import android.os.Bundle; import android.text.InputType; import android.view.LayoutInflater; import android.view.View; import android.widget.EditText; import android.widget.TextView; import com.tencent.tws.sharelib.R; /** * <p> * A dialog showing a progress indicator and an optional text message or view. Only a text message or a view * can be used at the same time. * </p> * <p> * The dialog can be made cancelable on back key press. * </p> * <p> * The progress range is 0..10000. * </p> */ public class EditTextDialog extends AlertDialog { private TextView mMessageView; private EditText mEditText; private CharSequence mMessage; private CharSequence mEditString; private int mInputType = InputType.TYPE_CLASS_TEXT; private boolean mHasStarted; public EditTextDialog(Context context) { this(context, R.style.Theme_tws_Second_Dialog); } public EditTextDialog(Context context, int theme) { super(context, theme); } public static EditTextDialog show(Context context, CharSequence title, CharSequence message) { return show(context, title, message, InputType.TYPE_CLASS_TEXT); } public static EditTextDialog show(Context context, CharSequence title, CharSequence message, int inputType) { EditTextDialog dialog = new EditTextDialog(context); dialog.setTitle(title); dialog.setMessage(message); dialog.setInputType(inputType); dialog.show(); return dialog; } @Override protected void onCreate(Bundle savedInstanceState) { LayoutInflater inflater = LayoutInflater.from(getContext()); View view = inflater.inflate(R.layout.alert_dialog_edittext, null); if (view != null) { mMessageView = (TextView) view.findViewById(R.id.message); mEditText = (EditText) view.findViewById(R.id.edittext); setView(view); } if (mMessage != null) { setMessage(mMessage); } if (mEditString != null) { setEditTextText(mEditString); } setInputType(mInputType); super.onCreate(savedInstanceState); } public void setMessage(CharSequence message) { if (message != null) { if (mMessageView != null) { mMessageView.setVisibility(View.VISIBLE); mMessageView.setText(message); } else { mMessage = message; } } } public void setInputType(int inputType) { if (mEditText != null) { mEditText.setInputType(inputType); } else { mInputType = inputType; } } public EditText getEditText() { return mEditText; } public void setEditTextText(CharSequence editString) { if (mEditText != null) { mEditText.setText(editString); int pos = mEditText.getText().length(); if (pos >= 0) { try { mEditText.setSelection(pos); } catch (IndexOutOfBoundsException e) { } } } else { mEditString = editString; } } }