DispenserFragment: Show info if no dispensers are available
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -36,7 +36,7 @@ class DispenserFragment : Fragment(R.layout.fragment_dispenser),
|
||||
findNavController().navigate(R.id.inputDispenserDialog)
|
||||
}
|
||||
|
||||
setupRecyclerView()
|
||||
setupDispensers()
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
@@ -46,26 +46,34 @@ class DispenserFragment : Fragment(R.layout.fragment_dispenser),
|
||||
}
|
||||
|
||||
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
|
||||
if (key == PREFERENCE_DISPENSER_URLS) setupRecyclerView()
|
||||
if (key == PREFERENCE_DISPENSER_URLS) setupDispensers()
|
||||
}
|
||||
|
||||
private fun setupRecyclerView() {
|
||||
binding.epoxyRecycler.withModels {
|
||||
setFilterDuplicates(true)
|
||||
dispensers.forEachIndexed { index, url ->
|
||||
add(
|
||||
DispenserViewModel_()
|
||||
.id(index)
|
||||
.url(url)
|
||||
.copy { _ -> requireContext().copyToClipBoard(url) }
|
||||
.clear { _ ->
|
||||
findNavController().navigate(
|
||||
DispenserFragmentDirections
|
||||
.actionDispenserFragmentToRemoveDispenserDialog(url)
|
||||
)
|
||||
}
|
||||
)
|
||||
private fun setupDispensers() {
|
||||
if (dispensers.isNotEmpty()) {
|
||||
binding.noDispensersTextView.visibility = View.GONE
|
||||
|
||||
binding.epoxyRecycler.visibility = View.VISIBLE
|
||||
binding.epoxyRecycler.withModels {
|
||||
setFilterDuplicates(true)
|
||||
dispensers.forEachIndexed { index, url ->
|
||||
add(
|
||||
DispenserViewModel_()
|
||||
.id(index)
|
||||
.url(url)
|
||||
.copy { _ -> requireContext().copyToClipBoard(url) }
|
||||
.clear { _ ->
|
||||
findNavController().navigate(
|
||||
DispenserFragmentDirections
|
||||
.actionDispenserFragmentToRemoveDispenserDialog(url)
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
binding.epoxyRecycler.visibility = View.GONE
|
||||
binding.noDispensersTextView.visibility = View.VISIBLE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,18 @@
|
||||
app:navigationIcon="@drawable/ic_arrow_back"
|
||||
app:title="@string/pref_dispenser_title" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/no_dispensers_text_view"
|
||||
style="@style/AuroraTextStyle.Subtitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/no_dispensers_available"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/toolbar" />
|
||||
|
||||
<com.airbnb.epoxy.EpoxyRecyclerView
|
||||
android:id="@+id/epoxy_recycler"
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@@ -442,6 +442,7 @@
|
||||
<string name="pref_dispenser_summary">View and manage token dispensers for anonymous logins</string>
|
||||
|
||||
<!-- DialogDispenserInput-->
|
||||
<string name="no_dispensers_available">No dispensers available</string>
|
||||
<string name="add_dispenser_title">Add dispenser</string>
|
||||
<string name="add_dispenser_summary">Add a token dispenser to Aurora Store. Token dispensers provide account credentials to Aurora Store for logging in anonymously.</string>
|
||||
<string name="add_dispenser_error">Invalid URL</string>
|
||||
|
||||
Reference in New Issue
Block a user