diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml index 9bbf7fe92..4cf129c3d 100644 --- a/sample/src/main/AndroidManifest.xml +++ b/sample/src/main/AndroidManifest.xml @@ -25,6 +25,10 @@ android:name=".AsynchronousActivity" android:label="@string/title_activity_asynchronous" > + + diff --git a/sample/src/main/java/com/alamkanak/weekview/sample/MainActivity.java b/sample/src/main/java/com/alamkanak/weekview/sample/MainActivity.java index 54fd785d7..22f6019dd 100644 --- a/sample/src/main/java/com/alamkanak/weekview/sample/MainActivity.java +++ b/sample/src/main/java/com/alamkanak/weekview/sample/MainActivity.java @@ -32,6 +32,14 @@ public void onClick(View v) { startActivity(intent); } }); + + findViewById(R.id.buttonEventGenerator).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(MainActivity.this, AsynchronousActivity.class); + startActivity(intent); + } + }); } } diff --git a/sample/src/main/java/com/alamkanak/weekview/sample/TestActivity.java b/sample/src/main/java/com/alamkanak/weekview/sample/TestActivity.java new file mode 100644 index 000000000..fe285f14e --- /dev/null +++ b/sample/src/main/java/com/alamkanak/weekview/sample/TestActivity.java @@ -0,0 +1,99 @@ +package com.alamkanak.weekview.sample; + +import android.graphics.Color; +import android.graphics.RectF; +import android.os.Bundle; +import android.util.Log; + +import com.alamkanak.weekview.WeekView; +import com.alamkanak.weekview.WeekViewEvent; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +/** + * Created by alam on 1/3/16. + */ +public class TestActivity extends BaseActivity implements WeekView.EmptyViewClickListener { + + private List events = new ArrayList(); + private long count = 1; + private String[] colors = new String[]{ + "#59dbe0", + "#f57f68", + "#87d288", + "#f8b552" + }; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + getWeekView().setEmptyViewClickListener(this); + getWeekView().setEmptyViewLongPressListener(this); + } + + @Override + public List onMonthChange(int newYear, int newMonth) { + + List matchedEvents = new ArrayList(); + for (WeekViewEvent event : events) { + if (eventMatches(event, newYear, newMonth)) { + matchedEvents.add(event); + } + } + + return matchedEvents; + } + + private boolean eventMatches(WeekViewEvent event, int year, int month) { + return (event.getStartTime().get(Calendar.YEAR) == year && event.getStartTime().get(Calendar.MONTH) == month - 1) || (event.getEndTime().get(Calendar.YEAR) == year && event.getEndTime().get(Calendar.MONTH) == month - 1); + } + + @Override + public void onEmptyViewClicked(Calendar time) { + time.set(Calendar.MINUTE, 0); + time.set(Calendar.SECOND, 0); + time.set(Calendar.MILLISECOND, 0); + WeekViewEvent newEvent = new WeekViewEvent(count, "Event " + count, time.get(Calendar.YEAR), time.get(Calendar.MONTH) + 1, time.get(Calendar.DAY_OF_MONTH), time.get(Calendar.HOUR_OF_DAY), time.get(Calendar.MINUTE), time.get(Calendar.YEAR), time.get(Calendar.MONTH) + 1, time.get(Calendar.DAY_OF_MONTH), time.get(Calendar.HOUR_OF_DAY), time.get(Calendar.MINUTE)); + Calendar endTime = newEvent.getEndTime(); + + int random = (int )(Math.random() * 3 + 1); + + endTime.add(Calendar.HOUR, random == 1 ? 2 : 1); + newEvent.setEndTime(endTime); + newEvent.setColor(Color.parseColor(colors[((int) (count % 4))])); + this.events.add(newEvent); + count++; + getWeekView().notifyDatasetChanged(); + } + + @Override + public void onEventClick(WeekViewEvent event, RectF eventRect) { + onEmptyViewClicked(event.getStartTime()); + } + + @Override + public void onEmptyViewLongPress(Calendar time) { + String json = "["; + for (WeekViewEvent event : events) { + json += String.format( + "{" + + "\"name\": \"%s\"," + + "\"dayOfMonth\": %d," + + "\"startTime\": \"%02d:%02d\"," + + "\"endTime\": \"%02d:%02d\"," + + "\"color\": \"%s\"" + + "},", + event.getName(), + event.getStartTime().get(Calendar.DAY_OF_MONTH), + event.getStartTime().get(Calendar.HOUR_OF_DAY), event.getStartTime().get(Calendar.MINUTE), + event.getEndTime().get(Calendar.HOUR_OF_DAY), event.getEndTime().get(Calendar.MINUTE), + String.format("#%06X", (0xFFFFFF & event.getColor())) + ); + } + json += "]"; + Log.d("TEST", json); + super.onEmptyViewLongPress(time); + } +} diff --git a/sample/src/main/java/com/alamkanak/weekview/sample/apiclient/MyJsonService.java b/sample/src/main/java/com/alamkanak/weekview/sample/apiclient/MyJsonService.java index 78277fa09..2f204927e 100644 --- a/sample/src/main/java/com/alamkanak/weekview/sample/apiclient/MyJsonService.java +++ b/sample/src/main/java/com/alamkanak/weekview/sample/apiclient/MyJsonService.java @@ -10,7 +10,7 @@ */ public interface MyJsonService { - @GET("/4ccqb") + @GET("/3isor") void listEvents(Callback> eventsCallback); } diff --git a/sample/src/main/res/layout/activity_main.xml b/sample/src/main/res/layout/activity_main.xml index c4f067fdf..9cc92cf98 100644 --- a/sample/src/main/res/layout/activity_main.xml +++ b/sample/src/main/res/layout/activity_main.xml @@ -20,4 +20,12 @@ android:text="@string/title_activity_asynchronous" style="@style/Button"/> + +