Git Product home page Git Product logo

agendacalendarview's Introduction

G'day 👋

My name's Thibault, I'm a mobile developer who worked for startups in Iceland and Australia. Nowadays, I mostly do heaps of Android development, but I sometimes have a crack at Backend development with kTor and Spring. I also play with iOS development in my spare time and publish cool things on Github.

Tibolte's GitHub stats

agendacalendarview's People

Contributors

amannepid avatar andrebts avatar fhellmann avatar prakashj12 avatar rzetzsche avatar se-bastiaan avatar thermatk avatar tibolte avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

agendacalendarview's Issues

How to add events from api

The calendar is looking great! Thank,

I'm wondering how I would set up the calendar with events from a Web api. Right now it's just populated with the sample event list from the road me.

Any help would be appreciated, thanks again.

The following classes could not be instantiated

I met problem when try using AgendaCalendarView although I was following your tutorial. This is my redenring problem:
java.lang.IllegalArgumentException: Invalid overscroll mode -789517 at android.view.View.setOverScrollMode(View.java:19905) at android.widget.AbsListView.setOverScrollMode(AbsListView.java:884) at se.emilsjolander.stickylistheaders.StickyListHeadersListView.<init>(StickyListHeadersListView.java:155) at se.emilsjolander.stickylistheaders.StickyListHeadersListView.<init>(StickyListHeadersListView.java:113) at com.github.tibolte.agendacalendarview.agenda.AgendaListView.<init>(AgendaListView.java:27) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:458) at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:170) at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:103) at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:168) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:247) at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:171) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:835) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) at android.view.LayoutInflater.rInflate(LayoutInflater.java:811) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at com.github.tibolte.agendacalendarview.agenda.AgendaView.<init>(AgendaView.java:35) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:458) at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:170) at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:103) at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:168) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:247) at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:171) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:835) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) at android.view.LayoutInflater.rInflate(LayoutInflater.java:811) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at com.github.tibolte.agendacalendarview.AgendaCalendarView.<init>(AgendaCalendarView.java:100) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:458) at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:170) at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:103) at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:168) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:247) at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:171) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:835) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) at android.view.LayoutInflater.rInflate(LayoutInflater.java:811) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) at android.view.LayoutInflater.inflate(LayoutInflater.java:515) at android.view.LayoutInflater.inflate(LayoutInflater.java:394) at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:223) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:426) at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350) at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:510) at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:498) at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:888) at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:498) at com.android.tools.idea.rendering.RenderTask.access$600(RenderTask.java:72) at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:610) at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:607) at com.android.tools.idea.rendering.RenderService.runRenderAction(RenderService.java:362) at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:607) at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:629) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:652) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1700(AndroidLayoutPreviewToolWindowManager.java:80) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7$1.run(AndroidLayoutPreviewToolWindowManager.java:594) at com.intellij.openapi.progress.impl.CoreProgressManager$2.run(CoreProgressManager.java:152) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:452) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:402) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:137) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7.run(AndroidLayoutPreviewToolWindowManager.java:589) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310) at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227) at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217) at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) at com.intellij.util.Alarm$Request$1.run(Alarm.java:351) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) .
More details you can see here.
http://stackoverflow.com/questions/36528814/how-can-i-use-agendacalendarview-open-source?noredirect=1#comment60662648_36528814
Could you please help me fix it. Thanks you so much. :)

Year repeated in month label

Hi,
When I scroll to a different week of the current year the label that shows the month name repeat the year number.

Week of current year:
captura de pantalla 2015-12-15 a las 16 32 17

Week of another year:
captura de pantalla 2015-12-15 a las 16 08 19

It seems that month variable already have the year written so you appending it again

OnScroll missing

I noticed that in the version available through Gradle, there is not the function of pickerController OnScroll, you can add it?

Select a specific date

Hi, Is there a way to select a specific date after the initialization of the AgendaView?
Something like .setDate("11/11/2012")..

