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 @@