Skip to content

Commit

Permalink
init project
Browse files Browse the repository at this point in the history
achmadqomarudin committed Jan 12, 2021
1 parent bad5cae commit 516dc44
Showing 184 changed files with 4,649 additions and 1 deletion.
Binary file added .DS_Store
Binary file not shown.
Binary file added .gradle/6.5/executionHistory/executionHistory.lock
Binary file not shown.
Binary file added .gradle/6.5/fileChanges/last-build.bin
Binary file not shown.
Binary file added .gradle/6.5/fileHashes/fileHashes.bin
Binary file not shown.
Binary file added .gradle/6.5/fileHashes/fileHashes.lock
Binary file not shown.
Empty file added .gradle/6.5/gc.properties
Empty file.
Binary file added .gradle/buildOutputCleanup/buildOutputCleanup.lock
Binary file not shown.
2 changes: 2 additions & 0 deletions .gradle/buildOutputCleanup/cache.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#Tue Jan 12 19:58:58 WIB 2021
gradle.version=6.5
Binary file added .gradle/checksums/checksums.lock
Binary file not shown.
Empty file added .gradle/vcs-1/gc.properties
Empty file.
3 changes: 3 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions .idea/.name

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file added .idea/caches/build_file_checksums.ser
Binary file not shown.
6 changes: 6 additions & 0 deletions .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 21 additions & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

25 changes: 25 additions & 0 deletions .idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions .idea/libraries/Gradle__androidx_activity_activity_1_0_0_aar.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions .idea/libraries/Gradle__androidx_annotation_annotation_1_1_0.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions .idea/libraries/Gradle__androidx_appcompat_appcompat_1_2_0_aar.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions .idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions .idea/libraries/Gradle__androidx_cardview_cardview_1_0_0_aar.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions .idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions .idea/libraries/Gradle__androidx_core_core_1_3_2_aar.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions .idea/libraries/Gradle__androidx_core_core_ktx_1_3_2_aar.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions .idea/libraries/Gradle__androidx_fragment_fragment_1_1_0_aar.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions .idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml
16 changes: 16 additions & 0 deletions .idea/libraries/Gradle__androidx_media_media_1_0_0_aar.xml
16 changes: 16 additions & 0 deletions .idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml
15 changes: 15 additions & 0 deletions .idea/libraries/Gradle__androidx_test_core_1_3_0_aar.xml
15 changes: 15 additions & 0 deletions .idea/libraries/Gradle__androidx_test_ext_junit_1_1_2_aar.xml
15 changes: 15 additions & 0 deletions .idea/libraries/Gradle__androidx_test_monitor_1_3_0_aar.xml
15 changes: 15 additions & 0 deletions .idea/libraries/Gradle__androidx_test_runner_1_3_0_aar.xml
13 changes: 13 additions & 0 deletions .idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml
13 changes: 13 additions & 0 deletions .idea/libraries/Gradle__com_squareup_javawriter_2_1_1.xml
13 changes: 13 additions & 0 deletions .idea/libraries/Gradle__javax_inject_javax_inject_1.xml
13 changes: 13 additions & 0 deletions .idea/libraries/Gradle__junit_junit_4_12.xml
13 changes: 13 additions & 0 deletions .idea/libraries/Gradle__junit_junit_4_13_1.xml
13 changes: 13 additions & 0 deletions .idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml
13 changes: 13 additions & 0 deletions .idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3.xml
13 changes: 13 additions & 0 deletions .idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3.xml
13 changes: 13 additions & 0 deletions .idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml
9 changes: 9 additions & 0 deletions .idea/misc.xml
9 changes: 9 additions & 0 deletions .idea/modules.xml
20 changes: 20 additions & 0 deletions .idea/modules/Exploration_Calendar_App_UI.iml
150 changes: 150 additions & 0 deletions .idea/modules/app/Exploration_Calendar_App_UI.app.iml

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions .idea/vcs.xml
62 changes: 61 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,62 @@
# Schedule-App-UI
# Schedule App UI

