diff --git a/app/release/NockNock.apk b/app/release/NockNock.apk deleted file mode 100644 index 21235a5..0000000 Binary files a/app/release/NockNock.apk and /dev/null differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 38e59d1..332578e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -31,14 +31,12 @@ android:name="com.afollestad.nocknock.ui.addsite.AddSiteActivity" android:label="@string/add_site" android:launchMode="singleTop" - android:theme="@style/AppTheme.Transparent" android:windowSoftInputMode="stateHidden"/> >(name = PREF_DARK_MODE) override fun onCreate(savedInstanceState: Bundle?) { - isDarkModeEnabled = darkModePref.get() + isDarkModeEnabled = isDarkMode() setTheme(themeRes()) super.onCreate(savedInstanceState) @@ -44,7 +44,13 @@ abstract class DarkModeSwitchActivity : AppCompatActivity() { .attachLifecycle(this) } - private fun themeRes() = if (darkModePref.get()) { + protected fun isDarkMode() = darkModePref.get() + + protected fun toggleDarkMode() = setDarkMode(!isDarkMode()) + + private fun setDarkMode(darkMode: Boolean) = darkModePref.set(darkMode) + + private fun themeRes() = if (isDarkMode()) { R.style.AppTheme_Dark } else { R.style.AppTheme diff --git a/app/src/main/java/com/afollestad/nocknock/ui/addsite/AddSiteActivity.kt b/app/src/main/java/com/afollestad/nocknock/ui/addsite/AddSiteActivity.kt index 78ff9fa..bcf0ead 100644 --- a/app/src/main/java/com/afollestad/nocknock/ui/addsite/AddSiteActivity.kt +++ b/app/src/main/java/com/afollestad/nocknock/ui/addsite/AddSiteActivity.kt @@ -18,12 +18,9 @@ package com.afollestad.nocknock.ui.addsite import android.annotation.SuppressLint import android.os.Bundle import android.widget.ArrayAdapter -import androidx.appcompat.app.AppCompatActivity import com.afollestad.nocknock.R import com.afollestad.nocknock.data.model.ValidationMode -import com.afollestad.nocknock.setStatusBarColor -import com.afollestad.nocknock.viewcomponents.ext.conceal -import com.afollestad.nocknock.viewcomponents.ext.onLayout +import com.afollestad.nocknock.ui.DarkModeSwitchActivity import com.afollestad.nocknock.viewcomponents.livedata.attachLiveData import com.afollestad.nocknock.viewcomponents.livedata.toViewError import com.afollestad.nocknock.viewcomponents.livedata.toViewText @@ -36,35 +33,21 @@ import kotlinx.android.synthetic.main.activity_addsite.loadingProgress import kotlinx.android.synthetic.main.activity_addsite.responseTimeoutInput import kotlinx.android.synthetic.main.activity_addsite.responseValidationMode import kotlinx.android.synthetic.main.activity_addsite.responseValidationSearchTerm -import kotlinx.android.synthetic.main.activity_addsite.rootView import kotlinx.android.synthetic.main.activity_addsite.scriptInputLayout import kotlinx.android.synthetic.main.activity_addsite.textUrlWarning import kotlinx.android.synthetic.main.activity_addsite.validationModeDescription import kotlinx.android.synthetic.main.include_app_bar.toolbar import org.koin.androidx.viewmodel.ext.android.viewModel -import kotlin.math.max -import kotlin.properties.Delegates.notNull import kotlinx.android.synthetic.main.include_app_bar.toolbar_title as toolbarTitle -const val KEY_FAB_X = "fab_x" -const val KEY_FAB_Y = "fab_y" -const val KEY_FAB_SIZE = "fab_size" - /** @author Aidan Follestad (@afollestad) */ -class AddSiteActivity : AppCompatActivity() { - - var revealCx by notNull() - var revealCy by notNull() - var revealRadius by notNull() - - internal var isClosing = false +class AddSiteActivity : DarkModeSwitchActivity() { private val viewModel by viewModel() @SuppressLint("SetTextI18n") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setStatusBarColor(res = R.color.inkColorDark) setContentView(R.layout.activity_addsite) setupUi(savedInstanceState) @@ -139,24 +122,7 @@ class AddSiteActivity : AppCompatActivity() { toolbarTitle.setText(R.string.add_site) toolbar.run { setNavigationIcon(R.drawable.ic_action_close) - setNavigationOnClickListener { closeActivityWithReveal() } - } - - if (savedInstanceState == null) { - rootView.conceal() - rootView.onLayout { - val fabSize = intent.getIntExtra(KEY_FAB_SIZE, 0) - val fabX = intent.getFloatExtra(KEY_FAB_X, 0f) - .toInt() - val fabY = intent.getFloatExtra(KEY_FAB_Y, 0f) - .toInt() - - revealCx = fabX + fabSize / 2 - revealCy = (fabY + toolbar.measuredHeight + fabSize / 2) - revealRadius = max(revealCx, revealCy).toFloat() - - circularRevealActivity() - } + setNavigationOnClickListener { finish() } } val validationOptionsAdapter = ArrayAdapter( @@ -167,6 +133,4 @@ class AddSiteActivity : AppCompatActivity() { validationOptionsAdapter.setDropDownViewResource(R.layout.list_item_spinner_dropdown) responseValidationMode.adapter = validationOptionsAdapter } - - override fun onBackPressed() = closeActivityWithReveal() } diff --git a/app/src/main/java/com/afollestad/nocknock/ui/addsite/AddSiteActivityExt.kt b/app/src/main/java/com/afollestad/nocknock/ui/addsite/AddSiteActivityExt.kt deleted file mode 100644 index 04e62c7..0000000 --- a/app/src/main/java/com/afollestad/nocknock/ui/addsite/AddSiteActivityExt.kt +++ /dev/null @@ -1,58 +0,0 @@ -/** - * Designed and developed by Aidan Follestad (@afollestad) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.afollestad.nocknock.ui.addsite - -import android.view.ViewAnimationUtils.createCircularReveal -import android.view.animation.AccelerateInterpolator -import android.view.animation.DecelerateInterpolator -import com.afollestad.nocknock.R -import com.afollestad.nocknock.setStatusBarColor -import com.afollestad.nocknock.utilities.ext.onEnd -import com.afollestad.nocknock.viewcomponents.ext.conceal -import com.afollestad.nocknock.viewcomponents.ext.show -import kotlinx.android.synthetic.main.activity_addsite.rootView - -const val REVEAL_DURATION = 300L - -internal fun AddSiteActivity.circularRevealActivity() { - val circularReveal = - createCircularReveal(rootView, revealCx, revealCy, 0f, revealRadius) - .apply { - duration = REVEAL_DURATION - interpolator = DecelerateInterpolator() - } - rootView.show() - circularReveal.start() -} - -internal fun AddSiteActivity.closeActivityWithReveal() { - if (isClosing) { - return - } - setStatusBarColor(attr = R.attr.colorPrimary) - isClosing = true - createCircularReveal(rootView, revealCx, revealCy, revealRadius, 0f) - .apply { - duration = REVEAL_DURATION - interpolator = AccelerateInterpolator() - onEnd { - rootView.conceal() - finish() - overridePendingTransition(0, 0) - } - start() - } -} diff --git a/app/src/main/java/com/afollestad/nocknock/ui/main/MainActivity.kt b/app/src/main/java/com/afollestad/nocknock/ui/main/MainActivity.kt index 17e9341..29c805c 100644 --- a/app/src/main/java/com/afollestad/nocknock/ui/main/MainActivity.kt +++ b/app/src/main/java/com/afollestad/nocknock/ui/main/MainActivity.kt @@ -29,7 +29,6 @@ import com.afollestad.nocknock.adapter.SiteAdapter import com.afollestad.nocknock.broadcasts.StatusUpdateIntentReceiver import com.afollestad.nocknock.data.model.Site import com.afollestad.nocknock.dialogs.AboutDialog -import com.afollestad.nocknock.koin.PREF_DARK_MODE import com.afollestad.nocknock.notifications.NockNotificationManager import com.afollestad.nocknock.ui.DarkModeSwitchActivity import com.afollestad.nocknock.utilities.providers.IntentProvider @@ -37,7 +36,6 @@ import com.afollestad.nocknock.utilities.ui.toast import com.afollestad.nocknock.viewUrl import com.afollestad.nocknock.viewUrlWithApp import com.afollestad.nocknock.viewcomponents.ext.showOrHide -import com.afollestad.rxkprefs.Pref import kotlinx.android.synthetic.main.activity_main.fab import kotlinx.android.synthetic.main.activity_main.list import kotlinx.android.synthetic.main.activity_main.loadingProgress @@ -51,7 +49,6 @@ class MainActivity : DarkModeSwitchActivity() { private val notificationManager by inject() private val intentProvider by inject() - private val darkModePref by inject>(name = PREF_DARK_MODE) internal val viewModel by viewModel() @@ -89,11 +86,11 @@ class MainActivity : DarkModeSwitchActivity() { toolbar.run { inflateMenu(R.menu.menu_main) menu.findItem(R.id.dark_mode) - .isChecked = darkModePref.get() + .isChecked = isDarkMode() setOnMenuItemClickListener { item -> when (item.itemId) { R.id.about -> AboutDialog.show(this@MainActivity) - R.id.dark_mode -> darkModePref.set(!darkModePref.get()) + R.id.dark_mode -> toggleDarkMode() R.id.support_me -> supportMe() } return@setOnMenuItemClickListener true diff --git a/app/src/main/java/com/afollestad/nocknock/ui/main/MainActivityExt.kt b/app/src/main/java/com/afollestad/nocknock/ui/main/MainActivityExt.kt index 63f1c23..422cdc5 100644 --- a/app/src/main/java/com/afollestad/nocknock/ui/main/MainActivityExt.kt +++ b/app/src/main/java/com/afollestad/nocknock/ui/main/MainActivityExt.kt @@ -21,30 +21,15 @@ import com.afollestad.nocknock.R import com.afollestad.nocknock.data.model.Site import com.afollestad.nocknock.toHtml import com.afollestad.nocknock.ui.addsite.AddSiteActivity -import com.afollestad.nocknock.ui.addsite.KEY_FAB_SIZE -import com.afollestad.nocknock.ui.addsite.KEY_FAB_X -import com.afollestad.nocknock.ui.addsite.KEY_FAB_Y import com.afollestad.nocknock.ui.viewsite.KEY_SITE import com.afollestad.nocknock.ui.viewsite.ViewSiteActivity import com.afollestad.nocknock.utilities.providers.RealIntentProvider.Companion.KEY_VIEW_NOTIFICATION_MODEL -import kotlinx.android.synthetic.main.activity_main.fab internal const val VIEW_SITE_RQ = 6923 internal const val ADD_SITE_RQ = 6969 internal fun MainActivity.addSite() { - startActivityForResult(intentToAdd(fab.x, fab.y, fab.measuredWidth), ADD_SITE_RQ) -} - -private fun MainActivity.intentToAdd( - x: Float, - y: Float, - size: Int -) = Intent(this, AddSiteActivity::class.java).apply { - putExtra(KEY_FAB_X, x) - putExtra(KEY_FAB_Y, y) - putExtra(KEY_FAB_SIZE, size) - addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION) + startActivityForResult(Intent(this, AddSiteActivity::class.java), ADD_SITE_RQ) } internal fun MainActivity.viewSite(model: Site) { diff --git a/app/src/main/java/com/afollestad/nocknock/ui/viewsite/ViewSiteActivity.kt b/app/src/main/java/com/afollestad/nocknock/ui/viewsite/ViewSiteActivity.kt index 6b233f0..fe86619 100644 --- a/app/src/main/java/com/afollestad/nocknock/ui/viewsite/ViewSiteActivity.kt +++ b/app/src/main/java/com/afollestad/nocknock/ui/viewsite/ViewSiteActivity.kt @@ -19,13 +19,12 @@ import android.annotation.SuppressLint import android.content.Intent import android.os.Bundle import android.widget.ArrayAdapter -import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.Observer import com.afollestad.nocknock.R import com.afollestad.nocknock.broadcasts.StatusUpdateIntentReceiver import com.afollestad.nocknock.data.model.Site import com.afollestad.nocknock.data.model.ValidationMode -import com.afollestad.nocknock.setStatusBarColor +import com.afollestad.nocknock.ui.DarkModeSwitchActivity import com.afollestad.nocknock.utilities.providers.IntentProvider import com.afollestad.nocknock.viewcomponents.ext.dimenFloat import com.afollestad.nocknock.viewcomponents.ext.onScroll @@ -55,7 +54,7 @@ import org.koin.androidx.viewmodel.ext.android.viewModel import kotlinx.android.synthetic.main.include_app_bar.toolbar_title as toolbarTitle /** @author Aidan Follestad (@afollestad) */ -class ViewSiteActivity : AppCompatActivity() { +class ViewSiteActivity : DarkModeSwitchActivity() { internal val viewModel by viewModel() @@ -69,7 +68,6 @@ class ViewSiteActivity : AppCompatActivity() { @SuppressLint("SetTextI18n") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setStatusBarColor(res = R.color.inkColorDark) setContentView(R.layout.activity_viewsite) setupUi() @@ -159,7 +157,7 @@ class ViewSiteActivity : AppCompatActivity() { } private fun setupUi() { - toolbarTitle.setText(R.string.add_site) + toolbarTitle.setText(R.string.view_site) toolbar.run { setNavigationIcon(R.drawable.ic_action_close) setNavigationOnClickListener { finish() } diff --git a/app/src/main/res/drawable/ic_action_close.xml b/app/src/main/res/drawable/ic_action_close.xml index 369498e..241f9be 100644 --- a/app/src/main/res/drawable/ic_action_close.xml +++ b/app/src/main/res/drawable/ic_action_close.xml @@ -4,6 +4,6 @@ android:viewportHeight="24.0" android:viewportWidth="24.0"> diff --git a/app/src/main/res/drawable/ic_action_delete.xml b/app/src/main/res/drawable/ic_action_delete.xml index 7539f69..901c3e1 100644 --- a/app/src/main/res/drawable/ic_action_delete.xml +++ b/app/src/main/res/drawable/ic_action_delete.xml @@ -4,6 +4,6 @@ android:viewportHeight="24.0" android:viewportWidth="24.0"> diff --git a/app/src/main/res/drawable/ic_action_refresh.xml b/app/src/main/res/drawable/ic_action_refresh.xml index 0240dcb..5175bda 100644 --- a/app/src/main/res/drawable/ic_action_refresh.xml +++ b/app/src/main/res/drawable/ic_action_refresh.xml @@ -4,6 +4,6 @@ android:viewportHeight="24.0" android:viewportWidth="24.0"> diff --git a/app/src/main/res/layout/activity_addsite.xml b/app/src/main/res/layout/activity_addsite.xml index c02c176..ad534e9 100644 --- a/app/src/main/res/layout/activity_addsite.xml +++ b/app/src/main/res/layout/activity_addsite.xml @@ -10,7 +10,6 @@ android:id="@+id/rootView" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="?colorPrimary" android:orientation="vertical" > @@ -45,7 +44,6 @@ android:layout_height="wrap_content" android:hint="@string/site_name" android:inputType="textPersonName|textCapWords|textAutoCorrect" - android:textColor="#FFFFFF" style="@style/NockText.Body" /> @@ -66,7 +64,6 @@ android:layout_height="wrap_content" android:hint="@string/site_url" android:inputType="textUri" - android:textColor="#FFFFFF" style="@style/NockText.Body" /> @@ -108,9 +105,8 @@ android:hint="@string/response_timeout_default" android:inputType="number" android:maxLength="8" - android:textColor="#FFFFFF" tools:ignore="Autofill,HardcodedText,LabelFor" - style="@style/NockText.Body.Light" + style="@style/NockText.Body" /> diff --git a/viewcomponents/src/main/res/layout/include_divider.xml b/app/src/main/res/layout/include_divider.xml similarity index 82% rename from viewcomponents/src/main/res/layout/include_divider.xml rename to app/src/main/res/layout/include_divider.xml index 502b865..a0dc832 100644 --- a/viewcomponents/src/main/res/layout/include_divider.xml +++ b/app/src/main/res/layout/include_divider.xml @@ -4,5 +4,5 @@ android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginTop="@dimen/content_inset" - android:background="@color/dividerColorDark" + android:background="?dividerColor" /> diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 0b6c863..f6465db 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -7,8 +7,7 @@ #212121 #252525 - #455A64 - #37474F + #303030 #FF6E40 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 8c4dce4..22a2da4 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -4,26 +4,6 @@ - - - diff --git a/app/src/main/res/values/styles_parents.xml b/app/src/main/res/values/styles_parents.xml index 95447f3..2a09630 100644 --- a/app/src/main/res/values/styles_parents.xml +++ b/app/src/main/res/values/styles_parents.xml @@ -4,12 +4,15 @@ @color/colorPrimary_lightTheme @color/colorPrimaryDark_lightTheme @color/colorAccent - @color/inkColorDark + @color/colorAccent #000000 #1f000000 #000000 + #212121 + #727272 + @color/colorPrimary_lightTheme @drawable/divider @@ -25,12 +28,15 @@ @color/colorPrimary_darkTheme @color/colorPrimaryDark_darkTheme @color/colorAccent - @color/inkColorDark + @color/colorAccent #ffffff - #1fffffff + #1f000000 #FFFFFF + #FFFFFF + #F0F0F0 + @color/colorPrimary_darkTheme @drawable/divider @@ -43,8 +49,4 @@ @font/lato_bold - - diff --git a/dependencies.gradle b/dependencies.gradle index 2f05d0f..ea650e0 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -3,8 +3,8 @@ ext.versions = [ minSdk : 21, compileSdk : 28, buildTools : '28.0.3', - publishVersion : '0.8.0', - publishVersionCode : 28, + publishVersion : '0.8.1', + publishVersionCode : 30, // Plugins gradlePlugin : '3.2.1', diff --git a/viewcomponents/src/main/res/layout/list_item_spinner.xml b/viewcomponents/src/main/res/layout/list_item_spinner.xml index b902914..c8f53c7 100644 --- a/viewcomponents/src/main/res/layout/list_item_spinner.xml +++ b/viewcomponents/src/main/res/layout/list_item_spinner.xml @@ -4,6 +4,5 @@ android:layout_width="match_parent" android:layout_height="@dimen/button_height" android:gravity="center_vertical|start" - android:textColor="#FFFFFF" style="@style/NockText.Body" /> diff --git a/viewcomponents/src/main/res/layout/list_item_spinner_dropdown.xml b/viewcomponents/src/main/res/layout/list_item_spinner_dropdown.xml index ae7bb8a..570e4f7 100644 --- a/viewcomponents/src/main/res/layout/list_item_spinner_dropdown.xml +++ b/viewcomponents/src/main/res/layout/list_item_spinner_dropdown.xml @@ -6,6 +6,5 @@ android:gravity="center_vertical|start" android:paddingLeft="@dimen/content_inset" android:paddingRight="@dimen/content_inset" - android:textColor="#FFFFFF" style="@style/NockText.Body" /> diff --git a/viewcomponents/src/main/res/layout/validation_interval_layout.xml b/viewcomponents/src/main/res/layout/validation_interval_layout.xml index 96c5cca..2a16de4 100644 --- a/viewcomponents/src/main/res/layout/validation_interval_layout.xml +++ b/viewcomponents/src/main/res/layout/validation_interval_layout.xml @@ -34,9 +34,8 @@ android:hint="0" android:inputType="number" android:maxLength="6" - android:textColor="#FFFFFF" tools:ignore="Autofill,HardcodedText,LabelFor" - style="@style/NockText.Body.Light" + style="@style/NockText.Body" /> - #37474F - #40000000 #E53935 diff --git a/viewcomponents/src/main/res/values/dimens.xml b/viewcomponents/src/main/res/values/dimens.xml index c8a9342..b6769af 100644 --- a/viewcomponents/src/main/res/values/dimens.xml +++ b/viewcomponents/src/main/res/values/dimens.xml @@ -5,6 +5,7 @@ 4dp + 4dp 8dp 12dp 16dp diff --git a/viewcomponents/src/main/res/values/styles.xml b/viewcomponents/src/main/res/values/styles.xml index c5790d3..f3be3fb 100644 --- a/viewcomponents/src/main/res/values/styles.xml +++ b/viewcomponents/src/main/res/values/styles.xml @@ -18,11 +18,12 @@