Skip to content

Commit

Permalink
Fragment: Generate save code only if there are some arguments
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcinMoskala committed Dec 7, 2017
1 parent 19fae16 commit b0b35c8
Show file tree
Hide file tree
Showing 7 changed files with 17 additions and 43 deletions.
Expand Up @@ -12,10 +12,10 @@ internal class FragmentGeneration(classModel: ClassModel) : ClassGeneration(clas

override fun createFillFieldsMethod() = getBasicFillMethodBuilder()
.addParameter(classModel.targetTypeName, "fragment")
.addStatement("if(fragment.getArguments() == null) fragment.setArguments(new \$T())", BUNDLE)
.doIf(classModel.argumentModels.isNotEmpty()) {
addFieldSettersCode()
}
.addStatement("if(fragment.getArguments() == null) fragment.setArguments(new \$T())", BUNDLE)
.build()!!

override fun createStarters(variant: List<ArgumentModel>): List<MethodSpec> = listOf(
Expand Down Expand Up @@ -49,7 +49,7 @@ internal class FragmentGeneration(classModel: ClassModel) : ClassGeneration(clas
private fun createSaveMethod(): MethodSpec = this
.builderWithCreationBasicFieldsNoContext("save")
.addParameter(classModel.targetTypeName, "fragment")
.doIf(classModel.savable) {
.doIf(classModel.savable && classModel.argumentModels.isNotEmpty()) {
addStatement("\$T bundle = new Bundle()", BUNDLE)
addSaveBundleStatements("bundle", classModel.argumentModels, { "fragment.${it.accessor.makeGetter()}" })
addStatement("fragment.getArguments().putAll(bundle)")
Expand Down
9 changes: 2 additions & 7 deletions generationExamples/fragment/ConflictedOptional
Expand Up @@ -21,8 +21,8 @@ public final class MainFragmentStarter {
private static final String SURNAME_KEY = "com.example.activitystarter.surnameStarterKey";

public static void fill(MainFragment fragment) {
if(fragment.getArguments() == null) fragment.setArguments(new Bundle());
Bundle arguments = fragment.getArguments();

if(arguments != null && arguments.containsKey(NAME_KEY)) fragment.name = arguments.getString(NAME_KEY);
if(arguments != null && arguments.containsKey(SURNAME_KEY)) fragment.surname = arguments.getString(SURNAME_KEY);
}
Expand All @@ -31,12 +31,7 @@ public final class MainFragmentStarter {
Bundle bundle = new Bundle();
bundle.putString(NAME_KEY, fragment.name);
bundle.putString(SURNAME_KEY, fragment.surname);
Bundle arguments = fragment.getArguments();
if (arguments == null) {
fragment.setArguments(bundle);
} else {
arguments.putAll(bundle);
}
fragment.getArguments().putAll(bundle);
}

public static MainFragment newInstance(String name, String surname) {
Expand Down
13 changes: 4 additions & 9 deletions generationExamples/fragment/EmptyAnnotated
Expand Up @@ -13,22 +13,17 @@ package com.example.activitystarter;
import android.os.Bundle;

public final class MainFragmentStarter {

/**
* This is method used to fill fields. Use it by calling ActivityStarter.fill(this). */
public static void fill(MainFragment fragment) {
if(fragment.getArguments() == null) fragment.setArguments(new Bundle());
}

public static void save(MainFragment fragment) {
Bundle bundle = new Bundle();
Bundle arguments = fragment.getArguments();
if (arguments == null) {
fragment.setArguments(bundle);
} else {
arguments.putAll(bundle);
}
}

public static MainFragment newInstance() {
MainFragment fragment = new MainFragment();
return fragment;
}
}
}
8 changes: 2 additions & 6 deletions generationExamples/fragment/MultipleOptional
Expand Up @@ -21,6 +21,7 @@ public final class MainFragmentStarter {
private static final String ID_KEY = "com.example.activitystarter.idStarterKey";

public static void fill(MainFragment fragment) {
if(fragment.getArguments() == null) fragment.setArguments(new Bundle());
Bundle arguments = fragment.getArguments();
if(arguments != null && arguments.containsKey(NAME_KEY)) fragment.name = arguments.getString(NAME_KEY);
if(arguments != null && arguments.containsKey(ID_KEY)) fragment.id = arguments.getInt(ID_KEY);
Expand All @@ -30,12 +31,7 @@ public final class MainFragmentStarter {
Bundle bundle = new Bundle();
bundle.putString(NAME_KEY, fragment.name);
bundle.putInt(ID_KEY, fragment.id);
Bundle arguments = fragment.getArguments();
if (arguments == null) {
fragment.setArguments(bundle);
} else {
arguments.putAll(bundle);
}
fragment.getArguments().putAll(bundle);
}

public static MainFragment newInstance(String name, int id) {
Expand Down
8 changes: 2 additions & 6 deletions generationExamples/fragment/Optional
Expand Up @@ -18,19 +18,15 @@ public final class MainFragmentStarter {
private static final String NAME_KEY = "com.example.activitystarter.nameStarterKey";

public static void fill(MainFragment fragment) {
if(fragment.getArguments() == null) fragment.setArguments(new Bundle());
Bundle arguments = fragment.getArguments();
if(arguments != null && arguments.containsKey(NAME_KEY)) fragment.name = arguments.getString(NAME_KEY);
}

public static void save(MainFragment fragment) {
Bundle bundle = new Bundle();
bundle.putString(NAME_KEY, fragment.name);
Bundle arguments = fragment.getArguments();
if (arguments == null) {
fragment.setArguments(bundle);
} else {
arguments.putAll(bundle);
}
fragment.getArguments().putAll(bundle);
}

public static MainFragment newInstance(String name) {
Expand Down
10 changes: 3 additions & 7 deletions generationExamples/fragment/SetterGetter
Expand Up @@ -27,19 +27,15 @@ public final class MainFragmentStarter {
private static final String NAME_KEY = "com.example.activitystarter.nameStarterKey";

public static void fill(MainFragment fragment) {
if(fragment.getArguments() == null) fragment.setArguments(new Bundle());
Bundle arguments = fragment.getArguments();
if(arguments != null && arguments.containsKey(NAME_KEY)) fragment.setName(arguments.getString(NAME_KEY));
}

public static void save(MainFragment fragment) {
Bundle bundle = new Bundle();
bundle.putString(NAME_KEY, fragment.getName());
Bundle arguments = fragment.getArguments();
if (arguments == null) {
fragment.setArguments(bundle);
} else {
arguments.putAll(bundle);
}
fragment.getArguments().putAll(bundle);
}

public static MainFragment newInstance(String name) {
Expand All @@ -49,4 +45,4 @@ public final class MainFragmentStarter {
fragment.setArguments(args);
return fragment;
}
}
}
8 changes: 2 additions & 6 deletions generationExamples/fragment/Simple
Expand Up @@ -18,19 +18,15 @@ public final class MainFragmentStarter {
private static final String NAME_KEY = "com.example.activitystarter.nameStarterKey";

public static void fill(MainFragment fragment) {
if(fragment.getArguments() == null) fragment.setArguments(new Bundle());
Bundle arguments = fragment.getArguments();
if(arguments != null && arguments.containsKey(NAME_KEY)) fragment.name = arguments.getString(NAME_KEY);
}

public static void save(MainFragment fragment) {
Bundle bundle = new Bundle();
bundle.putString(NAME_KEY, fragment.name);
Bundle arguments = fragment.getArguments();
if (arguments == null) {
fragment.setArguments(bundle);
} else {
arguments.putAll(bundle);
}
fragment.getArguments().putAll(bundle);
}

public static MainFragment newInstance(String name) {
Expand Down

0 comments on commit b0b35c8

Please sign in to comment.