diff --git a/README.md b/README.md
index 105453d..43df290 100644
--- a/README.md
+++ b/README.md
@@ -7,19 +7,20 @@ Version
=======
v.0.1 beta
-Usage (Gradle)
-==============
-
-```
-repositories {
- maven { url 'http://maven.shehabic.com' }
-}
+Usage (Maven)
+=============
+```XML
+
+ com.shehabic.droppy
+ Droppy
+ 0.1
+
```
-```
-dependencies {
- compile 'com.shehabic.droppy:Droppy:0.1@aar'
-}
+Usage (Gradle)
+==============
+```groovy
+compile 'com.shehabic.droppy:Droppy:0.1@aar'
```
Generate Programmatically
diff --git a/library/src/main/java/com/shehabic/droppy/DroppyMenuItem.java b/library/src/main/java/com/shehabic/droppy/DroppyMenuItem.java
index 8d005b8..7eb8129 100644
--- a/library/src/main/java/com/shehabic/droppy/DroppyMenuItem.java
+++ b/library/src/main/java/com/shehabic/droppy/DroppyMenuItem.java
@@ -23,7 +23,6 @@ void initMenuItem(String title, int iconResourceId)
if (iconResourceId > 0) {
this.icon = iconResourceId;
}
- this.customViewResourceId = R.layout.droppy_menu_item;
}
public DroppyMenuItem(String title)
@@ -44,8 +43,7 @@ public void setIcon(Drawable iconDrawable)
@Override
public View render(Context context) {
- super.render(context);
-
+
renderedView = new com.shehabic.droppy.views.DroppyMenuItem(context);
if (this.icon != -1) {
diff --git a/library/src/main/java/com/shehabic/droppy/DroppyMenuItemAbstract.java b/library/src/main/java/com/shehabic/droppy/DroppyMenuItemAbstract.java
index 3dc74f2..5033089 100644
--- a/library/src/main/java/com/shehabic/droppy/DroppyMenuItemAbstract.java
+++ b/library/src/main/java/com/shehabic/droppy/DroppyMenuItemAbstract.java
@@ -26,7 +26,7 @@ public View render(Context context) {
if (this.renderedView == null) {
this.renderedView = LayoutInflater.from(context).inflate(this.customViewResourceId, null);
}
- ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
+ ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
renderedView.setLayoutParams(lp);
return renderedView;
diff --git a/library/src/main/java/com/shehabic/droppy/DroppyMenuSeparator.java b/library/src/main/java/com/shehabic/droppy/DroppyMenuSeparator.java
index 7f061b7..cc67d74 100644
--- a/library/src/main/java/com/shehabic/droppy/DroppyMenuSeparator.java
+++ b/library/src/main/java/com/shehabic/droppy/DroppyMenuSeparator.java
@@ -1,7 +1,6 @@
package com.shehabic.droppy;
import android.content.Context;
-import android.view.LayoutInflater;
import android.view.View;
/**
* Created by shehabic on 2/28/15.
@@ -9,15 +8,6 @@
public class DroppyMenuSeparator extends DroppyMenuItemAbstract {
public DroppyMenuSeparator() {
- initSeparator(R.layout.droppy_separator);
- }
-
- public DroppyMenuSeparator(int customSeparatorResourceId) {
- initSeparator(customSeparatorResourceId);
- }
-
- protected void initSeparator(int separatorLayoutResourceId) {
- customViewResourceId = separatorLayoutResourceId;
type = TYPE_MENU_SEPARATOR;
setId(-1);
setClickable(false);
@@ -26,7 +16,7 @@ protected void initSeparator(int separatorLayoutResourceId) {
@Override
public View render(Context context) {
if (renderedView == null) {
- renderedView = LayoutInflater.from(context).inflate(this.customViewResourceId, null);
+ renderedView = new com.shehabic.droppy.views.DroppyMenuSeparator(context);
}
return renderedView;
diff --git a/library/src/main/java/com/shehabic/droppy/views/DroppyMenuContainer.java b/library/src/main/java/com/shehabic/droppy/views/DroppyMenuContainer.java
index 9d6af13..bf71547 100644
--- a/library/src/main/java/com/shehabic/droppy/views/DroppyMenuContainer.java
+++ b/library/src/main/java/com/shehabic/droppy/views/DroppyMenuContainer.java
@@ -26,8 +26,8 @@ public DroppyMenuContainer(Context context, AttributeSet attrs, int defStyleAttr
this.setOrientation(VERTICAL);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.DroppyMenuPopup, defStyleAttr, 0);
ViewGroup.LayoutParams lp = getLayoutParams();
- int height = (int) a.getDimension(R.styleable.DroppyMenuContainer_android_layout_height, ViewGroup.LayoutParams.WRAP_CONTENT);
- int width = (int) a.getDimension(R.styleable.DroppyMenuContainer_android_layout_width, ViewGroup.LayoutParams.WRAP_CONTENT);
+ int height = a.getLayoutDimension(R.styleable.DroppyMenuContainer_android_layout_height, ViewGroup.LayoutParams.WRAP_CONTENT);
+ int width = a.getLayoutDimension(R.styleable.DroppyMenuContainer_android_layout_width, ViewGroup.LayoutParams.WRAP_CONTENT);
if (lp == null) {
lp = new ViewGroup.LayoutParams(width, height);
diff --git a/library/src/main/java/com/shehabic/droppy/views/DroppyMenuItem.java b/library/src/main/java/com/shehabic/droppy/views/DroppyMenuItem.java
index d26fa33..abc59b1 100644
--- a/library/src/main/java/com/shehabic/droppy/views/DroppyMenuItem.java
+++ b/library/src/main/java/com/shehabic/droppy/views/DroppyMenuItem.java
@@ -39,8 +39,8 @@ public DroppyMenuItem(Context context, AttributeSet attrs, int defStyleAttr) {
ViewGroup.LayoutParams lp = getLayoutParams();
setMinimumWidth((int) minWidth);
setMinimumHeight((int) minHeight);
- int width = (int) a.getDimension(R.styleable.DroppyMenuItem_android_layout_height, ViewGroup.LayoutParams.WRAP_CONTENT);
- int height = (int) a.getDimension(R.styleable.DroppyMenuItem_android_layout_width, ViewGroup.LayoutParams.WRAP_CONTENT);
+ int width = a.getLayoutDimension(R.styleable.DroppyMenuItem_android_layout_width, ViewGroup.LayoutParams.MATCH_PARENT);
+ int height = a.getLayoutDimension(R.styleable.DroppyMenuItem_android_layout_height, ViewGroup.LayoutParams.WRAP_CONTENT);
if (lp == null) {
lp = new ViewGroup.LayoutParams(width, height);
} else {
diff --git a/library/src/main/java/com/shehabic/droppy/views/DroppyMenuItemIcon.java b/library/src/main/java/com/shehabic/droppy/views/DroppyMenuItemIcon.java
index b2fa1d7..f625f6a 100644
--- a/library/src/main/java/com/shehabic/droppy/views/DroppyMenuItemIcon.java
+++ b/library/src/main/java/com/shehabic/droppy/views/DroppyMenuItemIcon.java
@@ -30,14 +30,18 @@ public DroppyMenuItemIcon(Context context, AttributeSet attrs, int defStyleAttr)
final int defaultMaxHeight = (int) getResources().getDimension(R.dimen.default_menu_item_icon_maxHeight);
final float defaultWeight = 0;
final int defaultLayoutGravity = Gravity.START | Gravity.CENTER_VERTICAL;
+ final int defaultMarginLeft = (int) getResources().getDimension(R.dimen.default_menu_item_icon_marginLeft);
+ final int defaultMarginRight= (int) getResources().getDimension(R.dimen.default_menu_item_icon_marginRight);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.DroppyMenuItemIcon, defStyleAttr, 0);
int maxWidth = (int) a.getDimension(R.styleable.DroppyMenuItemIcon_android_maxWidth, defaultMaxWidth);
int maxHeight = (int) a.getDimension(R.styleable.DroppyMenuItemIcon_android_maxHeight, defaultMaxHeight);
- int width = (int) a.getDimension(R.styleable.DroppyMenuItemIcon_android_layout_width, ViewGroup.LayoutParams.WRAP_CONTENT);
- int height = (int) a.getDimension(R.styleable.DroppyMenuItemIcon_android_layout_height, ViewGroup.LayoutParams.WRAP_CONTENT);
+ int width = a.getLayoutDimension(R.styleable.DroppyMenuItemIcon_android_layout_width, ViewGroup.LayoutParams.WRAP_CONTENT);
+ int height = a.getLayoutDimension(R.styleable.DroppyMenuItemIcon_android_layout_height, ViewGroup.LayoutParams.WRAP_CONTENT);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(width, height);
+ lp.rightMargin = a.getDimensionPixelSize(R.styleable.DroppyMenuItemIcon_android_layout_marginRight, defaultMarginRight);
+ lp.leftMargin = a.getDimensionPixelSize(R.styleable.DroppyMenuItemIcon_android_layout_marginLeft, defaultMarginLeft);
lp.width = width;
lp.height = height;
lp.weight = a.getFloat(R.styleable.DroppyMenuItemIcon_android_layout_weight, defaultWeight);
diff --git a/library/src/main/java/com/shehabic/droppy/views/DroppyMenuItemTitle.java b/library/src/main/java/com/shehabic/droppy/views/DroppyMenuItemTitle.java
index eb6cd00..2363fab 100644
--- a/library/src/main/java/com/shehabic/droppy/views/DroppyMenuItemTitle.java
+++ b/library/src/main/java/com/shehabic/droppy/views/DroppyMenuItemTitle.java
@@ -37,8 +37,8 @@ public DroppyMenuItemTitle(Context context, AttributeSet attrs, int defStyleAttr
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.DroppyMenuItemTitle, defStyleAttr, 0);
int minWidth = (int) a.getDimension(R.styleable.DroppyMenuItemTitle_android_minWidth, defaultMinWidth);
int minHeight = (int) a.getDimension(R.styleable.DroppyMenuItemTitle_android_minHeight, defaultMinHeight);
- int width = (int) a.getDimension(R.styleable.DroppyMenuItemTitle_android_layout_width, defaultWidth);
- int height = a.getInt(R.styleable.DroppyMenuItemTitle_android_layout_height, ViewGroup.LayoutParams.WRAP_CONTENT);
+ int width = a.getLayoutDimension(R.styleable.DroppyMenuItemTitle_android_layout_width, defaultWidth);
+ int height = a.getLayoutDimension(R.styleable.DroppyMenuItemTitle_android_layout_height, ViewGroup.LayoutParams.WRAP_CONTENT);
int color = a.getColor(R.styleable.DroppyMenuItemTitle_android_textColor, defaultColor);
setGravity(a.getInt(R.styleable.DroppyMenuItemTitle_android_gravity, defaultGravity));
diff --git a/library/src/main/java/com/shehabic/droppy/views/DroppyMenuPopup.java b/library/src/main/java/com/shehabic/droppy/views/DroppyMenuPopup.java
index fde6a6b..b5497a4 100644
--- a/library/src/main/java/com/shehabic/droppy/views/DroppyMenuPopup.java
+++ b/library/src/main/java/com/shehabic/droppy/views/DroppyMenuPopup.java
@@ -28,8 +28,8 @@ public DroppyMenuPopup(Context context, AttributeSet attrs, int defStyleAttr) {
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.DroppyMenuPopup, defStyleAttr, 0);
Drawable background = a.getDrawable(R.styleable.DroppyMenuPopup_android_background);
- int height = (int) a.getDimension(R.styleable.DroppyMenuPopup_android_layout_height, ViewGroup.LayoutParams.WRAP_CONTENT);
- int width = (int) a.getDimension(R.styleable.DroppyMenuPopup_android_layout_width, ViewGroup.LayoutParams.WRAP_CONTENT);
+ int height = a.getLayoutDimension(R.styleable.DroppyMenuPopup_android_layout_height, ViewGroup.LayoutParams.WRAP_CONTENT);
+ int width = a.getLayoutDimension(R.styleable.DroppyMenuPopup_android_layout_width, ViewGroup.LayoutParams.WRAP_CONTENT);
ViewGroup.LayoutParams lp = getLayoutParams();
if (lp == null) {
lp = new ViewGroup.LayoutParams(width, height);
diff --git a/library/src/main/java/com/shehabic/droppy/views/DroppyMenuSeparator.java b/library/src/main/java/com/shehabic/droppy/views/DroppyMenuSeparator.java
new file mode 100644
index 0000000..7199ebf
--- /dev/null
+++ b/library/src/main/java/com/shehabic/droppy/views/DroppyMenuSeparator.java
@@ -0,0 +1,51 @@
+package com.shehabic.droppy.views;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.drawable.Drawable;
+import android.util.AttributeSet;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+
+import com.shehabic.droppy.R;
+
+/**
+ * Created by shehabic on 3/8/15.
+ */
+public class DroppyMenuSeparator extends LinearLayout {
+ public DroppyMenuSeparator(Context context) {
+ this(context, null);
+ }
+
+ public DroppyMenuSeparator(Context context, AttributeSet attrs) {
+ this(context, attrs, R.attr.droppyMenuSeparatorStyle);
+ }
+
+ public DroppyMenuSeparator(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+
+ TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.DroppyMenuItem, defStyleAttr, 0);
+
+ final Drawable defaultSeparatorBackground = getResources().getDrawable(R.drawable.droppy_separator_background);
+ final int defaultHeight = getResources().getDimensionPixelSize(R.dimen.default_menu_separator_height);
+ ViewGroup.LayoutParams lp = getLayoutParams();
+ int width = a.getLayoutDimension(R.styleable.DroppyMenuItem_android_layout_width, ViewGroup.LayoutParams.MATCH_PARENT);
+ int height = a.getLayoutDimension(R.styleable.DroppyMenuItem_android_layout_height, defaultHeight);
+ if (lp == null) {
+ lp = new ViewGroup.LayoutParams(width, height);
+ } else {
+ lp.width = width;
+ lp.height = height;
+ }
+ setOrientation(LinearLayout.HORIZONTAL);
+
+ Drawable background = a.getDrawable(R.styleable.DroppyMenuSeparator_android_background);
+ if (background != null) {
+ setBackgroundDrawable(background);
+ } else {
+ setBackgroundDrawable(defaultSeparatorBackground);
+ }
+
+ this.setLayoutParams(lp);
+ }
+}
diff --git a/library/src/main/res/drawable/droppy_separator_background.xml b/library/src/main/res/drawable/droppy_separator_background.xml
new file mode 100644
index 0000000..627d143
--- /dev/null
+++ b/library/src/main/res/drawable/droppy_separator_background.xml
@@ -0,0 +1,5 @@
+
+
+
+
\ No newline at end of file
diff --git a/library/src/main/res/layout/droppy_menu.xml b/library/src/main/res/layout/droppy_menu.xml
deleted file mode 100644
index 59003c2..0000000
--- a/library/src/main/res/layout/droppy_menu.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/library/src/main/res/layout/droppy_menu_item.xml b/library/src/main/res/layout/droppy_menu_item.xml
deleted file mode 100644
index 47b9aa9..0000000
--- a/library/src/main/res/layout/droppy_menu_item.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/library/src/main/res/layout/droppy_separator.xml b/library/src/main/res/layout/droppy_separator.xml
deleted file mode 100644
index efcaabb..0000000
--- a/library/src/main/res/layout/droppy_separator.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
\ No newline at end of file
diff --git a/library/src/main/res/values/colors.xml b/library/src/main/res/values/colors.xml
index 8035c59..bac6d90 100644
--- a/library/src/main/res/values/colors.xml
+++ b/library/src/main/res/values/colors.xml
@@ -1,4 +1,5 @@
- - #FF333333
+ - #FFBBBBBB
+ - #FF333333
\ No newline at end of file
diff --git a/library/src/main/res/values/droppy__attr.xml b/library/src/main/res/values/droppy__attr.xml
index 1070846..b69ac56 100644
--- a/library/src/main/res/values/droppy__attr.xml
+++ b/library/src/main/res/values/droppy__attr.xml
@@ -3,6 +3,7 @@
+
@@ -20,6 +21,15 @@
+
+
+
+
+
+
+
+
+
@@ -42,6 +52,8 @@
+
+
@@ -54,4 +66,6 @@
+
+
diff --git a/library/src/main/res/values/droppy__defaults.xml b/library/src/main/res/values/droppy__defaults.xml
index 6de0597..171dde3 100644
--- a/library/src/main/res/values/droppy__defaults.xml
+++ b/library/src/main/res/values/droppy__defaults.xml
@@ -6,9 +6,17 @@
+
+ 0.5dp
+ 3dp
+ 3dp
+ @drawable/droppy_separator_background
+
+
+
150dp
- 30dp
+ 48dp
true
2dp
2dp
@@ -19,13 +27,16 @@
32dp
32dp
+ 5dp
+ 5dp
+
- @color/darkgrey
+ @color/droppy_title_color
128dp
30dp
0dp
diff --git a/library/src/main/res/values/droppy__styles.xml b/library/src/main/res/values/droppy__styles.xml
index ce21877..f772f66 100644
--- a/library/src/main/res/values/droppy__styles.xml
+++ b/library/src/main/res/values/droppy__styles.xml
@@ -25,13 +25,9 @@
@@ -57,10 +53,12 @@
- start|center_vertical
- 0
- wrap_content
+ - 5dp
+ - 5dp
+