[Config] Store listeners inside of the weak containers
[Config] Don't allow registering same listener twice
[NP] Store listeners inside of the weak containers
Remove background dark gradient
Sync RippleDrawable with upstream