Browse Source

Change overlaying mechanism

Signed-off-by: Alper Ozturk <alperozturk@lions-macbook.local>
Signed-off-by: alperozturk <alper_ozturk@proton.me>
Alper Ozturk 1 year ago
parent
commit
bbeccfb4f8

+ 1 - 5
app/src/androidTest/java/com/owncloud/android/utils/DrawableUtilTests.kt

@@ -25,11 +25,7 @@ class DrawableUtilTests {
         val bitmap: Bitmap = Bitmap.createBitmap(10, 10, Bitmap.Config.ARGB_8888)
         val drawable = BitmapDrawable(context?.resources, bitmap)
 
-        if (context == null) {
-            fail("context expected to be not null")
-        }
-
-        val layerDrawable = sut?.addDrawableAsOverlay(context!!, drawable, drawable)
+        val layerDrawable = sut?.addDrawableAsOverlay(drawable, drawable)
 
         if (layerDrawable == null) {
             fail("Layer drawable expected to be not null")

+ 0 - 7
app/src/main/java/com/nextcloud/utils/extensions/DisplayMetricsExtensions.kt

@@ -1,7 +0,0 @@
-package com.nextcloud.utils.extensions
-
-import android.util.DisplayMetrics
-
-fun DisplayMetrics.isLowDensityScreen(): Boolean {
-    return this.density < 2
-}

+ 0 - 10
app/src/main/java/com/nextcloud/utils/extensions/LayerDrawableExtensions.kt

@@ -1,10 +0,0 @@
-package com.nextcloud.utils.extensions
-
-import android.graphics.drawable.LayerDrawable
-
-fun LayerDrawable.setLayerSizeWithInsetTop(index: Int, size: Int, margin: Int) {
-    this.apply {
-        setLayerSize(index, size, size)
-        setLayerInsetTop(index, margin)
-    }
-}

+ 7 - 15
app/src/main/java/com/owncloud/android/utils/DrawableUtil.kt

@@ -1,12 +1,9 @@
 package com.owncloud.android.utils
 
-import android.content.Context
+import android.graphics.Rect
 import android.graphics.drawable.Drawable
 import android.graphics.drawable.LayerDrawable
-import android.view.Gravity
 import androidx.core.graphics.drawable.DrawableCompat
-import com.nextcloud.utils.extensions.isLowDensityScreen
-import com.nextcloud.utils.extensions.setLayerSizeWithInsetTop
 
 class DrawableUtil {
 
@@ -16,19 +13,14 @@ class DrawableUtil {
         return drawable
     }
 
-    fun addDrawableAsOverlay(context: Context, backgroundDrawable: Drawable, overlayDrawable: Drawable): LayerDrawable {
-        val isLowDensityScreen = context.resources.displayMetrics.isLowDensityScreen()
-
-        val defaultIconSize = 24
-        val defaultIconTopMargin = 6
-
-        val overlayIconSize = if (isLowDensityScreen) { defaultIconSize / 2 } else { defaultIconSize }
-        val overlayIconTopMargin = if (isLowDensityScreen) { defaultIconTopMargin / 2 } else { defaultIconTopMargin }
+    fun addDrawableAsOverlay(backgroundDrawable: Drawable, overlayDrawable: Drawable): LayerDrawable {
+        val overlayBounds = Rect()
+        val overlayIconSize = backgroundDrawable.intrinsicWidth / 2
+        val topMargin = overlayIconSize.div(2)
+        overlayBounds.set(overlayIconSize, overlayIconSize + topMargin, overlayIconSize, overlayIconSize)
 
         val layerDrawable = LayerDrawable(arrayOf(backgroundDrawable, overlayDrawable))
-        layerDrawable.setLayerSizeWithInsetTop(1, overlayIconSize, overlayIconTopMargin)
-        layerDrawable.setLayerGravity(1, Gravity.CENTER)
-
+        layerDrawable.setLayerInset(1, overlayBounds.left, overlayBounds.top, overlayBounds.right, overlayBounds.bottom)
         return layerDrawable
     }
 }

+ 1 - 1
app/src/main/java/com/owncloud/android/utils/MimeTypeUtil.java

@@ -165,7 +165,7 @@ public final class MimeTypeUtil {
             overlayDrawable = drawableUtil.changeColor(overlayDrawable, R.color.dark);
         }
 
-        return drawableUtil.addDrawableAsOverlay(context, folderDrawable, overlayDrawable);
+        return drawableUtil.addDrawableAsOverlay(folderDrawable, overlayDrawable);
     }
 
     /**