Add widget row dividers

pull/996/head
Alex Baker 6 years ago
parent 4d320c84d1
commit 605e43bede

@ -6,11 +6,13 @@ import android.appwidget.AppWidgetManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint; import android.graphics.Paint;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.view.View; import android.view.View;
import android.widget.RemoteViews; import android.widget.RemoteViews;
import android.widget.RemoteViewsService; import android.widget.RemoteViewsService;
import androidx.annotation.ColorInt;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
@ -168,19 +170,23 @@ class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFactory {
row.setOnClickFillInIntent(R.id.widget_row, editIntent); row.setOnClickFillInIntent(R.id.widget_row, editIntent);
int widgetPadding = (int) context.getResources().getDimension(R.dimen.widget_padding); int widgetPadding = (int) context.getResources().getDimension(R.dimen.widget_padding);
int textBottomPadding = showDueDates && task.hasDueDate() ? 0 : widgetPadding;
if (showCheckboxes) { if (showCheckboxes) {
row.setViewVisibility(R.id.widget_complete_box, View.VISIBLE); row.setViewVisibility(R.id.widget_complete_box, View.VISIBLE);
Intent completeIntent = new Intent(WidgetClickActivity.COMPLETE_TASK); Intent completeIntent = new Intent(WidgetClickActivity.COMPLETE_TASK);
completeIntent.putExtra(WidgetClickActivity.EXTRA_TASK, task); completeIntent.putExtra(WidgetClickActivity.EXTRA_TASK, task);
row.setOnClickFillInIntent(R.id.widget_complete_box, completeIntent); row.setOnClickFillInIntent(R.id.widget_complete_box, completeIntent);
row.setViewPadding(R.id.widget_text, 0, widgetPadding, widgetPadding, 0); row.setViewPadding(R.id.widget_text, 0, widgetPadding, widgetPadding, textBottomPadding);
row.setViewPadding(R.id.widget_due_date, 0, 0, 0, 0); row.setViewPadding(R.id.widget_due_date, 0, 0, widgetPadding, widgetPadding);
} else { } else {
row.setViewVisibility(R.id.widget_complete_box, View.GONE); row.setViewVisibility(R.id.widget_complete_box, View.GONE);
row.setViewPadding(R.id.widget_text, widgetPadding, widgetPadding, widgetPadding, 0); row.setViewPadding(R.id.widget_text, widgetPadding, widgetPadding, widgetPadding, textBottomPadding);
row.setViewPadding(R.id.widget_due_date, widgetPadding, 0, widgetPadding, 0); row.setViewPadding(R.id.widget_due_date, widgetPadding, 0, widgetPadding, widgetPadding);
} }
int dividerColor = ContextCompat.getColor(context, widgetPreferences.getThemeIndex() == 0 ? R.color.black_12 : R.color.white_12);
row.setImageViewBitmap(R.id.divider, getSolidBackground(dividerColor));
row.setInt( row.setInt(
R.id.widget_row, "setLayoutDirection", Locale.getInstance(context).getDirectionality()); R.id.widget_row, "setLayoutDirection", Locale.getInstance(context).getDirectionality());
@ -199,6 +205,12 @@ class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFactory {
return null; return null;
} }
private static Bitmap getSolidBackground(@ColorInt int bgColor) {
Bitmap bitmap = Bitmap.createBitmap(2, 2, Bitmap.Config.ARGB_8888); // Create a Bitmap
new Canvas(bitmap).drawColor(bgColor); // Set the color
return bitmap;
}
private TaskContainer getTask(int position) { private TaskContainer getTask(int position) {
return position < tasks.size() ? tasks.get(position) : null; return position < tasks.size() ? tasks.get(position) : null;
} }

@ -46,4 +46,11 @@
android:textSize="14sp" android:textSize="14sp"
tools:text="Tomorrow"/> tools:text="Tomorrow"/>
<ImageView
android:id="@+id/divider"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:scaleType="fitXY"
android:layout_height=".5dp" />
</RelativeLayout> </RelativeLayout>
Loading…
Cancel
Save