[![Platform](https://img.shields.io/badge/platform-Android-yellow.svg)](https://www.android.com)
[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg?style=flat-square)](https://www.apache.org/licenses/LICENSE-2.0.html)
[![Gradle Version](https://img.shields.io/badge/gradle-4.0-green.svg)](https://docs.gradle.org/current/release-notes)
[![Awesome Kotlin Badge](https://kotlin.link/awesome-kotlin.svg)](https://github.com/KotlinBy/awesome-kotlin)

📅 A beautiful Schedule App UI written in Kotlin for android with examples.

# Source
Repo to demonstrate Schedule App UI in Android app. This is a follow up on the source at :

- [Instagram](https://www.instagram.com/p/CJvEeSrA2Dz)
- [Flat Icon](https://www.flaticon.com)
- [UnDraw Illustration](https://undraw.co)
- [Single Row Calendar Library](https://github.com/miso01/SingleRowCalendar)
- etc.

# Demo App

<p align="center">
<a href="https://github.com/achmadqomarudin/Schedule-App-UI/releases/latest/download/app-demo.apk">
<img src="https://www.inspirefm.org/wp-content/uploads/button-apk.png" height="100">
</a>
</p>

<table style="width:100%">
<tr>
<th>Example 1</th>
<th>Example 2</th>
</tr>
<tr>
<td><img src="screenshots/1.gif"/></td>
<td><img src="screenshots/2.jpg"/></td>
</tr>
<tr>
<th>Example 3</th>
<th>Example 4</th>
</tr>
<tr>
<td><img src="screenshots/3.jpg"/></td>
<td><img src="screenshots/4.jpg"/></td>
</tr>
</table>

# License

```
Copyright (C) Achmad Qomarudin
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.
```
1 change: 1 addition & 0 deletions app/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
50 changes: 50 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-android-extensions'
}

android {
compileSdkVersion 30
buildToolsVersion "30.0.2"

defaultConfig {
applicationId "com.project.scheduleappui"
minSdkVersion 21
targetSdkVersion 30
versionCode 1
versionName "1.0"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}

dependencies {

implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.3.2'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.2.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'

//Extended library
implementation 'com.michalsvec:single-row-calednar:1.0.0'
}
21 changes: 21 additions & 0 deletions app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.project.scheduleappui

import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4

import org.junit.Test
import org.junit.runner.RunWith

import org.junit.Assert.*

/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("com.project.explorationcalendarappui", appContext.packageName)
}
}
21 changes: 21 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.project.scheduleappui">

<application
android:allowBackup="true"
android:icon="@drawable/ic_schedule"
android:label="@string/app_name"
android:roundIcon="@drawable/ic_schedule"
android:supportsRtl="true"
android:theme="@style/Theme.ScheduleAppUI">
<activity android:name="com.project.scheduleappui.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>
69 changes: 69 additions & 0 deletions app/src/main/java/com/project/scheduleappui/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package com.project.scheduleappui

import android.annotation.SuppressLint
import android.os.Build
import android.os.Bundle
import android.view.View
import android.view.WindowManager
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import com.google.android.material.bottomnavigation.BottomNavigationView
import com.project.scheduleappui.menu.dashboard.DashboardFragment
import com.project.scheduleappui.menu.home.HomeFragment
import com.project.scheduleappui.menu.profile.ProfileFragment
import kotlinx.android.synthetic.main.activity_main.*

@Suppress("DEPRECATION")
class MainActivity : AppCompatActivity() {

@SuppressLint("UseCompatLoadingForDrawables")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
hiddenStatusBar()
setContentView(R.layout.activity_main)
setSupportActionBar(bottom_app_bar)
bottom_navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener)
replaceFragment(HomeFragment())

fab.setOnClickListener {
Toast.makeText(applicationContext, "Button clicked!", Toast.LENGTH_SHORT).show()
}
}

@SuppressLint("ObsoleteSdkInt")
private fun hiddenStatusBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.setDecorFitsSystemWindows(true)
} else {
// hide status bar
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
window.decorView.systemUiVisibility =
View.SYSTEM_UI_FLAG_IMMERSIVE or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
}
}

private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->
when (item.itemId) {
R.id.nav_home -> {
replaceFragment(HomeFragment())
return@OnNavigationItemSelectedListener true
}
R.id.nav_dashboard -> {
replaceFragment(DashboardFragment())
return@OnNavigationItemSelectedListener true
}
R.id.nav_profile -> {
replaceFragment(ProfileFragment())
return@OnNavigationItemSelectedListener true
}
}
false
}

private fun replaceFragment(fragment: Fragment) {
val transaction = supportFragmentManager.beginTransaction()
transaction.replace(R.id.fragment_container, fragment)
transaction.commit()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.project.scheduleappui.menu.dashboard

import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.project.scheduleappui.R
import kotlinx.android.synthetic.main.item_dashboard.view.*
import kotlinx.android.synthetic.main.item_home.view.*

class DashboardAdapter(private val dashboard: List<Dashboard>) : RecyclerView.Adapter<DashboardHolder>() {

override fun onCreateViewHolder(viewGroup: ViewGroup, p1: Int): DashboardHolder {
return DashboardHolder(LayoutInflater.from(viewGroup.context).inflate(R.layout.item_dashboard, viewGroup, false))
}

override fun getItemCount(): Int = dashboard.size

override fun onBindViewHolder(holder: DashboardHolder, position: Int) {
holder.bindHero(dashboard[position])
}
}

class DashboardHolder(view: View) : RecyclerView.ViewHolder(view) {
private val imgAgenda = view.image_agenda
private val tvAgenda = view.text_agenda
private val tvTime = view.text_agenda_time

fun bindHero(dashboard: Dashboard) {
imgAgenda.setImageResource(dashboard.image)
tvAgenda.text = dashboard.agenda
tvTime.text = dashboard.time
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.project.scheduleappui.menu.dashboard

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.project.scheduleappui.R
import kotlinx.android.synthetic.main.fragment_dashboard.*

class DashboardFragment : Fragment() {

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_dashboard, container, false)
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
setData()
}

private fun setData() {
val listHome = listOf(
Dashboard(image = R.drawable.bg_agenda1, agenda = "Hotel Cavana - Meeting with client from Russia", time = "07.00 - 07.30"),
Dashboard(image = R.drawable.bg_agenda2, agenda = "TA Caffe - Market potential at Tulungagung", time = "08.00 - 09.00"),
Dashboard(image = R.drawable.bg_agenda3, agenda = "Office - Internal project review & discussion", time = "09.00 - 09.30")
)

val homeAdapter = DashboardAdapter(listHome)

recyclerview_dashboard.apply {
layoutManager = LinearLayoutManager(context, RecyclerView.HORIZONTAL, false)
adapter = homeAdapter
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.project.scheduleappui.menu.dashboard

data class Dashboard (
val image : Int,
val agenda : String,
val time : String
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.project.scheduleappui.menu.home

import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.project.scheduleappui.R
import kotlinx.android.synthetic.main.item_home.view.*

class HomeAdapter(private val home: List<Home>) : RecyclerView.Adapter<HomeHolder>() {

override fun onCreateViewHolder(viewGroup: ViewGroup, p1: Int): HomeHolder {
return HomeHolder(LayoutInflater.from(viewGroup.context).inflate(R.layout.item_home, viewGroup, false))
}

override fun getItemCount(): Int = home.size

override fun onBindViewHolder(holder: HomeHolder, position: Int) {
holder.bindHero(home[position])
}
}

class HomeHolder(view: View) : RecyclerView.ViewHolder(view) {
private val tvTag = view.text_tag
private val tvSchedule = view.text_schedule
private val tvTime = view.text_schedule_time

fun bindHero(home: Home) {
tvTag.text = home.tag
tvSchedule.text = home.schedule
tvTime.text = home.time
}
}
199 changes: 199 additions & 0 deletions app/src/main/java/com/project/scheduleappui/menu/home/HomeFragment.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
package com.project.scheduleappui.menu.home

import android.annotation.SuppressLint
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.Spinner
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager
import com.michalsvec.singlerowcalendar.calendar.CalendarChangesObserver
import com.michalsvec.singlerowcalendar.calendar.CalendarViewManager
import com.michalsvec.singlerowcalendar.calendar.SingleRowCalendarAdapter
import com.michalsvec.singlerowcalendar.selection.CalendarSelectionManager
import com.michalsvec.singlerowcalendar.utils.DateUtils
import com.project.scheduleappui.R
import kotlinx.android.synthetic.main.calendar_item.view.*
import kotlinx.android.synthetic.main.fragment_home.*
import java.util.*

class HomeFragment : Fragment() {
private val calendar = Calendar.getInstance()
private var currentMonth = 0

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_home, container, false)
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
setData()
setDate()
setSpinner(view)
}

private fun setData() {
val listHome = listOf(
Home(tag = "Developer", schedule = "Database Workshop - How to use SQLite Database in android", time = "08.00 - 09.00"),
Home(tag = "Designer", schedule = "UI Workshop - Using gridview to make more beautiful design", time = "09.00 - 10.00"),
Home(tag = "Marketing", schedule = "FB Ads - Strategy marketing for selling more products", time = "12.00 - 12.30")
)

val homeAdapter = HomeAdapter(listHome)

recyclerview_home.apply {
layoutManager = LinearLayoutManager(context)
adapter = homeAdapter
}
}

private fun setDate() {
// set current date to calendar and current month to currentMonth variable
calendar.time = Date()
currentMonth = calendar[Calendar.MONTH]

// calendar view manager is responsible for our displaying logic
val myCalendarViewManager = object :
CalendarViewManager {
override fun setCalendarViewResourceId(
position: Int,
date: Date,
isSelected: Boolean
): Int {
// set date to calendar according to position where we are
val cal = Calendar.getInstance()
cal.time = date
// if item is selected we return this layout items
// in this example. monday, wednesday and friday will have special item views and other days
// will be using basic item view
return if (isSelected)
R.layout.selected_calendar_item
else
// here we return items which are not selected
R.layout.calendar_item

// NOTE: if we don't want to do it this way, we can simply change color of background
// in bindDataToCalendarView method
}

override fun bindDataToCalendarView(
holder: SingleRowCalendarAdapter.CalendarViewHolder,
date: Date,
position: Int,
isSelected: Boolean
) {
// using this method we can bind data to calendar view
// good practice is if all views in layout have same IDs in all item views
holder.itemView.tv_date_calendar_item.text = DateUtils.getDayNumber(date)
holder.itemView.tv_day_calendar_item.text = DateUtils.getDay3LettersName(date)

}
}

// using calendar changes observer we can track changes in calendar
val myCalendarChangesObserver = object :
CalendarChangesObserver {
// you can override more methods, in this example we need only this one
@SuppressLint("SetTextI18n")
override fun whenSelectionChanged(isSelected: Boolean, position: Int, date: Date) {
tvDate.text = "${DateUtils.getMonthName(date)} "
super.whenSelectionChanged(isSelected, position, date)
}
}

// selection manager is responsible for managing selection
val mySelectionManager = object : CalendarSelectionManager {
override fun canBeItemSelected(position: Int, date: Date): Boolean {
// set date to calendar according to position
val cal = Calendar.getInstance()
cal.time = date
// in this example sunday and saturday can't be selected, others can
return when (cal[Calendar.DAY_OF_WEEK]) {
Calendar.SATURDAY -> false
Calendar.SUNDAY -> false
else -> true
}
}
}

// here we init our calendar, also you can set more properties if you haven't specified in XML layout
val singleRowCalendar = main_single_row_calendar.apply {
calendarViewManager = myCalendarViewManager
calendarChangesObserver = myCalendarChangesObserver
calendarSelectionManager = mySelectionManager
setDates(getFutureDatesOfCurrentMonth())
init()
}

btnRight.setOnClickListener {
singleRowCalendar.setDates(getDatesOfNextMonth())
}

btnLeft.setOnClickListener {
singleRowCalendar.setDates(getDatesOfPreviousMonth())
}
}

private fun setSpinner(view: View) {
val spinner: Spinner = view.findViewById(R.id.task_spinner)
// Create an ArrayAdapter using the string array and a default spinner layout
context?.let {
ArrayAdapter.createFromResource(
it,
R.array.task_array,
R.layout.item_spinner
).also { adapter ->
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(R.layout.item_spinner)
// Apply the adapter to the spinner
spinner.adapter = adapter
}
}
}

private fun getDatesOfNextMonth(): List<Date> {
currentMonth++ // + because we want next month
if (currentMonth == 12) {
// we will switch to january of next year, when we reach last month of year
calendar.set(Calendar.YEAR, calendar[Calendar.YEAR] + 1)
currentMonth = 0 // 0 == january
}
return getDates(mutableListOf())
}

private fun getDatesOfPreviousMonth(): List<Date> {
currentMonth-- // - because we want previous month
if (currentMonth == -1) {
// we will switch to december of previous year, when we reach first month of year
calendar.set(Calendar.YEAR, calendar[Calendar.YEAR] - 1)
currentMonth = 11 // 11 == december
}
return getDates(mutableListOf())
}

private fun getFutureDatesOfCurrentMonth(): List<Date> {
// get all next dates of current month
currentMonth = calendar[Calendar.MONTH]
return getDates(mutableListOf())
}

private fun getDates(list: MutableList<Date>): List<Date> {
// load dates of whole month
calendar.set(Calendar.MONTH, currentMonth)
calendar.set(Calendar.DAY_OF_MONTH, 1)
list.add(calendar.time)
while (currentMonth == calendar[Calendar.MONTH]) {
calendar.add(Calendar.DATE, +1)
if (calendar[Calendar.MONTH] == currentMonth)
list.add(calendar.time)
}
calendar.add(Calendar.DATE, -1)
return list
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.project.scheduleappui.menu.home

data class Home (
val tag : String,
val schedule : String,
val time : String
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.project.scheduleappui.menu.profile

import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.project.scheduleappui.R

class ProfileFragment : Fragment() {

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_profile, container, false)
}
}
5 changes: 5 additions & 0 deletions app/src/main/res/color/bottom_bar_item_selector.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="@color/white" />
<item android:color="@color/light_gray" />
</selector>
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 34 additions & 0 deletions app/src/main/res/drawable-v24/ic_launcher_foreground.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillType="evenOdd"
android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
android:strokeWidth="1"
android:strokeColor="#00000000">
<aapt:attr name="android:fillColor">
<gradient
android:endX="78.5885"
android:endY="90.9159"
android:startX="48.7653"
android:startY="61.0927"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions app/src/main/res/drawable-xxhdpi/bg_transparent.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle">

<solid android:color="#00000000" />

</shape>
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
134 changes: 134 additions & 0 deletions app/src/main/res/drawable/bg_agenda1.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="1070.0669dp"
android:height="619.3506dp"
android:viewportWidth="1070.0669"
android:viewportHeight="619.3506">
<path
android:pathData="M549.82,526c-2.77,0 -5.58,-0.04 -8.33,-0.13l0.06,-2c3.95,0.12 7.98,0.16 11.95,0.1l0.03,2Q551.68,526 549.82,526ZM565.56,525.54 L565.45,523.54c3.96,-0.23 7.96,-0.56 11.91,-0.97l0.21,1.99C573.59,524.97 569.55,525.3 565.56,525.54ZM529.47,525.22c-3.99,-0.31 -8.02,-0.71 -11.98,-1.19l0.24,-1.98c3.93,0.48 7.93,0.88 11.89,1.18ZM589.51,523.03 L589.21,521.05c3.93,-0.6 7.89,-1.29 11.77,-2.06l0.39,1.96C597.46,521.73 593.47,522.42 589.51,523.03ZM505.57,522.29c-3.94,-0.67 -7.92,-1.44 -11.82,-2.28l0.42,-1.96c3.87,0.84 7.82,1.6 11.73,2.27ZM613.12,518.33 L612.64,516.39c3.86,-0.95 7.74,-2.01 11.53,-3.13l0.57,1.92C620.92,516.31 617.01,517.37 613.12,518.33ZM482.05,517.19c-3.87,-1.03 -7.76,-2.16 -11.56,-3.36l0.6,-1.91c3.78,1.19 7.64,2.32 11.47,3.34ZM636.2,511.48l-0.66,-1.89c3.74,-1.3 7.51,-2.71 11.19,-4.18l0.74,1.86C643.77,508.75 639.98,510.17 636.2,511.48ZM459.06,509.92c-3.75,-1.38 -7.53,-2.87 -11.23,-4.43l0.78,-1.84c3.67,1.54 7.42,3.02 11.14,4.39ZM658.53,502.55 L657.7,500.73c3.6,-1.63 7.21,-3.38 10.74,-5.18l0.91,1.78C665.8,499.15 662.16,500.9 658.53,502.55ZM436.82,500.56c-3.61,-1.72 -7.23,-3.55 -10.77,-5.44l0.94,-1.76c3.51,1.87 7.1,3.69 10.68,5.4ZM679.93,491.61 L678.94,489.88c3.45,-1.97 6.89,-4.04 10.23,-6.15l1.07,1.69C686.87,487.54 683.41,489.63 679.93,491.61ZM415.55,489.19c-3.43,-2.04 -6.87,-4.2 -10.22,-6.4l1.1,-1.67c3.32,2.19 6.73,4.32 10.14,6.35ZM700.25,478.75L699.11,477.12c3.25,-2.27 6.49,-4.64 9.63,-7.06l1.22,1.59C706.79,474.08 703.53,476.47 700.25,478.75ZM395.43,475.94c-3.23,-2.34 -6.45,-4.8 -9.59,-7.3l1.25,-1.56c3.11,2.48 6.31,4.92 9.51,7.25ZM719.33,464.09 L718.04,462.56c3.03,-2.55 6.04,-5.21 8.95,-7.91l1.36,1.47C725.42,458.84 722.38,461.52 719.33,464.09ZM376.6,460.91c-3.01,-2.63 -5.99,-5.37 -8.88,-8.14l1.38,-1.44c2.86,2.75 5.83,5.47 8.81,8.08ZM737,447.75 L735.58,446.34c2.79,-2.83 5.55,-5.75 8.2,-8.7l1.49,1.34C742.6,441.95 739.82,444.9 737,447.75ZM359.23,444.23c-2.76,-2.9 -5.48,-5.9 -8.1,-8.91l1.51,-1.31c2.59,2.99 5.3,5.96 8.04,8.84ZM753.12,429.85 L751.58,428.58c2.52,-3.07 5,-6.23 7.38,-9.41l1.6,1.2C758.17,423.57 755.66,426.76 753.12,429.85ZM343.45,426.06c-2.48,-3.13 -4.92,-6.36 -7.25,-9.6l1.62,-1.17c2.32,3.22 4.74,6.42 7.19,9.53ZM767.55,410.56 L765.9,409.44c2.23,-3.28 4.41,-6.66 6.49,-10.05l1.71,1.05C772,403.84 769.8,407.25 767.55,410.56ZM329.4,406.53c-2.18,-3.34 -4.31,-6.78 -6.34,-10.22l1.72,-1.02c2.01,3.41 4.13,6.83 6.29,10.14ZM780.17,390.02 L778.42,389.05c1.92,-3.47 3.79,-7.04 5.55,-10.61l1.79,0.89C783.98,382.92 782.1,386.52 780.17,390.02ZM317.2,385.81c-1.87,-3.53 -3.67,-7.14 -5.38,-10.75l1.81,-0.85c1.69,3.58 3.48,7.17 5.33,10.67ZM790.85,368.4 L789.02,367.6c1.59,-3.64 3.12,-7.37 4.55,-11.08l1.87,0.72C794,360.97 792.45,364.73 790.85,368.4ZM306.95,364.08c-1.53,-3.68 -3,-7.44 -4.36,-11.19l1.88,-0.68c1.35,3.72 2.81,7.45 4.33,11.1ZM799.5,345.87 L797.6,345.24c1.25,-3.76 2.43,-7.6 3.5,-11.43l1.93,0.54C801.94,338.2 800.75,342.08 799.5,345.87ZM298.73,341.48c-1.19,-3.81 -2.31,-7.71 -3.32,-11.57l1.93,-0.51c1.01,3.84 2.12,7.7 3.3,11.49ZM806.02,322.69 L804.07,322.24c0.9,-3.85 1.71,-7.79 2.43,-11.7l1.97,0.36C807.74,314.84 806.92,318.8 806.02,322.69ZM292.62,318.2c-0.83,-3.91 -1.59,-7.89 -2.24,-11.83l1.97,-0.33c0.65,3.91 1.4,7.86 2.23,11.74ZM810.37,299.01 L808.39,298.74c0.54,-3.92 0.99,-7.91 1.35,-11.87l1.99,0.18C811.37,291.04 810.92,295.06 810.37,299.01ZM288.68,294.45c-0.47,-3.96 -0.86,-7.99 -1.15,-11.98l2,-0.15c0.29,3.96 0.67,7.96 1.14,11.89ZM812.55,275.04 L810.55,274.95c0.18,-3.96 0.27,-7.98 0.27,-11.95h2C812.82,266.99 812.73,271.04 812.55,275.04ZM286.92,270.43c-0.07,-2.45 -0.1,-4.95 -0.1,-7.43q0,-2.31 0.04,-4.61l2,0.04q-0.04,2.28 -0.04,4.57c0,2.46 0.04,4.95 0.1,7.38ZM810.8,260.21c-0.04,-3.97 -0.17,-7.98 -0.39,-11.95l2,-0.11c0.22,3.99 0.36,8.04 0.4,12.04ZM289.33,246.49l-2,-0.13c0.25,-4 0.59,-8.03 1.02,-12l1.99,0.22C289.92,238.52 289.58,242.52 289.33,246.49ZM809.48,236.35c-0.4,-3.94 -0.9,-7.93 -1.48,-11.86l1.98,-0.29c0.58,3.96 1.09,7.98 1.49,11.95ZM291.91,222.73l-1.98,-0.31c0.61,-3.96 1.32,-7.94 2.12,-11.85l1.96,0.4C293.22,214.85 292.51,218.81 291.91,222.73ZM805.98,212.72c-0.76,-3.9 -1.62,-7.83 -2.56,-11.67l1.94,-0.47c0.94,3.87 1.81,7.83 2.58,11.76ZM296.64,199.32l-1.94,-0.49c0.97,-3.87 2.05,-7.78 3.2,-11.61l1.91,0.58C298.68,191.6 297.61,195.47 296.64,199.32ZM800.33,189.5c-1.12,-3.81 -2.33,-7.64 -3.62,-11.39l1.89,-0.65c1.3,3.78 2.53,7.64 3.65,11.47ZM303.53,176.4l-1.89,-0.66c1.33,-3.78 2.76,-7.58 4.27,-11.29l1.85,0.75C306.27,168.88 304.85,172.65 303.53,176.4ZM792.56,166.91c-1.46,-3.68 -3.02,-7.37 -4.64,-10.98l1.82,-0.82c1.64,3.63 3.21,7.36 4.68,11.06ZM312.51,154.21l-1.82,-0.83c1.67,-3.64 3.45,-7.29 5.28,-10.84l1.78,0.92C315.93,146.98 314.16,150.6 312.51,154.21ZM782.77,145.17c-1.79,-3.53 -3.69,-7.07 -5.64,-10.51l1.74,-0.99c1.97,3.47 3.88,7.04 5.68,10.6ZM323.48,132.94l-1.73,-1c2,-3.46 4.1,-6.93 6.25,-10.31l1.69,1.08C327.55,126.06 325.46,129.5 323.48,132.94ZM771.02,124.41c-2.11,-3.36 -4.33,-6.72 -6.58,-9.96l1.64,-1.14c2.27,3.27 4.5,6.65 6.63,10.04ZM336.36,112.78l-1.63,-1.15c2.31,-3.27 4.72,-6.53 7.17,-9.69l1.58,1.23C341.04,106.3 338.64,109.54 336.36,112.78ZM757.42,104.79c-2.41,-3.16 -4.92,-6.29 -7.46,-9.33l1.53,-1.28c2.56,3.06 5.09,6.22 7.52,9.4ZM351.01,93.89l-1.52,-1.3c2.59,-3.04 5.28,-6.06 8.02,-8.99l1.46,1.36C356.25,87.87 353.58,90.88 351.01,93.89ZM742.08,86.48c-2.69,-2.92 -5.47,-5.82 -8.28,-8.61l1.41,-1.42c2.83,2.81 5.64,5.73 8.34,8.68ZM367.31,76.42 L365.91,74.99c2.86,-2.8 5.82,-5.56 8.8,-8.22l1.33,1.49C373.09,70.9 370.15,73.64 367.31,76.42ZM725.13,69.64c-2.94,-2.67 -5.98,-5.3 -9.04,-7.83l1.28,-1.54c3.07,2.54 6.14,5.2 9.1,7.89ZM385.13,60.51 L383.87,58.96c3.09,-2.52 6.29,-5 9.5,-7.38l1.19,1.61C391.37,55.54 388.2,58.01 385.13,60.51ZM706.71,54.4c-3.18,-2.39 -6.45,-4.74 -9.71,-6.98l1.13,-1.65c3.29,2.25 6.59,4.62 9.79,7.03ZM404.31,46.29 L403.2,44.63c3.31,-2.23 6.72,-4.41 10.13,-6.48l1.04,1.71C410.98,41.92 407.6,44.08 404.31,46.29ZM686.97,40.9c-3.38,-2.09 -6.85,-4.13 -10.32,-6.06l0.97,-1.75c3.49,1.95 6.99,4 10.4,6.11ZM424.7,33.89l-0.96,-1.75c3.5,-1.92 7.09,-3.78 10.67,-5.53l0.88,1.8C431.74,30.14 428.18,31.99 424.7,33.89ZM666.07,29.25c-3.56,-1.77 -7.2,-3.49 -10.84,-5.09l0.81,-1.83c3.66,1.62 7.33,3.34 10.92,5.13ZM446.12,23.41 L445.33,21.58c3.66,-1.59 7.4,-3.11 11.13,-4.52l0.71,1.87C453.47,20.33 449.76,21.84 446.12,23.41ZM644.18,19.58c-3.7,-1.44 -7.49,-2.81 -11.27,-4.07l0.64,-1.9c3.8,1.28 7.62,2.66 11.35,4.1ZM468.43,14.94 L467.81,13.04c3.8,-1.25 7.68,-2.42 11.53,-3.49l0.53,1.93C476.05,12.54 472.2,13.7 468.43,14.94ZM621.5,11.97c-3.81,-1.09 -7.71,-2.1 -11.56,-3.01l0.46,-1.95c3.89,0.92 7.81,1.94 11.65,3.03ZM491.45,8.55l-0.45,-1.95c3.9,-0.89 7.87,-1.7 11.8,-2.41l0.36,1.97C499.26,6.86 495.32,7.67 491.45,8.55ZM598.24,6.48c-3.89,-0.73 -7.86,-1.38 -11.79,-1.93l0.28,-1.98c3.96,0.56 7.96,1.21 11.88,1.95ZM514.97,4.31 L514.7,2.32c3.96,-0.53 7.99,-0.97 11.97,-1.32l0.17,1.99C522.89,3.34 518.9,3.78 514.97,4.31ZM574.58,3.16c-3.94,-0.37 -7.95,-0.66 -11.92,-0.85l0.1,-2c4,0.19 8.04,0.48 12.01,0.86ZM538.77,2.23 L538.68,0.23c3.68,-0.15 7.42,-0.23 11.14,-0.23l0.91,0 -0.01,2 -0.9,-0C546.13,2 542.42,2.08 538.77,2.23Z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M806,481.27a12,12 0,1 1,12 -12A12.01,12.01 0,0 1,806 481.27ZM806,459.27a10,10 0,1 0,10 10A10.01,10.01 0,0 0,806 459.27Z"
android:fillColor="#2f2e41"/>
<path
android:pathData="M486.8,173.41v65.68a2.3,2.3 0,0 1,-2.29 2.29h-1.63v342.15a35.7,35.7 0,0 1,-35.7 35.7L233.39,619.23a35.69,35.69 0,0 1,-35.69 -35.7v-330.15h-1.18a1.62,1.62 0,0 1,-1.62 -1.61v-37.38a1.62,1.62 0,0 1,1.62 -1.62h1.18v-14.08h-1.19a1.7,1.7 0,0 1,-1.69 -1.7v-36.87a1.69,1.69 0,0 1,1.69 -1.69h1.19v-19.22h-1.21a1.5,1.5 0,0 1,-1.5 -1.5v-20.12a1.51,1.51 0,0 1,1.5 -1.51h1.21v-40.74a35.69,35.69 0,0 1,35.69 -35.69L447.18,39.65a35.7,35.7 0,0 1,35.7 35.69v95.78h1.63A2.3,2.3 0,0 1,486.8 173.41Z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M315.85,57.96L350.59,57.96A2.54,2.54 0,0 1,353.13 60.5L353.13,63.5A2.54,2.54 0,0 1,350.59 66.04L315.85,66.04A2.54,2.54 0,0 1,313.31 63.5L313.31,60.5A2.54,2.54 0,0 1,315.85 57.96z"
android:fillColor="#e6e8ec"/>
<path
android:pathData="M363.74,62m-4.59,0a4.59,4.59 0,1 1,9.17 0a4.59,4.59 0,1 1,-9.17 0"
android:fillColor="#e6e8ec"/>
<path
android:pathData="M465.79,82.4v504.09a22.65,22.65 0,0 1,-22.65 22.64h-204.65a22.61,22.61 0,0 1,-22.65 -22.64L215.84,82.4a22.65,22.65 0,0 1,22.65 -22.65h30.63v3.93a18.65,18.65 0,0 0,18.65 18.65h104.08a18.65,18.65 0,0 0,18.65 -18.65v-3.93h32.64A22.64,22.64 0,0 1,465.79 82.4Z"
android:fillColor="#00bfa6"/>
<path
android:fillColor="#FF000000"
android:pathData="M225.83,225h232v113h-232z"
android:strokeAlpha="0.2"
android:fillAlpha="0.2"/>
<path
android:pathData="M589.83,96h232v113h-232z"
android:fillColor="#f2f2f2"/>
<path
android:pathData="M225.83,396.28h232v113h-232z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M433.83,121.28m-20,0a20,20 0,1 1,40 0a20,20 0,1 1,-40 0"
android:fillColor="#fff"/>
<path
android:pathData="M442.83,120.64l-8.36,0l0,-8.36l-1.29,0l0,8.36l-8.36,0l0,1.29l8.36,0l0,8.36l1.29,0l0,-8.36l8.36,0l0,-1.29z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M563.83,81h232v113h-232z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M667.39,156.87c6.07,22.45 26.88,36.35 26.88,36.35s10.96,-22.49 4.88,-44.94S672.28,111.93 672.28,111.93 661.32,134.42 667.39,156.87Z"
android:fillColor="#fff"/>
<path
android:pathData="M676.32,152.05c16.66,16.22 18.7,41.16 18.7,41.16s-24.98,-1.36 -41.65,-17.59 -18.7,-41.16 -18.7,-41.16S659.65,135.82 676.32,152.05Z"
android:fillColor="#00bfa6"/>
<path
android:pathData="M319.24,473.87c6.07,22.45 26.88,36.35 26.88,36.35S357.07,487.73 350.99,465.28 324.12,428.93 324.12,428.93 313.16,451.42 319.24,473.87Z"
android:fillColor="#fff"/>
<path
android:pathData="M328.16,469.05c16.66,16.22 18.7,41.16 18.7,41.16s-24.98,-1.36 -41.65,-17.59 -18.7,-41.16 -18.7,-41.16S311.5,452.82 328.16,469.05Z"
android:fillColor="#00bfa6"/>
<path
android:pathData="M374.49,473.87c-6.07,22.45 -26.88,36.35 -26.88,36.35S336.65,487.73 342.73,465.28 369.6,428.93 369.6,428.93 380.56,451.42 374.49,473.87Z"
android:fillColor="#fff"/>
<path
android:pathData="M365.56,469.05c-16.66,16.22 -18.7,41.16 -18.7,41.16s24.98,-1.36 41.65,-17.59 18.7,-41.16 18.7,-41.16S382.23,452.82 365.56,469.05Z"
android:fillColor="#00bfa6"/>
<path
android:pathData="M615.83,336.56L596.09,336.56L596.09,316.82L615.83,316.82ZM597.61,335.04h16.7v-16.7L597.61,318.34Z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M97.47,458.64 L84.01,444.21l14.44,-13.47L111.91,445.18ZM86.15,444.28 L97.55,456.5L109.76,445.1l-11.39,-12.22Z"
android:fillColor="#2f2e41"/>
<path
android:pathData="M108.14,137.96m-10.08,0a10.08,10.08 0,1 1,20.16 0a10.08,10.08 0,1 1,-20.16 0"
android:fillColor="#3f3d56"/>
<path
android:pathData="M108.14,167.07a29.12,29.12 0,1 1,29.12 -29.12A29.15,29.15 0,0 1,108.14 167.07ZM108.14,111.08a26.88,26.88 0,1 0,26.88 26.88A26.91,26.91 0,0 0,108.14 111.08Z"
android:fillColor="#2f2e41"/>
<path
android:pathData="M0,617.31h1039.83v2h-1039.83z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M275.83,207h232v113h-232z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M390.98,245.74h2v74.41h-2z"
android:fillColor="#fff"/>
<path
android:pathData="M391.98,246.74m-10.52,0a10.52,10.52 0,1 1,21.05 0a10.52,10.52 0,1 1,-21.05 0"
android:fillColor="#00bfa6"/>
<path
android:pathData="M391.98,291.6S390.47,259.27 359.66,263.03"
android:fillColor="#fff"/>
<path
android:pathData="M714.03,514.4l-128.69,40.26L425.25,453.64l-0.01,-0.01 -0.52,-0.32 -0.09,-0.06 -1.27,-0.8L408.12,442.86c0.03,-0.26 0.06,-0.51 0.12,-0.75a6.9,6.9 0,0 1,1.57 -3.2,7.7 7.7,0 0,1 0.91,-0.91h0.01c0.14,-0.12 0.29,-0.24 0.45,-0.36q0.24,-0.18 0.5,-0.35c2.95,-1.98 7.39,-2.82 12.02,-3.07a57.22,57.22 0,0 1,28.85 6.25c18,9.1 56.67,27.01 62.71,16.04 7.91,-14.38 -81.96,-174.7 -81.96,-174.7 -7.4,-19.02 -1.98,-25.23 1.41,-27.18 0.1,-0.06 0.2,-0.12 0.29,-0.17a8.37,8.37 0,0 1,1.11 -0.47,5.15 5.15,0 0,1 0.61,-0.18 1.39,1.39 0,0 1,0.17 -0.04l11.92,15.85 0.18,0.24 0.64,0.86 0.19,0.26L522.07,367.01c110.72,-59.67 148.82,99.93 148.82,99.93Z"
android:fillColor="#fbbebe"/>
<path
android:pathData="M449.81,270.97a3.13,3.13 0,0 1,-2.9 1.76,4.59 4.59,0 0,1 -1.18,-0.16c-2.67,-0.72 -5.77,-3.65 -8.09,-7.66 -2.26,-3.91 -3.18,-7.84 -2.66,-10.45a8.37,8.37 0,0 1,1.11 -0.47,5.15 5.15,0 0,1 0.61,-0.18c-0.93,1.82 -0.37,5.95 2.19,10.39 2.09,3.63 4.92,6.38 7.2,6.98a1.96,1.96 0,0 0,2.7 -1.56l0.18,0.24 0.64,0.86Z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M424.72,453.31l-0.09,-0.06 -1.27,-0.8c0.01,-2.05 -1.55,-5.41 -4.98,-8.78 -2.9,-2.83 -6.26,-4.68 -8.58,-4.77a7.7,7.7 0,0 1,0.91 -0.91h0.01c0.14,-0.12 0.29,-0.24 0.45,-0.36a18.75,18.75 0,0 1,8.22 5C423.16,446.35 425.23,450.57 424.72,453.31Z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M947.74,453.19c28.25,85.03 18.33,164.86 18.33,164.86s-55.73,-58.02 -83.98,-143.04 -18.33,-164.86 -18.33,-164.86S919.49,368.16 947.74,453.19Z"
android:fillColor="#00bfa6"/>
<path
android:pathData="M984.4,453.19c-28.25,85.03 -18.33,164.86 -18.33,164.86s55.73,-58.02 83.98,-143.04 18.33,-164.86 18.33,-164.86S1012.65,368.16 984.4,453.19Z"
android:fillColor="#00bfa6"/>
<path
android:pathData="M995.78,454.11c1.89,89.58 -31.15,162.92 -31.15,162.92s-36.12,-71.88 -38.01,-161.46 31.15,-162.92 31.15,-162.92S993.88,364.53 995.78,454.11Z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M961.2,374.94m-8.77,0a8.77,8.77 0,1 1,17.54 0a8.77,8.77 0,1 1,-17.54 0"
android:fillColor="#00bfa6"/>
<path
android:pathData="M944.15,445.1m-4.87,0a4.87,4.87 0,1 1,9.74 0a4.87,4.87 0,1 1,-9.74 0"
android:fillColor="#00bfa6"/>
<path
android:pathData="M884.71,396.87m-4.87,0a4.87,4.87 0,1 1,9.74 0a4.87,4.87 0,1 1,-9.74 0"
android:fillColor="#3f3d56"/>
<path
android:pathData="M1056.68,349.61m-4.87,0a4.87,4.87 0,1 1,9.74 0a4.87,4.87 0,1 1,-9.74 0"
android:fillColor="#3f3d56"/>
<path
android:pathData="M910.04,442.66m-4.87,0a4.87,4.87 0,1 1,9.74 0a4.87,4.87 0,1 1,-9.74 0"
android:fillColor="#3f3d56"/>
<path
android:pathData="M1012.35,414.4m-4.87,0a4.87,4.87 0,1 1,9.74 0a4.87,4.87 0,1 1,-9.74 0"
android:fillColor="#3f3d56"/>
<path
android:pathData="M912.97,514.27m-4.87,0a4.87,4.87 0,1 1,9.74 0a4.87,4.87 0,1 1,-9.74 0"
android:fillColor="#3f3d56"/>
<path
android:pathData="M1017.22,486.51m-4.87,0a4.87,4.87 0,1 1,9.74 0a4.87,4.87 0,1 1,-9.74 0"
android:fillColor="#3f3d56"/>
<path
android:pathData="M969.97,491.38m-4.87,0a4.87,4.87 0,1 1,9.74 0a4.87,4.87 0,1 1,-9.74 0"
android:fillColor="#00bfa6"/>
</vector>
156 changes: 156 additions & 0 deletions app/src/main/res/drawable/bg_agenda2.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="1075.03dp"
android:height="766.35645dp"
android:viewportWidth="1075.03"
android:viewportHeight="766.35645">
<path
android:pathData="M829.03,736.36a123,30 0,1 0,246 0a123,30 0,1 0,-246 0z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M521.34,102.9L521.34,499.91a17.84,17.84 0,0 1,-17.84 17.83L342.32,517.74a17.81,17.81 0,0 1,-17.84 -17.83L324.48,102.9A17.84,17.84 0,0 1,342.32 85.06h24.12v3.1a14.69,14.69 0,0 0,14.69 14.69h81.97A14.69,14.69 0,0 0,477.79 88.15L477.79,85.06h25.71A17.83,17.83 0,0 1,521.34 102.9Z"
android:fillColor="#00bfa6"/>
<path
android:pathData="M331.56,151.41h182.72v89h-182.72z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M405.13,212.52c4.78,17.68 21.17,28.63 21.17,28.63s8.63,-17.72 3.85,-35.4 -21.17,-28.63 -21.17,-28.63S400.35,194.84 405.13,212.52Z"
android:fillColor="#fff"/>
<path
android:pathData="M412.16,208.72c13.12,12.78 14.73,32.42 14.73,32.42s-19.68,-1.07 -32.8,-13.85S379.36,194.87 379.36,194.87 399.03,195.94 412.16,208.72Z"
android:fillColor="#00bfa6"/>
<path
android:pathData="M448.64,212.52c-4.78,17.68 -21.17,28.63 -21.17,28.63s-8.63,-17.72 -3.85,-35.4 21.17,-28.63 21.17,-28.63S453.42,194.84 448.64,212.52Z"
android:fillColor="#fff"/>
<path
android:pathData="M441.61,208.72c-13.12,12.78 -14.73,32.42 -14.73,32.42s19.68,-1.07 32.8,-13.85S474.41,194.87 474.41,194.87 454.74,195.94 441.61,208.72Z"
android:fillColor="#00bfa6"/>
<path
android:pathData="M347.9,290.25h150.03v8.24h-150.03z"
android:fillColor="#f0f0f0"/>
<path
android:pathData="M347.9,303.51h150.03v8.24h-150.03z"
android:fillColor="#f0f0f0"/>
<path
android:pathData="M347.9,316.78h150.03v8.24h-150.03z"
android:fillColor="#f0f0f0"/>
<path
android:pathData="M347.9,330.05h150.03v8.24h-150.03z"
android:fillColor="#f0f0f0"/>
<path
android:pathData="M418.06,377.32l33.39,23.71l-23.71,33.39l-33.39,-23.71z"
android:fillColor="#f0f0f0"/>
<path
android:pathData="M427.45,443.03A9.45,9.45 0,1 1,436.9 433.58,9.46 9.46,0 0,1 427.45,443.03ZM427.45,425.7A7.88,7.88 0,1 0,435.33 433.58,7.88 7.88,0 0,0 427.45,425.7Z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M196.85,17.84L196.85,414.85a17.84,17.84 0,0 1,-17.84 17.83L17.84,432.68A17.81,17.81 0,0 1,-0 414.85L-0,17.84A17.84,17.84 0,0 1,17.84 0h24.12L41.96,3.1a14.69,14.69 0,0 0,14.69 14.69h81.97A14.69,14.69 0,0 0,153.31 3.1L153.31,0h25.71A17.83,17.83 0,0 1,196.85 17.84Z"
android:fillColor="#f2f2f2"/>
<path
android:pathData="M176.41,216.78L18.89,216.78L18.89,75.8L176.41,75.8ZM20.47,215.21L174.83,215.21L174.83,77.38L20.47,77.38Z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M19.16,77.18l1.05,-1.17l155.94,139.4l-1.05,1.17z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M19.16,215.4l155.94,-139.4l1.05,1.17l-155.94,139.4z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M19.68,257.73h155.94v1.58h-155.94z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M19.68,271.91h155.94v1.58h-155.94z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M19.68,286.09h155.94v1.58h-155.94z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M19.68,300.26h77.97v1.58h-77.97z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M19.68,314.44h77.97v1.58h-77.97z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M845.03,17.84L845.03,414.85a17.84,17.84 0,0 1,-17.84 17.83L666.01,432.68a17.81,17.81 0,0 1,-17.84 -17.83L648.18,17.84a17.84,17.84 0,0 1,17.84 -17.84h24.12L690.14,3.1a14.69,14.69 0,0 0,14.69 14.69h81.97A14.69,14.69 0,0 0,801.48 3.1L801.48,0h25.71A17.83,17.83 0,0 1,845.03 17.84Z"
android:fillColor="#f2f2f2"/>
<path
android:pathData="M669.43,203.39h155.94v1.58h-155.94z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M669.43,244.35h155.94v1.58h-155.94z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M669.43,285.3h155.94v1.58h-155.94z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M743.24,118m-25.6,0a25.6,25.6 0,1 1,51.2 0a25.6,25.6 0,1 1,-51.2 0"
android:fillColor="#00bfa6"/>
<path
android:pathData="M785.99,196.3h11.03v25.2h-11.03z"
android:fillColor="#00bfa6"/>
<path
android:pathData="M689.12,236.47h11.03v25.2h-11.03z"
android:fillColor="#00bfa6"/>
<path
android:pathData="M753.7,276.64h11.03v25.2h-11.03z"
android:fillColor="#00bfa6"/>
<path
android:pathData="M746.6,146.69a31.5,31.5 0,1 1,31.5 -31.5A31.54,31.54 0,0 1,746.6 146.69ZM746.6,85.26a29.93,29.93 0,1 0,29.93 29.93A29.96,29.96 0,0 0,746.6 85.26Z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M216.59,209.54l1.54,-1.27l63.2,76.54l-1.54,1.27z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M288.24,294.75c-5.24,-3.04 -12.5,-6.18 -18.22,-7.13l9.53,-3.4L284.69,275.51C284.54,281.31 286.25,289.03 288.24,294.75Z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M562.94,284.81l63.18,-76.55l1.54,1.27l-63.18,76.55z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M556.02,294.75c1.99,-5.72 3.71,-13.44 3.55,-19.24l5.14,8.71 9.52,3.4C568.52,288.57 561.26,291.71 556.02,294.75Z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M1016.53,377.86s0,146 -23,199l-53,119s-34,-2 -36,-16l40,-124 24,-73 6,-114Z"
android:fillColor="#2f2e41"/>
<path
android:pathData="M983.53,381.86l-9,61 6,134 3,74s12,33 8,36l-8,6s-32,-4 -33,-6 -20,-153 -20,-153 -39,-122 -37,-124 11,-32 11,-32Z"
android:fillColor="#2f2e41"/>
<path
android:pathData="M990.53,682.86l4,23s11,47 0,47 -31,-13 -32,-21 2,-44 2,-44Z"
android:fillColor="#2f2e41"/>
<path
android:pathData="M939.53,690.86s8,16 13,18 27.77,15.08 14.39,23.54 -27.39,0.46 -27.39,0.46l-46,-25s6,-25 15,-27S939.53,690.86 939.53,690.86Z"
android:fillColor="#2f2e41"/>
<path
android:pathData="M929.53,120.86m-36,0a36,36 0,1 1,72 0a36,36 0,1 1,-72 0"
android:fillColor="#ffb8b8"/>
<path
android:pathData="M959.53,123.86s7,46 14,52 -15,27 -25,26 -21,-23 -21,-23 3,-29 -2,-37S959.53,123.86 959.53,123.86Z"
android:fillColor="#ffb8b8"/>
<path
android:pathData="M951.53,182.86 L968.51,167.18a64.29,64.29 0,0 0,20.01 16.68c13,7 -25,79 -25,79l-61,-76s19.4,-12.9 25.7,-17.95Z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M961.53,243.86s26.8,-46.72 23.9,-61.86c0,0 39.1,9.86 41.1,22.86s-19,60 -19,60 17,119 7,120 -110,2 -112,-3 2,-20 -4,-25 -13,-2 -10,-10 16,-18 12,-24 -5,-4 -4,-8 -2,-57 -2,-57 -21,-58 -16,-62 31.23,-13.86 31.23,-13.86Z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M1041.53,399.86s-3,40 -20,38 3,-45 3,-45Z"
android:fillColor="#ffb8b8"/>
<path
android:pathData="M892.53,398.86s6,24 13,22v-28l-3,-5Z"
android:fillColor="#ffb8b8"/>
<path
android:pathData="M958.89,126.04a6.22,6.22 0,0 0,-1.03 -2.89,4.69 4.69,0 0,0 -2.19,-1.39 9.83,9.83 0,0 0,-11.72 5.02c-0.92,2.01 -1.37,4.61 -3.39,5.5 -2.35,1.04 -4.97,-1.18 -5.89,-3.58s-0.95,-5.13 -2.18,-7.39c-1.46,-2.68 -4.42,-4.26 -7.4,-4.89 -2.47,-0.52 -5.5,-0.8 -6.62,-3.07a6.08,6.08 0,0 1,-0.45 -2.74,28.96 28.96,0 0,1 1.79,-9.79c-9.8,-1.96 -18.51,7.6 -28.5,7.76a7.53,7.53 0,0 1,-3.68 -0.72c-2.22,-1.18 -3.18,-3.81 -3.85,-6.23q-1.06,-3.86 -1.75,-7.81L885.23,95.28a12.55,12.55 0,0 1,-1.43 -5.51,13.19 13.19,0 0,1 4.92,0.42l0.23,-5.73c2.47,3.13 7.4,2.03 11.12,0.58 7.18,-2.8 14.32,-5.83 21.85,-7.45s15.61,-1.73 22.73,1.2c7.49,3.08 13.26,9.22 18.34,15.52 2.82,3.49 5.54,7.16 7.06,11.39a27.6,27.6 0,0 1,-0.06 17.6c-1.64,5.13 -4.69,11.34 -8.79,14.9C959.77,134.56 959.57,129.92 958.89,126.04Z"
android:fillColor="#2f2e41"/>
<path
android:pathData="M890.53,192.86l-13,3s-15,16 -16,31 -1,90 -1,90l19,62s-2,14 0,14 3,-3 3,1 -5,0 0,4l10,8 16.71,-22.16s1.29,-8.84 -1.71,-10.84 -3,-3 -2,-6 3,-4 2,-6 -4,-5 -4,-7 0,-4 -1,-5 -8,-25 -8,-25l4,-78Z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M1016.53,197.86l10,5s16,48 16,90 3,70 3,70 5,12 3,12 -4,0 -2,3 3,2 2,5 -2,-2 -1,3 0,7 -2,7 -2,13 -2,13l-24,-9s4,-5 3,-7a9.97,9.97 0,0 1,-1 -4s5,-1 0,-3 -3,-2 -2,-8 4,-5 1,-6 -21,-94 -21,-94Z"
android:fillColor="#3f3d56"/>
<path
android:pathData="M951.51,183.18m-3,0a3,3 0,1 1,6 0a3,3 0,1 1,-6 0"
android:fillColor="#2f2e41"/>
<path
android:pathData="M951.51,193.18m-3,0a3,3 0,1 1,6 0a3,3 0,1 1,-6 0"
android:fillColor="#2f2e41"/>
</vector>
Loading

0 comments on commit 516dc44

Please sign in to comment.