From 68bae19b1af9242ab951e8f175d6def664994656 Mon Sep 17 00:00:00 2001 From: Arty Bishop Date: Sat, 17 Oct 2020 21:13:15 +0100 Subject: [PATCH] Changes to SourcesDialog and adapter --- .../look4sat/ui/adapters/SourcesAdapter.kt | 31 +----- .../look4sat/ui/fragments/SourcesDialog.kt | 9 +- app/src/main/res/layout/dialog_sources.xml | 99 +++++++++---------- app/src/main/res/layout/item_tle_source.xml | 27 ++--- app/src/main/res/values-ru/strings.xml | 5 +- app/src/main/res/values/strings.xml | 1 + 6 files changed, 67 insertions(+), 105 deletions(-) diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SourcesAdapter.kt b/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SourcesAdapter.kt index 885ba397..1c31ab98 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SourcesAdapter.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SourcesAdapter.kt @@ -19,11 +19,10 @@ package com.rtbishop.look4sat.ui.adapters -import android.text.Editable -import android.text.TextWatcher import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.widget.doOnTextChanged import androidx.recyclerview.widget.RecyclerView import com.rtbishop.look4sat.data.TleSource import com.rtbishop.look4sat.databinding.ItemTleSourceBinding @@ -43,11 +42,10 @@ class SourcesAdapter(private var sources: MutableList) : override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TleSourceHolder { val binding = ItemTleSourceBinding .inflate(LayoutInflater.from(parent.context), parent, false) - return TleSourceHolder(binding.root, binding, TleSourceWatcher()) + return TleSourceHolder(binding.root, binding) } override fun onBindViewHolder(holder: TleSourceHolder, position: Int) { - holder.textWatcher.updatePosition(position) holder.bind(sources[position]) } @@ -55,35 +53,16 @@ class SourcesAdapter(private var sources: MutableList) : return sources.size } - inner class TleSourceHolder( - itemView: View, val binding: ItemTleSourceBinding, val textWatcher: TleSourceWatcher - ) : + inner class TleSourceHolder(itemView: View, val binding: ItemTleSourceBinding) : RecyclerView.ViewHolder(itemView) { fun bind(source: TleSource) { binding.tleSourceUrl.setText(source.url) - binding.tleSourceUrl.addTextChangedListener(textWatcher) - binding.tleSourceBtnDel.setOnClickListener { + binding.tleSourceUrl.doOnTextChanged { text, _, _, _ -> source.url = text.toString() } + binding.tleSourceInputLayout.setEndIconOnClickListener { sources.remove(source) notifyItemRemoved(adapterPosition) } } } - - inner class TleSourceWatcher : TextWatcher { - - private var position = 0 - - fun updatePosition(position: Int) { - this.position = position - } - - override fun afterTextChanged(s: Editable?) {} - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {} - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - sources[position].url = s.toString() - } - } } \ No newline at end of file diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/SourcesDialog.kt b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/SourcesDialog.kt index 8fa83f0d..91f329e7 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/SourcesDialog.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/SourcesDialog.kt @@ -21,9 +21,9 @@ package com.rtbishop.look4sat.ui.fragments import android.app.Dialog import android.os.Bundle -import android.view.ViewGroup import androidx.appcompat.app.AppCompatDialogFragment import androidx.recyclerview.widget.LinearLayoutManager +import com.rtbishop.look4sat.R import com.rtbishop.look4sat.SharedViewModel import com.rtbishop.look4sat.data.TleSource import com.rtbishop.look4sat.databinding.DialogSourcesBinding @@ -39,8 +39,8 @@ class SourcesDialog(sources: List, private val viewModel: SharedViewM override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val binding = DialogSourcesBinding.inflate(requireActivity().layoutInflater).apply { tleSourcesRecycler.apply { - layoutManager = LinearLayoutManager(requireContext()) adapter = sourcesAdapter + layoutManager = LinearLayoutManager(requireContext()) } tleSourceBtnAdd.setOnClickListener { val tempSources = sourcesAdapter.getSources() @@ -58,10 +58,7 @@ class SourcesDialog(sources: List, private val viewModel: SharedViewM return Dialog(requireActivity()).apply { setContentView(binding.root) - window?.setLayout( - ViewGroup.LayoutParams.MATCH_PARENT, - ViewGroup.LayoutParams.MATCH_PARENT - ) + window?.setBackgroundDrawableResource(R.drawable.ic_launcher_background) } } } \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_sources.xml b/app/src/main/res/layout/dialog_sources.xml index 3323207c..41bf318c 100644 --- a/app/src/main/res/layout/dialog_sources.xml +++ b/app/src/main/res/layout/dialog_sources.xml @@ -2,55 +2,21 @@ + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="4dp"> - - - - - - - + + + + + + + app:layout_constraintHorizontal_chainStyle="spread_inside" + app:layout_constraintStart_toStartOf="@+id/tleSourcesRecycler" /> - + app:layout_constraintEnd_toEndOf="@+id/tleSourcesRecycler" + app:layout_constraintTop_toBottomOf="@+id/tleSourcesRecycler" /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_tle_source.xml b/app/src/main/res/layout/item_tle_source.xml index c99d67cc..35cca81c 100644 --- a/app/src/main/res/layout/item_tle_source.xml +++ b/app/src/main/res/layout/item_tle_source.xml @@ -4,39 +4,28 @@ android:id="@+id/tleSourceItem" android:layout_width="match_parent" android:layout_height="wrap_content" - android:padding="4dp"> + android:paddingTop="4dp" + android:paddingBottom="4dp"> - - - - \ No newline at end of file diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 55ae2d41..7ba210d6 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -26,7 +26,7 @@ Настройки Инфо - Управление источниками TLE + Управление TLE ID / Имя Настройки пролетов спутников @@ -100,8 +100,9 @@ Нет OK Отмена + Обновить Источник TLE - Используйте протокол HTTPS + Используйте HTTPS Импорт спутников diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 64c21a50..462a2ede 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -112,6 +112,7 @@ No OK Cancel + Update TLE source Please use HTTPS URLs only