package com.lemenzo.messenger.sms;

import android.content.Context;
import android.net.Uri;
import com.lemenzo.messenger.data.PendingMessageStore;
import com.lemenzo.messenger.mms.MmsSender;
import com.lemenzo.messenger.model.PendingMessage;

public final class RetryMessage {
    private RetryMessage() {}

    public static boolean retry(Context context, String token) {
        PendingMessageStore store = new PendingMessageStore(context);
        PendingMessage old = store.get(token);
        if (old == null || old.state != PendingMessage.STATE_FAILED) return false;

        if (old.protocol == PendingMessage.PROTOCOL_MMS) {
            Uri attachment = old.attachmentUri == null ? null : Uri.parse(old.attachmentUri);
            // Keep the same durable pending record/token so UI state cannot duplicate.
            return MmsSender.retryExisting(context, old.token, old.address, old.body,
                    attachment, old.subscriptionId);
        }

        store.remove(token);
        return SmsSender.send(context, old.address, old.body, old.subscriptionId);
    }
}
