Commit 56f4a36a authored by Max Lv's avatar Max Lv

Fix an issue when Accessibility enabled

Actually, it's not necessary to move our fragment upward, which contains
a list view.
parent 6db818cc
......@@ -9,6 +9,7 @@ import android.support.annotation.AttrRes
import android.support.v4.app.Fragment
import android.support.v4.app.FragmentManager
import android.support.v7.util.SortedList
import android.view.accessibility.AccessibilityManager
import android.util.TypedValue
import com.github.shadowsocks.App.Companion.app
import com.github.shadowsocks.JniHelper
......@@ -21,6 +22,11 @@ private val fieldChildFragmentManager by lazy {
field
}
fun isAccessibilityEnabled(context: Context): Boolean {
val am = context.getSystemService(Context.ACCESSIBILITY_SERVICE) as AccessibilityManager
return am.isEnabled()
}
fun String.isNumericAddress() = JniHelper.parseNumericAddress(this) != null
fun String.parseNumericAddress(): InetAddress? {
val addr = JniHelper.parseNumericAddress(this)
......
......@@ -32,6 +32,8 @@ import android.support.v4.view.ViewCompat
import android.util.AttributeSet
import android.view.View
import com.github.shadowsocks.utils.isAccessibilityEnabled
/**
* Full credits go to: https://stackoverflow.com/a/35904421/2245107
*/
......@@ -51,6 +53,7 @@ class MoveUpwardBehavior : CoordinatorLayout.Behavior<View> {
* Based on BaseTransientBottomBar.animateViewOut (support lib 27.0.2).
*/
override fun onDependentViewRemoved(parent: CoordinatorLayout, child: View, dependency: View) {
if (!isAccessibilityEnabled(parent.getContext())) {
val animator = ValueAnimator()
val start = child.translationY
animator.setFloatValues(start, 0f)
......@@ -67,5 +70,8 @@ class MoveUpwardBehavior : CoordinatorLayout.Behavior<View> {
}
})
animator.start()
} else {
child.translationY = 0f
}
}
}
......@@ -13,8 +13,7 @@
android:id="@+id/fragment_holder"
android:background="?android:attr/windowBackground"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="com.github.shadowsocks.widget.BottomMarginBehavior"/>
android:layout_height="match_parent" />
<LinearLayout
android:id="@+id/stat"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment