Skip to content

Commit

Permalink
modernized to prevent ClassNotFoundException
Browse files Browse the repository at this point in the history
  • Loading branch information
mtotschnig committed May 18, 2020
1 parent c0b5fc4 commit 9292210
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 6 deletions.
6 changes: 5 additions & 1 deletion library/build.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
apply plugin: 'com.android.library'

dependencies {
implementation 'com.android.support:support-annotations:28.0.0'
}

android {
compileSdkVersion 22
compileSdkVersion 28
defaultConfig {
minSdkVersion 14
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package se.emilsjolander.stickylistheaders;

import android.content.Context;
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.RequiresApi;
import android.util.AttributeSet;
import android.view.View;
import java.util.ArrayList;
Expand Down Expand Up @@ -163,8 +165,18 @@ static class SavedState extends BaseSavedState {
*/
private SavedState(Parcel in) {
super(in);
readValues(in, null);
}

private void readValues(Parcel in, ClassLoader loader) {
collapsedHeaderIds = new ArrayList<>();
in.readList(collapsedHeaderIds, null);
in.readList(collapsedHeaderIds, loader);
}

@RequiresApi(24)
SavedState(Parcel in, ClassLoader loader) {
super(in, loader);
readValues(in, loader);
}

@Override
Expand All @@ -173,12 +185,20 @@ public void writeToParcel(Parcel out, int flags) {
out.writeList(collapsedHeaderIds);
}

public static final Parcelable.Creator<SavedState> CREATOR
= new Parcelable.Creator<SavedState>() {
public SavedState createFromParcel(Parcel in) {
return new SavedState(in);
public static final Creator<SavedState> CREATOR = new ClassLoaderCreator<SavedState>() {
@Override
public SavedState createFromParcel(Parcel source, ClassLoader loader) {
return Build.VERSION.SDK_INT >= 24
? new SavedState(source, loader)
: new SavedState(source);
}

@Override
public SavedState createFromParcel(Parcel source) {
return createFromParcel(source, null);
}

@Override
public SavedState[] newArray(int size) {
return new SavedState[size];
}
Expand Down

0 comments on commit 9292210

Please sign in to comment.