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