提交 0e7d5789 编写于 作者: J Jyoti Dubey

Reduce scope of viewDataBinding

上级 61e4383a
......@@ -53,7 +53,7 @@ public abstract class BaseActivity<T extends ViewDataBinding, V extends BaseView
// since its going to be common for all the activities
private ProgressDialog mProgressDialog;
public T viewDataBinding;
private T mViewDataBinding;
private V mViewModel;
@Override
......@@ -73,10 +73,10 @@ public abstract class BaseActivity<T extends ViewDataBinding, V extends BaseView
private void performDataBinding() {
viewDataBinding = DataBindingUtil.setContentView(this, getLayoutId());
mViewDataBinding = DataBindingUtil.setContentView(this, getLayoutId());
this.mViewModel = mViewModel == null ? getViewModel() : mViewModel;
viewDataBinding.setVariable(getBindingVariable(), mViewModel);
viewDataBinding.executePendingBindings();
mViewDataBinding.setVariable(getBindingVariable(), mViewModel);
mViewDataBinding.executePendingBindings();
}
public ActivityComponent getActivityComponent() {
......@@ -145,14 +145,20 @@ public abstract class BaseActivity<T extends ViewDataBinding, V extends BaseView
}
}
public T getViewDataBinding() {
return mViewDataBinding;
}
/**
* Override for set view model
*
* @return view model instance
*/
public abstract V getViewModel();
/**
* Override for set binding variable
*
* @return variable id
*/
public abstract
......@@ -169,6 +175,5 @@ public abstract class BaseActivity<T extends ViewDataBinding, V extends BaseView
public abstract void performDependencyInjection();
}
......@@ -37,8 +37,8 @@ import com.mindorks.framework.mvvm.di.component.ActivityComponent;
public abstract class BaseFragment<T extends ViewDataBinding, V extends BaseViewModel> extends Fragment {
private BaseActivity mActivity;
public T viewDataBinding;
public V mViewModel;
private T mViewDataBinding;
private V mViewModel;
private View mRootView;
@Override
......@@ -49,16 +49,16 @@ public abstract class BaseFragment<T extends ViewDataBinding, V extends BaseView
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
viewDataBinding = DataBindingUtil.inflate(inflater, getLayoutId(), container, false);
mRootView = viewDataBinding.getRoot();
mViewDataBinding = DataBindingUtil.inflate(inflater, getLayoutId(), container, false);
mRootView = mViewDataBinding.getRoot();
return mRootView;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mViewModel = getViewModel();
viewDataBinding.setVariable(getBindingVariable(), mViewModel);
viewDataBinding.executePendingBindings();
mViewDataBinding.setVariable(getBindingVariable(), mViewModel);
mViewDataBinding.executePendingBindings();
}
@Override
......@@ -88,6 +88,10 @@ public abstract class BaseFragment<T extends ViewDataBinding, V extends BaseView
return mActivity;
}
public T getViewDataBinding(){
return mViewDataBinding;
}
@Override
public void onDestroy() {
super.onDestroy();
......
......@@ -40,6 +40,7 @@ public class FeedActivity extends BaseActivity<ActivityFeedBinding, FeedViewMode
FeedPagerAdapter mPagerAdapter;
@Inject
FeedViewModel mFeedViewModel;
ActivityFeedBinding mActivityFeedBinding;
......@@ -51,12 +52,13 @@ public class FeedActivity extends BaseActivity<ActivityFeedBinding, FeedViewMode
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mActivityFeedBinding = getViewDataBinding();
setUp();
}
private void setUp() {
setSupportActionBar(viewDataBinding.toolbar);
setSupportActionBar(mActivityFeedBinding.toolbar);
if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
......@@ -65,19 +67,19 @@ public class FeedActivity extends BaseActivity<ActivityFeedBinding, FeedViewMode
mPagerAdapter.setCount(2);
viewDataBinding.feedViewPager.setAdapter(mPagerAdapter);
mActivityFeedBinding.feedViewPager.setAdapter(mPagerAdapter);
viewDataBinding.tabLayout.addTab(viewDataBinding.tabLayout.newTab().setText(getString(R.string.blog)));
viewDataBinding.tabLayout.addTab(viewDataBinding.tabLayout.newTab().setText(getString(R.string.open_source)));
mActivityFeedBinding.tabLayout.addTab(mActivityFeedBinding.tabLayout.newTab().setText(getString(R.string.blog)));
mActivityFeedBinding.tabLayout.addTab(mActivityFeedBinding.tabLayout.newTab().setText(getString(R.string.open_source)));
viewDataBinding.feedViewPager.setOffscreenPageLimit(viewDataBinding.tabLayout.getTabCount());
mActivityFeedBinding.feedViewPager.setOffscreenPageLimit(mActivityFeedBinding.tabLayout.getTabCount());
viewDataBinding.feedViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(viewDataBinding.tabLayout));
mActivityFeedBinding.feedViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mActivityFeedBinding.tabLayout));
viewDataBinding.tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
mActivityFeedBinding.tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewDataBinding.feedViewPager.setCurrentItem(tab.getPosition());
mActivityFeedBinding.feedViewPager.setCurrentItem(tab.getPosition());
}
@Override
......
......@@ -46,6 +46,7 @@ public class BlogFragment extends BaseFragment<FragmentBlogBinding, BlogViewMode
@Inject
LinearLayoutManager mLayoutManager;
FragmentBlogBinding mFragmentBlogBinding;
public static BlogFragment newInstance() {
Bundle args = new Bundle();
......@@ -66,6 +67,7 @@ public class BlogFragment extends BaseFragment<FragmentBlogBinding, BlogViewMode
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mFragmentBlogBinding = getViewDataBinding();
setUp();
}
......@@ -87,9 +89,9 @@ public class BlogFragment extends BaseFragment<FragmentBlogBinding, BlogViewMode
private void setUp() {
mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
viewDataBinding.blogRecyclerView.setLayoutManager(mLayoutManager);
viewDataBinding.blogRecyclerView.setItemAnimator(new DefaultItemAnimator());
viewDataBinding.blogRecyclerView.setAdapter(mBlogAdapter);
mFragmentBlogBinding.blogRecyclerView.setLayoutManager(mLayoutManager);
mFragmentBlogBinding.blogRecyclerView.setItemAnimator(new DefaultItemAnimator());
mFragmentBlogBinding.blogRecyclerView.setAdapter(mBlogAdapter);
//One method one responsibility.May be we can move fetchBlogs() outside this function.
mBlogViewModel.fetchBlogs();
}
......
......@@ -48,6 +48,7 @@ public class OpenSourceFragment extends BaseFragment<FragmentOpenSourceBinding,
@Inject
LinearLayoutManager mLayoutManager;
FragmentOpenSourceBinding mFragmentOpenSourceBinding;
public static OpenSourceFragment newInstance() {
Bundle args = new Bundle();
......@@ -68,6 +69,7 @@ public class OpenSourceFragment extends BaseFragment<FragmentOpenSourceBinding,
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mFragmentOpenSourceBinding = getViewDataBinding();
setUp();
}
......@@ -88,9 +90,9 @@ public class OpenSourceFragment extends BaseFragment<FragmentOpenSourceBinding,
private void setUp() {
mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
viewDataBinding.openSourceRecyclerView.setLayoutManager(mLayoutManager);
viewDataBinding.openSourceRecyclerView.setItemAnimator(new DefaultItemAnimator());
viewDataBinding.openSourceRecyclerView.setAdapter(mOpenSourceAdapter);
mFragmentOpenSourceBinding.openSourceRecyclerView.setLayoutManager(mLayoutManager);
mFragmentOpenSourceBinding.openSourceRecyclerView.setItemAnimator(new DefaultItemAnimator());
mFragmentOpenSourceBinding.openSourceRecyclerView.setAdapter(mOpenSourceAdapter);
mOpenSourceViewModel.fetchRepos();
}
......
......@@ -37,6 +37,7 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding, LoginViewM
@Inject
LoginViewModel mLoginViewModel;
ActivityLoginBinding mActivityLoginBinding;
public static Intent getStartIntent(Context context) {
Intent intent = new Intent(context, LoginActivity.class);
......@@ -46,6 +47,7 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding, LoginViewM
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mActivityLoginBinding = getViewDataBinding();
mLoginViewModel.setNavigator(this);
}
......@@ -70,8 +72,8 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding, LoginViewM
@Override
public void login() {
String email = viewDataBinding.etEmail.getText().toString();
String password = viewDataBinding.etPassword.getText().toString();
String email = mActivityLoginBinding.etEmail.getText().toString();
String password = mActivityLoginBinding.etPassword.getText().toString();
if (mLoginViewModel.isEmailAndPasswordValid(email, password)) {
hideKeyboard();
mLoginViewModel.login(email, password);
......
......@@ -70,6 +70,7 @@ public class MainActivity extends BaseActivity<ActivityMainBinding,MainViewModel
private NavigationView mNavigationView;
private SwipePlaceHolderView mCardsContainerView;
ActivityMainBinding mActivityMainBinding;
public static Intent getStartIntent(Context context) {
......@@ -80,6 +81,7 @@ public class MainActivity extends BaseActivity<ActivityMainBinding,MainViewModel
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mActivityMainBinding = getViewDataBinding();
mMainViewModel.setNavigator(this);
setUp();
}
......@@ -137,10 +139,10 @@ public class MainActivity extends BaseActivity<ActivityMainBinding,MainViewModel
private void setUp() {
mDrawer = viewDataBinding.drawerView;
mToolbar = viewDataBinding.toolbar;
mNavigationView = viewDataBinding.navigationView;
mCardsContainerView = viewDataBinding.cardsContainer;
mDrawer = mActivityMainBinding.drawerView;
mToolbar = mActivityMainBinding.toolbar;
mNavigationView = mActivityMainBinding.navigationView;
mCardsContainerView = mActivityMainBinding.cardsContainer;
setSupportActionBar(mToolbar);
ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(
......@@ -203,12 +205,9 @@ public class MainActivity extends BaseActivity<ActivityMainBinding,MainViewModel
}
private void setupNavMenu() {
NavHeaderMainBinding navHeaderMainBinding = DataBindingUtil.inflate(getLayoutInflater(),
R.layout.nav_header_main, viewDataBinding.navigationView, false);
viewDataBinding.navigationView.addHeaderView(navHeaderMainBinding.getRoot());
R.layout.nav_header_main, mActivityMainBinding.navigationView, false);
mActivityMainBinding.navigationView.addHeaderView(navHeaderMainBinding.getRoot());
navHeaderMainBinding.setViewModel(mMainViewModel);
mNavigationView.setNavigationItemSelectedListener(
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册