fix audio player, remove copy address menu item (share has same functionality), make .txt files selectable

This commit is contained in:
Öppen 2020-08-26 16:41:48 +01:00
parent a6256f9e77
commit ea2368d12a
6 changed files with 17 additions and 34 deletions

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>

View File

@ -7,6 +7,7 @@ import kotlinx.coroutines.launch
import oppen.tva.io.TvaState
import java.io.*
import java.net.ConnectException
import java.net.SocketException
import java.net.URI
import java.security.SecureRandom
import javax.net.ssl.SSLContext
@ -159,12 +160,10 @@ class GeminiDatasource(val context: Context): Datasource {
// IN <<<<<<<<<<<<<<<<<<<<<<<<<<<
var headerLine = ""
InputStreamReader(socket.inputStream).use{ streamReader ->
BufferedReader(streamReader).use{ bufferedReader ->
headerLine = bufferedReader.readLine()
}
}
val inputStream = socket.inputStream
val headerInputReader = InputStreamReader(inputStream)
val bufferedReader = BufferedReader(headerInputReader)
val headerLine = bufferedReader.readLine()
println("Tva: header: $headerLine")
@ -174,25 +173,23 @@ class GeminiDatasource(val context: Context): Datasource {
header.code == GeminiResponse.INPUT -> onUpdate(TvaState.ResponseInput(uri, header))
header.code == GeminiResponse.REDIRECT -> request(URI.create(header.meta), onUpdate)
header.code != GeminiResponse.SUCCESS -> onUpdate(TvaState.ResponseError(header))
header.meta.startsWith("text/gemini") -> getGemtext(socket, uri, header, onUpdate)
header.meta.startsWith("text/gemini") -> getGemtext(bufferedReader, uri, header, onUpdate)
header.meta.startsWith("text/") -> getString(socket, uri, header, onUpdate)
header.meta.startsWith("image/") -> getBinary(socket, uri, header, onUpdate)
header.meta.startsWith("audio/") -> getBinary(socket, uri, header, onUpdate)
else -> onUpdate(TvaState.ResponseError(header))
}
bufferedReader.close()
headerInputReader.close()
socket.close()
}
private fun getGemtext(socket: SSLSocket?, uri: URI, header: GeminiResponse.Header, onUpdate: (state: TvaState) -> Unit){
private fun getGemtext(reader: BufferedReader, uri: URI, header: GeminiResponse.Header, onUpdate: (state: TvaState) -> Unit){
val lines = mutableListOf<String>()
socket?.inputStream?.reader().use { inputStreamReader ->
BufferedReader(inputStreamReader).use { reader ->
lines.addAll(reader.readLines())
}
}
socket?.close()
lines.addAll(reader.readLines())
val processed = GemtextHelper.findCodeBlocks(lines)
RuntimeCache.put(uri, header, processed)

View File

@ -1,7 +1,5 @@
package oppen.tva.ui
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.content.Intent
import android.media.MediaPlayer
@ -159,19 +157,6 @@ class TvaActivity : AppCompatActivity() {
showAlert("Home capsule updated")
}
}
R.id.overflow_menu_copy -> {
val clipboard = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
val clip = ClipData.newPlainText(getString(R.string.gemini_address), binding.addressEdit.text.toString())
clipboard.setPrimaryClip(clip)
Snackbar.make(binding.root, getString(R.string.address_copied_to_clipboard), Snackbar.LENGTH_SHORT).setAction(R.string.share) {
Intent().apply {
action = Intent.ACTION_SEND
putExtra(Intent.EXTRA_TEXT, binding.addressEdit.text.toString())
type = "text/plain"
startActivity(Intent.createChooser(this, null))
}
}.show()
}
}
}
}

View File

@ -23,6 +23,7 @@ object AudioPlayer {
binding.audioTitle.text = "$trackName - $artist"
mediaPlayer.reset()
mediaPlayer.setDataSource(context, state.cacheUri)
mediaPlayer.prepare()

View File

@ -41,7 +41,9 @@
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/text_content"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
android:textSize="@dimen/default_text_size"
android:textIsSelectable="true"/>
</androidx.core.widget.NestedScrollView>

View File

@ -7,9 +7,6 @@
<item
android:id="@+id/overflow_menu_share"
android:title="@string/share" />
<item
android:id="@+id/overflow_menu_copy"
android:title="@string/copy_address" />
<item
android:id="@+id/overflow_menu_reload"
android:title="@string/reload"/>