Skip to content

Commit

Permalink
prefs: add dialog for editing mpv.conf
Browse files Browse the repository at this point in the history
  • Loading branch information
sfan5 committed Apr 5, 2018
1 parent d321326 commit 46f2abe
Show file tree
Hide file tree
Showing 4 changed files with 103 additions and 0 deletions.
43 changes: 43 additions & 0 deletions app/src/main/java/is/xyz/mpv/MpvConfEditDialog.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package `is`.xyz.mpv

import android.content.Context
import android.preference.DialogPreference
import android.util.AttributeSet
import android.view.View
import android.widget.Button
import android.widget.EditText
import java.io.File

class MpvConfEditDialog @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = android.R.attr.dialogPreferenceStyle,
defStyleRes: Int = 0
): DialogPreference(context, attrs, defStyleAttr, defStyleRes) {
private val configFile: File = File("${context.filesDir.path}/mpv.conf")

init {
isPersistent = false
dialogLayoutResource = R.layout.conf_editor
}

override fun onBindDialogView(view: View) {
super.onBindDialogView(view)

view.findViewById<Button>(R.id.button_cancel).setOnClickListener {
this.dialog.cancel()
}
view.findViewById<Button>(R.id.button_save).setOnClickListener {
val content = view.findViewById<EditText>(R.id.editText).text.toString()
if (content == "")
configFile.delete()
else
configFile.writeText(content)
this.dialog.dismiss()
}

val editText = view.findViewById<EditText>(R.id.editText)
if (configFile.exists())
editText.setText(configFile.readText())
}
}
46 changes: 46 additions & 0 deletions app/src/main/res/layout/conf_editor.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">

<TextView
android:id="@android:id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingEnd="0dp"
android:paddingStart="12dp" />

<Button
android:id="@+id/button_cancel"
style="@style/Widget.AppCompat.Button.Borderless.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:layout_marginStart="10dp"
android:text="@string/dialog_cancel" />

<Button
android:id="@+id/button_save"
style="@style/Base.Widget.AppCompat.Button.Borderless.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_marginEnd="10dp"
android:text="@string/dialog_save" />

<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button_cancel"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_below="@android:id/message"
android:fontFamily="monospace"
android:gravity="top"
android:inputType="textMultiLine|textNoSuggestions"
android:scrollbars="vertical"
android:textSize="16sp" />

</RelativeLayout>
5 changes: 5 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<string name="title_activity_settings">Settings</string>
<string name="dialog_ok">OK</string>
<string name="dialog_cancel">Cancel</string>
<string name="dialog_save">Save</string>

<!-- Action buttons -->
<string name="action_settings">Settings</string>
Expand Down Expand Up @@ -74,6 +75,10 @@

<string name="pref_advanced_version">Version information</string>

<string name="pref_advanced_mpvconf">Edit mpv.conf</string>
<string name="pref_advanced_mpvconf_message">You can directly edit mpv\'s config here.\n\nImportant: mpv-android will overwrite some settings, so don\'t try to set e.g. \"dscale\" here.\nGenerally this applies to all settings that have a \"native\" equivalent in the settings menu.</string>


<!-- Strings indirectly related to Settings -->
<string name="scaler_param1">Param 1:</string>
<string name="scaler_param2">Param 2:</string>
Expand Down
9 changes: 9 additions & 0 deletions app/src/main/res/xml/pref_advanced.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

<is.xyz.mpv.MpvConfEditDialog
android:key=""
android:title="@string/pref_advanced_mpvconf"
android:dialogMessage="@string/pref_advanced_mpvconf_message"
android:positiveButtonText="@null"
android:negativeButtonText="@null" />

<is.xyz.mpv.VersionInfoDialog
android:key=""
android:title="@string/pref_advanced_version"
android:negativeButtonText="@null" />

</PreferenceScreen>

0 comments on commit 46f2abe

Please sign in to comment.