Skip to content

Instantly share code, notes, and snippets.

View babedev's full-sized avatar

Christopher Ng babedev

  • BabeDev
  • Bangkok, Thailand
View GitHub Profile
@babedev
babedev / report.sol
Created April 21, 2017 06:36
Sample report contract
pragma solidity ^0.4.7;
contract Report {
struct report {
uint id;
string detail;
}
mapping(uint => report) public reports;
@babedev
babedev / ImageViewExt.kt
Created April 19, 2017 08:16
ImageView extension for show image with Glide
fun ImageView.show(imageUrl: String = "") {
if (context == null) return
if (context is Activity && ((context as Activity).isFinishing || (context as Activity).isDestroyed)) return
Glide.with(context)
.load(imageUrl)
.crossFade()
.signature(StringSignature(UUID.randomUUID().toString()))
.into(this)
public static void main(String[] args) throws IOException {
MvpPoet poet = new MvpPoet("com.babedev.javapoetcodelab", "Sample");
poet.generateMvp();
}
package com.babedev.javapoetcodelab.sample;
import android.app.Activity;
import android.os.Bundle;
import java.lang.Override;
class SampleActivity extends Activity implements SampleView {
private SamplePresenter mPresenter;
private void generateActivity() throws IOException {
MethodSpec onCreate = MethodSpec.methodBuilder("onCreate")
.addAnnotation(Override.class)
.addModifiers(Modifier.PUBLIC)
.returns(void.class)
.addParameter(Bundle.class, "savedInstanceState")
.addComment("TODO setContentView()")
.addStatement("mPresenter = new $T()", getPresenterType())
.addStatement("mPresenter.attachView(this)")
.build();
package com.babedev.javapoetcodelab.sample;
class SamplePresenter {
private SampleView mView;
/**
* Attach View
*/
void attachView(SampleView view) {
ClassName.bestGuess(packageName + "." + featureName.toLowerCase() + "." + featureName + "View");
package com.babedev.javapoetcodelab.sample;
interface SampleView {
}
private void generatePresenter() throws IOException {
MethodSpec attachView = MethodSpec.methodBuilder("attachView")
.addJavadoc(CodeBlock.of("Attach View"))
.addParameter(getViewType(), "view")
.addStatement("mView = view")
.build();
TypeSpec mvpPresenter = TypeSpec.classBuilder(featureName + "Presenter")
.addMethod(attachView)
.addField(getViewType(), "mView", Modifier.PRIVATE)
private void generateView() throws IOException {
TypeSpec mvpView = TypeSpec.interfaceBuilder(featureName + "View")
.build();
JavaFile javaFile = JavaFile.builder(packageName + "." + featureName.toLowerCase(), mvpView)
.build();
File file = new File("app/src/main/java");
javaFile.writeTo(file);
}