Skip to content
This repository has been archived by the owner on Feb 1, 2023. It is now read-only.

Commit

Permalink
✨ Added preferences
Browse files Browse the repository at this point in the history
  • Loading branch information
markhaehnel committed Jul 11, 2019
1 parent 610be95 commit 8ef90db
Show file tree
Hide file tree
Showing 10 changed files with 132 additions and 3 deletions.
3 changes: 3 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,9 @@ dependencies {
implementation "androidx.navigation:navigation-fragment-ktx:$navigation_version"
implementation "androidx.navigation:navigation-ui-ktx:$navigation_version"

def preference_version = "1.1.0-rc01"
implementation "androidx.preference:preference-ktx:$preference_version"

def m3u8parser_version = "0.6"
implementation "io.lindstrom:m3u8-parser:$m3u8parser_version"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.ViewModelProviders
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import androidx.preference.PreferenceManager
import de.markhaehnel.rbtv.rocketbeanstv.R
import de.markhaehnel.rbtv.rocketbeanstv.binding.FragmentDataBindingComponent
import de.markhaehnel.rbtv.rocketbeanstv.databinding.FragmentPlayerBinding
Expand Down Expand Up @@ -123,6 +124,10 @@ class PlayerFragment : Fragment(), Injectable {
commit()
}
}

val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
val showChatOnLaunch = sharedPreferences.getBoolean("showChatOnLaunch", false)
sharedViewModel.chatVisible.postValue(showChatOnLaunch)
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package de.markhaehnel.rbtv.rocketbeanstv.ui.preferences

import android.annotation.SuppressLint
import android.os.Bundle
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.appcompat.app.AlertDialog
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import de.markhaehnel.rbtv.rocketbeanstv.R


class PreferencesFragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.preferences, rootKey)

setPrivacyPolicyClickListener()
}

private fun setPrivacyPolicyClickListener() {
val privacyPolicyPreference: Preference? = findPreference("privacypolicy")
privacyPolicyPreference?.setOnPreferenceClickListener {
val alert = AlertDialog.Builder(requireContext())

val wv = WebView(context).apply {
loadUrl("https://sites.google.com/view/rbtv-firetv-privacy-policy")
settings.apply {
@SuppressLint("SetJavaScriptEnabled")
//javaScriptEnabled = true
useWideViewPort = true
}
webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
return true
}

override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url)
view?.scrollTo(0, 0)
}
}
}

alert.apply {
setView(wv)
show()
}

true
}
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import androidx.fragment.app.Fragment
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.ViewModelProviders
import androidx.navigation.fragment.findNavController
import de.markhaehnel.rbtv.rocketbeanstv.AppExecutors
import de.markhaehnel.rbtv.rocketbeanstv.R
import de.markhaehnel.rbtv.rocketbeanstv.binding.FragmentDataBindingComponent
Expand Down Expand Up @@ -69,6 +70,12 @@ class ServiceInfoFragment : Fragment(), Injectable {
}
}

dataBinding.onSettingsClickCallback = object : ClickCallback {
override fun click() {
findNavController().navigate(R.id.action_global_preferencesFragment)
}
}

binding = dataBinding
return dataBinding.root
}
Expand Down
5 changes: 5 additions & 0 deletions app/src/main/res/drawable/ic_settings.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#E6E6E6"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M19.1,12.9a2.8,2.8 0,0 0,0.1 -0.9,2.8 2.8,0 0,0 -0.1,-0.9l2.1,-1.6a0.7,0.7 0,0 0,0.1 -0.6L19.4,5.5a0.7,0.7 0,0 0,-0.6 -0.2l-2.4,1a6.5,6.5 0,0 0,-1.6 -0.9l-0.4,-2.6a0.5,0.5 0,0 0,-0.5 -0.4H10.1a0.5,0.5 0,0 0,-0.5 0.4L9.3,5.4a5.6,5.6 0,0 0,-1.7 0.9l-2.4,-1a0.4,0.4 0,0 0,-0.5 0.2l-2,3.4c-0.1,0.2 0,0.4 0.2,0.6l2,1.6a2.8,2.8 0,0 0,-0.1 0.9,2.8 2.8,0 0,0 0.1,0.9L2.8,14.5a0.7,0.7 0,0 0,-0.1 0.6l1.9,3.4a0.7,0.7 0,0 0,0.6 0.2l2.4,-1a6.5,6.5 0,0 0,1.6 0.9l0.4,2.6a0.5,0.5 0,0 0,0.5 0.4h3.8a0.5,0.5 0,0 0,0.5 -0.4l0.3,-2.6a5.6,5.6 0,0 0,1.7 -0.9l2.4,1a0.4,0.4 0,0 0,0.5 -0.2l2,-3.4c0.1,-0.2 0,-0.4 -0.2,-0.6ZM12,15.6A3.6,3.6 0,1 1,15.6 12,3.6 3.6,0 0,1 12,15.6Z"/>
</vector>
20 changes: 19 additions & 1 deletion app/src/main/res/layout/fragment_service_info.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@
name="onChatClickCallback"
type="de.markhaehnel.rbtv.rocketbeanstv.ui.common.ClickCallback"/>

