Skip to content

Commit 4799232

Browse files
committed
Now serializes correctly
1 parent bae9154 commit 4799232

File tree

3 files changed

+61
-33
lines changed

3 files changed

+61
-33
lines changed

Diff for: onboarder/src/main/java/com/jrejaud/onboarder/OnboardingActivity.java

+14-13
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public class OnboardingActivity extends AppCompatActivity {
2424
private @ColorRes int backgroundColorResId;
2525

2626
private final static String ONBOARDING_FRAGMENT_LIST = "ONBOARDING_FRAGMENT_LIST";
27-
private List<OnboardingFragment> onboardingFragmentList; //TODO make this an array instead?
27+
private List<OnboardingPage> onboardingPages;
2828

2929
public final static String SWIPING_ENABLED = "SWIPING_ENABLED";
3030

@@ -36,43 +36,43 @@ public class OnboardingActivity extends AppCompatActivity {
3636
private boolean hideDotPagination;
3737

3838
//region Static Factory Methods
39-
public static Bundle newBundleImageBackground(@DrawableRes int backgroundImageResId, @NonNull List<OnboardingFragment> onboardingFragmentList) {
39+
public static Bundle newBundleImageBackground(@DrawableRes int backgroundImageResId, @NonNull List<OnboardingPage> onboardingPages) {
4040
Bundle bundle = new Bundle();
4141
bundle.putInt(BACKGROUND_IMAGE_RES_ID, backgroundImageResId);
4242

4343
//Lists are serializable in Java
44-
bundle.putSerializable(ONBOARDING_FRAGMENT_LIST, (Serializable) onboardingFragmentList);
44+
bundle.putSerializable(ONBOARDING_FRAGMENT_LIST, (Serializable) onboardingPages);
4545
return bundle;
4646
}
4747

48-
public static Bundle newBundleColorBackground(@ColorRes int backgroundColorResId, @NonNull List<OnboardingFragment> onboardingFragmentList) {
48+
public static Bundle newBundleColorBackground(@ColorRes int backgroundColorResId, @NonNull List<OnboardingPage> onboardingPages) {
4949
Bundle bundle = new Bundle();
5050
bundle.putInt(BACKGROUND_COLOR_RES_ID, backgroundColorResId);
5151

5252
//Lists are serializable in Java
53-
bundle.putSerializable(ONBOARDING_FRAGMENT_LIST, (Serializable) onboardingFragmentList);
53+
bundle.putSerializable(ONBOARDING_FRAGMENT_LIST, (Serializable) onboardingPages);
5454
return bundle;
5555
}
5656

57-
public static Bundle newBundleImageBackground(@DrawableRes int backgroundImageResId, boolean swipingEnabled, boolean hideDotPagination, @NonNull List<OnboardingFragment> onboardingFragmentList) {
57+
public static Bundle newBundleImageBackground(@DrawableRes int backgroundImageResId, boolean swipingEnabled, boolean hideDotPagination, @NonNull List<OnboardingPage> onboardingPages) {
5858
Bundle bundle = new Bundle();
5959
bundle.putInt(BACKGROUND_IMAGE_RES_ID, backgroundImageResId);
6060
bundle.putBoolean(SWIPING_ENABLED, swipingEnabled);
6161
bundle.putBoolean(HIDE_DOT_PAGINATION, hideDotPagination);
6262

6363
//Lists are serializable in Java
64-
bundle.putSerializable(ONBOARDING_FRAGMENT_LIST, (Serializable) onboardingFragmentList);
64+
bundle.putSerializable(ONBOARDING_FRAGMENT_LIST, (Serializable) onboardingPages);
6565
return bundle;
6666
}
6767

68-
public static Bundle newBundleColorBackground(@ColorRes int backgroundColorResId, boolean swipingEnabled, boolean hideDotPagination, @NonNull List<OnboardingFragment> onboardingFragmentList) {
68+
public static Bundle newBundleColorBackground(@ColorRes int backgroundColorResId, boolean swipingEnabled, boolean hideDotPagination, @NonNull List<OnboardingPage> onboardingPages) {
6969
Bundle bundle = new Bundle();
7070
bundle.putInt(BACKGROUND_COLOR_RES_ID, backgroundColorResId);
7171
bundle.putBoolean(SWIPING_ENABLED, swipingEnabled);
7272
bundle.putBoolean(HIDE_DOT_PAGINATION, hideDotPagination);
7373

7474
//Lists are serializable in Java
75-
bundle.putSerializable(ONBOARDING_FRAGMENT_LIST, (Serializable) onboardingFragmentList);
75+
bundle.putSerializable(ONBOARDING_FRAGMENT_LIST, (Serializable) onboardingPages);
7676
return bundle;
7777
}
7878
//endregion
@@ -86,11 +86,11 @@ protected void onCreate(Bundle savedInstanceState) {
8686
Bundle bundle = getIntent().getExtras();
8787

8888
//Todo need to implement a non-swiping version
89-
swipingEnabled = bundle.getBoolean(SWIPING_ENABLED,true);
89+
swipingEnabled = bundle.getBoolean(SWIPING_ENABLED, true);
9090
hideDotPagination = bundle.getBoolean(HIDE_DOT_PAGINATION, false);
9191
backgroundImageResId = bundle.getInt(BACKGROUND_IMAGE_RES_ID, -1); //-1 means that no image was passed
9292
backgroundColorResId = bundle.getInt(BACKGROUND_COLOR_RES_ID,-1);
93-
onboardingFragmentList = (List<OnboardingFragment>) bundle.getSerializable(ONBOARDING_FRAGMENT_LIST);
93+
onboardingPages = (List<OnboardingPage>) bundle.getSerializable(ONBOARDING_FRAGMENT_LIST);
9494

9595
//Set the view pager
9696
//TODO Implement a non-swiping version
@@ -123,12 +123,13 @@ public OnboardingFragmentPagerAdapter(FragmentManager fragmentManager) {
123123

124124
@Override
125125
public Fragment getItem(int position) {
126-
return onboardingFragmentList.get(position);
126+
//Build a new fragment from an Onboarding Page (Since Fragment bundles don't seem to be serializable
127+
return OnboardingFragment.newInstance(onboardingPages.get(position));
127128
}
128129

129130
@Override
130131
public int getCount() {
131-
return onboardingFragmentList.size();
132+
return onboardingPages.size();
132133
}
133134
}
134135
}

Diff for: onboarder/src/main/java/com/jrejaud/onboarder/OnboardingFragment.java

+8-20
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.jrejaud.onboarder;
22

3+
import android.content.Context;
34
import android.os.Bundle;
45
import android.support.annotation.DrawableRes;
56
import android.support.v4.app.Fragment;
@@ -52,33 +53,20 @@ public OnboardingFragment() {
5253
* @return A new instance of fragment OnboardingFragment.
5354
*/
5455
// TODO: Rename and change types and number of parameters
55-
public static OnboardingFragment newInstance(String title, String bodyText,@DrawableRes int imageResId) {
56+
public static OnboardingFragment newInstance(OnboardingPage onboardingPage) {
5657
OnboardingFragment fragment = new OnboardingFragment();
5758
Bundle args = new Bundle();
58-
args.putString(TITLE, title);
59-
args.putString(BODY_TEXT, bodyText);
60-
args.putInt(IMAGE_RESOURCE_ID, imageResId);
61-
fragment.setArguments(args);
62-
return fragment;
63-
}
64-
65-
public static OnboardingFragment newInstance(String title, String bodyText) {
66-
OnboardingFragment fragment = new OnboardingFragment();
67-
Bundle args = new Bundle();
68-
args.putString(TITLE, title);
69-
args.putString(BODY_TEXT, bodyText);
59+
args.putString(TITLE, onboardingPage.getTitle());
60+
args.putString(BODY_TEXT, onboardingPage.getBodyText());
61+
args.putInt(IMAGE_RESOURCE_ID, onboardingPage.getImageResId());
7062
fragment.setArguments(args);
7163
return fragment;
7264
}
7365

7466
@Override
75-
public void onCreate(Bundle savedInstanceState) {
76-
super.onCreate(savedInstanceState);
77-
if (getArguments() != null) {
78-
title = getArguments().getString(TITLE);
79-
bodyText = getArguments().getString(BODY_TEXT);
80-
imageResId = getArguments().getInt(IMAGE_RESOURCE_ID);
81-
}
67+
public void onAttach(Context context) {
68+
super.onAttach(context);
69+
//TODO get a reference to the activity here
8270
}
8371

8472
@Override
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.jrejaud.onboarder;
2+
3+
import android.support.annotation.DrawableRes;
4+
import android.support.annotation.Nullable;
5+
6+
import java.io.Serializable;
7+
8+
/**
9+
* Created by jrejaud on 3/11/16.
10+
*/
11+
public class OnboardingPage implements Serializable {
12+
private String title;
13+
private String bodyText;
14+
private @DrawableRes
15+
int imageResId;
16+
17+
public String getTitle() {
18+
return title;
19+
}
20+
21+
public String getBodyText() {
22+
return bodyText;
23+
}
24+
25+
public int getImageResId() {
26+
return imageResId;
27+
}
28+
29+
public OnboardingPage(@Nullable String title,@Nullable String bodyText) {
30+
this.title = title;
31+
this.bodyText = bodyText;
32+
}
33+
34+
public OnboardingPage(@Nullable String title,@Nullable String bodyText, int imageResId) {
35+
this.title = title;
36+
this.bodyText = bodyText;
37+
this.imageResId = imageResId;
38+
}
39+
}

0 commit comments

Comments
 (0)