package com.kabouzeid.gramophone.dialogs; import android.app.Dialog; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; import android.support.annotation.NonNull; import android.support.v4.app.DialogFragment; import com.afollestad.materialdialogs.MaterialDialog; /** * @author Karim Abou Zeid (kabouzeid) */ public class LyricsDialog extends DialogFragment { public static LyricsDialog create(@NonNull LyricInfo lyricInfo) { LyricsDialog dialog = new LyricsDialog(); Bundle args = new Bundle(); args.putParcelable("LyricInfo", lyricInfo); dialog.setArguments(args); return dialog; } @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { LyricInfo lyricInfo = getArguments().getParcelable("LyricInfo"); //noinspection ConstantConditions return new MaterialDialog.Builder(getActivity()) .title(lyricInfo.title) .content(lyricInfo.lyrics) .build(); } public static class LyricInfo implements Parcelable { public final String title; public final String lyrics; public LyricInfo(String title, String lyrics) { this.title = title; this.lyrics = lyrics; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(this.title); dest.writeString(this.lyrics); } protected LyricInfo(Parcel in) { this.title = in.readString(); this.lyrics = in.readString(); } public static final Parcelable.Creator<LyricInfo> CREATOR = new Parcelable.Creator<LyricInfo>() { @Override public LyricInfo createFromParcel(Parcel source) { return new LyricInfo(source); } @Override public LyricInfo[] newArray(int size) { return new LyricInfo[size]; } }; } }