Skip to content

Commit

Permalink
Calendar events implemented
Browse files Browse the repository at this point in the history
  • Loading branch information
GreatApo committed Feb 2, 2019
1 parent addfcfc commit 1217846
Show file tree
Hide file tree
Showing 10 changed files with 126 additions and 43 deletions.
Binary file modified .idea/caches/build_file_checksums.ser
Binary file not shown.
Binary file added .idea/caches/gradle_models.ser
Binary file not shown.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ android {
targetSdkVersion 27
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
versionName '1.8.0'
versionCode 20190116
versionName '1.9.0'
versionCode 20190202
}
buildTypes {
release {
Expand Down
84 changes: 55 additions & 29 deletions app/src/main/java/com/dinodevs/pacecalendarwidget/APcalendar.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,12 @@
import org.json.JSONException;
import org.json.JSONObject;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Locale;

/**
* Created by GreatApo on 06/04/2018.
Expand Down Expand Up @@ -46,6 +48,7 @@ public class APcalendar {
private Context mContext;
private List<List<Integer>> eventsList;
private List<List<String>> eventsTitle;
private List<List<String>> eventsHours;

// Constructor
APcalendar(View view, Context context, Calendar date, int color){
Expand Down Expand Up @@ -298,11 +301,22 @@ public void refresh() {
if (eventsList.get(this.month).contains(thisDay)) {
//Log.i(Constants.TAG, "this month event: " + thisDay);
final int index = eventsList.get(this.month).indexOf(thisDay);
temp_view_boxes[monthStart + i].setTextColor(Color.parseColor(Constants.EVENT_COLOR));

//temp_view_boxes[monthStart + i].setTextColor(Color.parseColor(Constants.EVENT_COLOR));

if (thisDay == this.day) {
temp_view_boxes[monthStart + i].setBackgroundResource(R.drawable.round_bg_event_today);
((GradientDrawable) temp_view_boxes[monthStart + i].getBackground()).setColor(this.color);
}
else {
temp_view_boxes[monthStart + i].setBackgroundResource(R.drawable.round_bg_event);
((GradientDrawable) temp_view_boxes[monthStart + i].getBackground()).setColor(this.color);
}

temp_view_boxes[monthStart + i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
toast(String.format("%s: %s", String.valueOf(thisDay), eventsTitle.get(month).get(index)));
toast( String.valueOf(thisDay) + "/" + String.valueOf(month+1) +" - "+ eventsHours.get(month).get(index) +"\n"+ eventsTitle.get(month).get(index));
}
});
}
Expand All @@ -317,8 +331,8 @@ public void onClick(View v) {
if (eventsList.get(nextMonth).isEmpty()) {
temp_view_boxes[i].setTextColor(Color.parseColor("#505050"));
} else if (eventsList.get(nextMonth).contains(currDay)) {
//Log.i(Constants.TAG, "next month event: " + currDay);
temp_view_boxes[i].setTextColor(Color.parseColor(Constants.EVENT_COLOR));
temp_view_boxes[monthStart + i].setBackgroundResource(R.drawable.round_bg_event);
((GradientDrawable) temp_view_boxes[monthStart + i].getBackground()).setColor(Color.parseColor("#505050"));
} else
temp_view_boxes[i].setTextColor(Color.parseColor("#505050"));

Expand Down Expand Up @@ -362,44 +376,56 @@ private void loadCalendarEvents() {
}

List<List<String>> titles = new ArrayList<>();
List<List<String>> hours = new ArrayList<>();
for (int i = 0; i < 12; i++) {
List<String> list = new ArrayList<>();
titles.add(list);
List<String> list2 = new ArrayList<>();
hours.add(list2);
}

try {
// Check if correct form of JSON
JSONObject json_data = new JSONObject(calendarEvents);

// If there are events
if( json_data.has("events") ){
int event_number = json_data.getJSONArray("events").length();

Calendar calendar = Calendar.getInstance();

// Get data
for(int i=0; i<event_number; i++) {
JSONArray data = json_data.getJSONArray("events").getJSONArray(i);

//Log.i(Constants.TAG, "title: " + data.getString(0) + " \\ start: " + data.getString(2));
if(!data.getString(2).equals("") && !data.getString(2).equals("null")) {
calendar.setTimeInMillis(Long.parseLong(data.getString(2)));
if (calendar.get(Calendar.YEAR) >= this.year) {
titles.get(calendar.get(Calendar.MONTH)).add(data.getString(0));
events.get(calendar.get(Calendar.MONTH)).add(calendar.get(Calendar.DAY_OF_MONTH));
Log.i(Constants.TAG, "month: " + calendar.get(Calendar.MONTH)
+ " \\ days: " + events.get(calendar.get(Calendar.MONTH)).toString());
if(calendarEvents!=null && !calendarEvents.isEmpty()) {
try {
// Check if correct form of JSON
JSONObject json_data = new JSONObject(calendarEvents);

// If there are events
if (json_data.has("events")) {
int event_number = json_data.getJSONArray("events").length();

Calendar calendar = Calendar.getInstance();

// Get data
for (int i = 0; i < event_number; i++) {
JSONArray data = json_data.getJSONArray("events").getJSONArray(i);

//Log.i(Constants.TAG, "title: " + data.getString(0) + " \\ start: " + data.getString(2));
if (!data.getString(2).equals("") && !data.getString(2).equals("null")) {
calendar.setTimeInMillis(Long.parseLong(data.getString(2)));
if (calendar.get(Calendar.YEAR) >= this.year) {
// Save title
titles.get(calendar.get(Calendar.MONTH)).add(data.getString(0));
// Save hour (based on 12/24h)
hours.get(calendar.get(Calendar.MONTH)).add(
(new SimpleDateFormat( (Settings.System.getString(mContext.getContentResolver(), "time_12_24").equals("24")?"HH:mm":"hh:mm a"), Locale.US)).format(calendar.getTime())
);
// Save day
events.get(calendar.get(Calendar.MONTH)).add(calendar.get(Calendar.DAY_OF_MONTH));
Log.i(Constants.TAG, "month: " + calendar.get(Calendar.MONTH)
+ " \\ days: " + events.get(calendar.get(Calendar.MONTH)).toString());
}
}
}

}
}
} catch (JSONException e) {
Log.e(Constants.TAG, e.getLocalizedMessage(), e);
}
} catch (JSONException e) {
Log.e(Constants.TAG, e.getLocalizedMessage(), e);
}

this.eventsList = events;
this.eventsTitle = titles;
this.eventsHours = hours;
}

// Toast wrapper
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ private void init() {
} else {
header_pattern = Constants.HEADER_PATTERN_12H;
time_pattern = Constants.TIME_PATTERN_12H;

}

// Show Time/Date
Expand All @@ -114,7 +113,7 @@ private void initListeners(){
@Override
public void onClick(View v) {
refresh_time();
Timeline.this.toast("Timeline Widget v" + Timeline.this.version + " by GreatApo");
Timeline.this.toast("Calendar Widget v" + Timeline.this.version + " by GreatApo, LFOM & DarkThanos");
}
});
// Refresh events
Expand All @@ -123,7 +122,7 @@ public void onClick(View v) {
public boolean onLongClick(View v) {
refresh_time();
loadCalendarEvents();
Timeline.this.toast("Refreshing events...");
Timeline.this.toast("Events were refreshed...");
return true;
}
});
Expand All @@ -134,7 +133,6 @@ public boolean onLongClick(View v) {
public void onClick(View v) {
ListView list = Timeline.this.mView.findViewById(R.id.list);
list.setSelectionAfterHeaderView();
//Timeline.this.toast("▲ Top");
}
});
}
Expand Down Expand Up @@ -287,7 +285,6 @@ private void onShow() {
|| !calendarEvents.equals(Settings.System.getString(mContext.getContentResolver(), "CustomCalendarData")) ) {
// Refresh timeline
loadCalendarEvents();
Timeline.this.toast("Refreshing events...");
}
}
// Save state
Expand Down
10 changes: 5 additions & 5 deletions app/src/main/java/com/dinodevs/pacecalendarwidget/widget.java
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ private void initListeners(){
about.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
widget.this.toast("Pace Calendar Widget v" + widget.this.version + " by GreatApo & DarkThanos" + (widget.this.errors.length() > 0 ? " Errors: " + widget.this.errors : ""));
widget.this.toast("Calendar Widget v" + widget.this.version + " by GreatApo, LFOM & DarkThanos" + (widget.this.errors.length() > 0 ? " Errors: " + widget.this.errors : ""));
widget.this.vibrate();
}
});
Expand Down Expand Up @@ -291,15 +291,15 @@ public void onClick(View v) {
});

//Timeline
TextView month = this.mView.findViewById(R.id.textMonth);
month.setOnLongClickListener(new View.OnLongClickListener() {
TextView events = this.mView.findViewById(R.id.events_icon);
events.setOnClickListener(new View.OnClickListener() {
@Override
public boolean onLongClick(View v) {
public void onClick(View v) {
toast("Loading events...");
final Intent timelineIntent = new Intent(mContext, Timeline.class);
timelineIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_CLEAR_TOP);
mContext.startActivity(timelineIntent);
return false;
}
});
}
Expand Down
15 changes: 15 additions & 0 deletions app/src/main/res/drawable/round_bg_event.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadius="8dp"
android:shape="ring"
android:thickness="1dp"
android:useLevel="false">
<solid android:color="#efb171" />

<padding
android:left="1dp"
android:right="1dp"
android:top="1dp" />

<corners android:radius="50dp" />
</shape>
29 changes: 29 additions & 0 deletions app/src/main/res/drawable/round_bg_event_today.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Larger blue circle in back -->
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadius="8dp"
android:shape="ring"
android:thickness="1dp"
android:useLevel="false">
<solid android:color="#efb171" />

<padding
android:left="1dp"
android:right="1dp"
android:top="1dp" />

<corners android:radius="50dp" />
</shape>
</item>
<!-- Smaller red circle in front -->
<item>
<shape android:shape="oval">
<!-- transparent stroke = larger_circle_size - smaller_circle_size -->
<stroke android:color="@android:color/transparent"
android:width="6dp"/>
<solid android:color="#efb171"/>
</shape>
</item>
</layer-list>
20 changes: 18 additions & 2 deletions app/src/main/res/layout/widget_calendar.xml
Original file line number Diff line number Diff line change
Expand Up @@ -453,7 +453,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.963"
app:layout_constraintHorizontal_bias="0.40" />
app:layout_constraintHorizontal_bias="0.32" />


<TextView
Expand All @@ -467,7 +467,23 @@
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.6"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.963" />

<TextView
android:id="@+id/events_icon"
android:layout_width="30dp"
android:layout_height="30dp"
android:gravity="center"
android:text=""
android:textAlignment="center"
android:textColor="#fff"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.68"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.963" />
Expand Down
Binary file added other files/2-2-2019-4-13-46-πμ.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 1217846

Please sign in to comment.