Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2ab8e7ef authored by Chris Narkiewicz's avatar Chris Narkiewicz
Browse files

Make response member in OkHttpMethodBase nullable



The class uses non-null lateinit variable that
is not initialized. The member should be of
nullable type.

Fixes nextcloud/android#5073
Fixes nextcloud/android#5102
Fixes nextcloud/android#5100
Fixes nextcloud/android#5142
Fixes nextcloud/android#5156

Signed-off-by: default avatarChris Narkiewicz <hello@ezaquarii.com>
parent 35b9117a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -107,9 +107,9 @@ class NextcloudClient(var baseUri: Uri, val context: Context) : OkHttpClient() {
                    destination = redirectedDestination

                    if (getRequestHeader("Destination").isNullOrEmpty()) {
                        method.requestHeaders.put("destination", destination)
                        method.addRequestHeader("destination", destination)
                    } else {
                        method.requestHeaders.put("Destination", destination)
                        method.addRequestHeader("Destination", destination)
                    }
                }
                status = method.execute(this)
+36 −11
Original line number Diff line number Diff line
@@ -39,10 +39,14 @@ import okhttp3.Response
 */
abstract class OkHttpMethodBase(var uri: String,
                                val useOcsApiRequestHeader: Boolean) {
    lateinit var response: Response
    var queryMap: Map<String, String> = HashMap()
    var requestHeaders: MutableMap<String, String> = HashMap()
    var requestBuilder: Request.Builder = Request.Builder()
    companion object {
        const val UNKOWN_STATUS_CODE: Int = -1;
    }
    
    private var response: Response? = null
    private var queryMap: Map<String, String> = HashMap()
    private val requestHeaders: MutableMap<String, String> = HashMap()
    private val requestBuilder: Request.Builder = Request.Builder()

    fun OkHttpMethodBase() {
        requestHeaders.put("http.protocol.single-cookie-header", "true")
@@ -56,32 +60,53 @@ abstract class OkHttpMethodBase(var uri: String,
        return httpBuilder.build()
    }

    /**
     * Set request headers completely replacing existing headers.
     * To clear request headers, call this method with empty list.
     *
     * @param headers List of header-value pairs
     */
    fun setRequestHeaders(vararg headers: Pair<String, String>) {
        requestHeaders.clear()
        requestHeaders.putAll(headers)
    }

    /**
     * Adds request header, overwriting any existing value.
     *
     * @param header HTTP request header name
     * @param value HTTP request header value
     */
    fun addRequestHeader(header: String, value: String) {
        requestHeaders.put(header, value)
    }

    fun setQueryString(params: Map<String, String>) {
        queryMap = params
    }

    fun getResponseBodyAsString(): String {
        return response.body()?.string() ?: ""
        return response?.body()?.string() ?: ""
    }

    fun releaseConnection() {
        response.body()?.close()
        response?.body()?.close()
    }

    fun getStatusCode(): Int {
        return response.code()
        return response?.code() ?: UNKOWN_STATUS_CODE
    }

    fun getStatusText(): String {
        return response.message()
        return response?.message() ?: ""
    }

    fun getResponseHeaders(): Headers {
        return response.headers()
        return response?.headers() ?: Headers.Builder().build()
    }

    fun getResponseHeader(name: String): String? {
        return response.header(name)
        return response?.header(name)
    }

    fun execute(nextcloudClient: NextcloudClient): Int {
@@ -103,7 +128,7 @@ abstract class OkHttpMethodBase(var uri: String,
        if (nextcloudClient.followRedirects) {
            return nextcloudClient.followRedirection(this).getLastStatus()
        } else {
            return response.code()
            return response?.code() ?: UNKOWN_STATUS_CODE
        }
    }
}
+1 −2
Original line number Diff line number Diff line
@@ -130,8 +130,7 @@ public class GetActivitiesRemoteOperation extends RemoteOperation {

            status = client.execute(get);
            String response = get.getResponseBodyAsString();

            String nextPageHeader = get.response.header("X-Activity-Last-Given");
            String nextPageHeader = get.getResponseHeader("X-Activity-Last-Given");
            if (nextPageHeader != null) {
                lastGiven = Integer.parseInt(nextPageHeader);
            } else {