From 2d781e44dd87c50007e43f92ab45c6be989a9d04 Mon Sep 17 00:00:00 2001 From: Daniel Novak Date: Fri, 8 May 2015 22:18:28 +0200 Subject: [PATCH 01/69] Update README.md --- README.md | 58 +++++++++++++++++++++- website/static/lifecycle.png | Bin 0 -> 61100 bytes website/static/lifecycle_thumb.png | Bin 0 -> 30902 bytes website/static/viewmodel_architecture.png | Bin 0 -> 25720 bytes 4 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 website/static/lifecycle.png create mode 100644 website/static/lifecycle_thumb.png create mode 100644 website/static/viewmodel_architecture.png diff --git a/README.md b/README.md index 985a051..bcd796f 100644 --- a/README.md +++ b/README.md @@ -4,15 +4,66 @@ AndroidViewModel Separating data and state handling from Fragments or Activities without lots of boilerplate-code. Reducing them to simple dumb views. Basic idea behind this library. -An instance of a Model class is assigned to your Fragment or Activity during the first creation and is kept during it's life cycle, even between display orientation changes. The Model instance is removed after the Fragment or Activity is completely gone (finished, popped from backstack, replaced without keeping it in backstack). +An instance of a ViewModel class is assigned to your Fragment or Activity during the first creation and is kept during it's life cycle, even between display orientation changes. The ViewModel instance is removed after the Fragment or Activity is completely gone (finished, popped from backstack, replaced without keeping it in backstack). -You can execute asynchronous tasks in this Model instance and this class is not destroyed during orientation change. All data handling and state logic should be placed inside this class. The Fragment or Activity is just a "dumb" view. +You can execute asynchronous tasks in this ViewModel instance and this class is not destroyed during orientation change. All data handling and state logic should be placed inside this class. The Fragment or Activity is just a "dumb" view. + +![](website/static/viewmodel_architecture.png) + +How to implement: + +1. Create an interface for your View by extending [IView](library/src/main/java/eu/inloop/viewmodel/IView.java). We will call it IUserListView for this example. + + ```java + + public interface IUserListView extends IView { + public void showUsers(List users); + } + ``` +2. Create your ViewModel class by extending [AbstractViewModel](library/src/main/java/eu/inloop/viewmodel/AbstractViewModel.java). For example:
+ + ```java + public class UserListViewModel extends AbstractViewModel { + .... + } + ``` +3. Each Fragment or Activity that you would like to associate with a ViewModel will need either to extend [ViewModelActivityBase](library/src/main/java/eu/inloop/viewmodel/base/ViewModelBaseActivity.java)/[ViewModelActivityBase](library/src/main/java/eu/inloop/viewmodel/base/ViewModelBaseFragment.java) or copy the implementation from these classes to your base activity/fragment class (in case you can't inherit directly). Override ```getViewModelClass()``` to return the corresponding ViewModel class. For example:
+ + ```java + public class UserListFragment extends ViewModelBaseFragment + implements IUserListView { + + @Override + public Class getViewModelClass() { + return UserListViewModel.class; + } + + } + ``` + +How to use: + +You can forward user interaction from the View into the ViewModel simply by calling: + + ```java + getViewModel().onDeleteUserClicked(userId); + ``` + +The same goes for the opposite direction, when your asynchronous operation in the ViewModel finished and you would like to forward data to the View to show a list for example: + + ```java + if (getView() != null) { + getView().showUsers(userList); + } + ``` How does it work? + A unique global ID is generated for the first time your Fragment or Activity is shown. This ID is passed on during orientation changes. Opening another instance of the same Fragment or Activity will result in a different ID. The ID is unique screen identifier. A ViewModel class is created and bound to this ID. The corresponding ViewModel instance is attached to your Fragment or Activity after an orientation change or if you return to the fragment in the back stack. The ViewModel is discarded once the Fragment/Activity is not reachable anymore (activity is finished or fragment permanently removed). Why no controller layer? + This is not a strict MVC/MVP architecture - simply because we felt that having another layer between the "model" and the view does not bring enough advantages. So to further reduce the code this was simplified, where the Model is talking to the View over an interface. In mobile application most of the code is about interaction with the UI (getting data from API/DB, showing the data, manipulating, saving) so a more direct connection between the layers felt appropriate. Sample Workflow: @@ -26,6 +77,9 @@ This is not a strict MVC/MVP architecture - simply because we felt that having a 7. ViewModel finishes the async task and tells the Fragment to show the data. 8. User leaves the Activity, the Fragment is destroyed and the ViewModel is removed. +[![](website/static/lifecycle_thumb.png)](website/static/lifecycle.png) + + Download -------- diff --git a/website/static/lifecycle.png b/website/static/lifecycle.png new file mode 100644 index 0000000000000000000000000000000000000000..38fc9ef741e3f76d40a56d574c1344dd0f0d7d83 GIT binary patch literal 61100 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 X_}KWo{!V-glEQiAbLnUQxcmPBf%dZS literal 0 HcmV?d00001 diff --git a/website/static/lifecycle_thumb.png b/website/static/lifecycle_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..48b8568b4a645a57f1f724b20eb406e6e52ca81f GIT binary patch literal 30902 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 literal 0 HcmV?d00001 diff --git a/website/static/viewmodel_architecture.png b/website/static/viewmodel_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..22c9a34726927d33651d852f517e9c8391cc0b76 GIT binary patch literal 25720 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 literal 0 HcmV?d00001 From 4b8dd829071478cec5d5630cbb6b1b7e124308e1 Mon Sep 17 00:00:00 2001 From: Daniel Novak Date: Sat, 9 May 2015 14:20:10 +0200 Subject: [PATCH 02/69] Update sample --- build.gradle | 4 +- library/build.gradle | 11 +-- .../viewmodel/base/ViewModelBaseActivity.java | 3 +- sample/build.gradle | 10 +- sample/src/main/AndroidManifest.xml | 2 +- .../sample/activity/MainActivity.java | 14 +-- .../sample/activity/ProjectBaseActivity.java | 12 --- .../sample/fragment/EmptyFragment.java | 3 +- .../sample/fragment/ProjectBaseFragment.java | 15 --- .../sample/fragment/UserListFragment.java | 36 +++++-- .../sample/viewmodel/UserListViewModel.java | 89 ++++++++---------- .../sample/viewmodel/view/IUserListView.java | 7 +- .../main/res/drawable-hdpi/ic_launcher.png | Bin 7721 -> 0 bytes .../main/res/drawable-mdpi/ic_launcher.png | Bin 3769 -> 0 bytes .../main/res/drawable-xhdpi/ic_launcher.png | Bin 12329 -> 0 bytes .../main/res/drawable-xxhdpi/ic_launcher.png | Bin 24654 -> 0 bytes sample/src/main/res/layout/activity_main.xml | 24 +---- sample/src/main/res/layout/fragment_empty.xml | 3 +- .../src/main/res/layout/fragment_userlist.xml | 27 ++++-- .../src/main/res/layout/view_header_info.xml | 25 +++++ .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3418 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2206 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4842 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7718 bytes sample/src/main/res/values/strings.xml | 8 +- sample/src/main/res/values/styles.xml | 7 +- 26 files changed, 139 insertions(+), 161 deletions(-) delete mode 100644 sample/src/main/java/eu/inloop/viewmodel/sample/activity/ProjectBaseActivity.java delete mode 100644 sample/src/main/java/eu/inloop/viewmodel/sample/fragment/ProjectBaseFragment.java delete mode 100644 sample/src/main/res/drawable-hdpi/ic_launcher.png delete mode 100644 sample/src/main/res/drawable-mdpi/ic_launcher.png delete mode 100644 sample/src/main/res/drawable-xhdpi/ic_launcher.png delete mode 100644 sample/src/main/res/drawable-xxhdpi/ic_launcher.png create mode 100644 sample/src/main/res/layout/view_header_info.xml create mode 100644 sample/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 sample/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 sample/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 sample/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/build.gradle b/build.gradle index 6d79718..fd0c8e0 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,9 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - buildscript { repositories { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:1.0.0' + classpath 'com.android.tools.build:gradle:1.2.2' } } diff --git a/library/build.gradle b/library/build.gradle index fec8034..575d900 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -2,12 +2,12 @@ apply plugin: 'com.android.library' apply plugin: 'maven' android { - compileSdkVersion 21 - buildToolsVersion '21.1.2' + compileSdkVersion 22 + buildToolsVersion '22.0.1' defaultConfig { minSdkVersion 15 - targetSdkVersion 21 + targetSdkVersion 22 versionCode 1 versionName VERSION_NAME } @@ -24,12 +24,9 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:support-v4:21.0.3' - compile 'com.android.support:support-annotations:20.0.0' + compile 'com.android.support:appcompat-v7:22.1.1' } - task androidJavadocs(type: Javadoc) { source = android.sourceSets.main.java.srcDirs classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) diff --git a/library/src/main/java/eu/inloop/viewmodel/base/ViewModelBaseActivity.java b/library/src/main/java/eu/inloop/viewmodel/base/ViewModelBaseActivity.java index 89ca553..2deee71 100644 --- a/library/src/main/java/eu/inloop/viewmodel/base/ViewModelBaseActivity.java +++ b/library/src/main/java/eu/inloop/viewmodel/base/ViewModelBaseActivity.java @@ -2,12 +2,13 @@ import android.os.Bundle; import android.support.v4.app.FragmentActivity; +import android.support.v7.app.AppCompatActivity; import eu.inloop.viewmodel.AbstractViewModel; import eu.inloop.viewmodel.IView; import eu.inloop.viewmodel.ViewModelHelper; -public abstract class ViewModelBaseActivity> extends FragmentActivity implements IView { +public abstract class ViewModelBaseActivity> extends AppCompatActivity implements IView { private ViewModelHelper mViewModeHelper = new ViewModelHelper<>(); diff --git a/sample/build.gradle b/sample/build.gradle index ad5c23a..092aa52 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -1,13 +1,13 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 21 - buildToolsVersion "21.1.2" + compileSdkVersion 22 + buildToolsVersion '22.0.1' defaultConfig { applicationId 'eu.inloop.viewmodel.sample' minSdkVersion 15 - targetSdkVersion 21 + targetSdkVersion 22 versionCode 1 versionName '1.0' } @@ -25,9 +25,7 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:support-v4:21.0.3' - compile 'com.android.support:support-annotations:20.0.0' + compile 'com.android.support:appcompat-v7:22.1.1' compile 'com.jakewharton:butterknife:5.1.2' compile project(':library') } diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml index f407d7b..2b10681 100644 --- a/sample/src/main/AndroidManifest.xml +++ b/sample/src/main/AndroidManifest.xml @@ -4,7 +4,7 @@ > extends ViewModelBaseFragment { - - @Override - public void onDestroyView() { - ButterKnife.reset(this); - super.onDestroyView(); - } -} diff --git a/sample/src/main/java/eu/inloop/viewmodel/sample/fragment/UserListFragment.java b/sample/src/main/java/eu/inloop/viewmodel/sample/fragment/UserListFragment.java index 2632983..2b3750d 100644 --- a/sample/src/main/java/eu/inloop/viewmodel/sample/fragment/UserListFragment.java +++ b/sample/src/main/java/eu/inloop/viewmodel/sample/fragment/UserListFragment.java @@ -8,20 +8,24 @@ import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; +import android.widget.TextView; import java.util.ArrayList; import java.util.List; import butterknife.ButterKnife; import butterknife.InjectView; +import eu.inloop.viewmodel.base.ViewModelBaseFragment; import eu.inloop.viewmodel.sample.R; import eu.inloop.viewmodel.sample.viewmodel.UserListViewModel; import eu.inloop.viewmodel.sample.viewmodel.view.IUserListView; -public class UserListFragment extends ProjectBaseFragment implements IUserListView { +public class UserListFragment extends ViewModelBaseFragment implements IUserListView { @InjectView(android.R.id.progress) View mProgressView; + @InjectView(R.id.progress_text) + TextView mProgressText; @InjectView(android.R.id.list) ListView mListview; @@ -43,6 +47,22 @@ public Class getViewModelClass() { public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { final View view = inflater.inflate(R.layout.fragment_userlist, container, false); ButterKnife.inject(this, view); + + final View headerView = inflater.inflate(R.layout.view_header_info, null, false); + headerView.findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + getFragmentManager().beginTransaction().replace(R.id.root_content, new EmptyFragment(), "empty-fragment").addToBackStack(null).commit(); + } + }); + headerView.findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + getActivity().finish(); + getActivity().startActivity(getActivity().getIntent()); + } + }); + mListview.addHeaderView(headerView, null, false); return view; } @@ -53,25 +73,20 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { mListview.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView adapterView, View view, int i, long l) { - getViewModel().deleteUser(i); + getViewModel().deleteUser(i - mListview.getHeaderViewsCount()); } }); } @Override - public void setUsers(List users) { + public void showUsers(List users) { mAdapter.setNotifyOnChange(false); mAdapter.clear(); mAdapter.addAll(users); mAdapter.setNotifyOnChange(true); mAdapter.notifyDataSetChanged(); } - - @Override - public void showIntermediateProgress(boolean show) { - getActivity().setProgressBarIndeterminateVisibility(show); - } - + @Override public void onStop() { super.onStop(); @@ -88,8 +103,9 @@ public void onDestroyView() { } @Override - public void showLoading() { + public void showLoading(float progress) { mProgressView.setVisibility(View.VISIBLE); + mProgressText.setText((int)(progress * 100) + "%"); } @Override diff --git a/sample/src/main/java/eu/inloop/viewmodel/sample/viewmodel/UserListViewModel.java b/sample/src/main/java/eu/inloop/viewmodel/sample/viewmodel/UserListViewModel.java index a45b808..93aa284 100644 --- a/sample/src/main/java/eu/inloop/viewmodel/sample/viewmodel/UserListViewModel.java +++ b/sample/src/main/java/eu/inloop/viewmodel/sample/viewmodel/UserListViewModel.java @@ -12,12 +12,14 @@ public class UserListViewModel extends AbstractViewModel { + private static final int TOTAL_USERS = 7; private List mLoadedUsers; //Don't persist state variables private boolean mLoadingUsers; - private int numberOfRunningDeletes = 0; + private int mNumberOfRunningDeletes = 0; + private float mCurrentLoadingProgress = 0; @Override public void initWithView(@NonNull IUserListView view) { @@ -25,56 +27,55 @@ public void initWithView(@NonNull IUserListView view) { //downloading list of users if (mLoadedUsers != null) { - view.setUsers(mLoadedUsers); + view.showUsers(mLoadedUsers); } else if (mLoadingUsers) { - view.showLoading(); + view.showLoading(mCurrentLoadingProgress); } else { loadUsers(); } - - refreshLoading(); - } - - private void refreshLoading() { - //loading user - if (numberOfRunningDeletes > 0 && getView() != null) { - getView().showIntermediateProgress(true); - } } private void loadUsers() { mLoadingUsers = true; + mCurrentLoadingProgress = 0; if (getView() != null) { - getView().showLoading(); + getView().showLoading(mCurrentLoadingProgress); } - new AsyncTask>() { + new AsyncTask>() { @Override protected List doInBackground(Void... voids) { - final List list = new ArrayList(); - list.add("User 1"); - list.add("User 2"); - list.add("User 3"); - list.add("User 3"); - list.add("User 4"); - list.add("User 5"); - - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - e.printStackTrace(); + final List list = new ArrayList<>(); + for (int i = 0; i < TOTAL_USERS; i++) { + list.add("User " + i); + + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // + } + publishProgress((i+1) / (float)TOTAL_USERS); } return list; } + @Override + protected void onProgressUpdate(Float... values) { + super.onProgressUpdate(values); + mCurrentLoadingProgress = values[0]; + if (getView() != null) { + getView().showLoading(mCurrentLoadingProgress); + } + } + @Override protected void onPostExecute(List s) { super.onPostExecute(s); mLoadedUsers = s; mLoadingUsers = false; if (getView() != null) { - getView().setUsers(s); + getView().showUsers(s); getView().hideProgress(); } } @@ -85,12 +86,12 @@ public void deleteUser(final int position) { if (position > mLoadedUsers.size() - 1) { return; } - mLoadedUsers.set(position, "Deleting"); + mLoadedUsers.set(position, "Deleting in 5 seconds..."); if (getView() != null) { - getView().showIntermediateProgress(true); - getView().setUsers(mLoadedUsers); + getView().showUsers(mLoadedUsers); } - numberOfRunningDeletes++; + mNumberOfRunningDeletes++; + final String itemToDelete = mLoadedUsers.get(position); new AsyncTask() { @Override @@ -98,14 +99,10 @@ protected Void doInBackground(Void... voids) { try { Thread.sleep(5000); } catch (InterruptedException e) { - e.printStackTrace(); + // } - if (mLoadedUsers.size() > position) { - mLoadedUsers.remove(position); - } else { - mLoadedUsers.remove(0); - } - numberOfRunningDeletes--; + mLoadedUsers.remove(itemToDelete); + mNumberOfRunningDeletes--; return null; } @@ -113,24 +110,12 @@ protected Void doInBackground(Void... voids) { protected void onPostExecute(Void aVoid) { super.onPostExecute(aVoid); if (getView() != null) { - getView().setUsers(mLoadedUsers); - if (numberOfRunningDeletes == 0) { - getView().showIntermediateProgress(false); - } + getView().showUsers(mLoadedUsers); } } - }.execute(); + }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } - @Override - public void onStart() { - refreshLoading(); - } - - @Override - public void onStop() { - getView().showIntermediateProgress(false); - } @Override public void restoreState(Bundle bundle) { diff --git a/sample/src/main/java/eu/inloop/viewmodel/sample/viewmodel/view/IUserListView.java b/sample/src/main/java/eu/inloop/viewmodel/sample/viewmodel/view/IUserListView.java index 2ab3b98..506ecf0 100644 --- a/sample/src/main/java/eu/inloop/viewmodel/sample/viewmodel/view/IUserListView.java +++ b/sample/src/main/java/eu/inloop/viewmodel/sample/viewmodel/view/IUserListView.java @@ -6,9 +6,8 @@ public interface IUserListView extends IView { - public void showLoading(); - public void hideProgress(); + void showLoading(float progress); + void hideProgress(); - public void setUsers(List users); - public void showIntermediateProgress(boolean show); + void showUsers(List users); } diff --git a/sample/src/main/res/drawable-hdpi/ic_launcher.png b/sample/src/main/res/drawable-hdpi/ic_launcher.png deleted file mode 100644 index c1b44ccc80f3e9d02a0960303cf736c2e4d5b710..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7721 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 diff --git a/sample/src/main/res/drawable-mdpi/ic_launcher.png b/sample/src/main/res/drawable-mdpi/ic_launcher.png deleted file mode 100644 index a1bf709d3b4cedf0fd8b53454ee1e339b9e6c7cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3769 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 P00000NkvXXu0mjf3bfbd diff --git a/sample/src/main/res/drawable-xxhdpi/ic_launcher.png b/sample/src/main/res/drawable-xxhdpi/ic_launcher.png deleted file mode 100644 index b7df51b1eecbfb447f9966b979f2f5bd6285bb87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24654 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 z 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 - -