From 959168771b5a927ef97206625d1b3abc1c3f97ef Mon Sep 17 00:00:00 2001 From: Antoni Czaplicki <56671347+Antoni-Czaplicki@users.noreply.github.com> Date: Fri, 1 Oct 2021 18:40:44 +0200 Subject: [PATCH] [UI] Add secret features. (#73) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add easter egg * Remove big file * Reformat code * Remove unneded blank lines, optimize some code * Fix small issue * Update easter egg logic Co-authored-by: Kuba SzczodrzyƄski --- .../contributors/ContributorsActivity.kt | 67 ++++++++++++++++-- app/src/main/res/drawable/thanos_idle.png | Bin 0 -> 20714 bytes .../main/res/layout/contributors_activity.xml | 38 ++++++++-- 3 files changed, 93 insertions(+), 12 deletions(-) create mode 100644 app/src/main/res/drawable/thanos_idle.png diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/settings/contributors/ContributorsActivity.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/settings/contributors/ContributorsActivity.kt index 676a5d58..cc498495 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/settings/contributors/ContributorsActivity.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/settings/contributors/ContributorsActivity.kt @@ -1,23 +1,24 @@ package pl.szczodrzynski.edziennik.ui.modules.settings.contributors import android.os.Bundle +import android.os.Process +import android.view.KeyEvent import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.isInvisible import androidx.core.view.isVisible -import androidx.viewpager.widget.ViewPager -import com.google.android.material.tabs.TabLayout +import com.google.android.material.dialog.MaterialAlertDialogBuilder import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.launch -import pl.szczodrzynski.edziennik.App -import pl.szczodrzynski.edziennik.Bundle -import pl.szczodrzynski.edziennik.R +import pl.szczodrzynski.edziennik.* import pl.szczodrzynski.edziennik.data.api.szkolny.SzkolnyApi import pl.szczodrzynski.edziennik.data.api.szkolny.response.ContributorsResponse import pl.szczodrzynski.edziennik.databinding.ContributorsActivityBinding import pl.szczodrzynski.edziennik.ui.modules.base.lazypager.FragmentLazyPagerAdapter import pl.szczodrzynski.edziennik.ui.modules.error.ErrorSnackbar import kotlin.coroutines.CoroutineContext +import kotlin.system.exitProcess class ContributorsActivity : AppCompatActivity(), CoroutineScope { companion object { @@ -35,6 +36,28 @@ class ContributorsActivity : AppCompatActivity(), CoroutineScope { // local/private variables go here private val errorSnackbar: ErrorSnackbar by lazy { ErrorSnackbar(this) } + private var konami = 0 + + override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean { + when (keyCode) { + KeyEvent.KEYCODE_DPAD_UP -> konami in 0..1 + KeyEvent.KEYCODE_DPAD_DOWN -> konami in 2..3 + KeyEvent.KEYCODE_DPAD_LEFT -> konami in 4..6 step 2 + KeyEvent.KEYCODE_DPAD_RIGHT -> konami in 5..7 step 2 + KeyEvent.KEYCODE_B -> konami == 8 + KeyEvent.KEYCODE_A -> konami == 9 + else -> false + }.let { + if (!it) { + konami = 0 + return super.onKeyUp(keyCode, event) + } + konami++ + b.konami.isVisible = konami == 10 + return true + } + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) app = application as App @@ -45,6 +68,40 @@ class ContributorsActivity : AppCompatActivity(), CoroutineScope { b.tabLayout.isVisible = false b.viewPager.isVisible = false + b.szkolny.onLongClick { + if (b.konami.isVisible) { + b.glove.isVisible = true + b.szkolny.isInvisible = true + } + true + } + + b.glove.onClick { + MaterialAlertDialogBuilder(this) + .setTitle(R.string.are_you_sure) + .setMessage(R.string.dev_mode_enable_warning) + .setPositiveButton(R.string.yes) { _, _ -> + app.config.devMode = true + App.devMode = true + MaterialAlertDialogBuilder(this) + .setTitle("Restart") + .setMessage("Wymagany restart aplikacji") + .setPositiveButton(R.string.ok) { _, _ -> + Process.killProcess(Process.myPid()) + Runtime.getRuntime().exit(0) + exitProcess(0) + } + .setCancelable(false) + .show() + } + .setNegativeButton(R.string.no) { _, _ -> + app.config.devMode = false + App.devMode = false + this.finish() + } + .show() + } + launch { contributors = contributors ?: SzkolnyApi(app).runCatching(errorSnackbar) { getContributors() diff --git a/app/src/main/res/drawable/thanos_idle.png b/app/src/main/res/drawable/thanos_idle.png new file mode 100644 index 0000000000000000000000000000000000000000..b94feb351c533c3f1c306b583c099302dfcf20bd GIT binary patch literal 20714 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/contributors_activity.xml b/app/src/main/res/layout/contributors_activity.xml index b05e9c37..a9d8a452 100644 --- a/app/src/main/res/layout/contributors_activity.xml +++ b/app/src/main/res/layout/contributors_activity.xml @@ -20,6 +20,14 @@ android:layout_height="match_parent" android:fitsSystemWindows="true"> + + - + android:layout_gravity="center" + android:layout_marginTop="16dp"> + + + + +