<variable
name="onSettingsClickCallback"
type="de.markhaehnel.rbtv.rocketbeanstv.ui.common.ClickCallback"/>

<variable
name="serviceInfo"
type="LiveData&lt;Resource&lt;RbtvServiceInfo>>"/>
Expand Down Expand Up @@ -156,10 +160,24 @@
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:contentDescription="@string/chat"
android:nextFocusRight="@+id/serviceInfoChatButton"
android:onClick="@{() -> onChatClickCallback.click()}"
android:src="@drawable/ic_chat"
android:tint="@drawable/selector_image_button"
android:layout_marginEnd="@dimen/smallMargin"
app:layout_constraintEnd_toStartOf="@id/serviceInfoSettingsButton"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"/>

<ImageButton
android:id="@+id/serviceInfoSettingsButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:contentDescription="@string/chat"
android:nextFocusRight="@+id/serviceInfoSettingsButton"
android:onClick="@{() -> onSettingsClickCallback.click()}"
android:src="@drawable/ic_settings"
android:tint="@drawable/selector_image_button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
Expand Down
5 changes: 4 additions & 1 deletion app/src/main/res/navigation/nav_graph.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,7 @@

<fragment android:id="@+id/playerFragment" android:name="de.markhaehnel.rbtv.rocketbeanstv.ui.player.PlayerFragment"
android:label="fragment_player" tools:layout="@layout/fragment_player"/>
</navigation>
<fragment android:id="@+id/preferencesFragment"
android:name="de.markhaehnel.rbtv.rocketbeanstv.ui.preferences.PreferencesFragment"
android:label="PreferencesFragment"/><action android:id="@+id/action_global_preferencesFragment" app:destination="@id/preferencesFragment"/>
</navigation>
8 changes: 8 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,12 @@
<string name="unknown_error">Unbekannter Fehler</string>
<string name="schedule">Sendeplan</string>
<string name="chat">Chat</string>
<string name="privacypolicy">Datenschutzerklärung</string>
<string name="aboutapp">Über diese App</string>
<string name="developer">Entwickler</string>
<string name="developer_details" translatable="false">Mark Hähnel (EZTEQ)</string>
<string name="contact">Kontakt</string>
<string name="contact_details">rbtvapp@markhaehnel.de</string>
<string name="general">Allgemein</string>
<string name="showChatOnLaunch">Chat beim Start anzeigen</string>
</resources>
27 changes: 27 additions & 0 deletions app/src/main/res/xml/preferences.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<PreferenceScreen
xmlns:app="http://schemas.android.com/apk/res-auto">
<PreferenceCategory
app:key="general_category"
app:title="@string/general">
<SwitchPreference
app:key="showChatOnLaunch"
app:title="@string/showChatOnLaunch"
app:defaultValue="false" />
</PreferenceCategory>

<PreferenceCategory
app:key="about_category"
app:title="@string/aboutapp">
<Preference
app:title="@string/developer"
app:summary="@string/developer_details"/>
<Preference
app:title="@string/contact"
app:summary="@string/contact_details"/>
<Preference
app:key="privacypolicy"
app:title="@string/privacypolicy" />
</PreferenceCategory>


</PreferenceScreen>
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

buildscript {
ext {
gradle_version = '3.4.1'
gradle_version = '3.4.2'
kotlin_version = "1.3.41"
navigation_version = "2.0.0"
}
Expand Down

0 comments on commit 8ef90db

Please sign in to comment.