From a982ebc796d91223eaaa6958cf0e6ee7c5e3d0cc Mon Sep 17 00:00:00 2001 From: Mychael Christian Go Date: Fri, 3 Jun 2016 08:14:35 +0700 Subject: [PATCH 1/4] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f94fc817a..c31f0966d 100644 --- a/README.md +++ b/README.md @@ -378,6 +378,7 @@ drawerLayout.setDrawerLockMode(int lockMode); //or (int lockMode, int edgeGravit * [Hold'Em Poker Manager](https://play.google.com/store/apps/details?id=pt.massena.holdemtracker.free) * [Fimpl](https://play.google.com/store/apps/details?id=com.danielZET.fimpl) * [+UEA](https://play.google.com/store/apps/details?id=br.edu.uea.app) +* [HipCar](https://play.google.com/store/apps/details?id=com.hipcar.android) From 40a401c0d2be2e2e9e24f5a39991090ec4baf39d Mon Sep 17 00:00:00 2001 From: Mike Penz Date: Mon, 6 Jun 2016 19:18:15 +0200 Subject: [PATCH 2/4] * allow to define the stateManagement of the FastAdapter via the MaterialDrawer --- .../java/com/mikepenz/materialdrawer/Drawer.java | 2 +- .../mikepenz/materialdrawer/DrawerBuilder.java | 16 +++++++++++++++- .../com/mikepenz/materialdrawer/MiniDrawer.java | 16 ++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/library/src/main/java/com/mikepenz/materialdrawer/Drawer.java b/library/src/main/java/com/mikepenz/materialdrawer/Drawer.java index c3ecdf6ae..913cf9874 100644 --- a/library/src/main/java/com/mikepenz/materialdrawer/Drawer.java +++ b/library/src/main/java/com/mikepenz/materialdrawer/Drawer.java @@ -179,7 +179,7 @@ public Materialize getMaterialize() { */ public MiniDrawer getMiniDrawer() { if (mDrawerBuilder.mMiniDrawer == null) { - mDrawerBuilder.mMiniDrawer = new MiniDrawer().withDrawer(this).withAccountHeader(mDrawerBuilder.mAccountHeader); + mDrawerBuilder.mMiniDrawer = new MiniDrawer().withDrawer(this).withAccountHeader(mDrawerBuilder.mAccountHeader).withPositionBasedStateManagement(mDrawerBuilder.mPositionBasedStateManagement); } return mDrawerBuilder.mMiniDrawer; } diff --git a/library/src/main/java/com/mikepenz/materialdrawer/DrawerBuilder.java b/library/src/main/java/com/mikepenz/materialdrawer/DrawerBuilder.java index b04e205c6..8b92c9bcd 100644 --- a/library/src/main/java/com/mikepenz/materialdrawer/DrawerBuilder.java +++ b/library/src/main/java/com/mikepenz/materialdrawer/DrawerBuilder.java @@ -863,11 +863,24 @@ public DrawerBuilder withHasStableIds(boolean hasStableIds) { } // an adapter to use for the list + protected boolean mPositionBasedStateManagement = true; protected FastAdapter mAdapter; protected HeaderAdapter mHeaderAdapter = new HeaderAdapter<>(); protected ItemAdapter mItemAdapter = new ItemAdapter<>(); protected FooterAdapter mFooterAdapter = new FooterAdapter<>(); + /** + * This allows to disable the default position based statemanagment of the FastAdapter and switch to the + * new identifier based state managment + * + * @param positionBasedStateManagement enable / disable the positionBasedStateManagement + * @return this + */ + public DrawerBuilder withPositionBasedStateManagement(boolean positionBasedStateManagement) { + this.mPositionBasedStateManagement = positionBasedStateManagement; + return this; + } + /** * Define a custom Adapter which will be used in the drawer * NOTE: this is not recommender @@ -894,6 +907,7 @@ protected FastAdapter getAdapter() { mAdapter.withSelectable(true); mAdapter.withAllowDeselection(false); mAdapter.setHasStableIds(mHasStableIds); + mAdapter.withPositionBasedStateManagement(mPositionBasedStateManagement); //we wrap our main Adapter with the item hosting adapter mHeaderAdapter.wrap(mItemAdapter.wrap(mFooterAdapter.wrap(mAdapter))); @@ -1485,7 +1499,7 @@ public Drawer buildView() { //we only want to hook a Drawer to the MiniDrawer if it is the main drawer, not the appended one if (!mAppended && mGenerateMiniDrawer) { // if we should create a MiniDrawer we have to do this now - mMiniDrawer = new MiniDrawer().withDrawer(result).withAccountHeader(mAccountHeader); + mMiniDrawer = new MiniDrawer().withDrawer(result).withAccountHeader(mAccountHeader).withPositionBasedStateManagement(mPositionBasedStateManagement); } //forget the reference to the activity diff --git a/library/src/main/java/com/mikepenz/materialdrawer/MiniDrawer.java b/library/src/main/java/com/mikepenz/materialdrawer/MiniDrawer.java index 0606ea0e9..cb979df0c 100644 --- a/library/src/main/java/com/mikepenz/materialdrawer/MiniDrawer.java +++ b/library/src/main/java/com/mikepenz/materialdrawer/MiniDrawer.java @@ -103,6 +103,21 @@ public MiniDrawer withInRTL(boolean inRTL) { return this; } + + protected boolean mPositionBasedStateManagement = true; + + /** + * This allows to disable the default position based statemanagment of the FastAdapter and switch to the + * new identifier based state managment + * + * @param positionBasedStateManagement enable / disable the positionBasedStateManagement + * @return this + */ + public MiniDrawer withPositionBasedStateManagement(boolean positionBasedStateManagement) { + this.mPositionBasedStateManagement = positionBasedStateManagement; + return this; + } + private boolean mIncludeSecondaryDrawerItems = false; /** @@ -298,6 +313,7 @@ public View build(Context ctx) { mAdapter = new FastItemAdapter<>(); mAdapter.withSelectable(true); mAdapter.withAllowDeselection(false); + mAdapter.withPositionBasedStateManagement(mPositionBasedStateManagement); mRecyclerView.setAdapter(mAdapter); //if the activity with the drawer should be fullscreen add the padding for the statusbar From 59b168c65af6a86bb86366e99eb40d001bab8e6f Mon Sep 17 00:00:00 2001 From: Mike Penz Date: Mon, 6 Jun 2016 19:19:43 +0200 Subject: [PATCH 3/4] * fix wrong position gets selected in the MiniDrawer if there are items which are not shown in the MiniDrawer * FIX #1324 --- .../main/java/com/mikepenz/materialdrawer/MiniDrawer.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/com/mikepenz/materialdrawer/MiniDrawer.java b/library/src/main/java/com/mikepenz/materialdrawer/MiniDrawer.java index cb979df0c..fa4b9e22a 100644 --- a/library/src/main/java/com/mikepenz/materialdrawer/MiniDrawer.java +++ b/library/src/main/java/com/mikepenz/materialdrawer/MiniDrawer.java @@ -431,13 +431,16 @@ public void createItems() { if (getDrawerItems() != null) { //migrate to miniDrawerItems int length = getDrawerItems().size(); + + int position = 0; for (int i = 0; i < length; i++) { IDrawerItem miniDrawerItem = generateMiniDrawerItem(getDrawerItems().get(i)); if (miniDrawerItem != null) { if (miniDrawerItem.isSelected()) { - select = i; + select = position; } mAdapter.add(miniDrawerItem); + position = position + 1; } } From c727f7e1807a9a134b93c0cec0956856a03f4a4d Mon Sep 17 00:00:00 2001 From: Mike Penz Date: Mon, 6 Jun 2016 19:26:56 +0200 Subject: [PATCH 4/4] * [release] v5.3.0 --- README.md | 2 +- app/build.gradle | 4 ++-- gradle.properties | 5 ++--- library/build.gradle | 4 ++-- .../src/main/res/values/library_materialdrawer_strings.xml | 2 +- 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index ced754197..610f80c40 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ You can find some frequently asked questions and other resources in the [WIKI / ##1. Provide the gradle dependency ```gradle -compile('com.mikepenz:materialdrawer:5.2.9@aar') { +compile('com.mikepenz:materialdrawer:5.3.0@aar') { transitive = true } ``` diff --git a/app/build.gradle b/app/build.gradle index a7c59d7c3..8b1a8f151 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,8 +12,8 @@ android { defaultConfig { minSdkVersion setup.minSdk targetSdkVersion setup.targetSdk - versionCode 529 - versionName "5.2.9" + versionCode 530 + versionName "5.3.0" setProperty("archivesBaseName", "-v$versionName-c$versionCode") } diff --git a/gradle.properties b/gradle.properties index 2f84c7538..63a853b37 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,7 @@ # Maven stuff -VERSION_NAME=5.2.9 -VERSION_CODE=529 +VERSION_NAME=5.3.0 +VERSION_CODE=530 GROUP=com.mikepenz - POM_DESCRIPTION=MaterialDrawer Library POM_URL=https://github.com/mikepenz/MaterialDrawer POM_SCM_URL=https://github.com/mikepenz/MaterialDrawer diff --git a/library/build.gradle b/library/build.gradle index 2176b94f3..4cf8f12c8 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -8,8 +8,8 @@ android { defaultConfig { minSdkVersion setup.minSdk targetSdkVersion setup.targetSdk - versionCode 529 - versionName '5.2.9' + versionCode 530 + versionName '5.3.0' } buildTypes { release { diff --git a/library/src/main/res/values/library_materialdrawer_strings.xml b/library/src/main/res/values/library_materialdrawer_strings.xml index f99faa4fe..5acf44788 100755 --- a/library/src/main/res/values/library_materialdrawer_strings.xml +++ b/library/src/main/res/values/library_materialdrawer_strings.xml @@ -10,7 +10,7 @@ MaterialDrawer the flexible, easy to use, all in one drawer library for your Android project. ]]> - 5.2.9 + 5.3.0 https://github.com/mikepenz/MaterialDrawer apache_2_0 true