package com.android.iliConnect.handler;
import java.util.ArrayList;
import java.util.List;
import com.android.iliConnect.MainActivity;
import com.android.iliConnect.models.modification.NotificationData;
import com.android.iliConnect.models.modification.NotificationItem;
import com.android.iliConnect.models.modification.NotificationMessage;
public class ModificationHandler {
public boolean isNotificationMarked(String ref_id) {
NotificationData notiData = MainActivity.instance.localDataProvider.appData.getNotificationData();
int itemIndex = loadNotificationItemIdx(notiData, ref_id);
if (itemIndex != -1) {
NotificationItem item = notiData.NotificationItems.get(itemIndex);
if (item != null) {
return true;
}
}
return false;
}
public boolean isNotificationShown(String ref_id) {
NotificationData notiData = MainActivity.instance.localDataProvider.appData.getNotificationData();
int itemIndex = loadNotificationMessageIdx(notiData, ref_id);
if (itemIndex != -1) {
NotificationMessage message = notiData.NotificationMessages.get(itemIndex);
if (message != null) {
return true;
}
}
return false;
}
public void setNotificationMarked(String ref_id) {
NotificationData notiData = MainActivity.instance.localDataProvider.appData.getNotificationData();
if (notiData == null) {
notiData = new NotificationData();
}
List<NotificationItem> notificationList;
if (notiData.NotificationItems == null) {
notificationList = new ArrayList<NotificationItem>();
notiData.NotificationItems = notificationList;
}
NotificationItem item = new NotificationItem();
item.setRef_id(ref_id);
notiData.NotificationItems.add(item);
MainActivity.instance.localDataProvider.appData.save();
}
public void setModificationUnmarked(String ref_id) {
NotificationData notiData = MainActivity.instance.localDataProvider.appData.getNotificationData();
int index = loadNotificationItemIdx(notiData, ref_id);
if (index > -1) {
notiData.NotificationItems.remove(index);
}
setModificationUnshown(ref_id);
MainActivity.instance.localDataProvider.appData.save();
}
private int loadNotificationItemIdx(NotificationData data, String ref_id) {
int itemIndex = -1;
if (data != null) {
if (data.NotificationItems != null && !data.NotificationItems.isEmpty()) {
for (int i = 0; i < data.NotificationItems.size(); i++) {
if (data.NotificationItems.get(i).getRef_id().equals(ref_id)) {
itemIndex = i;
break;
}
}
}
}
return itemIndex;
}
public void setNotificationShown(String ref_id) {
NotificationData notiData = MainActivity.instance.localDataProvider.appData.getNotificationData();
if (notiData == null) {
notiData = new NotificationData();
}
List<NotificationMessage> notificationList;
if (notiData.NotificationMessages == null) {
notificationList = new ArrayList<NotificationMessage>();
notiData.NotificationMessages = notificationList;
}
NotificationMessage message = new NotificationMessage();
message.setRef_id(ref_id);
notiData.NotificationMessages.add(message);
MainActivity.instance.localDataProvider.appData.save();
}
private void setModificationUnshown(String ref_id) {
NotificationData notiData = MainActivity.instance.localDataProvider.appData.getNotificationData();
int index = loadNotificationMessageIdx(notiData, ref_id);
if (index > -1) {
notiData.NotificationMessages.remove(index);
}
MainActivity.instance.localDataProvider.appData.save();
}
private int loadNotificationMessageIdx(NotificationData data, String ref_id) {
int itemIndex = -1;
if (data != null) {
if (data.NotificationMessages != null && !data.NotificationMessages.isEmpty()) {
for (int i = 0; i < data.NotificationMessages.size(); i++) {
if (data.NotificationMessages.get(i).getRef_id().equals(ref_id)) {
itemIndex = i;
break;
}
}
}
}
return itemIndex;
}
}