Make usage of BundleSavedState more robust

pull/183/merge
Alinson S. Xavier 8 years ago
parent e844390614
commit 34ca9d17a2

@ -20,16 +20,19 @@
package org.isoron.uhabits.activities.common.views;
import android.os.*;
import android.support.v4.os.*;
public class BundleSavedState extends android.support.v4.view.AbsSavedState
{
public static final Parcelable.Creator<BundleSavedState> CREATOR =
new Parcelable.Creator<BundleSavedState>()
ParcelableCompat.newCreator(
new ParcelableCompatCreatorCallbacks<BundleSavedState>()
{
@Override
public BundleSavedState createFromParcel(Parcel source)
public BundleSavedState createFromParcel(Parcel source,
ClassLoader loader)
{
return new BundleSavedState(source, getClass().getClassLoader());
return new BundleSavedState(source, loader);
}
@Override
@ -37,7 +40,7 @@ public class BundleSavedState extends android.support.v4.view.AbsSavedState
{
return new BundleSavedState[size];
}
};
});
public final Bundle bundle;
@ -50,7 +53,7 @@ public class BundleSavedState extends android.support.v4.view.AbsSavedState
public BundleSavedState(Parcel source, ClassLoader loader)
{
super(source, loader);
this.bundle = source.readBundle(getClass().getClassLoader());
this.bundle = source.readBundle(loader);
}
@Override

@ -107,6 +107,12 @@ public abstract class ScrollableChart extends View
@Override
public void onRestoreInstanceState(Parcelable state)
{
if(!(state instanceof BundleSavedState))
{
super.onRestoreInstanceState(state);
return;
}
BundleSavedState bss = (BundleSavedState) state;
int x = bss.bundle.getInt("x");
int y = bss.bundle.getInt("y");

@ -153,6 +153,12 @@ public class HabitCardListView extends RecyclerView
@Override
protected void onRestoreInstanceState(Parcelable state)
{
if(!(state instanceof BundleSavedState))
{
super.onRestoreInstanceState(state);
return;
}
BundleSavedState bss = (BundleSavedState) state;
dataOffset = bss.bundle.getInt("dataOffset");
super.onRestoreInstanceState(bss.getSuperState());

Loading…
Cancel
Save