turing-tech / MaterialScrollBar

An Android library that brings the Material Design 5.1 sidebar to pre-5.1 devices.
Apache License 2.0
781 stars 126 forks source link

Add support for Android P #118

Closed DranzerX closed 6 years ago

DranzerX commented 6 years ago

As of API Level API level Build.VERSION_CODES.P only Region.Op.INTERSECT and Region.Op.DIFFERENCE are valid Region.Op parameters.

So I have the next error at Handle.onDraw(Handle.java:101):

06-12 10:10:12.608 7419-7419/com.***.*** E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.***.***, PID: 7419
    java.lang.IllegalArgumentException: Invalid Region.Op - only INTERSECT and DIFFERENCE are allowed
        at android.graphics.Canvas.checkValidClipOp(Canvas.java:779)
        at android.graphics.Canvas.clipRect(Canvas.java:826)
        at com.turingtechnologies.materialscrollbar.Handle.onDraw(Handle.java:101)
        at android.view.View.draw(View.java:20205)
        at android.view.View.updateDisplayListIfDirty(View.java:19080)
        at android.view.View.draw(View.java:19933)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4136)
        at android.view.View.updateDisplayListIfDirty(View.java:19071)
        at android.view.View.draw(View.java:19933)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
        at android.view.View.updateDisplayListIfDirty(View.java:19071)
        at android.view.View.draw(View.java:19933)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
        at android.view.View.updateDisplayListIfDirty(View.java:19071)
        at android.view.View.draw(View.java:19933)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
        at android.support.design.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:1246)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
        at android.view.View.updateDisplayListIfDirty(View.java:19071)
        at android.view.View.draw(View.java:19933)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
        at android.support.constraint.ConstraintLayout.dispatchDraw(ConstraintLayout.java:1964)
        at android.view.View.updateDisplayListIfDirty(View.java:19071)
        at android.view.View.draw(View.java:19933)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
        at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1428)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
        at android.view.View.draw(View.java:20208)
        at android.view.View.updateDisplayListIfDirty(View.java:19080)
        at android.view.View.draw(View.java:19933)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
        at android.view.View.updateDisplayListIfDirty(View.java:19071)
        at android.view.View.draw(View.java:19933)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
        at android.view.View.updateDisplayListIfDirty(View.java:19071)
        at android.view.View.draw(View.java:19933)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
        at android.view.View.updateDisplayListIfDirty(View.java:19071)
        at android.view.View.draw(View.java:19933)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
        at android.view.View.updateDisplayListIfDirty(View.java:19071)
        at android.view.View.draw(View.java:19933)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
        at android.view.View.draw(View.java:20208)
        at com.android.internal.policy.DecorView.draw(DecorView.java:780)
        at android.view.View.updateDisplayListIfDirty(View.java:19080)
        at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:685)
        at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:691)
        at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:799)
        at android.view.ViewRootImpl.draw(ViewRootImpl.java:3263)
        at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3079)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2459)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1447)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7130)
06-12 10:10:12.609 7419-7419/com.***.*** E/AndroidRuntime:     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:935)
        at android.view.Choreographer.doCallbacks(Choreographer.java:747)
        at android.view.Choreographer.doFrame(Choreographer.java:682)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:921)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6642)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
turing-tech commented 6 years ago

I see the problem. It should be fixed in a little over a week as I'm unfortunately abroad at the moment. Anyone who is willing to fix it before me is encouraged to so. The bounding box of the bar and handle needs to be increased without increasing the visual size of the components.