Multiple bug fixes

This commit is contained in:
Tommaso Berlose
2017-11-06 01:13:05 +01:00
parent 748249fed5
commit 170add3073
17 changed files with 431 additions and 265 deletions

View File

@ -23,6 +23,7 @@ import android.content.BroadcastReceiver
import com.tommasoberlose.anotherwidget.util.CalendarUtil
import com.tommasoberlose.anotherwidget.util.WeatherUtil
import android.content.DialogInterface
import android.content.res.Resources
import android.graphics.Color
import android.graphics.Typeface
import android.graphics.drawable.Drawable
@ -180,7 +181,18 @@ class MainActivity : AppCompatActivity() {
updateSettings()
updateAppWidget()
updateClockView()
widget_bitmap.setImageBitmap(Util.getBitmapFromView(main_layout))
val SP = PreferenceManager.getDefaultSharedPreferences(this)
val displayMetrics = Resources.getSystem().displayMetrics
var height = Util.convertDpToPixel(120f, this).toInt()
if (SP.getBoolean(Constants.PREF_SHOW_CLOCK, false)) {
height += Util.convertSpToPixels(SP.getFloat(Constants.PREF_TEXT_CLOCK_SIZE, 90f), this).toInt() + Util.convertDpToPixel(8f, this).toInt()
}
if (SP.getFloat(Constants.PREF_TEXT_MAIN_SIZE, 24f) + SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f) > 50) {
height += Util.convertDpToPixel(24f, this).toInt()
}
widget_bitmap.setImageBitmap(Util.getBitmapFromView(main_layout, displayMetrics.widthPixels, height - Util.convertDpToPixel(32f, this).toInt()))
widget.layoutParams.height = height + Util.convertDpToPixel(16f, this).toInt()
}
@ -349,8 +361,14 @@ class MainActivity : AppCompatActivity() {
calendar_temp.setTextSize(TypedValue.COMPLEX_UNIT_SP, SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f))
time.setTextSize(TypedValue.COMPLEX_UNIT_SP, SP.getFloat(Constants.PREF_TEXT_CLOCK_SIZE, 90f))
second_row_icon.scaleX = SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f) / 16f
second_row_icon.scaleY = SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f) / 16f
second_row_icon.scaleX = SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f) / 18f
second_row_icon.scaleY = SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f) / 18f
weather_icon.scaleX = SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f) / 20f
weather_icon.scaleY = SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f) / 20f
empty_weather_icon.scaleX = SP.getFloat(Constants.PREF_TEXT_MAIN_SIZE, 24f) / 24f
empty_weather_icon.scaleY = SP.getFloat(Constants.PREF_TEXT_MAIN_SIZE, 24f) / 24f
multiple_events.scaleX = SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f) / 16f
multiple_events.scaleY = SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f) / 16f

View File

