Skip to content

Commit 94f4b33

Browse files
committed
Add preference to hide empty days in agenda.
Resolves orgzly#516
1 parent ee50050 commit 94f4b33

File tree

8 files changed

+31
-5
lines changed

8 files changed

+31
-5
lines changed

Diff for: app/src/main/java/com/orgzly/android/prefs/AppPreferences.java

+10
Original file line numberDiff line numberDiff line change
@@ -745,6 +745,16 @@ public static boolean keepScreenOnMenuItem(Context context) {
745745
context.getResources().getBoolean(R.bool.pref_default_keep_screen_on_menu_item));
746746
}
747747

748+
/*
749+
* Hide empty days in agenda
750+
*/
751+
752+
public static boolean hideEmptyDaysInAgenda(Context context) {
753+
return getDefaultSharedPreferences(context).getBoolean(
754+
context.getResources().getString(R.string.pref_key_hide_empty_days_in_agenda),
755+
context.getResources().getBoolean(R.bool.pref_default_hide_empty_days_in_agenda));
756+
}
757+
748758
/*
749759
* Widget
750760
*/

Diff for: app/src/main/java/com/orgzly/android/ui/notes/query/agenda/AgendaFragment.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,8 @@ class AgendaFragment :
133133
viewModel.notes().observe(viewLifecycleOwner, Observer { notes ->
134134
if (BuildConfig.LOG_DEBUG) LogUtils.d(TAG, "Observed notes: ${notes.size}")
135135

136-
val items = AgendaItems.getList(notes, currentQuery, item2databaseIds)
136+
val hideEmptyDaysInAgenda = AppPreferences.hideEmptyDaysInAgenda(context)
137+
val items = AgendaItems(hideEmptyDaysInAgenda).getList(notes, currentQuery, item2databaseIds)
137138

138139
if (BuildConfig.LOG_DEBUG)
139140
LogUtils.d(TAG, "Replacing data with ${items.size} agenda items")

Diff for: app/src/main/java/com/orgzly/android/ui/notes/query/agenda/AgendaItems.kt

+4-3
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import com.orgzly.org.datetime.OrgInterval
99
import com.orgzly.org.datetime.OrgRange
1010
import org.joda.time.DateTime
1111

12-
object AgendaItems {
12+
class AgendaItems(private val hideEmptyDaysInAgenda : Boolean) {
1313
data class ExpandableOrgRange(
1414
val range: OrgRange,
1515
val canBeOverdueToday: Boolean,
@@ -136,8 +136,9 @@ object AgendaItems {
136136

137137
// Add daily
138138
dailyNotes.forEach { d ->
139-
// Always add day heading
140-
result.add(AgendaItem.Day(agendaItemId++, DateTime(d.key)))
139+
if (d.value.isNotEmpty() || !hideEmptyDaysInAgenda) {
140+
result.add(AgendaItem.Day(agendaItemId++, DateTime(d.key)))
141+
}
141142

142143
if (d.value.isNotEmpty()) {
143144
result.addAll(d.value)

Diff for: app/src/main/java/com/orgzly/android/widgets/ListWidgetService.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@ class ListWidgetService : RemoteViewsService() {
9696

9797
if (query.isAgenda()) {
9898
val idMap = mutableMapOf<Long, Long>()
99-
val agendaItems = AgendaItems.getList(notes, query, idMap)
99+
val hideEmptyDaysInAgenda = AppPreferences.hideEmptyDaysInAgenda(context)
100+
val agendaItems = AgendaItems(hideEmptyDaysInAgenda).getList(notes, query, idMap)
100101

101102
dataList = agendaItems.map {
102103
when (it) {

Diff for: app/src/main/res/values-de-rDE/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,7 @@
381381
<string name="no_states_defined">Keine Status definiert</string>
382382
<string name="book_name_in_search">Notizbuchname in den Suchergebnissen</string>
383383
<string name="display_notebook_name">Notizbuchname anzeigen</string>
384+
<string name="hide_empty_days_in_agenda">Tage ohne Notizen in Agenda ausblenden</string>
384385
<string name="display_inherited_tags_in_search_results">Geerbte Schlagwörter in Suchergebnissen</string>
385386
<string name="display_inherited_tags_in_search_results_summary">Geerbte Schlagwörter in Suchergebnissen anzeigen</string>
386387
<string name="ongoing_notification">Aktuell</string>

Diff for: app/src/main/res/values/prefs_keys.xml

+3
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,9 @@
296296
<string name="pref_key_keep_screen_on_menu_item" translatable="false">pref_key_keep_screen_on_menu_item</string>
297297
<bool name="pref_default_keep_screen_on_menu_item" translatable="false">false</bool>
298298

299+
<string name="pref_key_hide_empty_days_in_agenda" translatable="false">pref_key_hide_empty_days_in_agenda</string>
300+
<bool name="pref_default_hide_empty_days_in_agenda" translatable="false">false</bool>
301+
299302
<string name="pref_key_selected_note_metadata" translatable="false">pref_key_selected_note_metadata</string>
300303
<string-array name="note_metadata">
301304
<item>@string/tags</item>

Diff for: app/src/main/res/values/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,7 @@
445445
<string name="book_name_in_search">Notebook name in search results</string>
446446

447447
<string name="display_notebook_name">Display notebook name</string>
448+
<string name="hide_empty_days_in_agenda">Hide empty days in agenda</string>
448449

449450
<string name="display_inherited_tags_in_search_results">Inherited tags in search results</string>
450451
<string name="display_inherited_tags_in_search_results_summary">Display inherited tags in search results</string>

Diff for: app/src/main/res/xml/prefs_screen_look_and_feel.xml

+8
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,12 @@
5858
android:summary="Ignore default locale"
5959
android:defaultValue="@bool/pref_default_ignore_system_locale"/>
6060

61+
<PreferenceCategory android:title="@string/agenda">
62+
63+
<SwitchPreference
64+
android:key="@string/pref_key_hide_empty_days_in_agenda"
65+
android:title="@string/hide_empty_days_in_agenda"
66+
android:defaultValue="@bool/pref_default_hide_empty_days_in_agenda" />
67+
</PreferenceCategory>
68+
6169
</androidx.preference.PreferenceScreen>

0 commit comments

Comments
 (0)