scroll view saved state added

This commit is contained in:
Gavriil Sitnikov 2015-11-14 22:31:32 +03:00
parent fcb0892f12
commit 450b47d675
3 changed files with 50 additions and 1 deletions

View File

@ -136,7 +136,9 @@ public abstract class AbstractHttpRequest<T> {
} catch (Exception e) {
subscriber.onError(e);
}
}).subscribeOn(Schedulers.io());
}).subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io())
.doOnUnsubscribe(this::cancel);
}
@NonNull

View File

@ -0,0 +1,46 @@
package org.roboswag.components.savestate;
import android.graphics.Point;
import android.os.Parcelable;
import android.support.annotation.NonNull;
import android.widget.ScrollView;
import org.roboswag.components.R;
/**
* Created by Gavriil Sitnikov on 14/11/2015.
* TODO: fill description
*/
public class ScrollViewSavedStateController extends AbstractSavedStateController {
@NonNull
private final ScrollView scrollView;
public ScrollViewSavedStateController(@NonNull final ScrollView scrollView) {
this(scrollView.getId(), scrollView);
}
public ScrollViewSavedStateController(final int id, @NonNull final ScrollView scrollView) {
super(id);
this.scrollView = scrollView;
}
@Override
protected int getTypeId() {
return R.id.SCROLL_VIEW_SAVED_STATE;
}
@NonNull
@Override
public Parcelable getState() {
return new Point(scrollView.getScrollX(), scrollView.getScrollY());
}
@Override
public void restoreState(@NonNull final Parcelable savedState) {
if (savedState instanceof Point) {
scrollView.post(() -> scrollView.scrollTo(((Point) savedState).x, ((Point) savedState).y));
}
}
}

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="RECYCLER_VIEW_SAVED_STATE" type="id"/>
<item name="SCROLL_VIEW_SAVED_STATE" type="id"/>
</resources>