From 11d2215e378fafcc34e9700976bc6783981a5472 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 17 Nov 2016 19:44:23 +0100 Subject: [PATCH] move Utils to kotlin + some cleanup --- .../com/simplemobiletools/calendar/Utils.java | 85 ------------------- .../calendar/MonthlyCalendarImpl.kt | 6 +- .../calendar/activities/DayActivity.kt | 10 ++- .../calendar/activities/EventActivity.kt | 24 +++--- .../calendar/activities/MainActivity.kt | 22 ++--- .../calendar/activities/SimpleActivity.kt | 8 +- .../activities/WidgetConfigureActivity.kt | 2 +- .../calendar/adapters/EventsAdapter.kt | 14 +-- .../calendar/adapters/MyDayPagerAdapter.kt | 4 +- .../calendar/adapters/MyYearPagerAdapter.kt | 6 +- .../calendar/extensions/Context.kt | 62 +++++++++++++- .../calendar/extensions/EditText.kt | 2 +- .../calendar/fragments/DayFragment.kt | 1 + .../calendar/fragments/MonthFragment.kt | 3 +- .../calendar/fragments/YearFragment.kt | 1 + .../calendar/helpers/MyWidgetProvider.kt | 4 +- .../calendar/helpers/Utils.kt | 18 ++++ .../receivers/BootCompletedReceiver.kt | 4 +- .../receivers/NotificationReceiver.kt | 8 +- .../calendar/views/SmallMonthView.kt | 2 +- 20 files changed, 134 insertions(+), 152 deletions(-) delete mode 100644 app/src/main/java/com/simplemobiletools/calendar/Utils.java create mode 100644 app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Utils.kt diff --git a/app/src/main/java/com/simplemobiletools/calendar/Utils.java b/app/src/main/java/com/simplemobiletools/calendar/Utils.java deleted file mode 100644 index 7e5fb71fd..000000000 --- a/app/src/main/java/com/simplemobiletools/calendar/Utils.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.simplemobiletools.calendar; - -import android.app.AlarmManager; -import android.app.PendingIntent; -import android.content.Context; -import android.content.Intent; -import android.graphics.Color; -import android.os.SystemClock; -import android.widget.Toast; - -import com.simplemobiletools.calendar.helpers.Formatter; -import com.simplemobiletools.calendar.models.Event; -import com.simplemobiletools.calendar.receivers.NotificationReceiver; - -import org.joda.time.DateTime; - -public class Utils { - - public static int adjustAlpha(int color, float factor) { - final int alpha = Math.round(Color.alpha(color) * factor); - final int red = Color.red(color); - final int green = Color.green(color); - final int blue = Color.blue(color); - return Color.argb(alpha, red, green, blue); - } - - public static void showToast(Context context, int resId) { - Toast.makeText(context, context.getResources().getString(resId), Toast.LENGTH_SHORT).show(); - } - - public static void scheduleNextEvent(Context context, Event event) { - int startTS = event.getStartTS() - event.getReminderMinutes() * 60; - int newTS = startTS; - if (event.getRepeatInterval() == Constants.DAY || event.getRepeatInterval() == Constants.WEEK || event.getRepeatInterval() == Constants.BIWEEK) { - while (startTS < System.currentTimeMillis() / 1000 + 5) { - startTS += event.getRepeatInterval(); - } - newTS = startTS; - } else if (event.getRepeatInterval() == Constants.MONTH) { - newTS = getNewTS(startTS, true); - } else if (event.getRepeatInterval() == Constants.YEAR) { - newTS = getNewTS(startTS, false); - } - - if (newTS != 0) - Utils.scheduleEventIn(context, newTS, event); - } - - private static int getNewTS(int ts, boolean isMonthly) { - DateTime dateTime = Formatter.INSTANCE.getDateTimeFromTS(ts); - while (dateTime.isBeforeNow()) { - dateTime = isMonthly ? dateTime.plusMonths(1) : dateTime.plusYears(1); - } - return (int) (dateTime.getMillis() / 1000); - } - - public static void scheduleNotification(Context context, Event event) { - if (event.getReminderMinutes() == -1) - return; - - scheduleNextEvent(context, event); - } - - private static void scheduleEventIn(Context context, int notifTS, Event event) { - final long delayFromNow = (long) notifTS * 1000 - System.currentTimeMillis(); - if (delayFromNow < 0) - return; - - final long notifInMs = SystemClock.elapsedRealtime() + delayFromNow; - final PendingIntent pendingIntent = getNotificationIntent(context, event.getId()); - final AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); - alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, notifInMs, pendingIntent); - } - - private static PendingIntent getNotificationIntent(Context context, int eventId) { - final Intent intent = new Intent(context, NotificationReceiver.class); - intent.putExtra(NotificationReceiver.Companion.getEVENT_ID(), eventId); - return PendingIntent.getBroadcast(context, eventId, intent, PendingIntent.FLAG_UPDATE_CURRENT); - } - - public static int[] getLetterIDs() { - return new int[]{R.string.sunday_letter, R.string.monday_letter, R.string.tuesday_letter, R.string.wednesday_letter, - R.string.thursday_letter, R.string.friday_letter, R.string.saturday_letter}; - } -} diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/MonthlyCalendarImpl.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/MonthlyCalendarImpl.kt index 20a37e14b..13c8eec78 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/MonthlyCalendarImpl.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/MonthlyCalendarImpl.kt @@ -98,11 +98,7 @@ class MonthlyCalendarImpl(val mCallback: MonthlyCalendar, val mContext: Context) } } - for (day in days) { - if (eventCodes.contains(day.code)) { - day.hasEvent = true - } - } + days.filter { eventCodes.contains(it.code) }.forEach { it.hasEvent = true } } private fun isToday(targetDate: DateTime, curDayInMonth: Int): Boolean { diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/DayActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/DayActivity.kt index 68c6197cd..9def7a105 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/DayActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/DayActivity.kt @@ -7,10 +7,10 @@ import android.support.design.widget.Snackbar import android.support.v4.view.ViewPager import android.view.View import com.simplemobiletools.calendar.Constants -import com.simplemobiletools.calendar.helpers.Formatter import com.simplemobiletools.calendar.R import com.simplemobiletools.calendar.adapters.MyDayPagerAdapter import com.simplemobiletools.calendar.fragments.DayFragment +import com.simplemobiletools.calendar.helpers.Formatter import kotlinx.android.synthetic.main.activity_day.* import org.joda.time.DateTime import java.util.* @@ -119,8 +119,10 @@ class DayActivity : SimpleActivity(), DayFragment.DeleteListener, ViewPager.OnPa override fun notifyDeletion(cnt: Int) { val msg = resources.getQuantityString(R.plurals.events_deleted, cnt, cnt) mSnackbar = Snackbar.make(day_coordinator, msg, Snackbar.LENGTH_INDEFINITE) - mSnackbar!!.setAction(resources.getString(R.string.undo), undoDeletion) - mSnackbar!!.setActionTextColor(Color.WHITE) - mSnackbar!!.show() + mSnackbar!!.apply { + setAction(resources.getString(R.string.undo), undoDeletion) + setActionTextColor(Color.WHITE) + show() + } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/EventActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/EventActivity.kt index 110846fae..802ac56c6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/EventActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/EventActivity.kt @@ -9,7 +9,8 @@ import android.view.Menu import android.view.MenuItem import android.view.View import android.widget.AdapterView -import com.simplemobiletools.calendar.* +import com.simplemobiletools.calendar.Constants +import com.simplemobiletools.calendar.R import com.simplemobiletools.calendar.extensions.* import com.simplemobiletools.calendar.fragments.DayFragment import com.simplemobiletools.calendar.helpers.DBHelper @@ -217,16 +218,17 @@ class EventActivity : SimpleActivity(), DBHelper.EventsListener { } private fun deleteEvent() { - val intent = Intent() - intent.putExtra(DayFragment.DELETED_ID, mEvent.id) - setResult(Activity.RESULT_OK, intent) + Intent().apply { + putExtra(DayFragment.DELETED_ID, mEvent.id) + setResult(Activity.RESULT_OK, this) + } finish() } private fun saveEvent() { val newTitle = event_title.value if (newTitle.isEmpty()) { - Utils.showToast(applicationContext, R.string.title_empty) + toast(R.string.title_empty) event_title.requestFocus() return } @@ -235,7 +237,7 @@ class EventActivity : SimpleActivity(), DBHelper.EventsListener { val newEndTS = (mEventEndDateTime.millis / 1000).toInt() if (event_end_checkbox.isChecked && newStartTS > newEndTS) { - Utils.showToast(applicationContext, R.string.end_before_start) + toast(R.string.end_before_start) return } @@ -360,18 +362,18 @@ class EventActivity : SimpleActivity(), DBHelper.EventsListener { override fun eventInserted(event: Event) { if (DateTime.now().isAfter(mEventStartDateTime.millis)) { - Utils.showToast(applicationContext, R.string.past_event_added) + toast(R.string.past_event_added) } else { - Utils.showToast(applicationContext, R.string.event_added) + toast(R.string.event_added) } - Utils.scheduleNotification(applicationContext, event) + scheduleNotification(event) updateWidget() finish() } override fun eventUpdated(event: Event) { - Utils.scheduleNotification(applicationContext, event) - Utils.showToast(applicationContext, R.string.event_updated) + scheduleNotification(event) + toast(R.string.event_updated) updateWidget() finish() } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt index e38a8b7d2..a13795d68 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/MainActivity.kt @@ -9,12 +9,12 @@ import android.view.Menu import android.view.MenuItem import android.view.View import com.simplemobiletools.calendar.Constants -import com.simplemobiletools.calendar.helpers.Formatter import com.simplemobiletools.calendar.R import com.simplemobiletools.calendar.adapters.MyMonthPagerAdapter import com.simplemobiletools.calendar.adapters.MyYearPagerAdapter import com.simplemobiletools.calendar.extensions.updateWidget import com.simplemobiletools.calendar.fragments.EventListFragment +import com.simplemobiletools.calendar.helpers.Formatter import com.simplemobiletools.calendar.views.dialogs.ChangeViewDialog import kotlinx.android.synthetic.main.activity_main.* import org.joda.time.DateTime @@ -222,14 +222,16 @@ class MainActivity : SimpleActivity(), EventListFragment.DeleteListener, ChangeV override fun notifyDeletion(cnt: Int) { val msg = resources.getQuantityString(R.plurals.events_deleted, cnt, cnt) mSnackbar = Snackbar.make(calendar_coordinator, msg, Snackbar.LENGTH_LONG) - mSnackbar!!.setCallback(object: Snackbar.Callback() { - override fun onDismissed(snackbar: Snackbar?, event: Int) { - super.onDismissed(snackbar, event) - mEventListFragment?.deleteEvents() - } - }) - mSnackbar!!.setAction(resources.getString(R.string.undo), undoDeletion) - mSnackbar!!.setActionTextColor(Color.WHITE) - mSnackbar!!.show() + mSnackbar!!.apply { + setCallback(object : Snackbar.Callback() { + override fun onDismissed(snackbar: Snackbar?, event: Int) { + super.onDismissed(snackbar, event) + mEventListFragment?.deleteEvents() + } + }) + setAction(resources.getString(R.string.undo), undoDeletion) + setActionTextColor(Color.WHITE) + show() + } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/SimpleActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/SimpleActivity.kt index eecf61a1f..9d76c0bbe 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/SimpleActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/SimpleActivity.kt @@ -3,8 +3,8 @@ package com.simplemobiletools.calendar.activities import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.view.MenuItem -import com.simplemobiletools.calendar.helpers.Config import com.simplemobiletools.calendar.R +import com.simplemobiletools.calendar.helpers.Config open class SimpleActivity : AppCompatActivity() { lateinit var mConfig: Config @@ -16,12 +16,12 @@ open class SimpleActivity : AppCompatActivity() { } override fun onOptionsItemSelected(item: MenuItem): Boolean { - when (item.itemId) { + return when (item.itemId) { android.R.id.home -> { finish() - return true + true } - else -> return super.onOptionsItemSelected(item) + else -> super.onOptionsItemSelected(item) } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/WidgetConfigureActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/WidgetConfigureActivity.kt index 1ecc57b74..f21d450c2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/WidgetConfigureActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/WidgetConfigureActivity.kt @@ -15,9 +15,9 @@ import android.widget.TextView import com.simplemobiletools.calendar.Constants import com.simplemobiletools.calendar.MonthlyCalendarImpl import com.simplemobiletools.calendar.R -import com.simplemobiletools.calendar.Utils import com.simplemobiletools.calendar.helpers.Config import com.simplemobiletools.calendar.helpers.MyWidgetProvider +import com.simplemobiletools.calendar.helpers.Utils import com.simplemobiletools.calendar.interfaces.MonthlyCalendar import com.simplemobiletools.calendar.models.Day import kotlinx.android.synthetic.main.first_row.* diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/EventsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/EventsAdapter.kt index 434920cce..f5c13ef9b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/EventsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/EventsAdapter.kt @@ -5,8 +5,8 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.BaseAdapter -import com.simplemobiletools.calendar.helpers.Formatter import com.simplemobiletools.calendar.R +import com.simplemobiletools.calendar.helpers.Formatter import com.simplemobiletools.calendar.models.Event import kotlinx.android.synthetic.main.event_item.view.* @@ -45,17 +45,11 @@ class EventsAdapter(context: Context, private val mEvents: List) : BaseAd return view } - override fun getCount(): Int { - return mEvents.size - } + override fun getCount() = mEvents.size - override fun getItem(position: Int): Any { - return mEvents[position] - } + override fun getItem(position: Int) = mEvents[position] - override fun getItemId(position: Int): Long { - return 0 - } + override fun getItemId(position: Int) = 0L class ViewHolder(view: View) { val title = view.event_item_title diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/MyDayPagerAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/MyDayPagerAdapter.kt index 404a55060..d680cf815 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/MyDayPagerAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/MyDayPagerAdapter.kt @@ -16,9 +16,7 @@ class MyDayPagerAdapter(fm: FragmentManager, private val mCodes: List, p fragments = SparseArray(10) } - override fun getCount(): Int { - return mCodes.size - } + override fun getCount() = mCodes.size override fun getItem(position: Int): Fragment { val bundle = Bundle() diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/MyYearPagerAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/MyYearPagerAdapter.kt index 350878e73..87d45675f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/MyYearPagerAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/adapters/MyYearPagerAdapter.kt @@ -5,14 +5,12 @@ import android.support.v4.app.Fragment import android.support.v4.app.FragmentManager import android.support.v4.app.FragmentStatePagerAdapter import com.simplemobiletools.calendar.Constants -import com.simplemobiletools.calendar.interfaces.NavigationListener import com.simplemobiletools.calendar.fragments.YearFragment +import com.simplemobiletools.calendar.interfaces.NavigationListener class MyYearPagerAdapter(fm: FragmentManager, private val mYears: List, private val mListener: NavigationListener) : FragmentStatePagerAdapter(fm) { - override fun getCount(): Int { - return mYears.size - } + override fun getCount() = mYears.size override fun getItem(position: Int): Fragment { val bundle = Bundle() diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Context.kt index 396dcaaeb..15e204fc3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Context.kt @@ -1,16 +1,23 @@ package com.simplemobiletools.calendar.extensions +import android.app.AlarmManager +import android.app.PendingIntent import android.appwidget.AppWidgetManager import android.content.ComponentName import android.content.Context import android.content.Intent +import android.os.SystemClock import android.widget.Toast -import com.simplemobiletools.calendar.helpers.MyWidgetProvider +import com.simplemobiletools.calendar.Constants import com.simplemobiletools.calendar.R +import com.simplemobiletools.calendar.helpers.Formatter +import com.simplemobiletools.calendar.helpers.MyWidgetProvider +import com.simplemobiletools.calendar.models.Event +import com.simplemobiletools.calendar.receivers.NotificationReceiver fun Context.updateWidget() { val widgetsCnt = AppWidgetManager.getInstance(this).getAppWidgetIds(ComponentName(this, MyWidgetProvider::class.java)) - if (widgetsCnt.size == 0) + if (widgetsCnt.isEmpty()) return val intent = Intent(this, MyWidgetProvider::class.java) @@ -22,4 +29,53 @@ fun Context.updateWidget() { fun Context.toast(id: Int) = Toast.makeText(this, resources.getString(id), Toast.LENGTH_SHORT).show() -fun Context.toast(message: String) = Toast.makeText(this, message, Toast.LENGTH_SHORT).show() +fun Context.scheduleNextEvent(event: Event) { + var startTS = event.startTS - event.reminderMinutes * 60 + var newTS = startTS + if (event.repeatInterval == Constants.DAY || event.repeatInterval == Constants.WEEK || event.repeatInterval == Constants.BIWEEK) { + while (startTS < System.currentTimeMillis() / 1000 + 5) { + startTS += event.repeatInterval + } + newTS = startTS + } else if (event.repeatInterval == Constants.MONTH) { + newTS = getNewTS(startTS, true) + } else if (event.repeatInterval == Constants.YEAR) { + newTS = getNewTS(startTS, false) + } + + if (newTS != 0) + scheduleEventIn(newTS, event) +} + +private fun getNewTS(ts: Int, isMonthly: Boolean): Int { + var dateTime = Formatter.getDateTimeFromTS(ts) + while (dateTime.isBeforeNow) { + dateTime = if (isMonthly) dateTime.plusMonths(1) else dateTime.plusYears(1) + } + return (dateTime.millis / 1000).toInt() +} + + +fun Context.scheduleNotification(event: Event) { + if (event.reminderMinutes == -1) + return + + scheduleNextEvent(event) +} + +fun Context.scheduleEventIn(notifTS: Int, event: Event) { + val delayFromNow = notifTS.toLong() * 1000 - System.currentTimeMillis() + if (delayFromNow < 0) + return + + val notifInMs = SystemClock.elapsedRealtime() + delayFromNow + val pendingIntent = getNotificationIntent(this, event.id) + val alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager + alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, notifInMs, pendingIntent) +} + +private fun getNotificationIntent(context: Context, eventId: Int): PendingIntent { + val intent = Intent(context, NotificationReceiver::class.java) + intent.putExtra(NotificationReceiver.EVENT_ID, eventId) + return PendingIntent.getBroadcast(context, eventId, intent, PendingIntent.FLAG_UPDATE_CURRENT) +} diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/EditText.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/EditText.kt index 4ddc19f12..b2f7b51ca 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/EditText.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/EditText.kt @@ -2,4 +2,4 @@ package com.simplemobiletools.calendar.extensions import android.widget.EditText -val EditText.value: String get() = this.text.toString().trim() +val EditText.value: String get() = text.toString().trim() diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/DayFragment.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/DayFragment.kt index 327f34c15..375e9d071 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/DayFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/DayFragment.kt @@ -20,6 +20,7 @@ import com.simplemobiletools.calendar.adapters.EventsAdapter import com.simplemobiletools.calendar.extensions.updateWidget import com.simplemobiletools.calendar.helpers.Config import com.simplemobiletools.calendar.helpers.DBHelper +import com.simplemobiletools.calendar.helpers.Utils import com.simplemobiletools.calendar.interfaces.NavigationListener import com.simplemobiletools.calendar.models.Event import kotlinx.android.synthetic.main.day_fragment.view.* diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/MonthFragment.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/MonthFragment.kt index 9fa320b3c..074e88a09 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/MonthFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/MonthFragment.kt @@ -16,6 +16,7 @@ import com.simplemobiletools.calendar.activities.DayActivity import com.simplemobiletools.calendar.extensions.beVisibleIf import com.simplemobiletools.calendar.helpers.Config import com.simplemobiletools.calendar.helpers.Formatter +import com.simplemobiletools.calendar.helpers.Utils import com.simplemobiletools.calendar.interfaces.MonthlyCalendar import com.simplemobiletools.calendar.interfaces.NavigationListener import com.simplemobiletools.calendar.models.Day @@ -149,7 +150,7 @@ class MonthFragment : Fragment(), MonthlyCalendar { } private fun setupLabels() { - val letters = Utils.getLetterIDs() + val letters = Utils.letterIDs for (i in 0..6) { val dayTV = mHolder.findViewById(mRes.getIdentifier("label_" + i, "id", mPackageName)) as TextView diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/YearFragment.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/YearFragment.kt index 4693cd17a..531f15370 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/YearFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/YearFragment.kt @@ -10,6 +10,7 @@ import android.view.ViewGroup import android.widget.TextView import com.simplemobiletools.calendar.* import com.simplemobiletools.calendar.helpers.Config +import com.simplemobiletools.calendar.helpers.Utils import com.simplemobiletools.calendar.interfaces.NavigationListener import com.simplemobiletools.calendar.interfaces.YearlyCalendar import com.simplemobiletools.calendar.views.SmallMonthView diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/MyWidgetProvider.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/MyWidgetProvider.kt index 5fde21aa0..a7e4291ed 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/MyWidgetProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/MyWidgetProvider.kt @@ -16,7 +16,7 @@ import android.widget.RemoteViews import com.simplemobiletools.calendar.Constants import com.simplemobiletools.calendar.MonthlyCalendarImpl import com.simplemobiletools.calendar.R -import com.simplemobiletools.calendar.Utils +import com.simplemobiletools.calendar.helpers.Utils import com.simplemobiletools.calendar.activities.DayActivity import com.simplemobiletools.calendar.activities.MainActivity import com.simplemobiletools.calendar.interfaces.MonthlyCalendar @@ -183,7 +183,7 @@ class MyWidgetProvider : AppWidgetProvider(), MonthlyCalendar { private fun updateLabelColor() { val mSundayFirst = Config.newInstance(mContext).isSundayFirst val packageName = mContext.packageName - val letters = Utils.getLetterIDs() + val letters = Utils.letterIDs for (i in 0..6) { val id = mRes.getIdentifier("label_" + i, "id", packageName) mRemoteViews.setInt(id, "setTextColor", mTextColor) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Utils.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Utils.kt new file mode 100644 index 000000000..0a005055c --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Utils.kt @@ -0,0 +1,18 @@ +package com.simplemobiletools.calendar.helpers + +import android.graphics.Color +import com.simplemobiletools.calendar.R + +object Utils { + fun adjustAlpha(color: Int, factor: Float): Int { + val alpha = Math.round(Color.alpha(color) * factor) + val red = Color.red(color) + val green = Color.green(color) + val blue = Color.blue(color) + return Color.argb(alpha, red, green, blue) + } + + val letterIDs: IntArray + get() = intArrayOf(R.string.sunday_letter, R.string.monday_letter, R.string.tuesday_letter, R.string.wednesday_letter, + R.string.thursday_letter, R.string.friday_letter, R.string.saturday_letter) +} diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/receivers/BootCompletedReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/receivers/BootCompletedReceiver.kt index df46950ba..d5cc1ca17 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/receivers/BootCompletedReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/receivers/BootCompletedReceiver.kt @@ -3,15 +3,15 @@ package com.simplemobiletools.calendar.receivers import android.content.BroadcastReceiver import android.content.Context import android.content.Intent +import com.simplemobiletools.calendar.extensions.scheduleNextEvent import com.simplemobiletools.calendar.helpers.DBHelper -import com.simplemobiletools.calendar.Utils class BootCompletedReceiver : BroadcastReceiver() { override fun onReceive(context: Context, arg1: Intent) { val events = DBHelper(context).getEventsAtReboot() for (event in events) { - Utils.scheduleNextEvent(context, event) + context.scheduleNextEvent(event) } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/receivers/NotificationReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/receivers/NotificationReceiver.kt index d998026df..d538fb2db 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/receivers/NotificationReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/receivers/NotificationReceiver.kt @@ -9,8 +9,8 @@ import android.content.Intent import android.media.RingtoneManager import com.simplemobiletools.calendar.Constants import com.simplemobiletools.calendar.R -import com.simplemobiletools.calendar.Utils import com.simplemobiletools.calendar.activities.EventActivity +import com.simplemobiletools.calendar.extensions.scheduleNextEvent import com.simplemobiletools.calendar.helpers.DBHelper import com.simplemobiletools.calendar.helpers.Formatter import com.simplemobiletools.calendar.models.Event @@ -38,12 +38,10 @@ class NotificationReceiver : BroadcastReceiver() { notificationManager.notify(id, notification) if (event.repeatInterval != 0) - Utils.scheduleNextEvent(context, event) + context.scheduleNextEvent(event) } - private fun getEventTime(startTime: String, endTime: String): String { - return if (startTime == endTime) startTime else startTime + " - " + endTime - } + private fun getEventTime(startTime: String, endTime: String) = if (startTime == endTime) startTime else startTime + " - " + endTime private fun getPendingIntent(context: Context, event: Event): PendingIntent { val intent = Intent(context, EventActivity::class.java) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/views/SmallMonthView.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/views/SmallMonthView.kt index 1b6997657..7849067e2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/views/SmallMonthView.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/views/SmallMonthView.kt @@ -9,7 +9,7 @@ import android.view.View import com.simplemobiletools.calendar.helpers.Config import com.simplemobiletools.calendar.Constants import com.simplemobiletools.calendar.R -import com.simplemobiletools.calendar.Utils +import com.simplemobiletools.calendar.helpers.Utils import java.util.* class SmallMonthView(context: Context, attrs: AttributeSet, defStyle: Int) : View(context, attrs, defStyle) {