Skip to content

Commit 94e9837

Browse files
committed
Add option to open entry in the browser
Resolves #75
1 parent 3b1ef2a commit 94e9837

File tree

6 files changed

+26
-1
lines changed

6 files changed

+26
-1
lines changed

app/src/main/java/com/tughi/aggregator/activities/main/EntriesFragment.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import com.tughi.aggregator.data.EntriesQueryCriteria
2525
import com.tughi.aggregator.data.EntryTags
2626
import com.tughi.aggregator.data.TagEntriesQueryCriteria
2727
import com.tughi.aggregator.data.Tags
28+
import com.tughi.aggregator.utilities.openURL
2829
import kotlinx.coroutines.launch
2930

3031
abstract class EntriesFragment : Fragment(), EntriesFragmentAdapterListener, Toolbar.OnMenuItemClickListener {
@@ -161,15 +162,19 @@ abstract class EntriesFragment : Fragment(), EntriesFragmentAdapterListener, Too
161162
R.id.show_read_entries -> {
162163
viewModel.changeShowRead(!item.isChecked)
163164
}
165+
164166
R.id.sort_by_date_asc -> {
165167
viewModel.changeSortOrder(Entries.SortOrder.ByDateAscending)
166168
}
169+
167170
R.id.sort_by_date_desc -> {
168171
viewModel.changeSortOrder(Entries.SortOrder.ByDateDescending)
169172
}
173+
170174
R.id.sort_by_title -> {
171175
viewModel.changeSortOrder(Entries.SortOrder.ByTitle)
172176
}
177+
173178
R.id.mark_all_read -> {
174179
viewModel.entriesQueryCriteria.value?.let { queryCriteria ->
175180
contentScope.launch {
@@ -198,6 +203,16 @@ abstract class EntriesFragment : Fragment(), EntriesFragmentAdapterListener, Too
198203
requestReadSession.launch(ReaderActivity.ReadSessionInput(viewModel.entriesQueryCriteria.value!!, position))
199204
}
200205

206+
override fun onEntrySelectorClicked(entry: EntriesFragmentViewModel.Entry, position: Int) {
207+
if (entry.link != null) {
208+
requireContext().openURL(entry.link)
209+
210+
contentScope.launch {
211+
Entries.update(Entries.UpdateEntryCriteria(entry.id), Entries.READ_TIME to System.currentTimeMillis())
212+
}
213+
}
214+
}
215+
201216
private class SwipeItemTouchHelper : ItemTouchHelper.Callback() {
202217

203218
override fun getMovementFlags(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder): Int =

app/src/main/java/com/tughi/aggregator/activities/main/EntriesFragmentAdapterListener.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,6 @@ internal interface EntriesFragmentAdapterListener {
44

55
fun onEntryClicked(entry: EntriesFragmentViewModel.Entry, position: Int)
66

7+
fun onEntrySelectorClicked(entry: EntriesFragmentViewModel.Entry, position: Int)
8+
79
}

app/src/main/java/com/tughi/aggregator/activities/main/EntriesFragmentViewHolder.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,15 @@ internal abstract class EntriesFragmentEntryViewHolder(itemView: View, private v
3131
private val author: TextView = itemView.findViewById(R.id.author)
3232
private val pin: View = itemView.findViewById(R.id.pin)
3333
private val star: View = itemView.findViewById(R.id.star)
34+
private val selector: View = itemView.findViewById(R.id.selector)
3435

3536
init {
3637
itemView.setOnClickListener {
37-
listener.onEntryClicked(item as EntriesFragmentViewModel.Entry, adapterPosition / 2)
38+
listener.onEntryClicked(item as EntriesFragmentViewModel.Entry, bindingAdapterPosition / 2)
39+
}
40+
41+
selector.setOnClickListener {
42+
listener.onEntrySelectorClicked(item as EntriesFragmentViewModel.Entry, bindingAdapterPosition / 2)
3843
}
3944
}
4045

app/src/main/res/layout/entry_list_entry_placeholder.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
android:id="@+id/selector"
1616
android:layout_width="wrap_content"
1717
android:layout_height="match_parent"
18+
android:background="?selectableItemBackground"
1819
android:paddingStart="?listPreferredItemPaddingLeft"
1920
android:paddingEnd="?listPreferredItemPaddingLeft">
2021

app/src/main/res/layout/entry_list_read_entry.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
android:id="@+id/selector"
1818
android:layout_width="wrap_content"
1919
android:layout_height="match_parent"
20+
android:background="?selectableItemBackground"
2021
android:paddingStart="?listPreferredItemPaddingLeft"
2122
android:paddingEnd="?listPreferredItemPaddingLeft">
2223

app/src/main/res/layout/entry_list_unread_entry.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
android:id="@+id/selector"
1818
android:layout_width="wrap_content"
1919
android:layout_height="match_parent"
20+
android:background="?selectableItemBackground"
2021
android:paddingStart="?listPreferredItemPaddingLeft"
2122
android:paddingEnd="?listPreferredItemPaddingLeft">
2223

0 commit comments

Comments
 (0)