Update UI, Update project structure, bug fixes

This commit is contained in:
Tommaso Berlose
2017-10-09 09:41:47 +02:00
parent 37920e2991
commit f62f9dc3bd
18 changed files with 383 additions and 248 deletions

View File

@ -2,7 +2,6 @@ package com.tommasoberlose.anotherwidget.ui.activity
import android.Manifest
import android.annotation.SuppressLint
import android.app.PendingIntent
import android.content.pm.PackageManager
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
@ -10,25 +9,20 @@ import android.support.v4.app.ActivityCompat
import android.appwidget.AppWidgetManager
import android.content.*
import android.preference.PreferenceManager
import android.provider.CalendarContract
import android.support.v4.content.ContextCompat
import android.view.View
import android.widget.RemoteViews
import android.widget.Toast
import com.tommasoberlose.anotherwidget.`object`.Constants
import com.tommasoberlose.anotherwidget.R
import com.tommasoberlose.anotherwidget.util.Util
import com.tommasoberlose.anotherwidget.ui.widget.TheWidget
import com.tommasoberlose.anotherwidget.util.UpdatesReceiver
import com.tommasoberlose.anotherwidget.util.WeatherReceiver
import com.tommasoberlose.anotherwidget.receiver.UpdatesReceiver
import com.tommasoberlose.anotherwidget.receiver.WeatherReceiver
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.the_widget.*
import java.util.*
import java.util.concurrent.TimeUnit
import android.content.Intent
import android.content.BroadcastReceiver
import com.tommasoberlose.anotherwidget.util.CalendarUtil
import com.tommasoberlose.anotherwidget.util.WeatherUtil
class MainActivity : AppCompatActivity() {
@ -121,7 +115,6 @@ class MainActivity : AppCompatActivity() {
}
}
updateAppWidget()
Util.updateWidget(this)
}
@ -140,7 +133,7 @@ class MainActivity : AppCompatActivity() {
empty_date.text = String.format("%s%s", Constants.dateFormat.format(now.time)[0].toUpperCase(), Constants.dateFormat.format(now.time).substring(1))
if (calendarLayout) {
val eventList = Util.getNextEvent(this)
val eventList = CalendarUtil.getNextEvent(this)
if (eventList.isNotEmpty()) {
val difference = eventList[0].startDate - now.timeInMillis
@ -185,8 +178,8 @@ class MainActivity : AppCompatActivity() {
weather_icon.visibility = View.GONE
empty_weather_icon.visibility = View.GONE
} else {
weather_icon.setImageResource(Util.getWeatherIconResource(icon))
empty_weather_icon.setImageResource(Util.getWeatherIconResource(icon))
weather_icon.setImageResource(WeatherUtil.getWeatherIconResource(icon))
empty_weather_icon.setImageResource(WeatherUtil.getWeatherIconResource(icon))
}
temp.text = currentTemp
@ -197,17 +190,22 @@ class MainActivity : AppCompatActivity() {
}
}
@SuppressLint("ApplySharedPref")
fun updateSettings() {
val SP = PreferenceManager.getDefaultSharedPreferences(this)
temp_unit.text = if (SP.getString(Constants.PREF_WEATHER_TEMP_UNIT, "F").equals("F")) getString(R.string.fahrenheit) else getString(R.string.celsius)
action_change_unit.setOnClickListener(object: View.OnClickListener {
@SuppressLint("ApplySharedPref")
override fun onClick(p0: View?) {
SP.edit().putString(Constants.PREF_WEATHER_TEMP_UNIT, if (SP.getString(Constants.PREF_WEATHER_TEMP_UNIT, "F").equals("F")) "C" else "F").commit()
Util.getWeather(this@MainActivity)
updateSettings()
}
})
action_change_unit.setOnClickListener {
SP.edit().putString(Constants.PREF_WEATHER_TEMP_UNIT, if (SP.getString(Constants.PREF_WEATHER_TEMP_UNIT, "F").equals("F")) "C" else "F").commit()
WeatherUtil.getWeather(this)
updateSettings()
}
all_day_label.text = if (SP.getBoolean(Constants.PREF_CALENDAR_ALL_DAY, false)) getString(R.string.settings_all_day_subtitle_visible) else getString(R.string.settings_all_day_subtitle_gone)
action_show_all_day.setOnClickListener {
SP.edit().putBoolean(Constants.PREF_CALENDAR_ALL_DAY, !SP.getBoolean(Constants.PREF_CALENDAR_ALL_DAY, false)).commit()
updateUI()
Util.updateWidget(this)
}
}
}

View File

@ -5,30 +5,25 @@ import android.appwidget.AppWidgetManager
import android.appwidget.AppWidgetProvider
import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import android.preference.PreferenceManager
import android.util.Log
import android.view.View
import android.widget.RemoteViews
import com.tommasoberlose.anotherwidget.`object`.Constants
import com.tommasoberlose.anotherwidget.`object`.Event
import com.tommasoberlose.anotherwidget.R
import com.tommasoberlose.anotherwidget.ui.activity.MainActivity
import com.tommasoberlose.anotherwidget.util.UpdatesReceiver
import com.tommasoberlose.anotherwidget.receiver.UpdatesReceiver
import com.tommasoberlose.anotherwidget.util.Util
import com.tommasoberlose.anotherwidget.util.WeatherReceiver
import com.tommasoberlose.anotherwidget.receiver.WeatherReceiver
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Locale
import java.util.concurrent.TimeUnit
import android.app.PendingIntent
import android.net.Uri
import android.provider.CalendarContract
import android.content.ContentUris
import android.util.Log
import com.tommasoberlose.anotherwidget.util.CalendarUtil
import com.tommasoberlose.anotherwidget.util.WeatherUtil
/**
@ -62,7 +57,7 @@ class TheWidget : AppWidgetProvider() {
views = updateCalendarView(context, views, appWidgetId)
views = updateLocationView(context, views)
views = updateLocationView(context, views, appWidgetId)
appWidgetManager.updateAppWidget(appWidgetId, views)
}
@ -73,7 +68,7 @@ class TheWidget : AppWidgetProvider() {
views.setViewVisibility(R.id.empty_layout, View.VISIBLE)
views.setViewVisibility(R.id.calendar_layout, View.GONE)
views.setTextViewText(R.id.empty_date, Constants.dateFormat.format(now.time))
views.setTextViewText(R.id.empty_date, Constants.dateFormat.format(now.time)[0].toUpperCase() + Constants.dateFormat.format(now.time).substring(1))
val calIntent = Intent(Intent.ACTION_MAIN)
calIntent.addCategory(Intent.CATEGORY_APP_CALENDAR)
@ -82,7 +77,7 @@ class TheWidget : AppWidgetProvider() {
if (calendarLayout) {
val eventList = Util.getNextEvent(context)
val eventList = CalendarUtil.getNextEvent(context)
if (eventList.isNotEmpty()) {
val difference = eventList[0].startDate - now.timeInMillis
@ -120,7 +115,7 @@ class TheWidget : AppWidgetProvider() {
return views
}
fun updateLocationView(context: Context, views: RemoteViews): RemoteViews {
fun updateLocationView(context: Context, views: RemoteViews, widgetID: Int): RemoteViews {
val locationLayout = Util.checkGrantedPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION)
val SP = PreferenceManager.getDefaultSharedPreferences(context)
@ -137,12 +132,21 @@ class TheWidget : AppWidgetProvider() {
views.setViewVisibility(R.id.weather_icon, View.GONE)
views.setViewVisibility(R.id.empty_weather_icon, View.GONE)
} else {
views.setImageViewResource(R.id.weather_icon, Util.getWeatherIconResource(icon))
views.setImageViewResource(R.id.empty_weather_icon, Util.getWeatherIconResource(icon))
views.setImageViewResource(R.id.weather_icon, WeatherUtil.getWeatherIconResource(icon))
views.setImageViewResource(R.id.empty_weather_icon, WeatherUtil.getWeatherIconResource(icon))
}
views.setTextViewText(R.id.temp, temp)
views.setTextViewText(R.id.calendar_temp, temp)
val weatherIntent = Intent("com.google.android.googlequicksearchbox.GOOGLE_SEARCH")
weatherIntent.addCategory(Intent.CATEGORY_DEFAULT)
weatherIntent.putExtra("type", "string")
weatherIntent.putExtra("query", "weather")
val weatherPIntent = PendingIntent.getActivity(context, widgetID, weatherIntent, 0)
views.setOnClickPendingIntent(R.id.weather, weatherPIntent)
views.setOnClickPendingIntent(R.id.calendar_weather, weatherPIntent)
} else {
views.setViewVisibility(R.id.weather, View.GONE)
views.setViewVisibility(R.id.calendar_weather, View.GONE)