From 431c54ab9124e546edd0bd42280d594b115ae669 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Thu, 9 Mar 2017 11:05:54 +0000 Subject: [PATCH] Show the number of journal entries on the collection detail screens. --- .../syncadapter/ui/CreateAddressBookActivity.java | 13 ++++++++++++- .../syncadapter/ui/CreateCalendarActivity.java | 12 +++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/etesync/syncadapter/ui/CreateAddressBookActivity.java b/app/src/main/java/com/etesync/syncadapter/ui/CreateAddressBookActivity.java index 01ec9868..85075fbf 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/CreateAddressBookActivity.java +++ b/app/src/main/java/com/etesync/syncadapter/ui/CreateAddressBookActivity.java @@ -21,8 +21,11 @@ import android.view.View; import android.widget.EditText; import android.widget.TextView; +import com.etesync.syncadapter.App; import com.etesync.syncadapter.R; import com.etesync.syncadapter.model.CollectionInfo; +import com.etesync.syncadapter.model.EntryEntity; +import com.etesync.syncadapter.model.JournalEntity; import com.etesync.syncadapter.resource.LocalAddressBook; import org.apache.commons.lang3.StringUtils; @@ -31,6 +34,8 @@ import org.w3c.dom.Text; import java.util.Locale; import at.bitfire.vcard4android.ContactsStorageException; +import io.requery.Persistable; +import io.requery.sql.EntityDataStore; public class CreateAddressBookActivity extends AppCompatActivity { public static final String EXTRA_ACCOUNT = "account", @@ -62,7 +67,13 @@ public class CreateAddressBookActivity extends AppCompatActivity { try { LocalAddressBook resource = new LocalAddressBook(account, this.getContentResolver().acquireContentProviderClient(ContactsContract.Contacts.CONTENT_URI)); long count = resource.count(); - stats.setText(String.format(Locale.getDefault(), "Contacts: %d", count)); + EntityDataStore data = ((App) getApplication()).getData(); + int entryCount = -1; + final JournalEntity journalEntity = data.select(JournalEntity.class).where(JournalEntity.UID.eq(info.url)).limit(1).get().firstOrNull(); + if (journalEntity != null) { + entryCount = data.count(EntryEntity.class).where(EntryEntity.JOURNAL.eq(journalEntity)).get().value(); + }; + stats.setText(String.format(Locale.getDefault(), "Contacts: %d, Journal Entries: %d", count, entryCount)); statsGroup.setVisibility(View.VISIBLE); } catch (ContactsStorageException e) { e.printStackTrace(); diff --git a/app/src/main/java/com/etesync/syncadapter/ui/CreateCalendarActivity.java b/app/src/main/java/com/etesync/syncadapter/ui/CreateCalendarActivity.java index 856dd65f..2fcdc8f8 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/CreateCalendarActivity.java +++ b/app/src/main/java/com/etesync/syncadapter/ui/CreateCalendarActivity.java @@ -28,11 +28,15 @@ import org.apache.commons.lang3.StringUtils; import com.etesync.syncadapter.App; import com.etesync.syncadapter.R; import com.etesync.syncadapter.model.CollectionInfo; +import com.etesync.syncadapter.model.EntryEntity; +import com.etesync.syncadapter.model.JournalEntity; import com.etesync.syncadapter.resource.LocalCalendar; import java.util.Locale; import at.bitfire.ical4android.CalendarStorageException; +import io.requery.Persistable; +import io.requery.sql.EntityDataStore; import yuku.ambilwarna.AmbilWarnaDialog; public class CreateCalendarActivity extends AppCompatActivity { @@ -92,7 +96,13 @@ public class CreateCalendarActivity extends AppCompatActivity { LocalCalendar resource = (LocalCalendar) LocalCalendar.find(account, this.getContentResolver().acquireContentProviderClient(CalendarContract.CONTENT_URI), LocalCalendar.Factory.INSTANCE, CalendarContract.Calendars.NAME + "=?", new String[]{info.url})[0]; long count = resource.count(); - stats.setText(String.format(Locale.getDefault(), "Events: %d", count)); + EntityDataStore data = ((App) getApplication()).getData(); + int entryCount = -1; + final JournalEntity journalEntity = data.select(JournalEntity.class).where(JournalEntity.UID.eq(info.url)).limit(1).get().firstOrNull(); + if (journalEntity != null) { + entryCount = data.count(EntryEntity.class).where(EntryEntity.JOURNAL.eq(journalEntity)).get().value(); + } + stats.setText(String.format(Locale.getDefault(), "Events: %d, Journal entries: %d", count, entryCount)); statsGroup.setVisibility(View.VISIBLE); } catch (CalendarStorageException e) { e.printStackTrace();