Add Weather Provider Dialog

This commit is contained in:
Tommaso Berlose
2017-10-16 00:38:24 +02:00
parent 4e7fd95fcf
commit 42dbe7e235
8 changed files with 82 additions and 2 deletions

View File

@ -48,6 +48,16 @@ class WeatherReceiver : BroadcastReceiver() {
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 60 * refresh, pi)
}
fun setOneTimeUpdate(context: Context) {
val am = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager
val i = Intent(context, WeatherReceiver::class.java)
i.action = Constants.ACTION_WEATHER_UPDATE
val pi = PendingIntent.getBroadcast(context, 1, i, 0)
am.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000 * 60 * 10, pi)
am.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000 * 60 * 15, pi)
am.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000 * 60 * 20, pi)
}
fun removeUpdates(context: Context) {
val intent = Intent(context, WeatherReceiver::class.java)
val sender = PendingIntent.getBroadcast(context, 1, intent, 0)

View File

@ -24,13 +24,16 @@ import com.tommasoberlose.anotherwidget.util.CalendarUtil
import com.tommasoberlose.anotherwidget.util.WeatherUtil
import android.content.DialogInterface
import android.graphics.drawable.Drawable
import android.os.Build
import android.support.design.widget.BottomSheetDialog
import android.text.Html
import android.util.Log
import android.widget.Toast
import com.crashlytics.android.Crashlytics
import com.tommasoberlose.anotherwidget.`object`.CalendarSelector
import io.fabric.sdk.android.Fabric
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.key_time_wait_layout.view.*
import kotlinx.android.synthetic.main.main_menu_layout.view.*
import kotlinx.android.synthetic.main.the_widget.*
@ -196,8 +199,23 @@ class MainActivity : AppCompatActivity() {
Util.updateWidget(this)
updateSettings()
} else if (requestCode == Constants.WEATHER_PROVIDER_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
WeatherReceiver().setOneTimeUpdate(this)
sendBroadcast(Intent(Constants.ACTION_WEATHER_UPDATE))
updateSettings()
val mBottomSheetDialog: BottomSheetDialog = BottomSheetDialog(this)
val provView: View = layoutInflater.inflate(R.layout.key_time_wait_layout, null)
provView.title.text = String.format("%s %s", Util.getEmojiByUnicode(0x1F389), getString(R.string.well_done))
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
provView.text.text = Html.fromHtml(getString(R.string.api_key_info_all_set), Html.FROM_HTML_MODE_LEGACY)
} else {
provView.text.text = Html.fromHtml(getString(R.string.api_key_info_all_set))
}
provView.action_close.setOnClickListener {
mBottomSheetDialog.dismiss()
}
mBottomSheetDialog.setContentView(provView)
mBottomSheetDialog.show();
}
}

View File

@ -356,4 +356,8 @@ object Util {
v.startAnimation(a)
}
}
fun getEmojiByUnicode(unicode: Int): String {
return String(Character.toChars(unicode))
}
}