From ee50c079b4d60e5545f2d50cf1eb167e75d1c2c8 Mon Sep 17 00:00:00 2001 From: Fernando Cejas Date: Sun, 31 Jan 2016 01:58:04 +0100 Subject: [PATCH] Fix orientation changes making execute uses cases. Minor refactor and leaks solved. --- .../presenter/UserListPresenter.java | 3 +- .../view/activity/UserDetailsActivity.java | 12 ++-- .../view/activity/UserListActivity.java | 3 +- .../view/component/AutoLoadImageView.java | 70 +++++++++++++++++-- .../view/fragment/UserDetailsFragment.java | 14 +--- .../view/fragment/UserListFragment.java | 9 ++- ...vity_user_list.xml => activity_layout.xml} | 6 +- .../main/res/layout/activity_user_details.xml | 12 ---- .../src/main/res/layout/view_user_details.xml | 15 ++-- 9 files changed, 95 insertions(+), 49 deletions(-) rename presentation/src/main/res/layout/{activity_user_list.xml => activity_layout.xml} (70%) delete mode 100644 presentation/src/main/res/layout/activity_user_details.xml diff --git a/presentation/src/main/java/com/fernandocejas/android10/sample/presentation/presenter/UserListPresenter.java b/presentation/src/main/java/com/fernandocejas/android10/sample/presentation/presenter/UserListPresenter.java index 538112f..72cf4b5 100644 --- a/presentation/src/main/java/com/fernandocejas/android10/sample/presentation/presenter/UserListPresenter.java +++ b/presentation/src/main/java/com/fernandocejas/android10/sample/presentation/presenter/UserListPresenter.java @@ -44,7 +44,8 @@ public class UserListPresenter implements Presenter { private final UserModelDataMapper userModelDataMapper; @Inject - public UserListPresenter(@Named("userList") UseCase getUserListUserCase, UserModelDataMapper userModelDataMapper) { + public UserListPresenter(@Named("userList") UseCase getUserListUserCase, + UserModelDataMapper userModelDataMapper) { this.getUserListUseCase = getUserListUserCase; this.userModelDataMapper = userModelDataMapper; } diff --git a/presentation/src/main/java/com/fernandocejas/android10/sample/presentation/view/activity/UserDetailsActivity.java b/presentation/src/main/java/com/fernandocejas/android10/sample/presentation/view/activity/UserDetailsActivity.java index 8b763e9..fb2ae48 100644 --- a/presentation/src/main/java/com/fernandocejas/android10/sample/presentation/view/activity/UserDetailsActivity.java +++ b/presentation/src/main/java/com/fernandocejas/android10/sample/presentation/view/activity/UserDetailsActivity.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2014 android10.org. All rights reserved. + * * @author Fernando Cejas (the android10 coder) */ package com.fernandocejas.android10.sample.presentation.view.activity; @@ -23,20 +24,19 @@ public class UserDetailsActivity extends BaseActivity implements HasComponent CREATOR = + new Parcelable.Creator() { + public SavedState createFromParcel(Parcel in) { + return new SavedState(in); + } + + public SavedState[] newArray(int size) { + return new SavedState[size]; + } + }; + } } diff --git a/presentation/src/main/java/com/fernandocejas/android10/sample/presentation/view/fragment/UserDetailsFragment.java b/presentation/src/main/java/com/fernandocejas/android10/sample/presentation/view/fragment/UserDetailsFragment.java index d2eda62..e5c5133 100644 --- a/presentation/src/main/java/com/fernandocejas/android10/sample/presentation/view/fragment/UserDetailsFragment.java +++ b/presentation/src/main/java/com/fernandocejas/android10/sample/presentation/view/fragment/UserDetailsFragment.java @@ -28,8 +28,6 @@ import javax.inject.Inject; */ public class UserDetailsFragment extends BaseFragment implements UserDetailsView { - private static final String ARGUMENT_KEY_USER_ID = "org.android10.ARGUMENT_USER_ID"; - @Inject UserDetailsPresenter userDetailsPresenter; @Bind(R.id.iv_cover) AutoLoadImageView iv_cover; @@ -45,14 +43,6 @@ public class UserDetailsFragment extends BaseFragment implements UserDetailsView setRetainInstance(true); } - public static UserDetailsFragment create(int userId) { - UserDetailsFragment userDetailsFragment = new UserDetailsFragment(); - Bundle argumentsBundle = new Bundle(); - argumentsBundle.putInt(ARGUMENT_KEY_USER_ID, userId); - userDetailsFragment.setArguments(argumentsBundle); - return userDetailsFragment; - } - @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.getComponent(UserComponent.class).inject(this); @@ -68,7 +58,9 @@ public class UserDetailsFragment extends BaseFragment implements UserDetailsView @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); this.userDetailsPresenter.setView(this); - this.userDetailsPresenter.initialize(); + if (savedInstanceState == null) { + this.loadUserDetails(); + } } @Override public void onResume() { diff --git a/presentation/src/main/java/com/fernandocejas/android10/sample/presentation/view/fragment/UserListFragment.java b/presentation/src/main/java/com/fernandocejas/android10/sample/presentation/view/fragment/UserListFragment.java index f06dd04..6da47c9 100644 --- a/presentation/src/main/java/com/fernandocejas/android10/sample/presentation/view/fragment/UserListFragment.java +++ b/presentation/src/main/java/com/fernandocejas/android10/sample/presentation/view/fragment/UserListFragment.java @@ -76,7 +76,9 @@ public class UserListFragment extends BaseFragment implements UserListView { @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); this.userListPresenter.setView(this); - this.loadUserList(); + if (savedInstanceState == null) { + this.loadUserList(); + } } @Override public void onResume() { @@ -100,6 +102,11 @@ public class UserListFragment extends BaseFragment implements UserListView { this.userListPresenter.destroy(); } + @Override public void onDetach() { + super.onDetach(); + this.userListListener = null; + } + @Override public void showLoading() { this.rl_progress.setVisibility(View.VISIBLE); this.getActivity().setProgressBarIndeterminateVisibility(true); diff --git a/presentation/src/main/res/layout/activity_user_list.xml b/presentation/src/main/res/layout/activity_layout.xml similarity index 70% rename from presentation/src/main/res/layout/activity_user_list.xml rename to presentation/src/main/res/layout/activity_layout.xml index a0269ae..bc8dad0 100644 --- a/presentation/src/main/res/layout/activity_user_list.xml +++ b/presentation/src/main/res/layout/activity_layout.xml @@ -1,12 +1,10 @@ + android:layout_height="match_parent"> + android:layout_height="match_parent" /> diff --git a/presentation/src/main/res/layout/activity_user_details.xml b/presentation/src/main/res/layout/activity_user_details.xml deleted file mode 100644 index abdcd92..0000000 --- a/presentation/src/main/res/layout/activity_user_details.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - \ No newline at end of file diff --git a/presentation/src/main/res/layout/view_user_details.xml b/presentation/src/main/res/layout/view_user_details.xml index 34a3d4a..9416c34 100644 --- a/presentation/src/main/res/layout/view_user_details.xml +++ b/presentation/src/main/res/layout/view_user_details.xml @@ -1,8 +1,8 @@ - + android:layout_marginRight="@dimen/activity_horizontal_margin" + android:orientation="vertical" + > - - \ No newline at end of file +