František Gažo
Android library for boilerplate destruction
10.
public class NextActivity extends Activity {
private static final String EXTRA_TEXT = "extra_text";
private static final String EXTRA_FLAG = "extra_flag";
public static Intent newIntent(Contaxt context, String text, boolean flag) {
Intent intent = new Intent(context, NextActivity.class);
intent.putExtra(EXTRA_TEXT, text);
intent.putExtra(EXTRA_FLAG, flag);
return intent;
}
}
public class NextActivity extends Activity {
private static final String EXTRA_TEXT = "extra_text";
private static final String EXTRA_FLAG = "extra_flag";
public static Intent newIntent(Contaxt context, String text, boolean flag) {
Intent intent = new Intent(context, NextActivity.class);
intent.putExtra(EXTRA_TEXT, text);
intent.putExtra(EXTRA_FLAG, flag);
return intent;
}
private String mText;
private boolean mFlag;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
mText = extras.getString(EXTRA_TEXT);
mFlag = extras.getBoolean(EXTRA_FLAG);
}
}
public class SomeFragment extends Fragment {
private static final String EXTRA_TEXT = "arg_text";
private static final String EXTRA_FLAG = "arg_flag";
public static SomeFragment newInstance(String text, boolean flag) {
SomeFragment frag = new SomeFragment();
Bundle args = new Bundle();
args.putString(EXTRA_TEXT, text);
args.putBoolean(EXTRA_FLAG, flag);
frag.setArguments(args);
return frag;
}
}
public class SomeFragment extends Fragment {
private static final String EXTRA_TEXT = "arg_text";
private static final String EXTRA_FLAG = "arg_flag";
public static SomeFragment newInstance(String text, boolean flag) {
SomeFragment frag = new SomeFragment();
Bundle args = new Bundle();
args.putString(EXTRA_TEXT, text);
args.putBoolean(EXTRA_FLAG, flag);
frag.setArguments(args);
return frag;
}
private String mText;
private boolean mFlag;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mText = getArguments().getString(EXTRA_TEXT);
mFlag = getArguments().getBoolean(EXTRA_FLAG);
}
}
Annotation Processing
ByteCode Weaving
public class NextActivity extends Activity {
@Extra String mText;
@Extra boolean mFlag;
}
public class NextActivity extends Activity {
private static final String EXTRA_TEXT = "extra_text";
private static final String EXTRA_FLAG = "extra_flag";
public static Intent newIntent(Contaxt context, String text, boolean flag) {
Intent intent = new Intent(context, NextActivity.class);
intent.putExtra(EXTRA_TEXT, text);
intent.putExtra(EXTRA_FLAG, flag);
return intent;
}
private String mText;
private boolean mFlag;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
mText = extras.getString(EXTRA_TEXT);
mFlag = extras.getBoolean(EXTRA_FLAG);
}
}
I.startNextActivity(context, "some text", true);
Intent intent = I.forNextActivity(context, "some text", true);
// set something to intent
startActivity(intent);
public class SomeFragment extends Fragment {
private static final String EXTRA_TEXT = "arg_text";
private static final String EXTRA_FLAG = "arg_flag";
public static SomeFragment newInstance(String text, boolean flag) {
SomeFragment frag = new SomeFragment();
Bundle args = new Bundle();
args.putString(EXTRA_TEXT, text);
args.putBoolean(EXTRA_FLAG, flag);
frag.setArguments(args);
return frag;
}
private String mText;
private boolean mFlag;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mText = getArguments().getString(EXTRA_TEXT);
mFlag = getArguments().getBoolean(EXTRA_FLAG);
}
}
public class SomeFragment extends Fragment {
@Arg String mText;
@Arg boolean mFlag;
}
F.newSomeFragment("some text", true);
buildscript {
dependencies {
// ...
classpath 'eu.f3rog.automat:plugin:0.2.0'
}
}
apply plugin: 'com.android.application'
apply plugin: 'automat'
Open Source: