Inject.io

Additional

Language
Java
Version
N/A
Created
Jan 6, 2016
Updated
Jan 11, 2016 (Retired)
Owner
Inject.io (injectio)
Contributor
Sergey Ivonchik (selfsx)
1
Activity
Badge
Generate
Download
Source code

Inject.io

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