package com.quickblox.q_municate_db.managers; import android.content.Context; import com.quickblox.q_municate_db.helpers.DataHelper; import com.quickblox.q_municate_db.models.Attachment; import com.quickblox.q_municate_db.models.Dialog; import com.quickblox.q_municate_db.models.DialogNotification; import com.quickblox.q_municate_db.models.DialogOccupant; import com.quickblox.q_municate_db.models.Friend; import com.quickblox.q_municate_db.models.Message; import com.quickblox.q_municate_db.models.Social; import com.quickblox.q_municate_db.models.User; import com.quickblox.q_municate_db.models.UserRequest; public class DataManager { private static DataManager instance; private DataHelper dataHelper; private UserDataManager userDataManager; private FriendDataManager friendDataManager; private SocialDataManager socialDataManager; private UserRequestDataManager userRequestDataManager; private DialogDataManager dialogDataManager; private DialogOccupantDataManager dialogOccupantDataManager; private DialogNotificationDataManager dialogNotificationDataManager; private AttachmentManager attachmentDataManager; private MessageDataManager messageDataManager; private DataManager(Context context) { dataHelper = new DataHelper(context); } public static void init(Context context) { if (null == instance) { instance = new DataManager(context); } } public static DataManager getInstance() { return instance; } private DataHelper getDataHelper() { return dataHelper; } public void clearAllTables() { dataHelper.clearTables(); } public UserDataManager getUserDataManager() { if (userDataManager == null) { userDataManager = new UserDataManager( getDataHelper().getDaoByClass(User.class), getDataHelper().getDaoByClass(DialogOccupant.class)); } return userDataManager; } public FriendDataManager getFriendDataManager() { if (friendDataManager == null) { friendDataManager = new FriendDataManager( getDataHelper().getDaoByClass(Friend.class), getDataHelper().getDaoByClass(User.class)); } return friendDataManager; } public SocialDataManager getSocialDataManager() { if (socialDataManager == null) { socialDataManager = new SocialDataManager( getDataHelper().getDaoByClass(Social.class)); } return socialDataManager; } public UserRequestDataManager getUserRequestDataManager() { if (userRequestDataManager == null) { userRequestDataManager = new UserRequestDataManager( getDataHelper().getDaoByClass(UserRequest.class)); } return userRequestDataManager; } public DialogDataManager getDialogDataManager() { if (dialogDataManager == null) { dialogDataManager = new DialogDataManager( getDataHelper().getDaoByClass(Dialog.class)); } return dialogDataManager; } public DialogOccupantDataManager getDialogOccupantDataManager() { if (dialogOccupantDataManager == null) { dialogOccupantDataManager = new DialogOccupantDataManager( getDataHelper().getDaoByClass(DialogOccupant.class), getDataHelper().getDaoByClass(Dialog.class)); } return dialogOccupantDataManager; } public DialogNotificationDataManager getDialogNotificationDataManager() { if (dialogNotificationDataManager == null) { dialogNotificationDataManager = new DialogNotificationDataManager( getDataHelper().getDaoByClass(DialogNotification.class), getDataHelper().getDaoByClass(Dialog.class), getDataHelper().getDaoByClass(DialogOccupant.class)); } return dialogNotificationDataManager; } public AttachmentManager getAttachmentDataManager() { if (attachmentDataManager == null) { attachmentDataManager = new AttachmentManager( getDataHelper().getDaoByClass(Attachment.class)); } return attachmentDataManager; } public MessageDataManager getMessageDataManager() { if (messageDataManager == null) { messageDataManager = new MessageDataManager( getDataHelper().getDaoByClass(Message.class), getDataHelper().getDaoByClass(Dialog.class), getDataHelper().getDaoByClass(DialogOccupant.class)); } return messageDataManager; } }