mirror of https://git.sr.ht/~oppen/ariane
fix audio player, remove copy address menu item (share has same functionality), make .txt files selectable
This commit is contained in:
parent
a6256f9e77
commit
ea2368d12a
|
@ -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>
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ object AudioPlayer {
|
|||
|
||||
binding.audioTitle.text = "$trackName - $artist"
|
||||
|
||||
mediaPlayer.reset()
|
||||
mediaPlayer.setDataSource(context, state.cacheUri)
|
||||
mediaPlayer.prepare()
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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"/>
|
||||
|
|
Loading…
Reference in New Issue