From f2e5ef76aa954c39c4dc6d331f931e5c7b40d5dc Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Tue, 26 Jan 2021 15:44:56 +0100 Subject: [PATCH] OverviewFragment simplify --- .../general/overview/OverviewFragment.kt | 20 ++--- .../androidaps/skins/SkinButtonsOn.kt | 7 -- .../androidaps/skins/SkinClassic.kt | 14 ++-- .../androidaps/skins/SkinInterface.kt | 12 ++- .../androidaps/skins/SkinLargeDisplay.kt | 14 ++-- .../nightscout/androidaps/skins/SkinLowRes.kt | 12 +-- app/src/main/res/layout/overview_fragment.xml | 55 +++++++++++- .../layout/overview_fragment_landscape.xml | 40 --------- .../res/layout/overview_fragment_nsclient.xml | 83 ------------------- 9 files changed, 88 insertions(+), 169 deletions(-) delete mode 100644 app/src/main/res/layout/overview_fragment_landscape.xml delete mode 100644 app/src/main/res/layout/overview_fragment_nsclient.xml diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt index 9ad9c606bf..a8c0b10866 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt @@ -65,8 +65,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.CompositeDisposable import io.reactivex.schedulers.Schedulers import kotlinx.android.synthetic.main.overview_buttons_layout.* -import kotlinx.android.synthetic.main.overview_fragment.overview_notifications -import kotlinx.android.synthetic.main.overview_fragment_nsclient.* +import kotlinx.android.synthetic.main.overview_fragment.* import kotlinx.android.synthetic.main.overview_graphs_layout.* import kotlinx.android.synthetic.main.overview_info_layout.* import kotlinx.android.synthetic.main.overview_loop_pumpstatus_layout.* @@ -138,20 +137,21 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList dm = DisplayMetrics() activity?.windowManager?.defaultDisplay?.getMetrics(dm) - val screenWidth = dm.widthPixels - val screenHeight = dm.heightPixels - smallWidth = screenWidth <= Constants.SMALL_WIDTH - smallHeight = screenHeight <= Constants.SMALL_HEIGHT - val landscape = screenHeight < screenWidth - - return inflater.inflate(skinProvider.activeSkin().overviewLayout(landscape, resourceHelper.gb(R.bool.isTablet), smallHeight), container, false) + return inflater.inflate(R.layout.overview_fragment, container, false) } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) // pre-process landscape mode - skinProvider.activeSkin().preProcessLandscapeOverviewLayout(dm, view, resourceHelper.gb(R.bool.isTablet)) + val screenWidth = dm.widthPixels + val screenHeight = dm.heightPixels + smallWidth = screenWidth <= Constants.SMALL_WIDTH + smallHeight = screenHeight <= Constants.SMALL_HEIGHT + val landscape = screenHeight < screenWidth + + skinProvider.activeSkin().preProcessLandscapeOverviewLayout(dm, view, landscape, resourceHelper.gb(R.bool.isTablet), smallHeight) + nsclient_layout?.visibility = config.NSCLIENT.toVisibility() overview_pumpstatus?.setBackgroundColor(resourceHelper.gc(R.color.colorInitializingBorder)) diff --git a/app/src/main/java/info/nightscout/androidaps/skins/SkinButtonsOn.kt b/app/src/main/java/info/nightscout/androidaps/skins/SkinButtonsOn.kt index 1f1b742374..829c1e6d63 100644 --- a/app/src/main/java/info/nightscout/androidaps/skins/SkinButtonsOn.kt +++ b/app/src/main/java/info/nightscout/androidaps/skins/SkinButtonsOn.kt @@ -11,11 +11,4 @@ class SkinButtonsOn @Inject constructor(private val config: Config) : SkinInterf override val description: Int get() = R.string.buttonson_description override val mainGraphHeight: Int get() = 200 override val secondaryGraphHeight: Int get() = 100 - - override fun overviewLayout(isLandscape: Boolean, isTablet: Boolean, isSmallHeight: Boolean): Int = - when { - config.NSCLIENT -> R.layout.overview_fragment_nsclient - else -> R.layout.overview_fragment - } - } \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/androidaps/skins/SkinClassic.kt b/app/src/main/java/info/nightscout/androidaps/skins/SkinClassic.kt index a95e50cb18..3e27443e74 100644 --- a/app/src/main/java/info/nightscout/androidaps/skins/SkinClassic.kt +++ b/app/src/main/java/info/nightscout/androidaps/skins/SkinClassic.kt @@ -1,5 +1,8 @@ package info.nightscout.androidaps.skins +import android.util.DisplayMetrics +import android.view.View +import android.widget.LinearLayout import info.nightscout.androidaps.Config import info.nightscout.androidaps.R import javax.inject.Inject @@ -12,11 +15,8 @@ class SkinClassic @Inject constructor(private val config: Config): SkinInterface override val mainGraphHeight: Int get() = 200 override val secondaryGraphHeight: Int get() = 100 - override fun overviewLayout(isLandscape: Boolean, isTablet: Boolean, isSmallHeight: Boolean): Int = - when { - config.NSCLIENT -> R.layout.overview_fragment_nsclient - isSmallHeight || isLandscape -> R.layout.overview_fragment_landscape - else -> R.layout.overview_fragment - } - + override fun preProcessLandscapeOverviewLayout(dm: DisplayMetrics, view: View, isLandscape: Boolean, isTablet: Boolean, isSmallHeight: Boolean) { + super.preProcessLandscapeOverviewLayout(dm, view, isLandscape, isTablet, isSmallHeight) + if (!config.NSCLIENT && (isSmallHeight || isLandscape)) moveButtonsLayout(view as LinearLayout) + } } \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/androidaps/skins/SkinInterface.kt b/app/src/main/java/info/nightscout/androidaps/skins/SkinInterface.kt index a63011af52..253b822988 100644 --- a/app/src/main/java/info/nightscout/androidaps/skins/SkinInterface.kt +++ b/app/src/main/java/info/nightscout/androidaps/skins/SkinInterface.kt @@ -17,13 +17,10 @@ interface SkinInterface { val mainGraphHeight: Int // in dp val secondaryGraphHeight: Int // in dp - @LayoutRes - fun overviewLayout(isLandscape: Boolean, isTablet: Boolean, isSmallHeight: Boolean): Int - @LayoutRes fun actionsLayout(isLandscape: Boolean, isSmallWidth: Boolean): Int = R.layout.actions_fragment - fun preProcessLandscapeOverviewLayout(dm: DisplayMetrics, view: View, isTablet: Boolean) { + fun preProcessLandscapeOverviewLayout(dm: DisplayMetrics, view: View, isLandscape: Boolean, isTablet: Boolean, isSmallHeight: Boolean) { // pre-process landscape mode val screenWidth = dm.widthPixels val screenHeight = dm.heightPixels @@ -81,4 +78,11 @@ interface SkinInterface { } } } + + fun moveButtonsLayout(root: LinearLayout) { + val buttonsLayout = root.findViewById(R.id.buttons_layout) + root.removeView(buttonsLayout) + val innerLayout = root.findViewById(R.id.inner_layout) + innerLayout.addView(buttonsLayout) + } } \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/androidaps/skins/SkinLargeDisplay.kt b/app/src/main/java/info/nightscout/androidaps/skins/SkinLargeDisplay.kt index 6e0e54294f..62764b00bc 100644 --- a/app/src/main/java/info/nightscout/androidaps/skins/SkinLargeDisplay.kt +++ b/app/src/main/java/info/nightscout/androidaps/skins/SkinLargeDisplay.kt @@ -1,5 +1,8 @@ package info.nightscout.androidaps.skins +import android.util.DisplayMetrics +import android.view.View +import android.widget.LinearLayout import info.nightscout.androidaps.Config import info.nightscout.androidaps.R import javax.inject.Inject @@ -12,11 +15,8 @@ class SkinLargeDisplay @Inject constructor(private val config: Config): SkinInte override val mainGraphHeight: Int get() = 400 override val secondaryGraphHeight: Int get() = 150 - override fun overviewLayout(isLandscape: Boolean, isTablet: Boolean, isSmallHeight: Boolean): Int = - when { - config.NSCLIENT -> R.layout.overview_fragment_nsclient - isSmallHeight || isLandscape -> R.layout.overview_fragment_landscape - else -> R.layout.overview_fragment - } - + override fun preProcessLandscapeOverviewLayout(dm: DisplayMetrics, view: View, isLandscape: Boolean, isTablet: Boolean, isSmallHeight: Boolean) { + super.preProcessLandscapeOverviewLayout(dm, view, isLandscape, isTablet, isSmallHeight) + if (!config.NSCLIENT && (isSmallHeight || isLandscape)) moveButtonsLayout(view as LinearLayout) + } } \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/androidaps/skins/SkinLowRes.kt b/app/src/main/java/info/nightscout/androidaps/skins/SkinLowRes.kt index 0eb1b2c1ea..c2fbc2aba1 100644 --- a/app/src/main/java/info/nightscout/androidaps/skins/SkinLowRes.kt +++ b/app/src/main/java/info/nightscout/androidaps/skins/SkinLowRes.kt @@ -2,6 +2,7 @@ package info.nightscout.androidaps.skins import android.util.DisplayMetrics import android.view.View +import android.widget.LinearLayout import info.nightscout.androidaps.Config import info.nightscout.androidaps.R import javax.inject.Inject @@ -14,18 +15,13 @@ class SkinLowRes @Inject constructor(private val config: Config) : SkinInterface override val mainGraphHeight: Int get() = 200 override val secondaryGraphHeight: Int get() = 100 - override fun overviewLayout(isLandscape: Boolean, isTablet: Boolean, isSmallHeight: Boolean): Int = - when { - config.NSCLIENT -> R.layout.overview_fragment_nsclient - isLandscape -> R.layout.overview_fragment_landscape - else -> R.layout.overview_fragment - } - override fun actionsLayout(isLandscape: Boolean, isSmallWidth: Boolean): Int = when { isLandscape -> R.layout.actions_fragment else -> R.layout.actions_fragment_lowres } - override fun preProcessLandscapeOverviewLayout(dm: DisplayMetrics, view: View, isTablet: Boolean) {} + override fun preProcessLandscapeOverviewLayout(dm: DisplayMetrics, view: View, isLandscape: Boolean, isTablet: Boolean, isSmallHeight: Boolean) { + if (!config.NSCLIENT && isLandscape) moveButtonsLayout(view as LinearLayout) + } } diff --git a/app/src/main/res/layout/overview_fragment.xml b/app/src/main/res/layout/overview_fragment.xml index 747f53798e..f590d1d85c 100644 --- a/app/src/main/res/layout/overview_fragment.xml +++ b/app/src/main/res/layout/overview_fragment.xml @@ -8,11 +8,13 @@ + android:layout_height="0dp" + android:layout_weight="1" + tools:ignore="UselessParent"> @@ -28,12 +30,59 @@ + + + + + + + + + + - + diff --git a/app/src/main/res/layout/overview_fragment_landscape.xml b/app/src/main/res/layout/overview_fragment_landscape.xml deleted file mode 100644 index 2d6250384d..0000000000 --- a/app/src/main/res/layout/overview_fragment_landscape.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/overview_fragment_nsclient.xml b/app/src/main/res/layout/overview_fragment_nsclient.xml deleted file mode 100644 index 7f0235d8b9..0000000000 --- a/app/src/main/res/layout/overview_fragment_nsclient.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -