allow printing the yearly view
This commit is contained in:
parent
abf8998d5b
commit
eed880c195
5 changed files with 74 additions and 25 deletions
|
@ -30,4 +30,8 @@ class MyYearPagerAdapter(fm: FragmentManager, val mYears: List<Int>) : FragmentS
|
||||||
mFragments[pos + i]?.updateCalendar()
|
mFragments[pos + i]?.updateCalendar()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun printCurrentView(pos: Int) {
|
||||||
|
mFragments[pos].printCurrentView()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package com.simplemobiletools.calendar.pro.fragments
|
package com.simplemobiletools.calendar.pro.fragments
|
||||||
|
|
||||||
import android.content.res.Resources
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.SparseArray
|
import android.util.SparseArray
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
|
@ -11,6 +10,8 @@ import androidx.fragment.app.Fragment
|
||||||
import com.simplemobiletools.calendar.pro.R
|
import com.simplemobiletools.calendar.pro.R
|
||||||
import com.simplemobiletools.calendar.pro.activities.MainActivity
|
import com.simplemobiletools.calendar.pro.activities.MainActivity
|
||||||
import com.simplemobiletools.calendar.pro.extensions.config
|
import com.simplemobiletools.calendar.pro.extensions.config
|
||||||
|
import com.simplemobiletools.calendar.pro.extensions.getViewBitmap
|
||||||
|
import com.simplemobiletools.calendar.pro.extensions.printBitmap
|
||||||
import com.simplemobiletools.calendar.pro.helpers.YEAR_LABEL
|
import com.simplemobiletools.calendar.pro.helpers.YEAR_LABEL
|
||||||
import com.simplemobiletools.calendar.pro.helpers.YearlyCalendarImpl
|
import com.simplemobiletools.calendar.pro.helpers.YearlyCalendarImpl
|
||||||
import com.simplemobiletools.calendar.pro.interfaces.YearlyCalendar
|
import com.simplemobiletools.calendar.pro.interfaces.YearlyCalendar
|
||||||
|
@ -25,6 +26,7 @@ import java.util.*
|
||||||
class YearFragment : Fragment(), YearlyCalendar {
|
class YearFragment : Fragment(), YearlyCalendar {
|
||||||
private var mYear = 0
|
private var mYear = 0
|
||||||
private var mSundayFirst = false
|
private var mSundayFirst = false
|
||||||
|
private var isPrintVersion = false
|
||||||
private var lastHash = 0
|
private var lastHash = 0
|
||||||
private var mCalendar: YearlyCalendarImpl? = null
|
private var mCalendar: YearlyCalendarImpl? = null
|
||||||
|
|
||||||
|
@ -37,7 +39,6 @@ class YearFragment : Fragment(), YearlyCalendar {
|
||||||
setupMonths()
|
setupMonths()
|
||||||
|
|
||||||
mCalendar = YearlyCalendarImpl(this, context!!, mYear)
|
mCalendar = YearlyCalendarImpl(this, context!!, mYear)
|
||||||
|
|
||||||
return mView
|
return mView
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,30 +66,40 @@ class YearFragment : Fragment(), YearlyCalendar {
|
||||||
val days = dateTime.dayOfMonth().maximumValue
|
val days = dateTime.dayOfMonth().maximumValue
|
||||||
mView.month_2.setDays(days)
|
mView.month_2.setDays(days)
|
||||||
|
|
||||||
val res = resources
|
val now = DateTime()
|
||||||
markCurrentMonth(res)
|
|
||||||
|
|
||||||
for (i in 1..12) {
|
for (i in 1..12) {
|
||||||
val monthView = mView.findViewById<SmallMonthView>(res.getIdentifier("month_" + i, "id", context!!.packageName))
|
val monthView = mView.findViewById<SmallMonthView>(resources.getIdentifier("month_$i", "id", context!!.packageName))
|
||||||
var dayOfWeek = dateTime.withMonthOfYear(i).dayOfWeek().get()
|
var dayOfWeek = dateTime.withMonthOfYear(i).dayOfWeek().get()
|
||||||
if (!mSundayFirst) {
|
if (!mSundayFirst) {
|
||||||
dayOfWeek--
|
dayOfWeek--
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val monthLabel = mView.findViewById<TextView>(resources.getIdentifier("month_${i}_label", "id", context!!.packageName))
|
||||||
|
val curTextColor = when {
|
||||||
|
isPrintVersion -> resources.getColor(R.color.theme_light_text_color)
|
||||||
|
else -> context!!.config.textColor
|
||||||
|
}
|
||||||
|
|
||||||
|
monthLabel.setTextColor(curTextColor)
|
||||||
|
|
||||||
monthView.firstDay = dayOfWeek
|
monthView.firstDay = dayOfWeek
|
||||||
monthView.setOnClickListener {
|
monthView.setOnClickListener {
|
||||||
(activity as MainActivity).openMonthFromYearly(DateTime().withDate(mYear, i, 1))
|
(activity as MainActivity).openMonthFromYearly(DateTime().withDate(mYear, i, 1))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!isPrintVersion) {
|
||||||
|
markCurrentMonth(now)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun markCurrentMonth(res: Resources) {
|
private fun markCurrentMonth(now: DateTime) {
|
||||||
val now = DateTime()
|
|
||||||
if (now.year == mYear) {
|
if (now.year == mYear) {
|
||||||
val monthLabel = mView.findViewById<TextView>(res.getIdentifier("month_${now.monthOfYear}_label", "id", context!!.packageName))
|
val monthLabel = mView.findViewById<TextView>(resources.getIdentifier("month_${now.monthOfYear}_label", "id", context!!.packageName))
|
||||||
monthLabel.setTextColor(context!!.getAdjustedPrimaryColor())
|
monthLabel.setTextColor(context!!.getAdjustedPrimaryColor())
|
||||||
|
|
||||||
val monthView = mView.findViewById<SmallMonthView>(res.getIdentifier("month_${now.monthOfYear}", "id", context!!.packageName))
|
val monthView = mView.findViewById<SmallMonthView>(resources.getIdentifier("month_${now.monthOfYear}", "id", context!!.packageName))
|
||||||
monthView.todaysId = now.dayOfMonth
|
monthView.todaysId = now.dayOfMonth
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -102,10 +113,28 @@ class YearFragment : Fragment(), YearlyCalendar {
|
||||||
}
|
}
|
||||||
|
|
||||||
lastHash = hashCode
|
lastHash = hashCode
|
||||||
val res = resources
|
|
||||||
for (i in 1..12) {
|
for (i in 1..12) {
|
||||||
val monthView = mView.findViewById<SmallMonthView>(res.getIdentifier("month_$i", "id", context!!.packageName))
|
val monthView = mView.findViewById<SmallMonthView>(resources.getIdentifier("month_$i", "id", context!!.packageName))
|
||||||
monthView.setEvents(events.get(i))
|
monthView.setEvents(events.get(i))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun printCurrentView() {
|
||||||
|
isPrintVersion = true
|
||||||
|
setupMonths()
|
||||||
|
toggleSmallMonthPrintModes()
|
||||||
|
|
||||||
|
context!!.printBitmap(mView.calendar_holder.getViewBitmap())
|
||||||
|
|
||||||
|
isPrintVersion = false
|
||||||
|
setupMonths()
|
||||||
|
toggleSmallMonthPrintModes()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun toggleSmallMonthPrintModes() {
|
||||||
|
for (i in 1..12) {
|
||||||
|
val monthView = mView.findViewById<SmallMonthView>(resources.getIdentifier("month_$i", "id", context!!.packageName))
|
||||||
|
monthView.togglePrintMode()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@ import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.viewpager.widget.ViewPager
|
import androidx.viewpager.widget.ViewPager
|
||||||
import com.simplemobiletools.calendar.pro.R
|
import com.simplemobiletools.calendar.pro.R
|
||||||
import com.simplemobiletools.calendar.pro.activities.MainActivity
|
import com.simplemobiletools.calendar.pro.activities.MainActivity
|
||||||
|
import com.simplemobiletools.calendar.pro.adapters.MyMonthPagerAdapter
|
||||||
import com.simplemobiletools.calendar.pro.adapters.MyYearPagerAdapter
|
import com.simplemobiletools.calendar.pro.adapters.MyYearPagerAdapter
|
||||||
import com.simplemobiletools.calendar.pro.extensions.config
|
import com.simplemobiletools.calendar.pro.extensions.config
|
||||||
import com.simplemobiletools.calendar.pro.helpers.Formatter
|
import com.simplemobiletools.calendar.pro.helpers.Formatter
|
||||||
|
@ -127,5 +128,7 @@ class YearFragmentsHolder : MyFragmentHolder() {
|
||||||
|
|
||||||
override fun getNewEventDayCode() = Formatter.getTodayCode()
|
override fun getNewEventDayCode() = Formatter.getTodayCode()
|
||||||
|
|
||||||
override fun printView() {}
|
override fun printView() {
|
||||||
|
(viewPager?.adapter as? MyYearPagerAdapter)?.printCurrentView(viewPager?.currentItem ?: 0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ class SmallMonthView(context: Context, attrs: AttributeSet, defStyle: Int) : Vie
|
||||||
private var textColor = 0
|
private var textColor = 0
|
||||||
private var days = 31
|
private var days = 31
|
||||||
private var isLandscape = false
|
private var isLandscape = false
|
||||||
|
private var isPrintVersion = false
|
||||||
private var mEvents: ArrayList<DayYearly>? = null
|
private var mEvents: ArrayList<DayYearly>? = null
|
||||||
|
|
||||||
var firstDay = 0
|
var firstDay = 0
|
||||||
|
@ -81,7 +82,7 @@ class SmallMonthView(context: Context, attrs: AttributeSet, defStyle: Int) : Vie
|
||||||
if (curId in 1..days) {
|
if (curId in 1..days) {
|
||||||
canvas.drawText(curId.toString(), x * dayWidth - (dayWidth / 4), y * dayWidth, getPaint(curId))
|
canvas.drawText(curId.toString(), x * dayWidth - (dayWidth / 4), y * dayWidth, getPaint(curId))
|
||||||
|
|
||||||
if (curId == todaysId) {
|
if (curId == todaysId && !isPrintVersion) {
|
||||||
val dividerConstant = if (isLandscape) 6 else 4
|
val dividerConstant = if (isLandscape) 6 else 4
|
||||||
canvas.drawCircle(x * dayWidth - dayWidth / 2, y * dayWidth - dayWidth / dividerConstant, dayWidth * 0.41f, todayCirclePaint)
|
canvas.drawCircle(x * dayWidth - dayWidth / 2, y * dayWidth - dayWidth / dividerConstant, dayWidth * 0.41f, todayCirclePaint)
|
||||||
}
|
}
|
||||||
|
@ -101,4 +102,16 @@ class SmallMonthView(context: Context, attrs: AttributeSet, defStyle: Int) : Vie
|
||||||
|
|
||||||
return paint
|
return paint
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun togglePrintMode() {
|
||||||
|
isPrintVersion = !isPrintVersion
|
||||||
|
textColor = if (isPrintVersion) {
|
||||||
|
resources.getColor(R.color.theme_light_text_color)
|
||||||
|
} else {
|
||||||
|
context.config.textColor.adjustAlpha(MEDIUM_ALPHA)
|
||||||
|
}
|
||||||
|
|
||||||
|
paint.color = textColor
|
||||||
|
invalidate()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
android:layout_marginEnd="@dimen/yearly_padding_full"
|
android:layout_marginEnd="@dimen/yearly_padding_full"
|
||||||
android:layout_weight="1">
|
android:layout_weight="1">
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyTextView
|
<TextView
|
||||||
android:id="@+id/month_1_label"
|
android:id="@+id/month_1_label"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
android:layout_marginEnd="@dimen/yearly_padding_half"
|
android:layout_marginEnd="@dimen/yearly_padding_half"
|
||||||
android:layout_weight="1">
|
android:layout_weight="1">
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyTextView
|
<TextView
|
||||||
android:id="@+id/month_2_label"
|
android:id="@+id/month_2_label"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -65,7 +65,7 @@
|
||||||
android:layout_marginStart="@dimen/yearly_padding_full"
|
android:layout_marginStart="@dimen/yearly_padding_full"
|
||||||
android:layout_weight="1">
|
android:layout_weight="1">
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyTextView
|
<TextView
|
||||||
android:id="@+id/month_3_label"
|
android:id="@+id/month_3_label"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -92,7 +92,7 @@
|
||||||
android:layout_marginEnd="@dimen/yearly_padding_full"
|
android:layout_marginEnd="@dimen/yearly_padding_full"
|
||||||
android:layout_weight="1">
|
android:layout_weight="1">
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyTextView
|
<TextView
|
||||||
android:id="@+id/month_4_label"
|
android:id="@+id/month_4_label"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -118,7 +118,7 @@
|
||||||
android:layout_marginEnd="@dimen/yearly_padding_half"
|
android:layout_marginEnd="@dimen/yearly_padding_half"
|
||||||
android:layout_weight="1">
|
android:layout_weight="1">
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyTextView
|
<TextView
|
||||||
android:id="@+id/month_5_label"
|
android:id="@+id/month_5_label"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -142,7 +142,7 @@
|
||||||
android:layout_marginStart="@dimen/yearly_padding_full"
|
android:layout_marginStart="@dimen/yearly_padding_full"
|
||||||
android:layout_weight="1">
|
android:layout_weight="1">
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyTextView
|
<TextView
|
||||||
android:id="@+id/month_6_label"
|
android:id="@+id/month_6_label"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -169,7 +169,7 @@
|
||||||
android:layout_marginEnd="@dimen/yearly_padding_full"
|
android:layout_marginEnd="@dimen/yearly_padding_full"
|
||||||
android:layout_weight="1">
|
android:layout_weight="1">
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyTextView
|
<TextView
|
||||||
android:id="@+id/month_7_label"
|
android:id="@+id/month_7_label"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -193,7 +193,7 @@
|
||||||
android:layout_marginEnd="@dimen/yearly_padding_half"
|
android:layout_marginEnd="@dimen/yearly_padding_half"
|
||||||
android:layout_weight="1">
|
android:layout_weight="1">
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyTextView
|
<TextView
|
||||||
android:id="@+id/month_8_label"
|
android:id="@+id/month_8_label"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -217,7 +217,7 @@
|
||||||
android:layout_marginStart="@dimen/yearly_padding_full"
|
android:layout_marginStart="@dimen/yearly_padding_full"
|
||||||
android:layout_weight="1">
|
android:layout_weight="1">
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyTextView
|
<TextView
|
||||||
android:id="@+id/month_9_label"
|
android:id="@+id/month_9_label"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -245,7 +245,7 @@
|
||||||
android:layout_marginEnd="@dimen/yearly_padding_full"
|
android:layout_marginEnd="@dimen/yearly_padding_full"
|
||||||
android:layout_weight="1">
|
android:layout_weight="1">
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyTextView
|
<TextView
|
||||||
android:id="@+id/month_10_label"
|
android:id="@+id/month_10_label"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -270,7 +270,7 @@
|
||||||
android:layout_marginEnd="@dimen/yearly_padding_half"
|
android:layout_marginEnd="@dimen/yearly_padding_half"
|
||||||
android:layout_weight="1">
|
android:layout_weight="1">
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyTextView
|
<TextView
|
||||||
android:id="@+id/month_11_label"
|
android:id="@+id/month_11_label"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -295,7 +295,7 @@
|
||||||
android:layout_marginStart="@dimen/yearly_padding_full"
|
android:layout_marginStart="@dimen/yearly_padding_full"
|
||||||
android:layout_weight="1">
|
android:layout_weight="1">
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyTextView
|
<TextView
|
||||||
android:id="@+id/month_12_label"
|
android:id="@+id/month_12_label"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
Loading…
Reference in a new issue