Skip to content

Commit 30a54e2

Browse files
Merge pull request #40 from cbkerr/agenda-hide-empty
Hide empty days in agenda
2 parents 1ab0ed9 + 6ed65d1 commit 30a54e2

File tree

8 files changed

+31
-5
lines changed

8 files changed

+31
-5
lines changed

app/src/main/java/com/orgzly/android/prefs/AppPreferences.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -813,6 +813,16 @@ public static boolean keepScreenOnMenuItem(Context context) {
813813
context.getResources().getBoolean(R.bool.pref_default_keep_screen_on_menu_item));
814814
}
815815

816+
/*
817+
* Hide empty days in agenda
818+
*/
819+
820+
public static boolean hideEmptyDaysInAgenda(Context context) {
821+
return getDefaultSharedPreferences(context).getBoolean(
822+
context.getResources().getString(R.string.pref_key_hide_empty_days_in_agenda),
823+
context.getResources().getBoolean(R.bool.pref_default_hide_empty_days_in_agenda));
824+
}
825+
816826
/*
817827
* Widget
818828
*/

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,8 @@ class AgendaFragment : QueryFragment(), OnViewHolderClickListener<AgendaItem> {
229229
viewModel.data.observe(viewLifecycleOwner, Observer { notes ->
230230
if (BuildConfig.LOG_DEBUG) LogUtils.d(TAG, "Observed notes: ${notes.size}")
231231

232-
val items = AgendaItems.getList(notes, currentQuery, item2databaseIds)
232+
val hideEmptyDaysInAgenda = AppPreferences.hideEmptyDaysInAgenda(context)
233+
val items = AgendaItems(hideEmptyDaysInAgenda).getList(notes, currentQuery, item2databaseIds)
233234

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

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

Lines changed: 4 additions & 3 deletions
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)

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ class ListWidgetService : RemoteViewsService() {
9090

9191
if (query.isAgenda()) {
9292
val idMap = mutableMapOf<Long, Long>()
93-
val agendaItems = AgendaItems.getList(notes, query, idMap)
93+
val hideEmptyDaysInAgenda = AppPreferences.hideEmptyDaysInAgenda(context)
94+
val agendaItems = AgendaItems(hideEmptyDaysInAgenda).getList(notes, query, idMap)
9495

9596
dataList = agendaItems.map {
9697
when (it) {

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,7 @@
387387
<string name="no_states_defined">Keine Status definiert</string>
388388
<string name="book_name_in_search">Notizbuchname in den Suchergebnissen</string>
389389
<string name="display_notebook_name">Notizbuchname anzeigen</string>
390+
<string name="hide_empty_days_in_agenda">Tage ohne Notizen in Agenda ausblenden</string>
390391
<string name="display_inherited_tags_in_search_results">Geerbte Schlagwörter in Suchergebnissen</string>
391392
<string name="display_inherited_tags_in_search_results_summary">Geerbte Schlagwörter in Suchergebnissen anzeigen</string>
392393
<string name="ongoing_notification">Aktuell</string>

app/src/main/res/values/prefs_keys.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,9 @@
331331
<string name="pref_key_keep_screen_on_menu_item" translatable="false">pref_key_keep_screen_on_menu_item</string>
332332
<bool name="pref_default_keep_screen_on_menu_item" translatable="false">false</bool>
333333

334+
<string name="pref_key_hide_empty_days_in_agenda" translatable="false">pref_key_hide_empty_days_in_agenda</string>
335+
<bool name="pref_default_hide_empty_days_in_agenda" translatable="false">false</bool>
336+
334337
<string name="pref_key_selected_note_metadata" translatable="false">pref_key_selected_note_metadata</string>
335338
<string-array name="note_metadata">
336339
<item>@string/tags</item>

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,7 @@
458458
<string name="book_name_in_search">Notebook name in search results</string>
459459

460460
<string name="display_notebook_name">Display notebook name</string>
461+
<string name="hide_empty_days_in_agenda">Hide empty days in agenda</string>
461462

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

app/src/main/res/xml/prefs_screen_look_and_feel.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,12 @@
8484
android:defaultValue="@bool/pref_default_ignore_system_locale"/>
8585
</PreferenceCategory>
8686

87+
<PreferenceCategory android:title="@string/agenda">
88+
89+
<SwitchPreference
90+
android:key="@string/pref_key_hide_empty_days_in_agenda"
91+
android:title="@string/hide_empty_days_in_agenda"
92+
android:defaultValue="@bool/pref_default_hide_empty_days_in_agenda" />
93+
</PreferenceCategory>
94+
8795
</androidx.preference.PreferenceScreen>

0 commit comments

Comments
 (0)