OpenSRP/opensrp-client-anc

View on GitHub
opensrp-anc/src/main/java/org/smartregister/anc/library/helper/ECSyncHelper.java

Summary

Maintainability
A
0 mins
Test Coverage
package org.smartregister.anc.library.helper;

import static org.smartregister.configurableviews.util.Constants.CONFIGURATION.LOGIN;
import static org.smartregister.configurableviews.util.Constants.LAST_VIEWS_SYNC_TIMESTAMP;
import static org.smartregister.configurableviews.util.Constants.VIEW_CONFIGURATION_PREFIX;

import android.content.Context;
import android.preference.PreferenceManager;
import android.util.Log;

import org.smartregister.CoreLibrary;
import org.smartregister.configurableviews.helper.PrefsHelper;
import org.smartregister.repository.EventClientRepository;

/**
 * Created by ndegwamartin on 15/03/2018.
 */

public class ECSyncHelper extends org.smartregister.sync.helper.ECSyncHelper implements PrefsHelper {

    public static final String MOVE_TO_CATCHMENT_EVENT = "MOVE_TO_CATCHMENT_EVENT";

    private static ECSyncHelper instance;

    protected ECSyncHelper(Context context, EventClientRepository eventClientRepository) {
        super(context, eventClientRepository);
    }

    public static ECSyncHelper getInstance(Context context) {
        if (instance == null) {
            instance = new ECSyncHelper(context, CoreLibrary.getInstance().context().getEventClientRepository());
        }
        return instance;
    }

    public long getLastViewsSyncTimeStamp() {
        return PreferenceManager.getDefaultSharedPreferences(context).getLong(LAST_VIEWS_SYNC_TIMESTAMP, 0);
    }

    public void updateLastViewsSyncTimeStamp(long lastSyncTimeStamp) {
        PreferenceManager.getDefaultSharedPreferences(context).edit().putLong(LAST_VIEWS_SYNC_TIMESTAMP, lastSyncTimeStamp)
                .commit();
    }

    public void updateLoginConfigurableViewPreference(String loginJson) {
        PreferenceManager.getDefaultSharedPreferences(context).edit().putString(VIEW_CONFIGURATION_PREFIX + LOGIN, loginJson)
                .commit();
    }

    public boolean deleteEventsByBaseEntityId(String baseEntityId) {
        return eventClientRepository.deleteEventsByBaseEntityId(baseEntityId, MOVE_TO_CATCHMENT_EVENT);
    }

    private class SyncException extends Exception {
        public SyncException(String s) {
            Log.e(getClass().getName(), s);
        }

        public SyncException(String s, Throwable e) {
            Log.e(getClass().getName(), "SyncException: " + s, e);
        }
    }
}