This commit is contained in:
Aidan Follestad 2019-01-06 22:40:27 -08:00
parent 44d31dd5c3
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:label="@string/add_site"
android:launchMode="singleTop"
android:theme="@style/AppTheme.Transparent"
android:windowSoftInputMode="stateHidden"/>
<activity
android:name="com.afollestad.nocknock.ui.viewsite.ViewSiteActivity"
android:label="@string/view_site"
android:launchMode="singleTop"
android:theme="@style/AppTheme.Ink"
android:windowSoftInputMode="stateHidden"/>
<service

View file

@ -22,10 +22,7 @@ import android.content.ActivityNotFoundException
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import androidx.annotation.AttrRes
import androidx.annotation.ColorRes
import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.content.ContextCompat
import androidx.core.text.HtmlCompat.FROM_HTML_MODE_LEGACY
import androidx.core.text.HtmlCompat.fromHtml
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 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) {
val customTabsIntent = CustomTabsIntent.Builder()
.apply {

View file

@ -31,7 +31,7 @@ abstract class DarkModeSwitchActivity : AppCompatActivity() {
private val darkModePref by inject<Pref<Boolean>>(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

View file

@ -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<Int>()
var revealCy by notNull<Int>()
var revealRadius by notNull<Float>()
internal var isClosing = false
class AddSiteActivity : DarkModeSwitchActivity() {
private val viewModel by viewModel<AddSiteViewModel>()
@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()
}

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.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<NockNotificationManager>()
private val intentProvider by inject<IntentProvider>()
private val darkModePref by inject<Pref<Boolean>>(name = PREF_DARK_MODE)
internal val viewModel by viewModel<MainViewModel>()
@ -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

View file

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

View file

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

View file

@ -4,6 +4,6 @@
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<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"/>
</vector>

View file

@ -4,6 +4,6 @@
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<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"/>
</vector>

View file

@ -4,6 +4,6 @@
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<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"/>
</vector>

View file

@ -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"
/>
<TextView
@ -139,7 +135,7 @@
android:hint="@string/search_term"
android:visibility="gone"
tools:ignore="Autofill,TextFields"
style="@style/NockText.Body.Light"
style="@style/NockText.Body"
/>
<com.afollestad.nocknock.viewcomponents.js.JavaScriptInputLayout
@ -148,7 +144,7 @@
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/content_inset"
android:layout_marginTop="@dimen/content_inset_half"
android:background="@color/inkColorDark"
android:background="@color/lighterGray"
/>
<TextView

View file

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

View file

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

View file

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

View file

@ -4,26 +4,6 @@
<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">
<item name="android:textColor">#fff</item>
<item name="backgroundTint">@color/colorAccent</item>
@ -32,7 +12,7 @@
<style name="PrimaryDarkButton" parent="Widget.MaterialComponents.Button">
<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>
</style>

View file

@ -4,12 +4,15 @@
<item name="colorPrimary">@color/colorPrimary_lightTheme</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark_lightTheme</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="dividerColor">#1f000000</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:listDivider">@drawable/divider</item>
@ -25,12 +28,15 @@
<item name="colorPrimary">@color/colorPrimary_darkTheme</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark_darkTheme</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="dividerColor">#1fffffff</item>
<item name="dividerColor">#1f000000</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:listDivider">@drawable/divider</item>
@ -43,8 +49,4 @@
<item name="md_font_button">@font/lato_bold</item>
</style>
<style name="AppThemeParent.Ink" parent="AppThemeParent.Dark">
<item name="android:navigationBarColor">@color/inkColorDark</item>
</style>
</resources>

View file

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

View file

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

View file

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

View file

@ -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"
/>
<Spinner

View file

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

View file

@ -5,6 +5,7 @@
<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_less">12dp</dimen>
<dimen name="content_inset">16dp</dimen>

View file

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