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> 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(); }