From d970505dd5fccc70565aa2fc3a579610739e4d87 Mon Sep 17 00:00:00 2001 From: Phillip Hsu Date: Tue, 30 Aug 2016 16:27:49 -0700 Subject: [PATCH] Revert to include fragment_recycler_view in Fragment layouts, programmatically set padding as needed. Replace hardcoded dimens with dimen resources. --- .../editalarm/NumberGridTimePickerDialog.java | 4 +- .../editalarm/TwentyFourHourGridItem.java | 4 +- .../clock2/timers/TimersFragment.java | 28 +++++++++++++- .../clock2/util/ConfigurationUtils.java | 16 ++++++++ .../res/layout-land/fragment_stopwatch.xml | 8 +--- app/src/main/res/layout-land/item_timer.xml | 36 ++++++++---------- .../res/layout/fragment_recycler_view.xml | 4 +- .../main/res/layout/fragment_stopwatch.xml | 12 ++---- .../main/res/layout/item_collapsed_alarm.xml | 2 +- app/src/main/res/layout/item_timer.xml | 37 +++++++++---------- app/src/main/res/values/dimens.xml | 5 +++ 11 files changed, 95 insertions(+), 61 deletions(-) create mode 100644 app/src/main/java/com/philliphsu/clock2/util/ConfigurationUtils.java diff --git a/app/src/main/java/com/philliphsu/clock2/editalarm/NumberGridTimePickerDialog.java b/app/src/main/java/com/philliphsu/clock2/editalarm/NumberGridTimePickerDialog.java index 8d77a61..62c0489 100644 --- a/app/src/main/java/com/philliphsu/clock2/editalarm/NumberGridTimePickerDialog.java +++ b/app/src/main/java/com/philliphsu/clock2/editalarm/NumberGridTimePickerDialog.java @@ -46,6 +46,8 @@ import java.util.Locale; import butterknife.Bind; import butterknife.OnClick; +import static com.philliphsu.clock2.util.ConfigurationUtils.getOrientation; + //import com.android.datetimepicker.HapticFeedbackController; //import com.android.datetimepicker.R; //import com.android.datetimepicker.Utils; @@ -326,7 +328,7 @@ public class NumberGridTimePickerDialog extends BaseTimePickerDialog implements final int icon2 = mThemeDark? R.drawable.ic_half_day_2_dark_24dp : R.drawable.ic_half_day_2_24dp; // Determine the direction the icons should be in int left1 = 0, left2 = 0, top1 = 0, top2 = 0; - switch (getResources().getConfiguration().orientation) { + switch (getOrientation(getResources())) { case Configuration.ORIENTATION_PORTRAIT: left1 = icon1; left2 = icon2; diff --git a/app/src/main/java/com/philliphsu/clock2/editalarm/TwentyFourHourGridItem.java b/app/src/main/java/com/philliphsu/clock2/editalarm/TwentyFourHourGridItem.java index 266bb7f..705b82a 100644 --- a/app/src/main/java/com/philliphsu/clock2/editalarm/TwentyFourHourGridItem.java +++ b/app/src/main/java/com/philliphsu/clock2/editalarm/TwentyFourHourGridItem.java @@ -9,6 +9,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import com.philliphsu.clock2.R; +import com.philliphsu.clock2.util.ConfigurationUtils; import butterknife.Bind; import butterknife.ButterKnife; @@ -70,7 +71,8 @@ public class TwentyFourHourGridItem extends LinearLayout { } private void init() { - final int orientation = getResources().getConfiguration().orientation; + // TODO: Why isn't ALT-ENTER giving us an option to static import this method? + final int orientation = ConfigurationUtils.getOrientation(getResources()); setOrientation(orientation == Configuration.ORIENTATION_PORTRAIT ? VERTICAL : /*LANDSCAPE*/HORIZONTAL); setGravity(Gravity.CENTER); diff --git a/app/src/main/java/com/philliphsu/clock2/timers/TimersFragment.java b/app/src/main/java/com/philliphsu/clock2/timers/TimersFragment.java index b3e79c3..7e3e0d1 100644 --- a/app/src/main/java/com/philliphsu/clock2/timers/TimersFragment.java +++ b/app/src/main/java/com/philliphsu/clock2/timers/TimersFragment.java @@ -4,19 +4,27 @@ package com.philliphsu.clock2.timers; import android.app.Activity; import android.content.Intent; import android.content.res.Configuration; +import android.content.res.Resources; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.content.Loader; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; import com.philliphsu.clock2.AsyncTimersTableUpdateHandler; +import com.philliphsu.clock2.R; import com.philliphsu.clock2.RecyclerViewFragment; import com.philliphsu.clock2.Timer; import com.philliphsu.clock2.edittimer.EditTimerActivity; import com.philliphsu.clock2.model.TimerCursor; import com.philliphsu.clock2.model.TimersListCursorLoader; +import static butterknife.ButterKnife.findById; +import static com.philliphsu.clock2.util.ConfigurationUtils.getOrientation; + public class TimersFragment extends RecyclerViewFragment< Timer, TimerViewHolder, @@ -34,6 +42,24 @@ public class TimersFragment extends RecyclerViewFragment< mAsyncTimersTableUpdateHandler = new AsyncTimersTableUpdateHandler(getActivity(), this); } + @Nullable + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = super.onCreateView(inflater, container, savedInstanceState); + final Resources r = getResources(); + RecyclerView list = findById(view, R.id.list); + int cardViewMargin = r.getDimensionPixelSize(R.dimen.cardview_margin); + switch (getOrientation(r)) { + case Configuration.ORIENTATION_LANDSCAPE: + list.setPaddingRelative(cardViewMargin/*start*/, cardViewMargin/*top*/, 0, 0); + break; + case Configuration.ORIENTATION_PORTRAIT: + list.setPaddingRelative(0, 0, 0, cardViewMargin); + break; + } + return view; + } + @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode != Activity.RESULT_OK || data == null) @@ -74,7 +100,7 @@ public class TimersFragment extends RecyclerViewFragment< @Override protected RecyclerView.LayoutManager getLayoutManager() { - switch (getResources().getConfiguration().orientation) { + switch (getOrientation(getResources())) { case Configuration.ORIENTATION_LANDSCAPE: return new GridLayoutManager(getActivity(), LANDSCAPE_LAYOUT_COLUMNS); default: diff --git a/app/src/main/java/com/philliphsu/clock2/util/ConfigurationUtils.java b/app/src/main/java/com/philliphsu/clock2/util/ConfigurationUtils.java new file mode 100644 index 0000000..d789b50 --- /dev/null +++ b/app/src/main/java/com/philliphsu/clock2/util/ConfigurationUtils.java @@ -0,0 +1,16 @@ +package com.philliphsu.clock2.util; + +import android.content.res.Resources; + +/** + * Created by Phillip Hsu on 8/30/2016. + */ +public final class ConfigurationUtils { + + public static int getOrientation(Resources res) { + return res.getConfiguration().orientation; + } + + private ConfigurationUtils() {} + +} diff --git a/app/src/main/res/layout-land/fragment_stopwatch.xml b/app/src/main/res/layout-land/fragment_stopwatch.xml index f10aac2..9dae3e4 100644 --- a/app/src/main/res/layout-land/fragment_stopwatch.xml +++ b/app/src/main/res/layout-land/fragment_stopwatch.xml @@ -26,15 +26,11 @@ android:textSize="@dimen/text_size_display_3" style="@style/TextAppearance.AppCompat.Inverse"/> - - + android:layout_marginTop="8dp"/> diff --git a/app/src/main/res/layout-land/item_timer.xml b/app/src/main/res/layout-land/item_timer.xml index 3a03826..2225cd1 100644 --- a/app/src/main/res/layout-land/item_timer.xml +++ b/app/src/main/res/layout-land/item_timer.xml @@ -3,9 +3,8 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" - xmlns:app="http://schemas.android.com/apk/res-auto" - android:layout_marginBottom="8dp" - android:layout_marginEnd="8dp"> + android:layout_marginBottom="@dimen/cardview_margin" + android:layout_marginEnd="@dimen/cardview_margin"> + android:textSize="@dimen/text_size_medium" + android:layout_marginTop="@dimen/item_margin_between_elements" + android:layout_marginBottom="@dimen/item_margin_between_elements"/> + android:textSize="@dimen/text_size_display_2" + android:layout_marginBottom="@dimen/item_margin_between_elements"/> @@ -44,18 +43,18 @@ + android:layout_marginStart="@dimen/cardview_action_icon_margin"/> + android:layout_marginEnd="@dimen/cardview_action_icon_margin"/> - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_recycler_view.xml b/app/src/main/res/layout/fragment_recycler_view.xml index f4c8010..5cf8f54 100644 --- a/app/src/main/res/layout/fragment_recycler_view.xml +++ b/app/src/main/res/layout/fragment_recycler_view.xml @@ -4,6 +4,4 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" - android:scrollbars="vertical" - android:paddingStart="8dp" - android:paddingTop="8dp"/> + android:scrollbars="vertical"/> diff --git a/app/src/main/res/layout/fragment_stopwatch.xml b/app/src/main/res/layout/fragment_stopwatch.xml index f4208c4..f98fd38 100644 --- a/app/src/main/res/layout/fragment_stopwatch.xml +++ b/app/src/main/res/layout/fragment_stopwatch.xml @@ -20,14 +20,10 @@ android:textSize="@dimen/text_size_display_3" style="@style/TextAppearance.AppCompat.Inverse"/> - - + diff --git a/app/src/main/res/layout/item_collapsed_alarm.xml b/app/src/main/res/layout/item_collapsed_alarm.xml index f0b84b2..1c59777 100644 --- a/app/src/main/res/layout/item_collapsed_alarm.xml +++ b/app/src/main/res/layout/item_collapsed_alarm.xml @@ -37,7 +37,7 @@ android:layout_height="wrap_content" android:textAppearance="?textAppearanceListItem" android:text="in %dh %dm" - android:layout_marginStart="4dp" + android:layout_marginStart="@dimen/item_margin_between_elements" android:layout_below="@id/time_layout" android:layout_toEndOf="@id/label"/> diff --git a/app/src/main/res/layout/item_timer.xml b/app/src/main/res/layout/item_timer.xml index 3a03826..c37c84c 100644 --- a/app/src/main/res/layout/item_timer.xml +++ b/app/src/main/res/layout/item_timer.xml @@ -3,9 +3,9 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" - xmlns:app="http://schemas.android.com/apk/res-auto" - android:layout_marginBottom="8dp" - android:layout_marginEnd="8dp"> + android:layout_marginStart="@dimen/cardview_margin" + android:layout_marginTop="@dimen/cardview_margin" + android:layout_marginEnd="@dimen/cardview_margin"> + android:textSize="@dimen/text_size_medium" + android:layout_marginTop="@dimen/item_margin_between_elements" + android:layout_marginBottom="@dimen/item_margin_between_elements"/> + android:textSize="@dimen/text_size_display_2" + android:layout_marginBottom="@dimen/item_margin_between_elements"/> @@ -44,18 +44,18 @@ + android:layout_marginStart="@dimen/cardview_action_icon_margin"/> + android:layout_marginEnd="@dimen/cardview_action_icon_margin"/> - - \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 1c2b210..c910080 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -47,6 +47,11 @@ 16dp 16dp + + 8dp + 8dp + 48dp + 14sp 14sp 14sp