OpenSRP/opensrp-client-anc

View on GitHub
opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFailSafeRecalledID.java

Summary

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


import android.content.Context;
import android.content.SharedPreferences;

import androidx.annotation.NonNull;

import org.smartregister.p2p.contract.RecalledIdentifier;
import org.smartregister.p2p.util.Constants;
import org.smartregister.p2p.util.Device;

import java.util.UUID;

public class ANCFailSafeRecalledID implements RecalledIdentifier {
    private static final String FAIL_SAFE_ID = "P2P_FAIL_SAFE_ID";

    @NonNull
    @Override
    public String getUniqueID(Context context) {
        String uniqueAddress = Device.getMacAddress();
        if (uniqueAddress == null) {
            SharedPreferences sharedPreferences = context.getSharedPreferences(Constants.Prefs.NAME, Context.MODE_PRIVATE);
            uniqueAddress = sharedPreferences.getString(FAIL_SAFE_ID, null);
            if (uniqueAddress == null) {
                uniqueAddress = UUID.randomUUID().toString();
                sharedPreferences.edit().putString(FAIL_SAFE_ID, uniqueAddress).apply();
            }
        }
        return uniqueAddress;
    }
}