Thanks!

Imported into Android Studio for sample -Error:No such property: GROUP for class: org.gradle.api.publication.maven.internal.deployer.DefaultGroovyMavenDeployer

Hello! First of all congratulations on the project.
One question. I am trying to import the project via the github link, as i understand there is a sample project that i can access via this link. Unfortunately gradle can not complete and gives an error:

Gradle 'AgendaCalendarView-master' project refresh failed
Error:No such property: GROUP for class: org.gradle.api.publication.maven.internal.deployer.DefaultGroovyMavenDeployer

Your help is appreciated. Thank you.

NullPointerException

So before 1st March the sample project provided was not crashing. It works if I change the device time to 29 Feb. Any ideas?


Method: mockList(List eventList)

Line: BaseCalendarEvent event1 = new BaseCalendarEvent("Thibault travels in Iceland", "A wonderful journey!", "Iceland",
ContextCompat.getColor(getActivity(), R.color.orange_dark), startTime1, endTime1, true);

Error: Method threw 'java.lang.NullPointerException' exception. Cannot evaluate com.github.tibolte.agendacalendarview.models.BaseCalendarEvent.toString()


Edit: Apparently the problem above does not have to do with this particular issue

Refresh Dataset

Hi,

perhaps I am too silly: How to refresh a dataset? Say, according to your sample app you use List eventList = new ArrayList<>();

and with
init( ...) you start. But what's about adding more events to the eventList later on and "informing" the Calendar to repaint or paint the newly added events?

java.lang.ArrayIndexOutOfBoundsException: length=0; index=-1 for date

 E/AndroidRuntime: FATAL EXCEPTION: main
                                                   Process: si.lamu.bikeshop, PID: 13253
                                                   java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: length=0; index=-1
                                                       at com.loopj.android.http.AsyncHttpResponseHandler.onUserException(AsyncHttpResponseHandler.java:304)
                                                       at com.loopj.android.http.AsyncHttpResponseHandler.handleMessage(AsyncHttpResponseHandler.java:395)
                                                       at com.loopj.android.http.AsyncHttpResponseHandler$ResponderHandler.handleMessage(AsyncHttpResponseHandler.java:510)
                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                       at android.os.Looper.loop(Looper.java:148)
                                                       at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                    Caused by: java.lang.ArrayIndexOutOfBoundsException: length=0; index=-1
                                                       at java.util.ArrayList.get(ArrayList.java:310)
                                                       at com.github.tibolte.agendacalendarview.CalendarManager.getLastMonth(CalendarManager.java:319)
                                                       at com.github.tibolte.agendacalendarview.CalendarManager.addWeekToLastMonth(CalendarManager.java:314)
                                                       at com.github.tibolte.agendacalendarview.CalendarManager.buildCal(CalendarManager.java:218)
                                                       at com.github.tibolte.agendacalendarview.AgendaCalendarView.init(AgendaCalendarView.java:193)
                                                       at si.lamu.bikeshop.activity.AgendaActivity$1.onFinish(AgendaActivity.java:117)
                                                       at com.loopj.android.http.AsyncHttpResponseHandler.handleMessage(AsyncHttpResponseHandler.java:368)
                                                       at com.loopj.android.http.AsyncHttpResponseHandler$ResponderHandler.handleMessage(AsyncHttpResponseHandler.java:510) 
                                                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                       at android.os.Looper.loop(Looper.java:148) 
                                                       at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                       at java.lang.reflect.Method.invoke(Native Method) 
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

Event AgendaCalendarView

I 'm using the library AgendaCalendarView
what I do is, in the event
public void onEventSelected ( CalendarEvent calendarEvent ) { } , return me the id of the event but only returns me , please help

Application got crash every start-up.

Application got crash every start-up.

E/VdcInflateDelegate(2633):     at com.github.tibolte.sample.MainActivity.onCreate(MainActivity.java:37)
E/AndroidRuntime(2633):  Process: com.github.tibolte.sample, PID: 2633
E/AndroidRuntime(2633):  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.github.tibolte.sample/com.github.tibolte.sample.MainActivity}: android.view.InflateException: Binary XML file line #9: Error inflating class android.support.v7.widget.Toolbar
E/AndroidRuntime(2633):     at com.github.tibolte.sample.MainActivity.onCreate(MainActivity.java:37)

Error: java.lang.ArrayIndexOutOfBoundsException: length=0; index=-1 when calling init method

Hi, not sure if this is an internal issue, but just recently I have been getting a ArrayIndexOutOfBoundsException when calling init() with my eventslist and the other args. My eventslist definetly has events in the list (from debugging) so not sure why it would be throwing this issue?

More detailed error message below:

ava.lang.ArrayIndexOutOfBoundsException: length=0; index=-1at java.util.ArrayList.get(ArrayList.java:310) at com.github.tibolte.agendacalendarview.CalendarManager.getLastMonth(CalendarManager.java:318 at com.github.tibolte.agendacalendarview.CalendarManager.addWeekToLastMonth(CalendarManager.java:313) com.github.tibolte.agendacalendarview.CalendarManager.buildCal(CalendarManager.java:217) at com.github.tibolte.agendacalendarview.AgendaCalendarView.init(AgendaCalendarView.java:190)

Is any one else having a similiar issue?

Cheers

Event Day Notification!

Hi,
Very effective, pretty, nice design.
If user get event notification on the event date start, then I hope it will be very good thing.

Can I order the events in calendar?

I added 2 events in the calendar: at 11:00 and at 16:00 .
The 16:00 clock was inputted first, and the 11:00 was inputted second.
The problem is that the calendar shows first the 16:00 event and then shows the 11:00 event.
It should have listed them in order of the hour(11:00 first, 16:00 second) regardless of the input order.

Is this supported yet, or i am doing something wrong.....?

You answer would be highly appreciated.

Show one line (one week)

Hi,

I think it will be great if we can specify an option to show only one week when the calendar is minimized instead of showing two lines currently.

Best Regards,
Salim

Exception while inflating <vector>

Hello such , I run the application on an emulator android 4.2 version , but I skip this error
Exception while inflating
org.xmlpull.v1.XmlPullParserException: Binary XML file line #17 tag requires viewportWidth > 0
at android.support.graphics.drawable.VectorDrawableCompat.updateStateFromTypedArray(VectorDrawableCompat.java:535)
at android.support.graphics.drawable.VectorDrawableCompat.inflate(VectorDrawableCompat.java:472)
at android.support.graphics.drawable.VectorDrawableCompat.createFromXmlInner(VectorDrawableCompat.java:436)
at android.support.v7.widget.AppCompatDrawableManager$VdcInflateDelegate.createFromXmlInner(AppCompatDrawableManager.java:829)
at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:303)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:178)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:173)
at android.support.v7.widget.TintTypedArray.getDrawable(TintTypedArray.java:60)
at android.support.v7.widget.Toolbar.(Toolbar.java:254)
at android.support.v7.widget.Toolbar.(Toolbar.java:196)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:587)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:379)
at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:300)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:264)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)
at com.soltronica.cal.MainActivity.onCreate(MainActivity.java:13)
at android.app.Activity.performCreate(Activity.java:5104)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)

How can I view a full month

The current calendar show the date and the event of this date but to know that the day of any month is very difficult. So how can I setting the calendar to default show all days of a month. Or how can I show the month on any where ??

Problem with android 4

I would like to know if is possible to run this app on android 4? Could you explain me which components use android 5 or more? Thank you so much.

Support for fragment display

Am trying to use this library with my project on fragment but I get a nullpointer error on mAgendaCalendarView.init() which is not the case when I try this on an activity. Am I doing something wrong?
Here is my code

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.planner_fragment_ui, container, false);
    ButterKnife.bind(view, getActivity());
    mAgendaCalendarView = new AgendaCalendarView(getContext());

    Calendar minDate = Calendar.getInstance();
    Calendar maxDate = Calendar.getInstance();

    minDate.add(Calendar.MONTH, -2);
    minDate.set(Calendar.DAY_OF_MONTH, 1);
    maxDate.add(Calendar.YEAR, 1);

    List<CalendarEvent> eventList = new ArrayList<>();
    mockList(eventList);
    mAgendaCalendarView.init(eventList, minDate, maxDate, Locale.getDefault(), this);

    return view;
}

Localization

Hi,

anyway to do some localization via code? E.g. german translation for "no events" ?

Events are duplicated on the same day

Loading a json file with events that are on the same day but different in detail repeats those events multiple times. Events also don't appear on the right dates.
screenshot_2015-12-04-12-04-04 1

Duplicate Package Name

Hi,

when adding the library I get a gradle error "duplicate package name" regarding the Google Services. I temporarily fixed it by adding

enforceUniquePackageName = false

could you have a look at it?

Problem adding to project

Hi, i want to use your agenda in my app, i just add de dependence on my code, and place the xml in my layout and i don´t see anything. When i click the screen i get this
Attempt to invoke virtual method 'void com.github.tibolte.agendacalendarview.calendar.weekslist.WeeksAdapter.setAlphaSet(boolean)' on a null object reference

Also in the xml i get
The following classes could not be instantiated:

  • com.github.tibolte.agendacalendarview.widgets.FloatingActionButton

Thanks a lot

Null Object Reference mAgendaCalendarView.init(eventList, minDate, maxDate, Locale.getDefault(), mPickerController);

Using your simple example I am running into this issue when I return to the Fragment (not using the back button) that is running the CalendarView, this line of code is giving me the following error

mAgendaCalendarView.init(eventList, minDate, maxDate, Locale.getDefault(), mPickerController);

rx.exceptions.OnErrorNotImplementedException: Attempt to invoke virtual method 'void com.github.tibolte.agendacalendarview.agenda.AgendaAdapter.updateEvents(java.util.List)' on a null object reference

Using multiple instance of agendacalenderView

Hi I wanted to know if its possible to use the calenderview in multiple parts of the app(meaning 2-3 instances in 2-3 different fragments).
Currently it works fine with the single xml file, but as soon as the the Calenderview is places in another xml file it starts crashing. We use a viewpager to show multiple calender in separate fragment.
I think its because of the static instance of BusProvider and CalenderVIew.
Just an attachment of the logcat
E/AndroidRuntime: FATAL EXCEPTION: main
rx.exceptions.OnErrorNotImplementedException
at rx.Observable$27.onError(Observable.java:7996)
at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:159)
at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:120)
at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:146)
at rx.subjects.SubjectSubscriptionManager$SubjectObserver.onNext(SubjectSubscriptionManager.java:223)
at rx.subjects.PublishSubject.onNext(PublishSubject.java:114)
at rx.observers.SerializedObserver.onNext(SerializedObserver.java:95)
at rx.subjects.SerializedSubject.onNext(SerializedSubject.java:65)
at com.github.tibolte.agendacalendarview.utils.BusProvider.send(BusProvider.java:28)
at com.github.tibolte.agendacalendarview.CalendarManager.loadEvents(CalendarManager.java:242)
at com.github.tibolte.agendacalendarview.AgendaCalendarView.init(AgendaCalendarView.java:209)
at com.sapnagroup.nannybookingapp.views.fragments.MyCurrentBookingFragment$3.success(MyCurrentBookingFragment.java:219)
at com.sapnagroup.nannybookingapp.views.fragments.MyCurrentBookingFragment$3.success(MyCurrentBookingFragment.java:158)
at retrofit.CallbackRunnable$1.run(CallbackRunnable.java:45)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:153)
at android.app.ActivityThread.main(ActivityThread.java:4987)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.github.tibolte.agendacalendarview.agenda.AgendaView.lambda$onFinishInflate$0(AgendaView.java:59)
at com.github.tibolte.agendacalendarview.agenda.AgendaView.access$lambda$0(AgendaView.java)
at com.github.tibolte.agendacalendarview.agenda.AgendaView$$Lambda$1.call(Unknown Source)
at rx.Observable$27.onNext(Observable.java:8001)
at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:139)
at rx.subjects.SubjectSubscriptionManager$SubjectObserver.onNext(SubjectSubscriptionManager.java:223) 
at rx.subjects.PublishSubject.onNext(PublishSubject.java:114) 
at rx.observers.SerializedObserver.onNext(SerializedObserver.java:95) 
at rx.subjects.SerializedSubject.onNext(SerializedSubject.java:65) 
at com.github.tibolte.agendacalendarview.utils.BusProvider.send(BusProvider.java:28) 
at com.github.tibolte.agendacalendarview.CalendarManager.loadEvents(CalendarManager.java:242) 
at com.github.tibolte.agendacalendarview.AgendaCalendarView.init(AgendaCalendarView.java:209) 
at com.sapnagroup.nannybookingapp.views.fragments.MyCurrentBookingFragment$3.success(MyCurrentBookingFragment.java:219) 
at com.sapnagroup.nannybookingapp.views.fragments.MyCurrentBookingFragment$3.success(MyCurrentBookingFragment.java:158) 
at retrofit.CallbackRunnable$1.run(CallbackRunnable.java:45) 
at android.os.Handler.handleCallback(Handler.java:615) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:153) 
at android.app.ActivityThread.main(ActivityThread.java:4987) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584) 
at dalvik.system.NativeStart.main(Native Method) 

FAILURE: Build failed with an exception.

FAILURE: Build failed with an exception.

* Where:
Script 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle' line: 48

* What went wrong:
A problem occurred configuring project ':agendacalendarview'.
> No such property: GROUP for class: org.gradle.api.publication.maven.internal.deployer.DefaultGroovyMavenDeployer

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':agendacalendarview'.
    at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:79)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:74)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:61)
    at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:487)
    at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:85)
    at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:47)
    at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:129)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:90)
    at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
    at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
    at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:50)
    at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:27)
    at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:40)
    at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:169)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210)
    at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
    at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
    at org.gradle.launcher.Main.doAction(Main.java:33)
    at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)
    at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
    at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:33)
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:130)
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48)
Caused by: groovy.lang.MissingPropertyException: No such property: GROUP for class: org.gradle.api.publication.maven.internal.deployer.DefaultGroovyMavenDeployer
    at gradle_mvn_push_3q1rso86jrk838uxdilm97epv$_run_closure1_closure2_closure8_closure9.doCall(https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle:48)
    at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:67)
    at org.gradle.api.internal.artifacts.DefaultArtifactRepositoryContainer.addRepository(DefaultArtifactRepositoryContainer.java:87)
    at org.gradle.api.publication.maven.internal.DefaultMavenRepositoryHandlerConvention.mavenDeployer(DefaultMavenRepositoryHandlerConvention.java:43)
    at org.gradle.api.internal.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:232)
    at org.gradle.api.internal.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:127)
    at org.gradle.api.internal.plugins.DefaultConvention$ExtensionsDynamicObject.invokeMethod(DefaultConvention.java:212)
    at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:150)
    at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:150)
    at org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler_Decorated.invokeMethod(Unknown Source)
    at gradle_mvn_push_3q1rso86jrk838uxdilm97epv$_run_closure1_closure2_closure8.doCall(https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle:45)
    at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:67)
    at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:130)
    at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:110)
    at org.gradle.api.internal.artifacts.DefaultArtifactRepositoryContainer.configure(DefaultArtifactRepositoryContainer.java:66)
    at org.gradle.api.internal.artifacts.DefaultArtifactRepositoryContainer.configure(DefaultArtifactRepositoryContainer.java:33)
    at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:59)
    at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:130)
    at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:91)
    at org.gradle.api.tasks.Upload.repositories(Upload.java:118)
    at gradle_mvn_push_3q1rso86jrk838uxdilm97epv$_run_closure1_closure2.doCall(https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle:44)
    at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:67)
    at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:130)
    at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:110)
    at org.gradle.api.internal.AbstractTask.configure(AbstractTask.java:492)
    at org.gradle.api.internal.AbstractTask.configure(AbstractTask.java:58)
    at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:59)
    at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:130)
    at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:91)
    at org.gradle.api.internal.DefaultNamedDomainObjectCollection$ContainerElementsDynamicObject.invokeMethod(DefaultNamedDomainObjectCollection.java:341)
    at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:150)
    at org.gradle.groovy.scripts.BasicScript.methodMissing(BasicScript.java:79)
    at gradle_mvn_push_3q1rso86jrk838uxdilm97epv$_run_closure1.doCall(https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle:43)
    at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:40)
    at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:25)
    at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:87)
    at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:31)
    at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
    at com.sun.proxy.$Proxy10.afterEvaluate(Unknown Source)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:67)
    ... 33 more


BUILD FAILED

Custom Week Adapters

Hi,
I was wondering if it would be possible to provide a setWeeksAdapter method for the Calendar View class and make relevant customization members protected instead of private so I can create a subclass? I really like the library and would like the ability to customize it a bit more without having to fork the repo.

Thanks!

Need update v.1.0.4

Can you please do a new release, just so that all the current fixes can get to us?
Thanks in advance

Error when Compiling with Azure mobile service module

When the module is with Azure mobile service module Error occures

compile 'com.microsoft.azure:azure-mobile-services-android-sdk:2.0.2'

Error Trace(Gradle Console):

:app:transformClassesWithDexForDebug

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/google/common/annotations/GwtCompatible;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:579)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:535)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:517)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:164)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
at com.android.dx.command.dexer.Main.run(Main.java:277)
at com.android.dx.command.dexer.Main.main(Main.java:245)
at com.android.dx.command.Main.main(Main.java:106)

FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:transformClassesWithDexForDebug'.

    com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_25\bin\java.exe'' finished with non-zero exit value 2

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Gradle/Build Error

After adding the dependency and using the component in the my app, while building the app i get the following error "Error:Execution failed for task ':app:transformClassesWithDexForDebug'. com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 2"
But if i remove the tibolte from dependency and build it then no error. Here's the stackoverflow link for the same error "http://stackoverflow.com/questions/34859278/tibolte-agendacalendarview-how-to-import-to-android-project"

Any help on this please.

NullPointerException in Fragment

Hi.I'm trying to move the agenda from the activity in a fragment
But I get a nullPointer as the result

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.github.tibolte.agendacalendarview.calendar.CalendarView.init(com.github.tibolte.agendacalendarview.CalendarManager, int, int, int)' on a null object reference
In my project I'm not using ButterKnife

This is my Fragment code:

@Nullable
@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fragment_appointment, null);

        mAgendaCalendarView = (AgendaCalendarView) view.findViewById(R.id.agenda_calendar_view);

        mAgendaCalendarView = new AgendaCalendarView(getContext());

        Calendar minDate = Calendar.getInstance();
        Calendar maxDate = Calendar.getInstance();

        minDate.add(Calendar.MONTH, -2);
        minDate.set(Calendar.DAY_OF_MONTH, 1);
        maxDate.add(Calendar.YEAR, 1);

        List<CalendarEvent> eventList = new ArrayList<>();

        mAgendaCalendarView.init(eventList, minDate, maxDate, Locale.getDefault(), this);

        return view;
    }

This is the layout

<LinearLayout xmlns:agendaCalendar="http://schemas.android.com/apk/res-auto"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

    <com.github.tibolte.agendacalendarview.AgendaCalendarView
        android:id="@+id/agenda_calendar_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        agendaCalendar:agendaCurrentDayTextColor="@color/theme_primary"
        agendaCalendar:calendarColor="@color/theme_primary"
        agendaCalendar:calendarCurrentDayTextColor="@color/calendar_text_current_day"
        agendaCalendar:calendarDayTextColor="@color/theme_text_icons"
        agendaCalendar:calendarHeaderColor="@color/theme_primary_dark"
        agendaCalendar:calendarPastDayTextColor="@color/theme_light_primary"
        agendaCalendar:fabColor="@color/theme_accent" />

</LinearLayout>

ArrayIndexOutOfBoundsException

java.lang.ArrayIndexOutOfBoundsException: length=0; index=-1
at java.util.ArrayList.get(ArrayList.java:310)
at com.github.tibolte.agendacalendarview.CalendarManager.getLastMonth(CalendarManager.java:318)
at com.github.tibolte.agendacalendarview.CalendarManager.addWeekToLastMonth(CalendarManager.java:313)
at com.github.tibolte.agendacalendarview.CalendarManager.buildCal(CalendarManager.java:217)
at com.github.tibolte.agendacalendarview.AgendaCalendarView.init(AgendaCalendarView.java:190)

This error suddenly came with new year, before it the library was working fine

Not loading events in the new year.

Hi, events in the new year are not loading, the last events to load are on the 31st dec, see screenshots for detail including the calendar (just some random test events) and the data in my database (format is american mm//dd/yyyy) that its loading
fddfsfss
device-2015-12-05-001513

. Code for min and max is same as the simple example from android arsenal page

        Calendar minDate;
        Calendar maxDate;
        // minimum and maximum date of our calendar
        // 2 month behind, one year ahead, example: March 2015 <-> May 2015 <-> May 2016
        minDate = Calendar.getInstance();
        maxDate = Calendar.getInstance();

        minDate.add(Calendar.MONTH, -1);
        minDate.set(Calendar.DAY_OF_MONTH, 1);
        maxDate.add(Calendar.YEAR, 1)

Should be loading two events on the 1st of jan 2016

I do really like this calendar view, good job and keep it up :)

calendar keeps causing app to force close

I have implemented the agedacalendaras per readme, I have included your example events just as a place holder untill I get it set up and everytime I open it in app the app crashes. ...

here is the log

11-20 12:28:49.405 4470-4470/com.jenovaprojects.inkincardine E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.jenovaprojects.inkincardine, PID: 4470
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jenovaprojects.inkincardine/com.jenovaprojects.inkincardine.Events.Events}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.github.tibolte.agendacalendarview.AgendaCalendarView.init(java.util.List, java.util.Calendar, java.util.Calendar, java.util.Locale, com.github.tibolte.agendacalendarview.CalendarPickerController)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.github.tibolte.agendacalendarview.AgendaCalendarView.init(java.util.List, java.util.Calendar, java.util.Calendar, java.util.Locale, com.github.tibolte.agendacalendarview.CalendarPickerController)' on a null object reference
at com.jenovaprojects.inkincardine.Events.Events.onCreate(Events.java:59)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) 
at android.app.ActivityThread.access$800(ActivityThread.java:151) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5257) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

About providing custom item layout for event list

After reading your code, I find that, if I want to use my own item layout for event list, I have to finish following operations:

  1. create my own xml layout for the item
  2. inflate my xml in AgendaAdapter's getView method
  3. return my own layout view

But if I add this feature by this way, it means every time I want to change the event list's item or I want to use multiple item layout, I have to change AgendaAdapter's code, which is unbearable.

So I want to know what would u do to add this feature. Maybe I could help finish some easy job : )

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.