mirror of
https://github.com/lacerta-doc/Lacerta.git
synced 2024-11-22 07:53:15 +00:00
アニメーションリソースをいくつか追加
This commit is contained in:
parent
4df56774c3
commit
8df63b0ac6
25
shared/ui/src/main/res/anim/nav_dynamic_enter_anim.xml
Normal file
25
shared/ui/src/main/res/anim/nav_dynamic_enter_anim.xml
Normal file
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromXDelta="105%"
|
||||
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
|
||||
android:toXDelta="0" />
|
||||
|
||||
<scale
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromXScale="0.9"
|
||||
android:fromYScale="0.9"
|
||||
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
|
||||
android:pivotX="50%"
|
||||
android:pivotY="50%"
|
||||
android:toXScale="1"
|
||||
android:toYScale="1" />
|
||||
|
||||
<alpha
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromAlpha="0.5"
|
||||
android:interpolator="@android:anim/linear_interpolator"
|
||||
android:toAlpha="1" />
|
||||
|
||||
</set>
|
24
shared/ui/src/main/res/anim/nav_dynamic_exit_anim.xml
Normal file
24
shared/ui/src/main/res/anim/nav_dynamic_exit_anim.xml
Normal file
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromXDelta="0"
|
||||
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
|
||||
android:toXDelta="-105%" />
|
||||
|
||||
<scale
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromXScale="1"
|
||||
android:fromYScale="1"
|
||||
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
|
||||
android:pivotX="50%"
|
||||
android:pivotY="50%"
|
||||
android:toXScale="0.9"
|
||||
android:toYScale="0.9" />
|
||||
|
||||
<alpha
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromAlpha="1"
|
||||
android:interpolator="@android:anim/linear_interpolator"
|
||||
android:toAlpha="0.5" />
|
||||
</set>
|
24
shared/ui/src/main/res/anim/nav_dynamic_pop_enter_anim.xml
Normal file
24
shared/ui/src/main/res/anim/nav_dynamic_pop_enter_anim.xml
Normal file
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromXDelta="-105%"
|
||||
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
|
||||
android:toXDelta="0" />
|
||||
|
||||
<scale
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromXScale="0.9"
|
||||
android:fromYScale="0.9"
|
||||
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
|
||||
android:pivotX="50%"
|
||||
android:pivotY="50%"
|
||||
android:toXScale="1"
|
||||
android:toYScale="1" />
|
||||
|
||||
<alpha
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromAlpha="0.5"
|
||||
android:interpolator="@android:anim/linear_interpolator"
|
||||
android:toAlpha="1" />
|
||||
</set>
|
25
shared/ui/src/main/res/anim/nav_dynamic_pop_exit_anim.xml
Normal file
25
shared/ui/src/main/res/anim/nav_dynamic_pop_exit_anim.xml
Normal file
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromXDelta="0"
|
||||
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
|
||||
android:toXDelta="105%" />
|
||||
|
||||
<scale
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromXScale="1"
|
||||
android:fromYScale="1"
|
||||
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
|
||||
android:pivotX="50%"
|
||||
android:pivotY="50%"
|
||||
android:toXScale="0.9"
|
||||
android:toYScale="0.9" />
|
||||
|
||||
<alpha
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromAlpha="1"
|
||||
android:interpolator="@android:anim/linear_interpolator"
|
||||
android:toAlpha="0.5" />
|
||||
|
||||
</set>
|
8
shared/ui/src/main/res/anim/nav_ios_enter_anim.xml
Normal file
8
shared/ui/src/main/res/anim/nav_ios_enter_anim.xml
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromXDelta="100%p"
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:toXDelta="0" />
|
||||
</set>
|
15
shared/ui/src/main/res/anim/nav_ios_exit_anim.xml
Normal file
15
shared/ui/src/main/res/anim/nav_ios_exit_anim.xml
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromXDelta="0"
|
||||
android:interpolator="@android:anim/accelerate_interpolator"
|
||||
android:toXDelta="-20%p" />
|
||||
|
||||
<alpha
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromAlpha="1"
|
||||
android:interpolator="@android:anim/linear_interpolator"
|
||||
android:toAlpha="0.5" />
|
||||
|
||||
</set>
|
14
shared/ui/src/main/res/anim/nav_ios_pop_enter_anim.xml
Normal file
14
shared/ui/src/main/res/anim/nav_ios_pop_enter_anim.xml
Normal file
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromXDelta="-20%p"
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:toXDelta="0" />
|
||||
|
||||
<alpha
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromAlpha="0.5"
|
||||
android:interpolator="@android:anim/linear_interpolator"
|
||||
android:toAlpha="1" />
|
||||
</set>
|
8
shared/ui/src/main/res/anim/nav_ios_pop_exit_anim.xml
Normal file
8
shared/ui/src/main/res/anim/nav_ios_pop_exit_anim.xml
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromXDelta="0"
|
||||
android:interpolator="@android:anim/accelerate_interpolator"
|
||||
android:toXDelta="100%p" />
|
||||
</set>
|
14
shared/ui/src/main/res/anim/nav_rotate_enter_anim.xml
Normal file
14
shared/ui/src/main/res/anim/nav_rotate_enter_anim.xml
Normal file
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<rotate
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromDegrees="30"
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:pivotX="50%"
|
||||
android:pivotY="90%"
|
||||
android:toDegrees="0" />
|
||||
<alpha
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromAlpha="0.0"
|
||||
android:toAlpha="1.0" />
|
||||
</set>
|
14
shared/ui/src/main/res/anim/nav_rotate_exit_anim.xml
Normal file
14
shared/ui/src/main/res/anim/nav_rotate_exit_anim.xml
Normal file
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<rotate
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromDegrees="0"
|
||||
android:interpolator="@android:anim/accelerate_interpolator"
|
||||
android:pivotX="50%"
|
||||
android:pivotY="90%"
|
||||
android:toDegrees="-30" />
|
||||
<alpha
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromAlpha="1.0"
|
||||
android:toAlpha="0.0" />
|
||||
</set>
|
14
shared/ui/src/main/res/anim/nav_rotate_pop_enter_anim.xml
Normal file
14
shared/ui/src/main/res/anim/nav_rotate_pop_enter_anim.xml
Normal file
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<rotate
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromDegrees="-30"
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:pivotX="50%"
|
||||
android:pivotY="90%"
|
||||
android:toDegrees="0" />
|
||||
<alpha
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromAlpha="0.0"
|
||||
android:toAlpha="1.0" />
|
||||
</set>
|
14
shared/ui/src/main/res/anim/nav_rotate_pop_exit_anim.xml
Normal file
14
shared/ui/src/main/res/anim/nav_rotate_pop_exit_anim.xml
Normal file
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<rotate
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromDegrees="0"
|
||||
android:interpolator="@android:anim/accelerate_interpolator"
|
||||
android:pivotX="50%"
|
||||
android:pivotY="90%"
|
||||
android:toDegrees="30" />
|
||||
<alpha
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromAlpha="1"
|
||||
android:toAlpha="0" />
|
||||
</set>
|
12
shared/ui/src/main/res/anim/nav_slide_enter_anim.xml
Normal file
12
shared/ui/src/main/res/anim/nav_slide_enter_anim.xml
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="@integer/config_navAnimTime"
|
||||
android:fromXDelta="50%p"
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:toXDelta="0" />
|
||||
<alpha
|
||||
android:duration="@integer/config_navAnimTime"
|
||||
android:fromAlpha="0.0"
|
||||
android:toAlpha="1.0" />
|
||||
</set>
|
12
shared/ui/src/main/res/anim/nav_slide_exit_anim.xml
Normal file
12
shared/ui/src/main/res/anim/nav_slide_exit_anim.xml
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="@integer/config_navAnimTime"
|
||||
android:fromXDelta="0%p"
|
||||
android:interpolator="@android:anim/accelerate_interpolator"
|
||||
android:toXDelta="-50%p" />
|
||||
<alpha
|
||||
android:duration="@integer/config_navAnimTime"
|
||||
android:fromAlpha="1.0"
|
||||
android:toAlpha="0.0" />
|
||||
</set>
|
12
shared/ui/src/main/res/anim/nav_slide_pop_enter_anim.xml
Normal file
12
shared/ui/src/main/res/anim/nav_slide_pop_enter_anim.xml
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="@integer/config_navAnimTime"
|
||||
android:fromXDelta="-50%p"
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:toXDelta="0%p" />
|
||||
<alpha
|
||||
android:duration="@integer/config_navAnimTime"
|
||||
android:fromAlpha="0.0"
|
||||
android:toAlpha="1.0" />
|
||||
</set>
|
12
shared/ui/src/main/res/anim/nav_slide_pop_exit_anim.xml
Normal file
12
shared/ui/src/main/res/anim/nav_slide_pop_exit_anim.xml
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="@integer/config_navAnimTime"
|
||||
android:fromXDelta="0"
|
||||
android:interpolator="@android:anim/accelerate_interpolator"
|
||||
android:toXDelta="50%p" />
|
||||
<alpha
|
||||
android:duration="@integer/config_navAnimTime"
|
||||
android:fromAlpha="1.0"
|
||||
android:toAlpha="0.0" />
|
||||
</set>
|
8
shared/ui/src/main/res/anim/nav_twitter_enter_anim.xml
Normal file
8
shared/ui/src/main/res/anim/nav_twitter_enter_anim.xml
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromXDelta="100%p"
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:toXDelta="0" />
|
||||
</set>
|
18
shared/ui/src/main/res/anim/nav_twitter_exit_anim.xml
Normal file
18
shared/ui/src/main/res/anim/nav_twitter_exit_anim.xml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<scale
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromXScale="1"
|
||||
android:fromYScale="1"
|
||||
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
|
||||
android:pivotX="50%"
|
||||
android:pivotY="50%"
|
||||
android:toXScale="0.9"
|
||||
android:toYScale="0.9" />
|
||||
|
||||
<alpha
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromAlpha="1"
|
||||
android:interpolator="@android:anim/linear_interpolator"
|
||||
android:toAlpha="0.5" />
|
||||
</set>
|
18
shared/ui/src/main/res/anim/nav_twitter_pop_enter_anim.xml
Normal file
18
shared/ui/src/main/res/anim/nav_twitter_pop_enter_anim.xml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<scale
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromXScale="0.9"
|
||||
android:fromYScale="0.9"
|
||||
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
|
||||
android:pivotX="50%"
|
||||
android:pivotY="50%"
|
||||
android:toXScale="1"
|
||||
android:toYScale="1" />
|
||||
|
||||
<alpha
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromAlpha="0.5"
|
||||
android:interpolator="@android:anim/linear_interpolator"
|
||||
android:toAlpha="1" />
|
||||
</set>
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromXDelta="0"
|
||||
android:interpolator="@android:anim/accelerate_interpolator"
|
||||
android:toXDelta="100%p" />
|
||||
</set>
|
8
shared/ui/src/main/res/anim/nav_up_enter_anim.xml
Normal file
8
shared/ui/src/main/res/anim/nav_up_enter_anim.xml
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromYDelta="100%p"
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:toYDelta="0" />
|
||||
</set>
|
7
shared/ui/src/main/res/anim/nav_up_exit_anim.xml
Normal file
7
shared/ui/src/main/res/anim/nav_up_exit_anim.xml
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<alpha
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromAlpha="1"
|
||||
android:toAlpha="1" />
|
||||
</set>
|
7
shared/ui/src/main/res/anim/nav_up_pop_enter_anim.xml
Normal file
7
shared/ui/src/main/res/anim/nav_up_pop_enter_anim.xml
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<alpha
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromAlpha="1"
|
||||
android:toAlpha="1" />
|
||||
</set>
|
8
shared/ui/src/main/res/anim/nav_up_pop_exit_anim.xml
Normal file
8
shared/ui/src/main/res/anim/nav_up_pop_exit_anim.xml
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromYDelta="0"
|
||||
android:interpolator="@android:anim/accelerate_interpolator"
|
||||
android:toYDelta="100%p" />
|
||||
</set>
|
16
shared/ui/src/main/res/anim/nav_zoom_enter_anim.xml
Normal file
16
shared/ui/src/main/res/anim/nav_zoom_enter_anim.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<scale
|
||||
android:duration="@integer/config_navAnimTime"
|
||||
android:fromXScale="0.9"
|
||||
android:fromYScale="0.9"
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:pivotX="50%"
|
||||
android:pivotY="50%"
|
||||
android:toXScale="1"
|
||||
android:toYScale="1" />
|
||||
<alpha
|
||||
android:duration="@integer/config_navAnimTime"
|
||||
android:fromAlpha="0.0"
|
||||
android:toAlpha="1.0" />
|
||||
</set>
|
12
shared/ui/src/main/res/anim/nav_zoom_exit_anim.xml
Normal file
12
shared/ui/src/main/res/anim/nav_zoom_exit_anim.xml
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<scale
|
||||
android:duration="@integer/config_navAnimTime"
|
||||
android:fromXScale="1"
|
||||
android:fromYScale="1"
|
||||
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
|
||||
android:pivotX="50%"
|
||||
android:pivotY="50%"
|
||||
android:toXScale="1.05"
|
||||
android:toYScale="1.05" />
|
||||
</set>
|
12
shared/ui/src/main/res/anim/nav_zoom_pop_enter_anim.xml
Normal file
12
shared/ui/src/main/res/anim/nav_zoom_pop_enter_anim.xml
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<scale
|
||||
android:duration="@integer/config_navAnimTime"
|
||||
android:fromXScale="1.05"
|
||||
android:fromYScale="1.05"
|
||||
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
|
||||
android:pivotX="50%"
|
||||
android:pivotY="50%"
|
||||
android:toXScale="1"
|
||||
android:toYScale="1" />
|
||||
</set>
|
16
shared/ui/src/main/res/anim/nav_zoom_pop_exit_anim.xml
Normal file
16
shared/ui/src/main/res/anim/nav_zoom_pop_exit_anim.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<scale
|
||||
android:duration="@integer/config_navAnimTime"
|
||||
android:fromXScale="1"
|
||||
android:fromYScale="1"
|
||||
android:interpolator="@android:anim/accelerate_interpolator"
|
||||
android:pivotX="50%"
|
||||
android:pivotY="50%"
|
||||
android:toXScale="0.9"
|
||||
android:toYScale="0.9" />
|
||||
<alpha
|
||||
android:duration="@integer/config_navAnimTime"
|
||||
android:fromAlpha="1.0"
|
||||
android:toAlpha="0.0" />
|
||||
</set>
|
Loading…
Reference in New Issue
Block a user