Skip to content

Instantly share code, notes, and snippets.

View mariusz-blaszczak's full-sized avatar

Mariusz Błaszczak mariusz-blaszczak

View GitHub Profile
@mariusz-blaszczak
mariusz-blaszczak / action_controller_main.rb
Created February 4, 2021 07:36
Recreate issue with dry-validation
# frozen_string_literal: true
require "bundler/inline"
gemfile(true) do
source "https://rubygems.org"
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
gem "rails", "6.1.0"
eventType:MouseDown code:0x0 name:left flags: misc:PointingButton::LEFT {712,120} 1
eventType:MouseUp code:0x0 name:left flags: misc:PointingButton::LEFT {712,120} 1
eventType:MouseDown code:0x0 name:left flags: misc:PointingButton::LEFT {754,129} 1
eventType:MouseUp code:0x0 name:left flags: misc:PointingButton::LEFT {754,129} 1
eventType:MouseDown code:0x0 name:left flags: misc:PointingButton::LEFT {754,129} 2
eventType:MouseUp code:0x0 name:left flags: misc:PointingButton::LEFT {754,129} 2
eventType:MouseDown code:0x0 name:left flags: misc:PointingButton::LEFT {754,129} 3
eventType:MouseUp
# Dodawanie usera jako root
sudo adduser --disabled-password --shell /bin/bash --home /home/USERNAME USERNAME
sudo usermod -aG sudo USERNAME
sudo passwd USERNAME
object UUIDProvider {
private const val NAME = "${BuildConfig.APPLICATION_ID}.LOCK_ID"
private const val KEY_ID = "${BuildConfig.APPLICATION_ID}.KEY_ID"
private var cacheId: String? = null
fun provide(context: Context): String {
if (cacheId != null) return cacheId!!
object AppCache {
var lockState: LockState? = null
set(value) {
if (value == null) return
if (field == null || field!!.created_at.before(value.created_at)) {
field = value
}
}
class AppMessagingService : FirebaseMessagingService() {
override fun onNewToken(token: String?) {
val registrationId = token ?: return
val userId = UUIDProvider.provide(this) // described later
// request push registration
}
override fun onMessageReceived(remoteMessage: RemoteMessage) {
<service
android:name=".push.AppMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
class ApiClient private constructor(context: Context) {
val apiService = createApiService(context)
private fun createApiService(context: Context): ApiService {
return Retrofit.Builder()
.baseUrl(context.getString(R.string.api_base_url))
.addConverterFactory(createConverterFactory())
.client(createHttpClient(context))
.build()
class LockWidgetJobService : JobIntentService() {
companion object {
...
private val SUPPORTED_ACTIONS = listOf(ACTION_TOGGLE, ACTION_REFRESH)
fun handleAction(context: Context, action: String?) {
if (!canHandle(action)) return
open class LockWidgetProvider : AppWidgetProvider() {
override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) {
for (id in appWidgetIds) {
appWidgetManager.updateAppWidget(id, createLockRemoteViews(context, AppCache.lockState))
}
}
override fun onReceive(context: Context, intent: Intent) {
super.onReceive(context, intent)