summaryrefslogtreecommitdiff
path: root/org.fox.ttrss/src/main/java/org/fox/ttrss/ApiLoader.java
blob: 95f7fa87aef9f2d2f6533d6dc416c7663002dedc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package org.fox.ttrss;

import android.content.Context;

import com.google.gson.JsonElement;

import org.fox.ttrss.ApiCommon.ApiError;

import java.util.HashMap;

import androidx.loader.content.AsyncTaskLoader;

public class ApiLoader extends AsyncTaskLoader<JsonElement> implements ApiCommon.ApiCaller {
	private final String TAG = this.getClass().getSimpleName();

	private int m_responseCode = 0;
	protected String m_responseMessage;
	private int m_apiStatusCode = 0;

	private Context m_context;
	private String m_lastErrorMessage;
	private ApiError m_lastError;
	private HashMap<String,String> m_params;
	private JsonElement m_data;

	ApiLoader(Context context, HashMap<String, String> params) {
		super(context);

		m_context = context;
		m_lastError = ApiError.NO_ERROR;
		m_params = params;
	}

	@Override
	protected void onStartLoading() {
		if (m_data != null) {
			deliverResult(m_data);
		} else {
			forceLoad();
		}
	}

	@Override
	public void deliverResult(JsonElement data) {
		m_data = data;

		super.deliverResult(data);
	}

	public int getErrorMessage() {
		return ApiCommon.getErrorMessage(m_lastError);
	}

	ApiError getLastError() {
		return m_lastError;
	}

	String getLastErrorMessage() {
		return m_lastErrorMessage;
	}

	@Override
	public JsonElement loadInBackground() {
		return ApiCommon.performRequest(m_context, m_params, this);
	}

	@Override
	public void setStatusCode(int statusCode) {
		m_apiStatusCode = statusCode;
	}

	@Override
	public void setLastError(ApiError lastError) {
		m_lastError = lastError;
	}

	@Override
	public void setLastErrorMessage(String message) {
		m_lastErrorMessage = message;
	}
}