Compare commits

..

No commits in common. "d417463c633447b8f16814116c08fb3bf9afe7b1" and "3e52bf666488204a95cde2c60cf85ea6d9a9a08f" have entirely different histories.

13 changed files with 351 additions and 25 deletions

7
.gitignore vendored
View File

@ -1,7 +1,12 @@
*.iml
.gradle
/local.properties
.idea
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures

65
.idea/$CACHE_FILE$ Normal file
View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectInspectionProfilesVisibleTreeState">
<entry key="Project Default">
<profile-state>
<expanded-state>
<State>
<id />
</State>
<State>
<id>AccessibilityLintAndroid</id>
</State>
<State>
<id>Android</id>
</State>
<State>
<id>Bidirectional TextInternationalizationLintAndroid</id>
</State>
<State>
<id>Chrome OSCorrectnessLintAndroid</id>
</State>
<State>
<id>Class structureJava</id>
</State>
<State>
<id>CorrectnessLintAndroid</id>
</State>
<State>
<id>IconsUsabilityLintAndroid</id>
</State>
<State>
<id>InternationalizationLintAndroid</id>
</State>
<State>
<id>Java</id>
</State>
<State>
<id>Javadoc issuesJava</id>
</State>
<State>
<id>LintAndroid</id>
</State>
<State>
<id>LintLintAndroid</id>
</State>
<State>
<id>MessagesCorrectnessLintAndroid</id>
</State>
<State>
<id>PerformanceLintAndroid</id>
</State>
<State>
<id>SecurityLintAndroid</id>
</State>
<State>
<id>TypographyUsabilityLintAndroid</id>
</State>
<State>
<id>UsabilityLintAndroid</id>
</State>
</expanded-state>
</profile-state>
</entry>
</component>
</project>

3
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

1
.idea/.name Normal file
View File

@ -0,0 +1 @@
Peertube Live

View File

@ -0,0 +1,139 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<option name="RIGHT_MARGIN" value="150" />
<JetCodeStyleSettings>
<option name="PACKAGES_TO_USE_STAR_IMPORTS">
<value>
<package name="java.util" alias="false" withSubpackages="false" />
<package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
<package name="io.ktor" alias="false" withSubpackages="true" />
</value>
</option>
<option name="PACKAGES_IMPORT_LAYOUT">
<value>
<package name="" alias="false" withSubpackages="true" />
<package name="java" alias="false" withSubpackages="true" />
<package name="javax" alias="false" withSubpackages="true" />
<package name="kotlin" alias="false" withSubpackages="true" />
<package name="" alias="true" withSubpackages="true" />
</value>
</option>
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</JetCodeStyleSettings>
<codeStyleSettings language="XML">
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
</indentOptions>
<arrangement>
<rules>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:android</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:id</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>ANDROID_ATTRIBUTE_ORDER</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>.*</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
</rules>
</arrangement>
</codeStyleSettings>
<codeStyleSettings language="kotlin">
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</codeStyleSettings>
</code_scheme>
</component>

View File

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>

6
.idea/compiler.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="11" />
</component>
</project>

View File

@ -0,0 +1,8 @@
<component name="ProjectDictionaryState">
<dictionary name="schoumi">
<words>
<w>datas</w>
<w>rtmp</w>
</words>
</dictionary>
</component>

25
.idea/gradle.xml Normal file
View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="GRADLE" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleHome" value="$APPLICATION_HOME_DIR$/gradle/gradle-2.2.1" />
<option name="gradleJvm" value="1.8" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
<option value="$PROJECT_DIR$/encoder" />
<option value="$PROJECT_DIR$/rtmp" />
<option value="$PROJECT_DIR$/rtplibrary" />
<option value="$PROJECT_DIR$/rtsp" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>

35
.idea/jarRepositories.xml Normal file
View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="BintrayJCenter" />
<option name="name" value="BintrayJCenter" />
<option name="url" value="https://jcenter.bintray.com/" />
</remote-repository>
<remote-repository>
<option name="id" value="Google" />
<option name="name" value="Google" />
<option name="url" value="https://dl.google.com/dl/android/maven2/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven" />
<option name="name" value="maven" />
<option name="url" value="https://jitpack.io" />
</remote-repository>
<remote-repository>
<option name="id" value="MavenRepo" />
<option name="name" value="MavenRepo" />
<option name="url" value="https://repo.maven.apache.org/maven2/" />
</remote-repository>
</component>
</project>

21
.idea/misc.xml Normal file
View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CMakeSettings">
<configurations>
<configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" />
</configurations>
</component>
<component name="DesignSurface">
<option name="filePathToZoomLevelMap">
<map>
<entry key="../../../../../layout/custom_preview.xml" value="0.14448441247002397" />
</map>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@ -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(EXTRA_DATA)
val oauth: OAuthData? = args?.getParcelable(InstanceManager.EXTRA_DATA)
if (oauth != null) {
DatabaseManager.updateCredentials(context,oauth)
listener.onUpdateOAuthData(oauth)
@ -148,32 +148,25 @@ 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 formData = JSONObject()
formData.put("channelId",streamSettings.channel)
formData.put("name",streamSettings.title)
formData.put("privacy",streamSettings.privacy)
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)
if(streamSettings.category != null)
formData.put("category",streamSettings.category)
formData += prepareFormData(boundary,"category",streamSettings.category.toString(),false)
if(streamSettings.language != null)
formData.put("language",streamSettings.language.toString())
formData += prepareFormData(boundary,"language",streamSettings.language.toString(),false)
if(streamSettings.description != null)
formData.put("description",streamSettings.description)
formData += prepareFormData(boundary,"description",streamSettings.description.toString(),false)
if(streamSettings.licence != null)
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())
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)
val internalListener = object: InstanceListener {
override fun onSuccess(args: Bundle?) {
val response = args?.getString(EXTRA_DATA, null)
@ -507,7 +500,6 @@ object InstanceManager {
}
}
@Suppress("UNCHECKED_CAST")
private fun <T> extractMapData(response: String, type: T): HashMap<String,T>? {
return try {
val json = JSONObject(response)
@ -525,6 +517,21 @@ 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?)