Добавлен ExceptionHandler
This commit is contained in:
parent
131e65fbe4
commit
a9f0aecd60
@ -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;
|
||||
|
||||
|
54
src/com/annimon/client/utils/ExceptionHandler.java
Normal file
54
src/com/annimon/client/utils/ExceptionHandler.java
Normal 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();
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user