Skip to content

Commit

Permalink
Fix getsize() and getMatrix Depreciation
Browse files Browse the repository at this point in the history
  • Loading branch information
jainv4156 committed Feb 3, 2025
1 parent aa97f0d commit 62698ae
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 6 deletions.
24 changes: 20 additions & 4 deletions AnkiDroid/src/main/java/com/ichi2/anki/noteeditor/Toolbar.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,11 @@ import android.content.Context
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Insets
import android.graphics.Paint
import android.graphics.drawable.BitmapDrawable
import android.graphics.drawable.Drawable
import android.os.Build
import android.util.AttributeSet
import android.util.DisplayMetrics
import android.util.TypedValue
Expand All @@ -33,6 +35,7 @@ import android.view.KeyEvent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.WindowInsets
import android.widget.FrameLayout
import android.widget.LinearLayout
import androidx.annotation.ColorInt
Expand Down Expand Up @@ -234,10 +237,23 @@ class Toolbar : FrameLayout {
private val screenWidth: Int
get() {
val displayMetrics = DisplayMetrics()
(context as Activity)
.windowManager
.defaultDisplay
.getMetrics(displayMetrics)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val windowMetrics =
(context as Activity)
.windowManager
.currentWindowMetrics
val insets: Insets =
windowMetrics.getWindowInsets().getInsetsIgnoringVisibility(
WindowInsets.Type.navigationBars()
or WindowInsets.Type.displayCutout(),
)
displayMetrics.widthPixels = windowMetrics.bounds.width() - (insets.right + insets.left)
} else {
(context as Activity)
.windowManager
.defaultDisplay
.getMetrics(displayMetrics)
}
return displayMetrics.widthPixels
}

Expand Down
20 changes: 18 additions & 2 deletions AnkiDroid/src/main/java/com/ichi2/utils/DisplayUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,34 @@
package com.ichi2.utils

import android.content.Context
import android.graphics.Insets
import android.graphics.Point
import android.os.Build
import android.view.Window
import android.view.WindowInsets
import android.view.WindowManager
import com.ichi2.anki.AnkiDroidApp
import kotlin.math.roundToInt

object DisplayUtils {
@Suppress("DEPRECATION") // #9333: defaultDisplay & getSize
fun getDisplayDimensions(wm: WindowManager): Point {
val display = wm.defaultDisplay
val point = Point()
display.getSize(point)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val bounds = wm.currentWindowMetrics.bounds
val insets: Insets =
wm.currentWindowMetrics
.getWindowInsets()
.getInsetsIgnoringVisibility(
WindowInsets.Type.navigationBars()
or WindowInsets.Type.displayCutout(),
)
point.x = bounds.width() - (insets.right + insets.left)
point.y = bounds.height() - (insets.top + insets.bottom)
} else {
val display = wm.defaultDisplay
display.getSize(point)
}
return point
}

Expand Down

0 comments on commit 62698ae

Please sign in to comment.