Coder Social home page Coder Social logo

tibolte / agendacalendarview Goto Github PK

View Code? Open in Web Editor NEW
1.2K 53.0 339.0 2.06 MB

[DEPRECATED] An Android project providing easy navigation between a calendar and an agenda. This library replicates the basic features from the Sunrise Calendar (now Outlook) app, coupled with some small design touch from the Google Calendar app.

Java 100.00%

agendacalendarview's Introduction

AgendaCalendarView

Android Arsenal

This library replicates the basic features of the Calendar and Agenda views from the Sunrise Calendar (now Outlook) app, coupled with some small design touch from the Google Calendar app.

Usage

Grab it from maven:

    compile 'com.github.tibolte:agendacalendarview:1.0.4'

Declare this view in your layout like below, providing your own theme and colors if you want.

    <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" />

Then configure it in your code with a start and end date associated with a list of events:

        // minimum and maximum date of our calendar
        // 2 month behind, one year ahead, example: March 2015 <-> May 2015 <-> May 2016
        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);

The event list contains BaseCalendarEvent instances, see the description of the parameters:

    /**
     * Initializes the event
     *
     * @param id          The id of the event.
     * @param color       The color of the event.
     * @param title       The title of the event.
     * @param description The description of the event.
     * @param location    The location of the event.
     * @param dateStart   The start date of the event.
     * @param dateEnd     The end date of the event.
     * @param allDay      Int that can be equal to 0 or 1.
     * @param duration    The duration of the event in RFC2445 format.
     */
    public BaseCalendarEvent(long id, int color, String title, String description, String location, long dateStart, long dateEnd, int allDay, String duration) {
        this.mId = id;
        this.mColor = color;
        this.mAllDay = (allDay == 1) ? true : false;
        this.mDuration = duration;
        this.mTitle = title;
        this.mDescription = description;
        this.mLocation = location;

        this.mStartTime = Calendar.getInstance();
        this.mStartTime.setTimeInMillis(dateStart);
        this.mEndTime = Calendar.getInstance();
        this.mEndTime.setTimeInMillis(dateEnd);
    }

Here is a quick (and very simple) example providing a list of events, you can provide several layouts too:

    private void mockList(List<CalendarEvent> eventList) {
        Calendar startTime1 = Calendar.getInstance();
        Calendar endTime1 = Calendar.getInstance();
        endTime1.add(Calendar.MONTH, 1);
        BaseCalendarEvent event1 = new BaseCalendarEvent("Thibault travels in Iceland", "A wonderful journey!", "Iceland",
                ContextCompat.getColor(this, R.color.orange_dark), startTime1, endTime1, true);
        eventList.add(event1);

        Calendar startTime2 = Calendar.getInstance();
        startTime2.add(Calendar.DAY_OF_YEAR, 1);
        Calendar endTime2 = Calendar.getInstance();
        endTime2.add(Calendar.DAY_OF_YEAR, 3);
        BaseCalendarEvent event2 = new BaseCalendarEvent("Visit to Dalvík", "A beautiful small town", "Dalvík",
                ContextCompat.getColor(this, R.color.yellow), startTime2, endTime2, true);
        eventList.add(event2);

        // Example on how to provide your own layout
        Calendar startTime3 = Calendar.getInstance();
        Calendar endTime3 = Calendar.getInstance();
        startTime3.set(Calendar.HOUR_OF_DAY, 14);
        startTime3.set(Calendar.MINUTE, 0);
        endTime3.set(Calendar.HOUR_OF_DAY, 15);
        endTime3.set(Calendar.MINUTE, 0);
        DrawableCalendarEvent event3 = new DrawableCalendarEvent("Visit of Harpa", "", "Dalvík",
                ContextCompat.getColor(this, R.color.blue_dark), startTime3, endTime3, false, R.drawable.common_ic_googleplayservices);
        eventList.add(event3);
    }

Roadmap (feel free to suggest any other improvement ideas)

. Parallax items like in Google Calendar
. Easier way to provide your own list of events (i.e when receiving objects from a web API)

Participating?

Make your pull requests on feature or bugfix branches.

Special thanks to these contributors

FHellmann

License

Copyright 2015 Thibault Guégan

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

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

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

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.

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) 

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!

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

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.

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?

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>

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) 

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.

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?

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. :)

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)

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

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 :)

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 ??

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) 

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.

OnScroll missing

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

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

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

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!

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

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

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.

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

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

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 : )

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

Localization

Hi,

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

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

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

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.

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)

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.