This commit is contained in:
Aidan Follestad 2019-01-06 22:40:27 -08:00
commit 1d2b79d5a3
25 changed files with 47 additions and 204 deletions

Binary file not shown.

View file

@ -31,14 +31,12 @@
android:name="com.afollestad.nocknock.ui.addsite.AddSiteActivity" android:name="com.afollestad.nocknock.ui.addsite.AddSiteActivity"
android:label="@string/add_site" android:label="@string/add_site"
android:launchMode="singleTop" android:launchMode="singleTop"
android:theme="@style/AppTheme.Transparent"
android:windowSoftInputMode="stateHidden"/> android:windowSoftInputMode="stateHidden"/>
<activity <activity
android:name="com.afollestad.nocknock.ui.viewsite.ViewSiteActivity" android:name="com.afollestad.nocknock.ui.viewsite.ViewSiteActivity"
android:label="@string/view_site" android:label="@string/view_site"
android:launchMode="singleTop" android:launchMode="singleTop"
android:theme="@style/AppTheme.Ink"
android:windowSoftInputMode="stateHidden"/> android:windowSoftInputMode="stateHidden"/>
<service <service

View file

@ -22,10 +22,7 @@ import android.content.ActivityNotFoundException
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import androidx.annotation.AttrRes
import androidx.annotation.ColorRes
import androidx.browser.customtabs.CustomTabsIntent import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.content.ContextCompat
import androidx.core.text.HtmlCompat.FROM_HTML_MODE_LEGACY import androidx.core.text.HtmlCompat.FROM_HTML_MODE_LEGACY
import androidx.core.text.HtmlCompat.fromHtml import androidx.core.text.HtmlCompat.fromHtml
import com.afollestad.materialdialogs.utils.MDUtil.resolveColor import com.afollestad.materialdialogs.utils.MDUtil.resolveColor
@ -62,20 +59,6 @@ fun String.toHtml() = fromHtml(this, FROM_HTML_MODE_LEGACY)
fun String.toUri() = Uri.parse(this)!! fun String.toUri() = Uri.parse(this)!!
fun Activity.setStatusBarColor(
@ColorRes res: Int? = null,
@AttrRes attr: Int? = null
) {
require(res != null || attr != null) { "Must specify at least one arg." }
if (res != null) {
val color = ContextCompat.getColor(this, res)
window.statusBarColor = color
} else if (attr != null) {
val color = resolveColor(this, attr = attr)
window.statusBarColor = color
}
}
fun Activity.viewUrl(url: String) { fun Activity.viewUrl(url: String) {
val customTabsIntent = CustomTabsIntent.Builder() val customTabsIntent = CustomTabsIntent.Builder()
.apply { .apply {

View file

@ -31,7 +31,7 @@ abstract class DarkModeSwitchActivity : AppCompatActivity() {
private val darkModePref by inject<Pref<Boolean>>(name = PREF_DARK_MODE) private val darkModePref by inject<Pref<Boolean>>(name = PREF_DARK_MODE)
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
isDarkModeEnabled = darkModePref.get() isDarkModeEnabled = isDarkMode()
setTheme(themeRes()) setTheme(themeRes())
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -44,7 +44,13 @@ abstract class DarkModeSwitchActivity : AppCompatActivity() {
.attachLifecycle(this) .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 R.style.AppTheme_Dark
} else { } else {
R.style.AppTheme R.style.AppTheme

View file

@ -18,12 +18,9 @@ package com.afollestad.nocknock.ui.addsite
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.os.Bundle import android.os.Bundle
import android.widget.ArrayAdapter import android.widget.ArrayAdapter
import androidx.appcompat.app.AppCompatActivity
import com.afollestad.nocknock.R import com.afollestad.nocknock.R
import com.afollestad.nocknock.data.model.ValidationMode import com.afollestad.nocknock.data.model.ValidationMode
import com.afollestad.nocknock.setStatusBarColor import com.afollestad.nocknock.ui.DarkModeSwitchActivity
import com.afollestad.nocknock.viewcomponents.ext.conceal
import com.afollestad.nocknock.viewcomponents.ext.onLayout
import com.afollestad.nocknock.viewcomponents.livedata.attachLiveData import com.afollestad.nocknock.viewcomponents.livedata.attachLiveData
import com.afollestad.nocknock.viewcomponents.livedata.toViewError import com.afollestad.nocknock.viewcomponents.livedata.toViewError
import com.afollestad.nocknock.viewcomponents.livedata.toViewText 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.responseTimeoutInput
import kotlinx.android.synthetic.main.activity_addsite.responseValidationMode import kotlinx.android.synthetic.main.activity_addsite.responseValidationMode
import kotlinx.android.synthetic.main.activity_addsite.responseValidationSearchTerm 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.scriptInputLayout
import kotlinx.android.synthetic.main.activity_addsite.textUrlWarning import kotlinx.android.synthetic.main.activity_addsite.textUrlWarning
import kotlinx.android.synthetic.main.activity_addsite.validationModeDescription import kotlinx.android.synthetic.main.activity_addsite.validationModeDescription
import kotlinx.android.synthetic.main.include_app_bar.toolbar import kotlinx.android.synthetic.main.include_app_bar.toolbar
import org.koin.androidx.viewmodel.ext.android.viewModel 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 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) */ /** @author Aidan Follestad (@afollestad) */
class AddSiteActivity : AppCompatActivity() { class AddSiteActivity : DarkModeSwitchActivity() {
var revealCx by notNull<Int>()
var revealCy by notNull<Int>()
var revealRadius by notNull<Float>()
internal var isClosing = false
private val viewModel by viewModel<AddSiteViewModel>() private val viewModel by viewModel<AddSiteViewModel>()
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setStatusBarColor(res = R.color.inkColorDark)
setContentView(R.layout.activity_addsite) setContentView(R.layout.activity_addsite)
setupUi(savedInstanceState) setupUi(savedInstanceState)
@ -139,24 +122,7 @@ class AddSiteActivity : AppCompatActivity() {
toolbarTitle.setText(R.string.add_site) toolbarTitle.setText(R.string.add_site)
toolbar.run { toolbar.run {
setNavigationIcon(R.drawable.ic_action_close) setNavigationIcon(R.drawable.ic_action_close)
setNavigationOnClickListener { closeActivityWithReveal() } setNavigationOnClickListener { finish() }
}
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()
}
} }
val validationOptionsAdapter = ArrayAdapter( val validationOptionsAdapter = ArrayAdapter(
@ -167,6 +133,4 @@ class AddSiteActivity : AppCompatActivity() {
validationOptionsAdapter.setDropDownViewResource(R.layout.list_item_spinner_dropdown) validationOptionsAdapter.setDropDownViewResource(R.layout.list_item_spinner_dropdown)
responseValidationMode.adapter = validationOptionsAdapter responseValidationMode.adapter = validationOptionsAdapter
} }
override fun onBackPressed() = closeActivityWithReveal()
} }

View file

@ -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()
}
}

View file

@ -29,7 +29,6 @@ import com.afollestad.nocknock.adapter.SiteAdapter
import com.afollestad.nocknock.broadcasts.StatusUpdateIntentReceiver import com.afollestad.nocknock.broadcasts.StatusUpdateIntentReceiver
import com.afollestad.nocknock.data.model.Site import com.afollestad.nocknock.data.model.Site
import com.afollestad.nocknock.dialogs.AboutDialog import com.afollestad.nocknock.dialogs.AboutDialog
import com.afollestad.nocknock.koin.PREF_DARK_MODE
import com.afollestad.nocknock.notifications.NockNotificationManager import com.afollestad.nocknock.notifications.NockNotificationManager
import com.afollestad.nocknock.ui.DarkModeSwitchActivity import com.afollestad.nocknock.ui.DarkModeSwitchActivity
import com.afollestad.nocknock.utilities.providers.IntentProvider 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.viewUrl
import com.afollestad.nocknock.viewUrlWithApp import com.afollestad.nocknock.viewUrlWithApp
import com.afollestad.nocknock.viewcomponents.ext.showOrHide 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.fab
import kotlinx.android.synthetic.main.activity_main.list import kotlinx.android.synthetic.main.activity_main.list
import kotlinx.android.synthetic.main.activity_main.loadingProgress import kotlinx.android.synthetic.main.activity_main.loadingProgress
@ -51,7 +49,6 @@ class MainActivity : DarkModeSwitchActivity() {
private val notificationManager by inject<NockNotificationManager>() private val notificationManager by inject<NockNotificationManager>()
private val intentProvider by inject<IntentProvider>() private val intentProvider by inject<IntentProvider>()
private val darkModePref by inject<Pref<Boolean>>(name = PREF_DARK_MODE)
internal val viewModel by viewModel<MainViewModel>() internal val viewModel by viewModel<MainViewModel>()
@ -89,11 +86,11 @@ class MainActivity : DarkModeSwitchActivity() {
toolbar.run { toolbar.run {
inflateMenu(R.menu.menu_main) inflateMenu(R.menu.menu_main)
menu.findItem(R.id.dark_mode) menu.findItem(R.id.dark_mode)
.isChecked = darkModePref.get() .isChecked = isDarkMode()
setOnMenuItemClickListener { item -> setOnMenuItemClickListener { item ->
when (item.itemId) { when (item.itemId) {
R.id.about -> AboutDialog.show(this@MainActivity) 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() R.id.support_me -> supportMe()
} }
return@setOnMenuItemClickListener true return@setOnMenuItemClickListener true

View file

@ -21,30 +21,15 @@ import com.afollestad.nocknock.R
import com.afollestad.nocknock.data.model.Site import com.afollestad.nocknock.data.model.Site
import com.afollestad.nocknock.toHtml import com.afollestad.nocknock.toHtml
import com.afollestad.nocknock.ui.addsite.AddSiteActivity 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.KEY_SITE
import com.afollestad.nocknock.ui.viewsite.ViewSiteActivity import com.afollestad.nocknock.ui.viewsite.ViewSiteActivity
import com.afollestad.nocknock.utilities.providers.RealIntentProvider.Companion.KEY_VIEW_NOTIFICATION_MODEL 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 VIEW_SITE_RQ = 6923
internal const val ADD_SITE_RQ = 6969 internal const val ADD_SITE_RQ = 6969
internal fun MainActivity.addSite() { internal fun MainActivity.addSite() {
startActivityForResult(intentToAdd(fab.x, fab.y, fab.measuredWidth), ADD_SITE_RQ) startActivityForResult(Intent(this, AddSiteActivity::class.java), 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)
} }
internal fun MainActivity.viewSite(model: Site) { internal fun MainActivity.viewSite(model: Site) {

View file

@ -19,13 +19,12 @@ import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.widget.ArrayAdapter import android.widget.ArrayAdapter
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
import com.afollestad.nocknock.R import com.afollestad.nocknock.R
import com.afollestad.nocknock.broadcasts.StatusUpdateIntentReceiver import com.afollestad.nocknock.broadcasts.StatusUpdateIntentReceiver
import com.afollestad.nocknock.data.model.Site import com.afollestad.nocknock.data.model.Site
import com.afollestad.nocknock.data.model.ValidationMode 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.utilities.providers.IntentProvider
import com.afollestad.nocknock.viewcomponents.ext.dimenFloat import com.afollestad.nocknock.viewcomponents.ext.dimenFloat
import com.afollestad.nocknock.viewcomponents.ext.onScroll 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 import kotlinx.android.synthetic.main.include_app_bar.toolbar_title as toolbarTitle
/** @author Aidan Follestad (@afollestad) */ /** @author Aidan Follestad (@afollestad) */
class ViewSiteActivity : AppCompatActivity() { class ViewSiteActivity : DarkModeSwitchActivity() {
internal val viewModel by viewModel<ViewSiteViewModel>() internal val viewModel by viewModel<ViewSiteViewModel>()
@ -69,7 +68,6 @@ class ViewSiteActivity : AppCompatActivity() {
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setStatusBarColor(res = R.color.inkColorDark)
setContentView(R.layout.activity_viewsite) setContentView(R.layout.activity_viewsite)
setupUi() setupUi()
@ -159,7 +157,7 @@ class ViewSiteActivity : AppCompatActivity() {
} }
private fun setupUi() { private fun setupUi() {
toolbarTitle.setText(R.string.add_site) toolbarTitle.setText(R.string.view_site)
toolbar.run { toolbar.run {
setNavigationIcon(R.drawable.ic_action_close) setNavigationIcon(R.drawable.ic_action_close)
setNavigationOnClickListener { finish() } setNavigationOnClickListener { finish() }

View file

@ -4,6 +4,6 @@
android:viewportHeight="24.0" android:viewportHeight="24.0"
android:viewportWidth="24.0"> android:viewportWidth="24.0">
<path <path
android:fillColor="#fff" android:fillColor="?iconColor"
android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"/> android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"/>
</vector> </vector>

View file

@ -4,6 +4,6 @@
android:viewportHeight="24.0" android:viewportHeight="24.0"
android:viewportWidth="24.0"> android:viewportWidth="24.0">
<path <path
android:fillColor="#fff" android:fillColor="?iconColor"
android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z"/> android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z"/>
</vector> </vector>

View file

@ -4,6 +4,6 @@
android:viewportHeight="24.0" android:viewportHeight="24.0"
android:viewportWidth="24.0"> android:viewportWidth="24.0">
<path <path
android:fillColor="#fff" android:fillColor="?iconColor"
android:pathData="M17.65,6.35C16.2,4.9 14.21,4 12,4c-4.42,0 -7.99,3.58 -7.99,8s3.57,8 7.99,8c3.73,0 6.84,-2.55 7.73,-6h-2.08c-0.82,2.33 -3.04,4 -5.65,4 -3.31,0 -6,-2.69 -6,-6s2.69,-6 6,-6c1.66,0 3.14,0.69 4.22,1.78L13,11h7V4l-2.35,2.35z"/> android:pathData="M17.65,6.35C16.2,4.9 14.21,4 12,4c-4.42,0 -7.99,3.58 -7.99,8s3.57,8 7.99,8c3.73,0 6.84,-2.55 7.73,-6h-2.08c-0.82,2.33 -3.04,4 -5.65,4 -3.31,0 -6,-2.69 -6,-6s2.69,-6 6,-6c1.66,0 3.14,0.69 4.22,1.78L13,11h7V4l-2.35,2.35z"/>
</vector> </vector>

View file

@ -10,7 +10,6 @@
android:id="@+id/rootView" android:id="@+id/rootView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="?colorPrimary"
android:orientation="vertical" android:orientation="vertical"
> >
@ -45,7 +44,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/site_name" android:hint="@string/site_name"
android:inputType="textPersonName|textCapWords|textAutoCorrect" android:inputType="textPersonName|textCapWords|textAutoCorrect"
android:textColor="#FFFFFF"
style="@style/NockText.Body" style="@style/NockText.Body"
/> />
@ -66,7 +64,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/site_url" android:hint="@string/site_url"
android:inputType="textUri" android:inputType="textUri"
android:textColor="#FFFFFF"
style="@style/NockText.Body" style="@style/NockText.Body"
/> />
@ -108,9 +105,8 @@
android:hint="@string/response_timeout_default" android:hint="@string/response_timeout_default"
android:inputType="number" android:inputType="number"
android:maxLength="8" android:maxLength="8"
android:textColor="#FFFFFF"
tools:ignore="Autofill,HardcodedText,LabelFor" tools:ignore="Autofill,HardcodedText,LabelFor"
style="@style/NockText.Body.Light" style="@style/NockText.Body"
/> />
<TextView <TextView
@ -139,7 +135,7 @@
android:hint="@string/search_term" android:hint="@string/search_term"
android:visibility="gone" android:visibility="gone"
tools:ignore="Autofill,TextFields" tools:ignore="Autofill,TextFields"
style="@style/NockText.Body.Light" style="@style/NockText.Body"
/> />
<com.afollestad.nocknock.viewcomponents.js.JavaScriptInputLayout <com.afollestad.nocknock.viewcomponents.js.JavaScriptInputLayout
@ -148,7 +144,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/content_inset" android:layout_marginBottom="@dimen/content_inset"
android:layout_marginTop="@dimen/content_inset_half" android:layout_marginTop="@dimen/content_inset_half"
android:background="@color/inkColorDark" android:background="@color/lighterGray"
/> />
<TextView <TextView

View file

@ -29,7 +29,7 @@
android:paddingBottom="@dimen/content_inset" android:paddingBottom="@dimen/content_inset"
android:paddingLeft="@dimen/content_inset" android:paddingLeft="@dimen/content_inset"
android:paddingRight="@dimen/content_inset" android:paddingRight="@dimen/content_inset"
android:paddingTop="@dimen/content_inset_half" android:paddingTop="@dimen/content_inset"
> >
<LinearLayout <LinearLayout
@ -62,7 +62,6 @@
android:hint="@string/site_name" android:hint="@string/site_name"
android:inputType="textPersonName|textCapWords|textAutoCorrect" android:inputType="textPersonName|textCapWords|textAutoCorrect"
android:singleLine="true" android:singleLine="true"
android:textColor="#FFFFFF"
android:transitionName="site_name" android:transitionName="site_name"
tools:ignore="Autofill,UnusedAttribute" tools:ignore="Autofill,UnusedAttribute"
style="@style/NockText.Body" style="@style/NockText.Body"
@ -75,7 +74,6 @@
android:hint="@string/site_url" android:hint="@string/site_url"
android:inputType="textUri" android:inputType="textUri"
android:singleLine="true" android:singleLine="true"
android:textColor="#FFFFFF"
android:transitionName="site_url" android:transitionName="site_url"
tools:ignore="Autofill,UnusedAttribute" tools:ignore="Autofill,UnusedAttribute"
style="@style/NockText.Body" style="@style/NockText.Body"
@ -128,16 +126,15 @@
android:hint="@string/response_timeout_default" android:hint="@string/response_timeout_default"
android:inputType="number" android:inputType="number"
android:maxLength="8" android:maxLength="8"
android:textColor="#FFFFFF"
tools:ignore="Autofill,HardcodedText,LabelFor" tools:ignore="Autofill,HardcodedText,LabelFor"
style="@style/NockText.Body.Light" style="@style/NockText.Body"
/> />
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1dp" android:layout_height="1dp"
android:layout_marginTop="@dimen/content_inset_less" android:layout_marginTop="@dimen/content_inset_less"
android:background="@color/dividerColorDark" android:background="?dividerColor"
/> />
<TextView <TextView
@ -164,10 +161,9 @@
android:layout_marginRight="-4dp" android:layout_marginRight="-4dp"
android:layout_marginTop="-4dp" android:layout_marginTop="-4dp"
android:hint="@string/search_term" android:hint="@string/search_term"
android:textColor="#FFFFFF"
android:visibility="gone" android:visibility="gone"
tools:ignore="Autofill,TextFields" tools:ignore="Autofill,TextFields"
style="@style/NockText.Body.Light" style="@style/NockText.Body"
/> />
<com.afollestad.nocknock.viewcomponents.js.JavaScriptInputLayout <com.afollestad.nocknock.viewcomponents.js.JavaScriptInputLayout
@ -176,7 +172,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/content_inset" android:layout_marginBottom="@dimen/content_inset"
android:layout_marginTop="@dimen/content_inset_half" android:layout_marginTop="@dimen/content_inset_half"
android:background="@color/inkColorDark" android:background="@color/lighterGray"
/> />
<TextView <TextView
@ -238,7 +234,7 @@
android:id="@+id/disableChecksButton" android:id="@+id/disableChecksButton"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/content_inset_half" android:layout_marginTop="@dimen/content_inset_half_quarter"
android:text="@string/disable_automatic_checks" android:text="@string/disable_automatic_checks"
style="@style/PrimaryDarkButton" style="@style/PrimaryDarkButton"
/> />

View file

@ -4,5 +4,5 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1dp" android:layout_height="1dp"
android:layout_marginTop="@dimen/content_inset" android:layout_marginTop="@dimen/content_inset"
android:background="@color/dividerColorDark" android:background="?dividerColor"
/> />

View file

@ -7,8 +7,7 @@
<color name="colorPrimary_darkTheme">#212121</color> <color name="colorPrimary_darkTheme">#212121</color>
<color name="colorPrimaryDark_darkTheme">#252525</color> <color name="colorPrimaryDark_darkTheme">#252525</color>
<color name="inkColor">#455A64</color> <color name="lighterGray">#303030</color>
<color name="inkColorDark">#37474F</color>
<color name="colorAccent">#FF6E40</color> <color name="colorAccent">#FF6E40</color>
</resources> </resources>

View file

@ -4,26 +4,6 @@
<style name="AppTheme.Dark" parent="AppThemeParent.Dark"/> <style name="AppTheme.Dark" parent="AppThemeParent.Dark"/>
<style name="AppTheme.Ink" parent="AppThemeParent.Ink">
<item name="colorPrimary">@color/inkColor</item>
<item name="colorPrimaryDark">@color/inkColorDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorButtonNormal">@color/inkColor</item>
<item name="android:listDivider">@drawable/divider</item>
<item name="md_corner_radius">16dp</item>
<item name="md_font_title">@font/lato_black</item>
<item name="md_font_body">@font/lato</item>
<item name="md_font_button">@font/lato_bold</item>
</style>
<style name="AppTheme.Transparent" parent="AppTheme.Ink">
<item name="android:windowIsTranslucent">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
<style name="AccentButton" parent="Widget.MaterialComponents.Button"> <style name="AccentButton" parent="Widget.MaterialComponents.Button">
<item name="android:textColor">#fff</item> <item name="android:textColor">#fff</item>
<item name="backgroundTint">@color/colorAccent</item> <item name="backgroundTint">@color/colorAccent</item>
@ -32,7 +12,7 @@
<style name="PrimaryDarkButton" parent="Widget.MaterialComponents.Button"> <style name="PrimaryDarkButton" parent="Widget.MaterialComponents.Button">
<item name="android:textColor">#fff</item> <item name="android:textColor">#fff</item>
<item name="backgroundTint">@color/inkColorDark</item> <item name="backgroundTint">@color/lighterGray</item>
<item name="android:fontFamily">@font/lato</item> <item name="android:fontFamily">@font/lato</item>
</style> </style>

View file

@ -4,12 +4,15 @@
<item name="colorPrimary">@color/colorPrimary_lightTheme</item> <item name="colorPrimary">@color/colorPrimary_lightTheme</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark_lightTheme</item> <item name="colorPrimaryDark">@color/colorPrimaryDark_lightTheme</item>
<item name="colorAccent">@color/colorAccent</item> <item name="colorAccent">@color/colorAccent</item>
<item name="colorButtonNormal">@color/inkColorDark</item> <item name="colorButtonNormal">@color/colorAccent</item>
<item name="toolbarTitleColor">#000000</item> <item name="toolbarTitleColor">#000000</item>
<item name="dividerColor">#1f000000</item> <item name="dividerColor">#1f000000</item>
<item name="iconColor">#000000</item> <item name="iconColor">#000000</item>
<item name="android:textColorPrimary">#212121</item>
<item name="android:textColorSecondary">#727272</item>
<item name="android:windowBackground">@color/colorPrimary_lightTheme</item> <item name="android:windowBackground">@color/colorPrimary_lightTheme</item>
<item name="android:listDivider">@drawable/divider</item> <item name="android:listDivider">@drawable/divider</item>
@ -25,12 +28,15 @@
<item name="colorPrimary">@color/colorPrimary_darkTheme</item> <item name="colorPrimary">@color/colorPrimary_darkTheme</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark_darkTheme</item> <item name="colorPrimaryDark">@color/colorPrimaryDark_darkTheme</item>
<item name="colorAccent">@color/colorAccent</item> <item name="colorAccent">@color/colorAccent</item>
<item name="colorButtonNormal">@color/inkColorDark</item> <item name="colorButtonNormal">@color/colorAccent</item>
<item name="toolbarTitleColor">#ffffff</item> <item name="toolbarTitleColor">#ffffff</item>
<item name="dividerColor">#1fffffff</item> <item name="dividerColor">#1f000000</item>
<item name="iconColor">#FFFFFF</item> <item name="iconColor">#FFFFFF</item>
<item name="android:textColorPrimary">#FFFFFF</item>
<item name="android:textColorSecondary">#F0F0F0</item>
<item name="android:windowBackground">@color/colorPrimary_darkTheme</item> <item name="android:windowBackground">@color/colorPrimary_darkTheme</item>
<item name="android:listDivider">@drawable/divider</item> <item name="android:listDivider">@drawable/divider</item>
@ -43,8 +49,4 @@
<item name="md_font_button">@font/lato_bold</item> <item name="md_font_button">@font/lato_bold</item>
</style> </style>
<style name="AppThemeParent.Ink" parent="AppThemeParent.Dark">
<item name="android:navigationBarColor">@color/inkColorDark</item>
</style>
</resources> </resources>

View file

@ -3,8 +3,8 @@ ext.versions = [
minSdk : 21, minSdk : 21,
compileSdk : 28, compileSdk : 28,
buildTools : '28.0.3', buildTools : '28.0.3',
publishVersion : '0.8.0', publishVersion : '0.8.1',
publishVersionCode : 28, publishVersionCode : 30,
// Plugins // Plugins
gradlePlugin : '3.2.1', gradlePlugin : '3.2.1',

View file

@ -4,6 +4,5 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/button_height" android:layout_height="@dimen/button_height"
android:gravity="center_vertical|start" android:gravity="center_vertical|start"
android:textColor="#FFFFFF"
style="@style/NockText.Body" style="@style/NockText.Body"
/> />

View file

@ -6,6 +6,5 @@
android:gravity="center_vertical|start" android:gravity="center_vertical|start"
android:paddingLeft="@dimen/content_inset" android:paddingLeft="@dimen/content_inset"
android:paddingRight="@dimen/content_inset" android:paddingRight="@dimen/content_inset"
android:textColor="#FFFFFF"
style="@style/NockText.Body" style="@style/NockText.Body"
/> />

View file

@ -34,9 +34,8 @@
android:hint="0" android:hint="0"
android:inputType="number" android:inputType="number"
android:maxLength="6" android:maxLength="6"
android:textColor="#FFFFFF"
tools:ignore="Autofill,HardcodedText,LabelFor" tools:ignore="Autofill,HardcodedText,LabelFor"
style="@style/NockText.Body.Light" style="@style/NockText.Body"
/> />
<Spinner <Spinner

View file

@ -1,8 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<color name="dividerColorDark">#37474F</color>
<color name="loading_indicator_frame_background">#40000000</color> <color name="loading_indicator_frame_background">#40000000</color>
<color name="md_red">#E53935</color> <color name="md_red">#E53935</color>

View file

@ -5,6 +5,7 @@
<dimen name="default_elevation">4dp</dimen> <dimen name="default_elevation">4dp</dimen>
<dimen name="content_inset_half_quarter">4dp</dimen>
<dimen name="content_inset_half">8dp</dimen> <dimen name="content_inset_half">8dp</dimen>
<dimen name="content_inset_less">12dp</dimen> <dimen name="content_inset_less">12dp</dimen>
<dimen name="content_inset">16dp</dimen> <dimen name="content_inset">16dp</dimen>

View file

@ -18,11 +18,12 @@
<style name="NockText.Body"> <style name="NockText.Body">
<item name="android:textSize">@dimen/body_font_size</item> <item name="android:textSize">@dimen/body_font_size</item>
<item name="android:fontFamily">@font/lato</item> <item name="android:fontFamily">@font/lato</item>
<item name="android:textColor">?android:textColorSecondary</item> <item name="android:textColor">?android:textColorPrimary</item>
</style> </style>
<style name="NockText.Body.Light" parent="NockText.Body"> <style name="NockText.Body.Light" parent="NockText.Body">
<item name="android:fontFamily">@font/lato_light</item> <item name="android:fontFamily">@font/lato_light</item>
<item name="android:textColor">?android:textColorSecondary</item>
</style> </style>
<style name="NockText.Caption"> <style name="NockText.Caption">