diff --git a/.idea/misc.xml b/.idea/misc.xml
index fbb6828..5d19981 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -37,7 +37,7 @@
-
+
diff --git a/app/src/main/java/com/neurospeech/hypercubesample/MainApplication.java b/app/src/main/java/com/neurospeech/hypercubesample/MainApplication.java
index 6985344..c9a6a42 100644
--- a/app/src/main/java/com/neurospeech/hypercubesample/MainApplication.java
+++ b/app/src/main/java/com/neurospeech/hypercubesample/MainApplication.java
@@ -3,6 +3,7 @@
import android.app.Application;
import com.neurospeech.hypercube.HyperCubeApplication;
+import com.neurospeech.hypercubesample.adapters.NavigationViewHolder;
/**
* Created by akash.kava on 22-04-2016.
@@ -14,5 +15,7 @@ public void onCreate() {
super.onCreate();
HyperCubeApplication.init(this);
+
+ HyperCubeApplication.registerViewHolderType(NavigationViewHolder.class);
}
}
diff --git a/app/src/main/java/com/neurospeech/hypercubesample/adapters/NavigationListAdapter.java b/app/src/main/java/com/neurospeech/hypercubesample/adapters/NavigationListAdapter.java
index d2575fc..e662766 100644
--- a/app/src/main/java/com/neurospeech/hypercubesample/adapters/NavigationListAdapter.java
+++ b/app/src/main/java/com/neurospeech/hypercubesample/adapters/NavigationListAdapter.java
@@ -13,7 +13,7 @@
* Created by on 13-08-2016.
*/
public class NavigationListAdapter
- extends HeaderedAdapter {
+ extends HeaderedAdapter {
public NavigationListAdapter(Context context) {
super(context);
@@ -21,25 +21,8 @@ public NavigationListAdapter(Context context) {
@Override
public Object getHeader(MenuModel item) {
- return null;
+ return item.header;
}
- @Override
- protected void onBind(NavigationViewHolder holder, MenuModel item) {
-
- }
-
- @Override
- protected NavigationViewHolder createViewHolder(LayoutInflater inflater, ViewGroup parent, int viewType) {
- return null;
- }
-
- static class NavigationViewHolder extends RecyclerView.ViewHolder{
-
-
- public NavigationViewHolder(View itemView) {
- super(itemView);
- }
- }
}
diff --git a/app/src/main/java/com/neurospeech/hypercubesample/adapters/NavigationViewHolder.java b/app/src/main/java/com/neurospeech/hypercubesample/adapters/NavigationViewHolder.java
new file mode 100644
index 0000000..6c2ad48
--- /dev/null
+++ b/app/src/main/java/com/neurospeech/hypercubesample/adapters/NavigationViewHolder.java
@@ -0,0 +1,26 @@
+package com.neurospeech.hypercubesample.adapters;
+
+import android.view.Menu;
+import android.view.View;
+
+import com.neurospeech.hypercube.ui.HyperItemViewHolder;
+import com.neurospeech.hypercube.ui.HyperViewHolder;
+import com.neurospeech.hypercubesample.R;
+import com.neurospeech.hypercubesample.model.MenuModel;
+
+/**
+ * Created by akash.kava on 06-09-2016.
+ */
+
+@HyperItemViewHolder(R.layout.item_menu)
+public class NavigationViewHolder extends HyperViewHolder {
+
+ public NavigationViewHolder(View itemView) {
+ super(itemView);
+ }
+
+ @Override
+ protected void bind(MenuModel item) {
+
+ }
+}
diff --git a/hypercube/build.gradle b/hypercube/build.gradle
index aae58b0..e957e33 100644
--- a/hypercube/build.gradle
+++ b/hypercube/build.gradle
@@ -25,8 +25,8 @@ android {
defaultConfig {
minSdkVersion 15
targetSdkVersion 23
- versionCode 1413
- versionName "1.4.13"
+ versionCode 1414
+ versionName "1.4.14"
}
buildTypes {
release {
diff --git a/hypercube/src/main/java/com/neurospeech/hypercube/HyperCubeApplication.java b/hypercube/src/main/java/com/neurospeech/hypercube/HyperCubeApplication.java
index 9f62773..06783d7 100644
--- a/hypercube/src/main/java/com/neurospeech/hypercube/HyperCubeApplication.java
+++ b/hypercube/src/main/java/com/neurospeech/hypercube/HyperCubeApplication.java
@@ -15,6 +15,8 @@
import java.io.PrintWriter;
import java.io.StringWriter;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
import java.util.HashMap;
@@ -44,10 +46,22 @@ public class HyperCubeApplication {
= new HashMap<>();
- public static void registerViewHolderType(Class> viewHolderClass){
+ public static void registerViewHolderType(Class extends HyperViewHolder>> viewHolderClass){
HyperItemViewHolder ivh = (HyperItemViewHolder) viewHolderClass
.getAnnotation(HyperItemViewHolder.class);
- modelLayouts.put(ivh.modelType(),ivh.value());
+ if(ivh==null)
+ throw new IllegalArgumentException("HyperItemViewHolder annotation is missing on ViewHolder class");
+
+ // try to fetch modelType...
+
+ Class modelType = null;
+
+ Type t = viewHolderClass.getGenericSuperclass();
+
+ ParameterizedType pt = (ParameterizedType)t;
+ modelType = (Class)pt.getActualTypeArguments()[0];
+
+ modelLayouts.put(modelType,ivh.value());
layoutViewHolders.put(ivh.value(),viewHolderClass);
}
diff --git a/hypercube/src/main/java/com/neurospeech/hypercube/ui/HyperItemViewHolder.java b/hypercube/src/main/java/com/neurospeech/hypercube/ui/HyperItemViewHolder.java
index ccb643e..3d24a1c 100644
--- a/hypercube/src/main/java/com/neurospeech/hypercube/ui/HyperItemViewHolder.java
+++ b/hypercube/src/main/java/com/neurospeech/hypercube/ui/HyperItemViewHolder.java
@@ -11,5 +11,4 @@
@Retention(RetentionPolicy.RUNTIME)
public @interface HyperItemViewHolder {
int value () ;
- Class modelType();
}