From 8b509953ca8bb0f0f20d4f2258a85ad95d3d5d26 Mon Sep 17 00:00:00 2001 From: Schoumi Date: Wed, 17 Apr 2024 18:06:35 +0200 Subject: [PATCH] change steam options from forms-data to json --- .../peertubelive/manager/InstanceManager.kt | 55 ++++++++----------- 1 file changed, 24 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/fr/mobdev/peertubelive/manager/InstanceManager.kt b/app/src/main/java/fr/mobdev/peertubelive/manager/InstanceManager.kt index 385b95a..f9006ce 100644 --- a/app/src/main/java/fr/mobdev/peertubelive/manager/InstanceManager.kt +++ b/app/src/main/java/fr/mobdev/peertubelive/manager/InstanceManager.kt @@ -91,7 +91,7 @@ object InstanceManager { if(oauthData.expires < Calendar.getInstance().timeInMillis) { refreshToken(context,url,oauthData,object: InstanceListener { override fun onSuccess(args: Bundle?) { - val oauth: OAuthData? = args?.getParcelable(InstanceManager.EXTRA_DATA) + val oauth: OAuthData? = args?.getParcelable(EXTRA_DATA) if (oauth != null) { DatabaseManager.updateCredentials(context,oauth) listener.onUpdateOAuthData(oauth) @@ -148,25 +148,32 @@ object InstanceManager { // val comments: Boolean, val download: Boolean, val nsfw: Boolean, val saveReplay: Boolean val createLiveUrl = url + BASE_API_ENDPOINT + CREATE_LIVE_ENDPOINT val data = Bundle() - val boundary = "45fcc22" - var formData: String = prepareFormData(boundary,"channelId",streamSettings.channel.toString(),false) - formData += prepareFormData(boundary,"name",streamSettings.title,false) - formData += prepareFormData(boundary,"privacy",streamSettings.privacy.toString(),false) + val formData = JSONObject() + formData.put("channelId",streamSettings.channel) + formData.put("name",streamSettings.title) + formData.put("privacy",streamSettings.privacy) if(streamSettings.category != null) - formData += prepareFormData(boundary,"category",streamSettings.category.toString(),false) + formData.put("category",streamSettings.category) if(streamSettings.language != null) - formData += prepareFormData(boundary,"language",streamSettings.language.toString(),false) + formData.put("language",streamSettings.language.toString()) if(streamSettings.description != null) - formData += prepareFormData(boundary,"description",streamSettings.description.toString(),false) + formData.put("description",streamSettings.description) if(streamSettings.licence != null) - formData += prepareFormData(boundary,"licence",streamSettings.licence.toString(),false) - formData += prepareFormData(boundary,"commentsEnabled",streamSettings.comments.toString(),false) - formData += prepareFormData(boundary,"nsfw",streamSettings.nsfw.toString(),false) - formData += prepareFormData(boundary,"downloadEnabled",streamSettings.download.toString(),streamSettings.saveReplay == null) - if (streamSettings.saveReplay != null) - formData += prepareFormData(boundary,"saveReplay",streamSettings.saveReplay.toString(),true) - data.putString(CONTENT_TYPE,"multipart/form-data; boundary=$boundary") - data.putString(CONTENT_DATA,formData) + formData.put("licence",streamSettings.licence) + formData.put("commentsEnabled",streamSettings.comments.toString()) + formData.put("nsfw",streamSettings.nsfw.toString()) + formData.put("downloadEnabled",streamSettings.download.toString()) + if (streamSettings.saveReplay != null) { + formData.put("saveReplay",streamSettings.saveReplay.toString()) + val privacyReplay = JSONObject() + privacyReplay.put("privacy",streamSettings.privacy) + formData.put("replaySettings",privacyReplay) + } + + data.putString(CONTENT_TYPE,"application/json") + data.putString(CONTENT_DATA,formData.toString()) + println(formData.toString()) + val internalListener = object: InstanceListener { override fun onSuccess(args: Bundle?) { val response = args?.getString(EXTRA_DATA, null) @@ -500,6 +507,7 @@ object InstanceManager { } } + @Suppress("UNCHECKED_CAST") private fun extractMapData(response: String, type: T): HashMap? { return try { val json = JSONObject(response) @@ -517,21 +525,6 @@ object InstanceManager { } } - - private fun prepareFormData(boundary: String, propertyName: String, property: String, lastData: Boolean): String { - val crlf = "\r\n" - var formData = "--$boundary$crlf" - formData+="Content-Disposition: form-data; name=\"$propertyName\"$crlf$crlf" - formData+="$property$crlf" - - if(lastData) { - formData += "--$boundary--$crlf" - } - - return formData - } - - interface InstanceListener{ fun onSuccess(args: Bundle?) fun onError(error: String?)