opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFailSafeRecalledID.java
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;
}
}