Добавлен ExceptionHandler

This commit is contained in:
Victor 2013-08-29 18:22:15 +03:00
parent 131e65fbe4
commit a9f0aecd60
3 changed files with 67 additions and 14 deletions

View File

@ -2,7 +2,6 @@ package com.annimon.client.fragments;
import android.app.ListFragment;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import com.annimon.client.utils.MoreListHelper;

View File

@ -0,0 +1,54 @@
package com.annimon.client.utils;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.util.Log;
/**
* Handling exceptions.
* If error is critical or must be show to user, then
* call <b>alert</b> method.
* In other situations call <b>log</b> method.
*
* @author aNNiMON
*/
public class ExceptionHandler {
private static final boolean DEBUG = false;
private static final String TAG = "anmclient::ExceptionHandler";
public static void alert(Context context, Exception ex) {
alert(context, getErrorMessage(ex));
}
public static void alert(Context context, int resourceId) {
alert(context, context.getString(resourceId));
}
public static void alert(Context context, String message) {
new AlertDialog.Builder(context)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle(android.R.string.dialog_alert_title)
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).show();
}
public static void log(Exception ex) {
if (DEBUG) {
Log.e(TAG, getErrorMessage(ex));
}
}
private static String getErrorMessage(Exception ex) {
return ex.getMessage();
}
}

View File

@ -10,7 +10,7 @@ import android.widget.TextView;
import java.util.ArrayList;
/**
* Вспомагательный класс для создания подгружаемых списков.
* Вспомагательный класс для создания подгружаемых списков.
*
* @author aNNiMON
*/
@ -34,7 +34,7 @@ public abstract class MoreListHelper<T> {
this.activity = activity;
if (footerView == null) {
// Создаём footer по умочанию.
// Создаём footer по умочанию.
footerView = new TextView(activity);
((TextView) footerView).setText("Loading...");
}
@ -47,8 +47,8 @@ public abstract class MoreListHelper<T> {
}
/**
* Создаёт новый адаптер из ресурса разметки.
* @param layoutResource ресурс разметки
* Создаёт новый адаптер из ресурса разметки.
* @param layoutResource ресурс разметки
*/
public void createAdapter(int layoutResource) {
adapter = new ArrayAdapter<T>(activity, layoutResource, items);
@ -63,9 +63,9 @@ public abstract class MoreListHelper<T> {
}
/**
* Задаёт количество элементов на страницу.
* Используется при загрузке новых элементов для ограничения загружаемых данных.
* @param value количество элементов
* Задаёт количество элементов на страницу.
* Используется при загрузке новых элементов для ограничения загружаемых данных.
* @param value количество элементов
*/
public void setItemsPerPage(int value) {
itemsPerPage = value;
@ -91,10 +91,10 @@ public abstract class MoreListHelper<T> {
};
/**
* Метод загрузки новых элементов списка.
* Выполняется в отдельном треде.
* @param items список для заполнения
* @param itemsPerPage количество элементов на страницу (по умолчанию 10)
* Метод загрузки новых элементов списка.
* Выполняется в отдельном треде.
* @param items список для заполнения
* @param itemsPerPage количество элементов на страницу (по умолчанию 10)
*/
public abstract void onLoadItems(ArrayList<T> items, int itemsPerPage);
@ -103,9 +103,9 @@ public abstract class MoreListHelper<T> {
public void run() {
loadingMore = true;
items = new ArrayList<T>();
// Загружаем данные.
// Загружаем данные.
onLoadItems(items, itemsPerPage);
// Обновляем список и адаптер.
// Обновляем список и адаптер.
activity.runOnUiThread(updateAdapterRunnable);
}
};