Show single person when shared with one user

pull/1401/head
Alex Baker 4 years ago
parent 1d2eb7232c
commit fbf817635d

@ -5,10 +5,15 @@ import android.view.View
import android.widget.CheckedTextView import android.widget.CheckedTextView
import android.widget.ImageView import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import butterknife.BindView import butterknife.BindView
import butterknife.ButterKnife import butterknife.ButterKnife
import com.todoroo.astrid.api.* import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.CustomFilter
import com.todoroo.astrid.api.FilterListItem
import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.api.TagFilter
import org.tasks.R import org.tasks.R
import org.tasks.billing.Inventory import org.tasks.billing.Inventory
import org.tasks.filters.PlaceFilter import org.tasks.filters.PlaceFilter
@ -71,7 +76,14 @@ class FilterViewHolder internal constructor(
size.text = locale.formatNumber(count) size.text = locale.formatNumber(count)
size.visibility = View.VISIBLE size.visibility = View.VISIBLE
} }
shareIndicator.visibility = if (filter.shared) View.VISIBLE else View.GONE shareIndicator.apply {
isVisible = filter.principals > 0
setImageResource(when {
filter.principals <= 0 -> 0
filter.principals == 1 -> R.drawable.ic_outline_perm_identity_24px
else -> R.drawable.ic_outline_people_outline_24
})
}
if (onClick != null) { if (onClick != null) {
row.setOnClickListener { row.setOnClickListener {
onClick.invoke(filter) onClick.invoke(filter)

@ -32,7 +32,7 @@ public abstract class FilterListItem implements Parcelable {
public int icon = -1; public int icon = -1;
public int tint = 0; public int tint = 0;
public int count = -1; public int count = -1;
public boolean shared = false; public int principals = 0;
public int order = NO_ORDER; public int order = NO_ORDER;
public abstract Type getItemType(); public abstract Type getItemType();
@ -79,7 +79,7 @@ public abstract class FilterListItem implements Parcelable {
&& tint == other.tint && tint == other.tint
&& count == other.count && count == other.count
&& order == other.order && order == other.order
&& shared == other.shared; && principals == other.principals;
} }
@Override @Override
@ -90,7 +90,7 @@ public abstract class FilterListItem implements Parcelable {
", icon=" + icon + ", icon=" + icon +
", tint=" + tint + ", tint=" + tint +
", count=" + count + ", count=" + count +
", shared=" + shared + ", principals=" + principals +
", order=" + order + ", order=" + order +
'}'; '}';
} }

@ -2,7 +2,12 @@ package org.tasks.data
import android.content.Context import android.content.Context
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.room.* import androidx.room.Dao
import androidx.room.Delete
import androidx.room.Insert
import androidx.room.Query
import androidx.room.Transaction
import androidx.room.Update
import com.todoroo.andlib.utility.DateUtilities.now import com.todoroo.andlib.utility.DateUtilities.now
import com.todoroo.astrid.api.FilterListItem.NO_ORDER import com.todoroo.astrid.api.FilterListItem.NO_ORDER
import com.todoroo.astrid.core.SortHelper.APPLE_EPOCH import com.todoroo.astrid.core.SortHelper.APPLE_EPOCH
@ -238,7 +243,7 @@ SELECT EXISTS(SELECT 1
abstract suspend fun getCalendars(tasks: List<Long>): List<String> abstract suspend fun getCalendars(tasks: List<Long>): List<String>
@Query(""" @Query("""
SELECT caldav_lists.*, COUNT(tasks._id) AS count, COUNT(principals.principal_id) AS principals SELECT caldav_lists.*, COUNT(tasks._id) AS count, COUNT(DISTINCT(principals.principal_id)) AS principals
FROM caldav_lists FROM caldav_lists
LEFT JOIN caldav_tasks LEFT JOIN caldav_tasks
ON caldav_tasks.cd_calendar = caldav_lists.cdl_uuid ON caldav_tasks.cd_calendar = caldav_lists.cdl_uuid

@ -16,7 +16,7 @@ public class CaldavFilters {
CaldavFilter toCaldavFilter() { CaldavFilter toCaldavFilter() {
CaldavFilter filter = new CaldavFilter(caldavCalendar); CaldavFilter filter = new CaldavFilter(caldavCalendar);
filter.count = count; filter.count = count;
filter.shared = principals > 0; filter.principals = principals;
return filter; return filter;
} }

Loading…
Cancel
Save