Skip to content

injectio/injectio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Inject.io

Download jCenter Hex.pm

Tiny and nice injections syntax sugar for Android. If you're using heavy injection frameworks just to inject views and resources try this.

Wat?

  • Just few lines of code, completely no dependencies (even Android ones).
  • Runtime (or cry slooooow if your want...whatever).
  • Injects views and resources, that's it.

How?

repositories {
  repositories {
    maven {
      jcenter()
    }
  }
}

dependencies {
  compile 'inject:inject:1.0.4'
}
public class BaseActivity extends Activity {
  @InjectView(R.id.title)
  private TextView mTitle;

  @InjectResource(R.string.fruits)
  private String[] mFruits;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.base_activity);
    Injector.inject(this);
  }
}

public class BaseFragment extends Fragment {
  @InjectView(R.id.title)
  private TextView mTitle;

  @InjectResource(R.string.hello)
  private String mHello;

  @InjectResource(R.array.bases)
  private int[] mBases;

  @Override
  public void onViewCreated(View view, Bundle savedInstanceState) {
      super.onViewCreated(view, savedInstanceState);
      Injector.inject(this, view);
  }
}

public class BaseViewGroup extends ViewGroup {
  @InjectView(R.id.subview)
  private View mSubview;

  @InjectResource(R.dimen.font_size)
  private float mFontSize;

  public BaseViewGroup(Context ctx, AttributeSet attrs, int style) {
    super(ctx, attrs, style);

    String service = Context.LAYOUT_INFLATER_SERVICE;
    LayoutInflater inflater = (LayoutInflater) ctx.getSystemService(service);
    inflater.inflate(R.layout.base_view_group, this, true);
    Injector.inject(this);
  }
}

License

Copyright 2015 Sergey Ivonchik

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Releases

No releases published

Packages

No packages published