SimpleAlertHandler.java
上传用户:szyujian
上传日期:2016-09-20
资源大小:320k
文件大小:4k
- /*
- * Copyright (C) 2007-2008 Esmertec AG.
- * Copyright (C) 2007-2008 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.im.app;
- import android.app.Activity;
- import android.app.AlertDialog;
- import android.content.res.Resources;
- import android.os.Handler;
- import android.os.Looper;
- import android.os.Message;
- import android.widget.Toast;
- import com.android.im.R;
- import com.android.im.engine.Contact;
- import com.android.im.engine.ContactListListener;
- import com.android.im.engine.ImErrorInfo;
- public class SimpleAlertHandler extends Handler {
- Activity mActivity;
- Resources mRes;
- public SimpleAlertHandler(Activity activity) {
- mActivity = activity;
- mRes = mActivity.getResources();
- }
- protected void promptDisconnectedEvent(Message msg) {
- long providerId = ((long)msg.arg1 << 32) | msg.arg2;
- ImApp app = ImApp.getApplication(mActivity);
- ProviderDef provider = app.getProvider(providerId);
- ImErrorInfo error = (ImErrorInfo) msg.obj;
- String promptMsg;
- if (error != null) {
- promptMsg = mActivity.getString(R.string.signed_out_prompt_with_error,
- provider.mName, ErrorResUtils.getErrorRes(mRes, error.getCode()));
- } else {
- promptMsg = mActivity.getString(R.string.signed_out_prompt, provider.mName);
- }
- Toast.makeText(mActivity, promptMsg, Toast.LENGTH_SHORT).show();
- }
- public void registerForBroadcastEvents() {
- ImApp.getApplication(mActivity).registerForBroadcastEvent(
- ImApp.EVENT_CONNECTION_DISCONNECTED,
- this);
- }
- public void unregisterForBroadcastEvents() {
- ImApp.getApplication(mActivity).unregisterForBroadcastEvent(
- ImApp.EVENT_CONNECTION_DISCONNECTED,
- this);
- }
- public void showAlert(int titleId, int messageId) {
- showAlert(mRes.getString(titleId), mRes.getString(messageId));
- }
- public void showAlert(int titleId, CharSequence message) {
- showAlert(mRes.getString(titleId), message);
- }
- public void showAlert(CharSequence title, int messageId) {
- showAlert(title, mRes.getString(messageId));
- }
- public void showAlert(final CharSequence title, final CharSequence message) {
- if (Looper.myLooper() == getLooper()) {
- new AlertDialog.Builder(mActivity)
- .setTitle(title)
- .setMessage(message)
- .setPositiveButton(R.string.ok, null)
- .show();
- } else {
- post(new Runnable() {
- public void run() {
- new AlertDialog.Builder(mActivity)
- .setTitle(title)
- .setMessage(message)
- .setPositiveButton(R.string.ok, null)
- .show();
- }
- });
- }
- }
- public void showServiceErrorAlert() {
- showAlert(R.string.error, R.string.service_error);
- }
- public void showContactError(int errorType, ImErrorInfo error,
- String listName, Contact contact) {
- int id = 0;
- switch (errorType) {
- case ContactListListener.ERROR_LOADING_LIST:
- id = R.string.load_contact_list_failed;
- break;
- case ContactListListener.ERROR_CREATING_LIST:
- id = R.string.add_list_failed;
- break;
- case ContactListListener.ERROR_BLOCKING_CONTACT:
- id = R.string.block_contact_failed;
- break;
- case ContactListListener.ERROR_UNBLOCKING_CONTACT:
- id = R.string.unblock_contact_failed;
- break;
- }
- String errorInfo = ErrorResUtils.getErrorRes(mRes, error.getCode());
- if (id != 0) {
- errorInfo = mRes.getText(id) + "n" + errorInfo;
- }
- showAlert(R.string.error, errorInfo);
- }
- }