diff --git a/app/src/main/java/org/isoron/uhabits/helpers/ListHabitsHelper.java b/app/src/main/java/org/isoron/uhabits/helpers/ListHabitsHelper.java index 0cd6567fd..e66ae4e5a 100644 --- a/app/src/main/java/org/isoron/uhabits/helpers/ListHabitsHelper.java +++ b/app/src/main/java/org/isoron/uhabits/helpers/ListHabitsHelper.java @@ -22,11 +22,9 @@ package org.isoron.uhabits.helpers; import android.content.Context; import android.graphics.Color; import android.graphics.Typeface; -import android.util.DisplayMetrics; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; @@ -61,16 +59,18 @@ public class ListHabitsHelper public int getButtonCount() { - DisplayMetrics dm = context.getResources().getDisplayMetrics(); - int width = (int) (dm.widthPixels / dm.density); - return Math.max(0, (int) ((width - 160) / 42.0)); + float screenWidth = UIHelper.getScreenWidth(context); + float labelWidth = context.getResources().getDimension(R.dimen.habitNameWidth); + float buttonWidth = context.getResources().getDimension(R.dimen.checkmarkWidth); + return Math.max(0, (int) ((screenWidth - labelWidth) / buttonWidth)); } public int getHabitNameWidth() { - DisplayMetrics dm = context.getResources().getDisplayMetrics(); - int width = (int) (dm.widthPixels / dm.density); - return (int) ((width - 30 - getButtonCount() * 42) * dm.density); + float screenWidth = UIHelper.getScreenWidth(context); + float buttonWidth = context.getResources().getDimension(R.dimen.checkmarkWidth); + float padding = UIHelper.dpToPixels(context, 15); + return (int) (screenWidth - padding - getButtonCount() * buttonWidth); } public void updateCheckmarkButtons(Habit habit, LinearLayout llButtons) @@ -206,7 +206,7 @@ public class ListHabitsHelper for (int i = 0; i < getButtonCount(); i++) { View tvDay = inflater.inflate(R.layout.list_habits_header_check, null); - Button btCheck = (Button) tvDay.findViewById(R.id.tvCheck); + TextView btCheck = (TextView) tvDay.findViewById(R.id.tvCheck); btCheck.setText(DateHelper.formatHeaderDate(day)); header.addView(tvDay); diff --git a/app/src/main/java/org/isoron/uhabits/helpers/UIHelper.java b/app/src/main/java/org/isoron/uhabits/helpers/UIHelper.java index 46ae1572d..8a708f1a3 100644 --- a/app/src/main/java/org/isoron/uhabits/helpers/UIHelper.java +++ b/app/src/main/java/org/isoron/uhabits/helpers/UIHelper.java @@ -164,4 +164,10 @@ public abstract class UIHelper return false; } + + public static float getScreenWidth(Context context) + { + return context.getResources().getDisplayMetrics().widthPixels; + } + } diff --git a/app/src/main/res/layout/about.xml b/app/src/main/res/layout/about.xml index 86a0f9f26..de0ba9a23 100644 --- a/app/src/main/res/layout/about.xml +++ b/app/src/main/res/layout/about.xml @@ -25,10 +25,10 @@ android:fillViewport="true"> + style="@style/CardList"> diff --git a/app/src/main/res/layout/list_habits_fragment.xml b/app/src/main/res/layout/list_habits_fragment.xml index 8ec48be74..39c68a713 100644 --- a/app/src/main/res/layout/list_habits_fragment.xml +++ b/app/src/main/res/layout/list_habits_fragment.xml @@ -26,12 +26,16 @@ + android:layout_width="match_parent" + android:background="@color/windowBackground" + android:paddingTop="@dimen/checkmarkHeight" + android:layout_height="match_parent" + android:divider="@color/windowBackground" + android:dividerHeight="1dp"/> - + + style="@style/ListHabits.Star"/> + style="@style/ListHabits.CheckmarkPanel"/> + style="@style/Card"> . --> -