@ -41,29 +41,49 @@ class SupportDevActivity : AppCompatActivity(), BillingProcessor.IBillingHandler
val lunch = bp!!.getPurchaseListingDetails("donation_lunch")
val dinner = bp!!.getPurchaseListingDetails("donation_dinner")
import_donation_coffee.text = coffee.priceText
action_donation_coffee.setOnClickListener {
bp!!.purchase(this, "donation_coffee")
if (coffee != null) {
import_donation_coffee.text = coffee.priceText
action_donation_coffee.setOnClickListener {
bp!!.purchase(this, "donation_coffee")
}
} else {
action_donation_coffee.visibility = View.GONE
}
import_donation_donuts.text = donuts.priceText
action_donation_donuts.setOnClickListener {
bp!!.purchase(this, "donation_donuts")
if (donuts != null) {
import_donation_donuts.text = donuts.priceText
action_donation_donuts.setOnClickListener {
bp!!.purchase(this, "donation_donuts")
}
} else {
action_donation_donuts.visibility = View.GONE
}
import_donation_breakfast.text = breakfast.priceText
action_donation_breakfast.setOnClickListener {
bp!!.purchase(this, "donation_breakfast")
if (breakfast != null) {
import_donation_breakfast.text = breakfast.priceText
action_donation_breakfast.setOnClickListener {
bp!!.purchase(this, "donation_breakfast")
}
} else {
action_donation_breakfast.visibility = View.GONE
}
import_donation_lunch.text = lunch.priceText
action_donation_lunch.setOnClickListener {
bp!!.purchase(this, "donation_lunch")
if (lunch != null) {
import_donation_lunch.text = lunch.priceText
action_donation_lunch.setOnClickListener {
bp!!.purchase(this, "donation_lunch")
}
} else {
action_donation_lunch.visibility = View.GONE
}
import_donation_dinner.text = dinner.priceText
action_donation_dinner.setOnClickListener {
bp!!.purchase(this, "donation_dinner")
if (dinner != null) {
import_donation_dinner.text = dinner.priceText
action_donation_dinner.setOnClickListener {
bp!!.purchase(this, "donation_dinner")
}
} else {
action_donation_dinner.visibility = View.GONE
}
products_list.visibility = View.VISIBLE

View File

@ -44,9 +44,11 @@ import android.text.style.RelativeSizeSpan
import android.text.style.StyleSpan
import android.util.DisplayMetrics
import android.util.TypedValue
import android.widget.LinearLayout
import com.tommasoberlose.anotherwidget.ui.view.CustomTypefaceSpan
import kotlinx.android.synthetic.main.the_widget.*
import kotlinx.android.synthetic.main.the_widget.view.*
import kotlinx.android.synthetic.main.the_widget_sans.view.*
/**
@ -85,11 +87,17 @@ class TheWidget : AppWidgetProvider() {
val SP = PreferenceManager.getDefaultSharedPreferences(context)
val displayMetrics = Resources.getSystem().displayMetrics
val widgetInfo = appWidgetManager.getAppWidgetInfo(appWidgetId)
var height = widgetInfo.minHeight
var height = Util.convertDpToPixel(80f, context).toInt()
val width = displayMetrics.widthPixels
if (widgetInfo != null) {
height = widgetInfo.minHeight
}
if (SP.getBoolean(Constants.PREF_SHOW_CLOCK, false)) {
height += Util.convertSpToPixels(SP.getFloat(Constants.PREF_TEXT_CLOCK_SIZE, 90f), context).toInt() + Util.convertDpToPixel(8f, context).toInt()
}
val width = displayMetrics.widthPixels
if (SP.getFloat(Constants.PREF_TEXT_MAIN_SIZE, 24f) > 30 && SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f) > 22) {
height += Util.convertDpToPixel(24f, context).toInt()
}
generateWidgetView(context, appWidgetId, appWidgetManager, width - Util.convertDpToPixel(16f, context).toInt(), height)
}
@ -228,7 +236,13 @@ class TheWidget : AppWidgetProvider() {
} else {
views.setTextViewText(R.id.next_event_date, dateStringValue)
}
views.setOnClickPendingIntent(R.id.next_event_date, pIntent)
if (SP.getBoolean(Constants.PREF_SHOW_NEXT_EVENT, false) && CalendarUtil.getEventsCount(context) > 1) {
val multipleIntent = PendingIntent.getBroadcast(context, widgetID, Intent(Constants.ACTION_GO_TO_NEXT_EVENT), 0)
views.setOnClickPendingIntent(R.id.next_event_date, multipleIntent)
} else {
views.setOnClickPendingIntent(R.id.next_event_date, pIntent)
}
}
views.setViewVisibility(R.id.empty_layout, View.GONE)
@ -279,25 +293,24 @@ class TheWidget : AppWidgetProvider() {
val SP = PreferenceManager.getDefaultSharedPreferences(context)
if (!SP.getBoolean(Constants.PREF_SHOW_CLOCK, false)) {
views.setViewVisibility(R.id.time, View.GONE)
views.setViewVisibility(R.id.bottom_divider, View.VISIBLE)
} else {
views.setViewVisibility(R.id.bottom_divider, View.GONE)
val now = Calendar.getInstance()
if (SP.getString(Constants.PREF_HOUR_FORMAT, "12").equals("12")) {
val textBadHour = SpannableString(Constants.badHourFormat.format(now.timeInMillis).replace(" ", ""))
textBadHour.setSpan(RelativeSizeSpan(0.4f), textBadHour.length - 2,
textBadHour.length, Spannable.SPAN_INCLUSIVE_INCLUSIVE)
views.setTextViewText(R.id.time, textBadHour)
} else {
views.setTextViewText(R.id.time, Constants.goodHourFormat.format(now.timeInMillis))
}
val clockPIntent = PendingIntent.getActivity(context, widgetID, Util.getClockIntent(context), 0)
views.setOnClickPendingIntent(R.id.time, clockPIntent)
views.setViewVisibility(R.id.time, View.VISIBLE)
}
val now = Calendar.getInstance()
if (SP.getString(Constants.PREF_HOUR_FORMAT, "12").equals("12")) {
val textBadHour = SpannableString(Constants.badHourFormat.format(now.timeInMillis).replace(" ", ""))
textBadHour.setSpan(RelativeSizeSpan(0.4f), textBadHour.length - 2,
textBadHour.length, Spannable.SPAN_INCLUSIVE_INCLUSIVE)
views.setTextViewText(R.id.time, textBadHour)
} else {
views.setTextViewText(R.id.time, Constants.goodHourFormat.format(now.timeInMillis))
}
val clockPIntent = PendingIntent.getActivity(context, widgetID, Util.getClockIntent(context), 0)
views.setOnClickPendingIntent(R.id.time, clockPIntent)
return views
}
@ -402,8 +415,14 @@ class TheWidget : AppWidgetProvider() {
v.calendar_temp.setTextSize(TypedValue.COMPLEX_UNIT_SP, SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f))
v.time.setTextSize(TypedValue.COMPLEX_UNIT_SP, SP.getFloat(Constants.PREF_TEXT_CLOCK_SIZE, 90f))
v.second_row_icon.scaleX = SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f) / 16f
v.second_row_icon.scaleY = SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f) / 16f
v.second_row_icon.scaleX = SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f) / 18f
v.second_row_icon.scaleY = SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f) / 18f
v.weather_icon.scaleX = SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f) / 20f
v.weather_icon.scaleY = SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f) / 20f
v.empty_weather_icon.scaleX = SP.getFloat(Constants.PREF_TEXT_MAIN_SIZE, 24f) / 24f
v.empty_weather_icon.scaleY = SP.getFloat(Constants.PREF_TEXT_MAIN_SIZE, 24f) / 24f
v.multiple_events.scaleX = SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f) / 16f
v.multiple_events.scaleY = SP.getFloat(Constants.PREF_TEXT_SECOND_SIZE, 16f) / 16f
@ -487,17 +506,17 @@ class TheWidget : AppWidgetProvider() {
if (!SP.getBoolean(Constants.PREF_SHOW_CLOCK, false)) {
v.time.visibility = View.GONE
} else {
v.time.visibility = View.VISIBLE
}
val now = Calendar.getInstance()
if (SP.getString(Constants.PREF_HOUR_FORMAT, "12").equals("12")) {
val textBadHour = SpannableString(Constants.badHourFormat.format(now.timeInMillis).replace(" ", ""))
textBadHour.setSpan(RelativeSizeSpan(0.4f), textBadHour.length - 2,
textBadHour.length, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
val now = Calendar.getInstance()
if (SP.getString(Constants.PREF_HOUR_FORMAT, "12").equals("12")) {
val textBadHour = SpannableString(Constants.badHourFormat.format(now.timeInMillis).replace(" ", ""))
textBadHour.setSpan(RelativeSizeSpan(0.4f), textBadHour.length - 2,
textBadHour.length, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
v.time.text = textBadHour
} else {
v.time.text = Constants.goodHourFormat.format(now.timeInMillis)
v.time.text = textBadHour
} else {
v.time.text = Constants.goodHourFormat.format(now.timeInMillis)
}
v.time.visibility = View.VISIBLE
}
return v
}