package com.test.yqman.mydaggertest;
import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.test.yqman.mydaggertest.component.DaggerMyComponent;
import com.test.yqman.mydaggertest.component.MyComponent;
import com.test.yqman.mydaggertest.data.MyData;
import com.test.yqman.mydaggertest.data.MyPresenter;
import com.test.yqman.mydaggertest.modules.MyModule;
import com.test.yqman.mydaggertest.modules.SecondModule;
import javax.inject.Inject;
public class MainActivity extends Activity {
@Inject MyPresenter myPresenter;
@Inject MyData myDatabase1;
@Inject MyData myDatabase2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
if(myPresenter==null) Log.e("test", "presenter is null");
MyComponent m = DaggerMyComponent.builder().myModule(new MyModule(this)).secondModule(new SecondModule()).build();
m.inject_vsd(this);
//证明注入成功
Log.e("test", "---------dagger test-------------");
if(myPresenter==null){ Log.e("test", "Dagger failed"); }
else{ Log.e("test", "Dagger success"); }
//默认情况注入对象是否单例
Log.e("test", "---------single test-------------");
if(myDatabase1==myDatabase2){ Log.e("test", "single model"); }
else{ Log.e("test", "not single model"); }
//普通方法返回消耗类
Log.e("test", "---------simple method test-------------");
MyPresenter pre = m.providerMyPresent_dfafd();
if(pre == null){ Log.e("test", "can not return 0bject"); }
else if(pre==myPresenter) Log.e("test", "single model");
else Log.e("test", "not single model");
new ClientClass(m);
}
}