package org.mazhuang.guanggoo.data.task;

import android.text.TextUtils;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import org.mazhuang.guanggoo.App;
import org.mazhuang.guanggoo.data.AuthInfoManager;
import org.mazhuang.guanggoo.data.OnResponseListener;
import org.mazhuang.guanggoo.util.ConstantUtil;

import java.io.IOException;

/**
 *
 * @author mazhuang
 * @date 2017/9/16
 */

public class AuthCheckTask extends BaseTask<String> {
    public AuthCheckTask(OnResponseListener<String> listener) {
        super(listener);
    }

    @Override
    public void run() {
        try {
            if (!TextUtils.isEmpty(AuthInfoManager.getInstance().getUsername()) &&
                    !TextUtils.isEmpty(AuthInfoManager.getInstance().getAvatar())) {
                successOnUI("succeed");
                return;
            }

            Document doc = get(ConstantUtil.BASE_URL);

            boolean succeed = checkAuth(doc);

            if (succeed) {
                successOnUI("succeed");
                return;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        AuthInfoManager.getInstance().setUsername(null);
        AuthInfoManager.getInstance().setAvatar(null);
        failedOnUI("auth failed");
    }

    @Override
    protected void successOnUI(String data) {
        super.successOnUI(data);

        if (!mIsCanceled) {
            Document doc;
            try {
                doc = get(ConstantUtil.VERIFY_TELEPHONE_URL);
            } catch (IOException e) {
                e.printStackTrace();
                return;
            }

            Elements elements = doc.select("button#getSmsCode");

            final boolean telephoneVerified = elements.isEmpty();

            mHandler.post(() -> {
                App.getInstance().mGlobal.telephoneVerified.setValue(telephoneVerified);
            });
        }
    }
}