update icons
|
|
@ -5,12 +5,12 @@ plugins {
|
|||
|
||||
id 'com.google.gms.google-services'
|
||||
id 'com.google.firebase.crashlytics'
|
||||
id 'realm-android'
|
||||
id 'androidx.navigation.safeargs'
|
||||
id 'com.google.firebase.firebase-perf'
|
||||
}
|
||||
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: "realm-android"
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
|
|
|
|||
|
|
@ -31,14 +31,14 @@ buildscript {
|
|||
mavenCentral()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:7.2.1'
|
||||
classpath 'com.android.tools.build:gradle:7.1.3'
|
||||
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
|
||||
classpath 'com.google.gms:google-services:4.3.13'
|
||||
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.1'
|
||||
classpath "io.realm:realm-gradle-plugin:10.10.1"
|
||||
classpath "io.realm:realm-gradle-plugin:10.11.0"
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.19.0"
|
||||
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.5.0-rc02"
|
||||
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.5.0"
|
||||
classpath 'com.google.firebase:perf-plugin:1.4.1'
|
||||
classpath "com.google.dagger:hilt-android-gradle-plugin:$daggerhilt_version"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ class FailedViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
|||
}
|
||||
}
|
||||
|
||||
class HolderViewHolder(itemView: View): RecyclerView.ViewHolder(itemView)
|
||||
|
||||
class EmptyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
||||
|
||||
private val binding = EmptyItemBinding.bind(itemView)
|
||||
|
|
@ -66,6 +68,7 @@ class EmptyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
|||
|
||||
class RecyclerViewStateAdapter(val showLoadingAsEmpty: Boolean = false) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
|
||||
var onRefresh: (() -> Unit)? = null
|
||||
var emptyViewBuilder: (() -> View)? = null
|
||||
var emptyItem: EmptyItem? = null
|
||||
set(value) {
|
||||
field = value
|
||||
|
|
@ -90,7 +93,11 @@ class RecyclerViewStateAdapter(val showLoadingAsEmpty: Boolean = false) : Recycl
|
|||
object : RecyclerView.ViewHolder(view) {}
|
||||
}
|
||||
1 -> FailedViewHolder(parent.inflate(R.layout.failed_item))
|
||||
else -> EmptyViewHolder(parent.inflate(R.layout.empty_item))
|
||||
else ->if (emptyViewBuilder != null) {
|
||||
HolderViewHolder(emptyViewBuilder?.invoke() ?: View(parent.context))
|
||||
} else {
|
||||
EmptyViewHolder(parent.inflate(R.layout.empty_item))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
NAME=4.0
|
||||
CODE=4160
|
||||
CODE=4180
|
||||
|
|
@ -145,7 +145,6 @@ class MainActivity : BaseActivity<ActivityMainBinding, MainViewModel>() {
|
|||
}
|
||||
|
||||
private fun openTaskFormActivity() {
|
||||
throw RuntimeException("WEAR TEST")
|
||||
openTaskForm.launch(Intent(this, TaskFormActivity::class.java))
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import androidx.activity.viewModels
|
|||
import androidx.wear.widget.WearableLinearLayoutManager
|
||||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.databinding.ActivityTasklistBinding
|
||||
import com.habitrpg.common.habitica.helpers.EmptyItem
|
||||
import com.habitrpg.android.habitica.databinding.EmptyTaskListBinding
|
||||
import com.habitrpg.common.habitica.models.responses.TaskDirection
|
||||
import com.habitrpg.common.habitica.models.responses.TaskScoringResult
|
||||
import com.habitrpg.common.habitica.models.tasks.TaskType
|
||||
|
|
@ -32,6 +32,7 @@ class TaskListActivity : BaseActivity<ActivityTasklistBinding, TaskListViewModel
|
|||
binding = ActivityTasklistBinding.inflate(layoutInflater)
|
||||
super.onCreate(savedInstanceState)
|
||||
configureAdapter()
|
||||
|
||||
binding.recyclerView.apply {
|
||||
overScrollMode = View.OVER_SCROLL_ALWAYS
|
||||
layoutManager =
|
||||
|
|
@ -40,8 +41,10 @@ class TaskListActivity : BaseActivity<ActivityTasklistBinding, TaskListViewModel
|
|||
HabiticaScrollingLayoutCallback()
|
||||
)
|
||||
adapter = this@TaskListActivity.adapter
|
||||
emptyItem = EmptyItem(
|
||||
getString(
|
||||
emptyViewBuilder = {
|
||||
val emptyBinding = EmptyTaskListBinding.inflate(layoutInflater)
|
||||
emptyBinding.header.textView.text = getTitle(viewModel.taskCount.value)
|
||||
emptyBinding.descriptionView.text = getString(
|
||||
R.string.no_tasks, getString(
|
||||
when (viewModel.taskType) {
|
||||
TaskType.HABIT -> R.string.habit
|
||||
|
|
@ -52,7 +55,8 @@ class TaskListActivity : BaseActivity<ActivityTasklistBinding, TaskListViewModel
|
|||
}
|
||||
)
|
||||
)
|
||||
)
|
||||
emptyBinding.root
|
||||
}
|
||||
onRefresh = {
|
||||
viewModel.retrieveFullUserData()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
package com.habitrpg.wearos.habitica.ui.adapters
|
||||
|
||||
interface BaseAdapter {
|
||||
fun hasData(): Boolean
|
||||
}
|
||||
|
|
@ -8,7 +8,7 @@ import com.habitrpg.wearos.habitica.models.tasks.Task
|
|||
import com.habitrpg.wearos.habitica.ui.viewHolders.HeaderSectionViewHolder
|
||||
import com.habitrpg.wearos.habitica.ui.viewHolders.tasks.TaskViewHolder
|
||||
|
||||
open class TaskListAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
|
||||
open class TaskListAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>(), BaseAdapter {
|
||||
var title: String = ""
|
||||
var onTaskScore: ((Task) -> Unit)? = null
|
||||
var onTaskTapped:((Task) -> Unit)? = null
|
||||
|
|
@ -18,6 +18,11 @@ open class TaskListAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
|
|||
field = value
|
||||
notifyDataSetChanged()
|
||||
}
|
||||
|
||||
override fun hasData(): Boolean {
|
||||
return data.isNotEmpty()
|
||||
}
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
|
||||
val inflater = parent.context.layoutInflater
|
||||
return HeaderSectionViewHolder(RowSectionHeaderBinding.inflate(inflater, parent, false).root)
|
||||
|
|
|
|||
|
|
@ -2,10 +2,12 @@ package com.habitrpg.wearos.habitica.ui.views
|
|||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.View
|
||||
import androidx.wear.widget.WearableRecyclerView
|
||||
import com.habitrpg.common.habitica.helpers.EmptyItem
|
||||
import com.habitrpg.common.habitica.helpers.RecyclerViewState
|
||||
import com.habitrpg.common.habitica.helpers.RecyclerViewStateAdapter
|
||||
import com.habitrpg.wearos.habitica.ui.adapters.BaseAdapter
|
||||
|
||||
class HabiticaRecyclerView @JvmOverloads constructor(
|
||||
context: Context, attrs: AttributeSet? = null
|
||||
|
|
@ -13,7 +15,7 @@ class HabiticaRecyclerView @JvmOverloads constructor(
|
|||
override fun onAttachedToWindow() {
|
||||
super.onAttachedToWindow()
|
||||
post {
|
||||
setPaddingRelative(0, (height * 0.1).toInt(), 0, (height * 0.25).toInt())
|
||||
setPadding(0, (height * 0.1).toInt(), 0, (height * 0.25).toInt())
|
||||
scrollToPosition(0)
|
||||
}
|
||||
}
|
||||
|
|
@ -46,6 +48,12 @@ class HabiticaRecyclerView @JvmOverloads constructor(
|
|||
emptyAdapter.emptyItem = value
|
||||
}
|
||||
|
||||
var emptyViewBuilder: (() -> View)?
|
||||
get() = emptyAdapter.emptyViewBuilder
|
||||
set(value) {
|
||||
emptyAdapter.emptyViewBuilder = value
|
||||
}
|
||||
|
||||
private var actualAdapter: Adapter<*>? = null
|
||||
private val emptyAdapter = RecyclerViewStateAdapter(true)
|
||||
|
||||
|
|
@ -65,7 +73,11 @@ class HabiticaRecyclerView @JvmOverloads constructor(
|
|||
|
||||
internal fun updateState(isInitial: Boolean = false) {
|
||||
state = if (actualAdapter != null && !isInitial) {
|
||||
val emptyViewVisible = actualAdapter?.itemCount == 0
|
||||
val emptyViewVisible = if (actualAdapter is BaseAdapter) {
|
||||
(actualAdapter as? BaseAdapter)?.hasData() != true
|
||||
} else {
|
||||
actualAdapter?.itemCount == 0
|
||||
}
|
||||
if (emptyViewVisible) {
|
||||
RecyclerViewState.EMPTY
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import android.content.res.Resources
|
|||
import android.util.AttributeSet
|
||||
import androidx.core.view.children
|
||||
import androidx.core.widget.NestedScrollView
|
||||
import com.habitrpg.common.habitica.extensions.dpToPx
|
||||
|
||||
class HabiticaScrollView @JvmOverloads constructor(
|
||||
context: Context, attrs: AttributeSet? = null
|
||||
|
|
@ -13,19 +14,19 @@ class HabiticaScrollView @JvmOverloads constructor(
|
|||
override fun onLayout(changed: Boolean, l: Int, t: Int, r: Int, b: Int) {
|
||||
super.onLayout(changed, l, t, r, b)
|
||||
if (changed) {
|
||||
if (context.resources.configuration.isScreenRound) {
|
||||
val verticalPadding =
|
||||
(0.146467f * Resources.getSystem().displayMetrics.widthPixels).toInt()
|
||||
val horizontalPadding =
|
||||
(0.1f * Resources.getSystem().displayMetrics.widthPixels).toInt()
|
||||
children.firstOrNull()
|
||||
?.setPadding(
|
||||
horizontalPadding,
|
||||
verticalPadding,
|
||||
horizontalPadding,
|
||||
verticalPadding*2
|
||||
)
|
||||
val verticalPadding = if (context.resources.configuration.isScreenRound) {
|
||||
(0.146467f * Resources.getSystem().displayMetrics.widthPixels).toInt()
|
||||
} else {
|
||||
0
|
||||
}
|
||||
val horizontalPadding = 10.dpToPx(context)
|
||||
children.firstOrNull()
|
||||
?.setPadding(
|
||||
horizontalPadding,
|
||||
verticalPadding,
|
||||
horizontalPadding,
|
||||
verticalPadding*2
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
wearos/src/main/res/drawable-hdpi/cancel.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
wearos/src/main/res/drawable-hdpi/edit.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
wearos/src/main/res/drawable-hdpi/google_icon.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
wearos/src/main/res/drawable-hdpi/handoff.png
Normal file
|
After Width: | Height: | Size: 474 B |
BIN
wearos/src/main/res/drawable-hdpi/ic_keyboard.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
wearos/src/main/res/drawable-hdpi/logout.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
wearos/src/main/res/drawable-hdpi/save.png
Normal file
|
After Width: | Height: | Size: 441 B |
BIN
wearos/src/main/res/drawable-mdpi/cancel.png
Normal file
|
After Width: | Height: | Size: 268 B |
BIN
wearos/src/main/res/drawable-mdpi/edit.png
Normal file
|
After Width: | Height: | Size: 267 B |
BIN
wearos/src/main/res/drawable-mdpi/google_icon.png
Normal file
|
After Width: | Height: | Size: 673 B |
BIN
wearos/src/main/res/drawable-mdpi/handoff.png
Normal file
|
After Width: | Height: | Size: 376 B |
BIN
wearos/src/main/res/drawable-mdpi/ic_keyboard.png
Normal file
|
After Width: | Height: | Size: 344 B |
BIN
wearos/src/main/res/drawable-mdpi/logout.png
Normal file
|
After Width: | Height: | Size: 372 B |
BIN
wearos/src/main/res/drawable-mdpi/save.png
Normal file
|
After Width: | Height: | Size: 318 B |
BIN
wearos/src/main/res/drawable-xhdpi/cancel.png
Normal file
|
After Width: | Height: | Size: 399 B |
BIN
wearos/src/main/res/drawable-xhdpi/google_icon.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
wearos/src/main/res/drawable-xhdpi/handoff.png
Normal file
|
After Width: | Height: | Size: 597 B |
BIN
wearos/src/main/res/drawable-xhdpi/ic_keyboard.png
Normal file
|
After Width: | Height: | Size: 486 B |
BIN
wearos/src/main/res/drawable-xhdpi/logout.png
Normal file
|
After Width: | Height: | Size: 554 B |
BIN
wearos/src/main/res/drawable-xhdpi/save.png
Normal file
|
After Width: | Height: | Size: 553 B |
BIN
wearos/src/main/res/drawable-xxhdpi/cancel.png
Normal file
|
After Width: | Height: | Size: 508 B |
BIN
wearos/src/main/res/drawable-xxhdpi/edit.png
Normal file
|
After Width: | Height: | Size: 527 B |
BIN
wearos/src/main/res/drawable-xxhdpi/google_icon.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
wearos/src/main/res/drawable-xxhdpi/handoff.png
Normal file
|
After Width: | Height: | Size: 803 B |
BIN
wearos/src/main/res/drawable-xxhdpi/ic_keyboard.png
Normal file
|
After Width: | Height: | Size: 605 B |
BIN
wearos/src/main/res/drawable-xxhdpi/logout.png
Normal file
|
After Width: | Height: | Size: 719 B |
BIN
wearos/src/main/res/drawable-xxhdpi/save.png
Normal file
|
After Width: | Height: | Size: 796 B |
|
|
@ -1,9 +0,0 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="16"
|
||||
android:viewportHeight="16">
|
||||
<path
|
||||
android:pathData="M2.3249,15.85L0.2,13.675L5.8499,8L0.2,2.3L2.3249,0.125L7.9999,5.825L13.675,0.125L15.8,2.3L10.15,8L15.8,13.675L13.675,15.85L7.9999,10.15L2.3249,15.85Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
</vector>
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
|
||||
<solid android:color="@color/white" />
|
||||
<corners android:radius="@dimen/spacing_medium" />
|
||||
<corners android:radius="6dp" />
|
||||
|
||||
</shape>
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
<vector android:height="24dp" android:tint="#FFFFFF"
|
||||
android:viewportHeight="24" android:viewportWidth="24"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@android:color/white" android:pathData="M3,17.25V21h3.75L17.81,9.94l-3.75,-3.75L3,17.25zM20.71,7.04c0.39,-0.39 0.39,-1.02 0,-1.41l-2.34,-2.34c-0.39,-0.39 -1.02,-0.39 -1.41,0l-1.83,1.83 3.75,3.75 1.83,-1.83z"/>
|
||||
</vector>
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="48"
|
||||
android:viewportHeight="48">
|
||||
<path
|
||||
android:pathData="M43.611,20.083H42V20H24v8h11.303c-1.649,4.657 -6.08,8 -11.303,8c-6.627,0 -12,-5.373 -12,-12s5.373,-12 12,-12c3.059,0 5.842,1.154 7.961,3.039l5.657,-5.657C34.046,6.053 29.268,4 24,4C12.955,4 4,12.955 4,24s8.955,20 20,20s20,-8.955 20,-20C44,22.659 43.862,21.35 43.611,20.083z"
|
||||
android:fillColor="#fbc02d"/>
|
||||
<path
|
||||
android:pathData="M6.306,14.691l6.571,4.819C14.655,15.108 18.961,12 24,12c3.059,0 5.842,1.154 7.961,3.039l5.657,-5.657C34.046,6.053 29.268,4 24,4C16.318,4 9.656,8.337 6.306,14.691z"
|
||||
android:fillColor="#e53935"/>
|
||||
<path
|
||||
android:pathData="M24,44c5.166,0 9.86,-1.977 13.409,-5.192l-6.19,-5.238C29.211,35.091 26.715,36 24,36c-5.202,0 -9.619,-3.317 -11.283,-7.946l-6.522,5.025C9.505,39.556 16.227,44 24,44z"
|
||||
android:fillColor="#4caf50"/>
|
||||
<path
|
||||
android:pathData="M43.611,20.083L43.595,20L42,20H24v8h11.303c-0.792,2.237 -2.231,4.166 -4.087,5.571c0.001,-0.001 0.002,-0.001 0.003,-0.002l6.19,5.238C36.971,39.205 44,34 44,24C44,22.659 43.862,21.35 43.611,20.083z"
|
||||
android:fillColor="#1565c0"/>
|
||||
</vector>
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="18dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="19">
|
||||
<path
|
||||
android:pathData="M3.025,18.1C2.175,18.1 1.4583,17.8083 0.875,17.225C0.2917,16.6417 0,15.925 0,15.075V3.025C0,2.175 0.2917,1.4583 0.875,0.875C1.4583,0.2917 2.175,0 3.025,0H20.025C20.875,0 21.5917,0.2917 22.175,0.875C22.7583,1.4583 23.05,2.175 23.05,3.025V15.075C23.05,15.925 22.7583,16.6417 22.175,17.225C21.5917,17.8083 20.875,18.1 20.025,18.1H3.025ZM8.4,6.725H10.675V4.45H8.4V6.725ZM4.45,6.725H6.725V4.45H4.45V6.725ZM7.375,13.675H15.675V12.225H7.375V13.675ZM12.375,6.725H14.65V4.45H12.375V6.725ZM8.4,10.65H10.675V8.375H8.4V10.65ZM4.45,10.65H6.725V8.375H4.45V10.65ZM12.375,10.65H14.65V8.375H12.375V10.65ZM16.325,6.725H18.6V4.45H16.325V6.725ZM16.325,10.65H18.6V8.375H16.325V10.65Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
</vector>
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="22"
|
||||
android:viewportHeight="20">
|
||||
<path
|
||||
android:pathData="M3.8,19.8C2.95,19.8 2.225,19.5043 1.625,18.913C1.025,18.321 0.725,17.5917 0.725,16.725V3.275C0.725,2.4083 1.025,1.679 1.625,1.087C2.225,0.4957 2.95,0.2 3.8,0.2H11.025V3.275H3.8V16.725H11.025V19.8H3.8ZM14.975,16.325L12.775,14.125L15.375,11.525H7.6V8.45H15.375L12.775,5.85L14.975,3.675L21.275,10L14.975,16.325Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
</vector>
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
<vector android:autoMirrored="true" android:height="24dp"
|
||||
android:tint="#FFFFFF" android:viewportHeight="24"
|
||||
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@android:color/white" android:pathData="M2.01,21L23,12 2.01,3 2,10l15,2 -15,2z"/>
|
||||
</vector>
|
||||
|
|
@ -40,8 +40,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:text="@string/check_on_phone"
|
||||
android:drawableStart="@drawable/handoff"
|
||||
style="@style/ChipButton.Icon"
|
||||
android:gravity="center"/>
|
||||
style="@style/ChipButton.Icon"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/task_view"
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
style="@style/Text.SubHeader1"
|
||||
android:textColor="@color/watch_white"
|
||||
android:gravity="center"
|
||||
android:layout_marginBottom="12dp"/>
|
||||
android:layout_marginBottom="7dp"/>
|
||||
<TextView
|
||||
android:id="@+id/task_notes_view"
|
||||
android:layout_width="wrap_content"
|
||||
|
|
@ -37,9 +37,10 @@
|
|||
android:textColor="@color/watch_gray_200"
|
||||
android:gravity="center"
|
||||
android:drawableStart="@drawable/task_icon_streak"
|
||||
android:drawableTint="@color/watch_gray_200"
|
||||
android:drawableTint="@color/watch_gray_10"
|
||||
android:drawablePadding="@dimen/spacing_small"
|
||||
style="@style/Text.Body1"
|
||||
android:layout_marginTop="5dp"
|
||||
android:textSize="12sp"/>
|
||||
<Button
|
||||
android:id="@+id/edit_button"
|
||||
|
|
|
|||
|
|
@ -1,126 +1,120 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
<com.habitrpg.wearos.habitica.ui.views.HabiticaScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
<com.habitrpg.wearos.habitica.ui.views.HabiticaScrollView
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_boxedEdges="all">
|
||||
<FrameLayout
|
||||
android:layout_height="wrap_content">
|
||||
<LinearLayout
|
||||
android:id="@+id/task_confirmation_wrapper"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
<LinearLayout
|
||||
android:id="@+id/task_confirmation_wrapper"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"
|
||||
android:gravity="center">
|
||||
<TextView
|
||||
android:id="@+id/confirmation_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Text.SubHeader1"
|
||||
android:textSize="14sp"
|
||||
android:textColor="@color/gray_200"
|
||||
/>
|
||||
<TextView
|
||||
android:id="@+id/confirmation_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Text.Body1"
|
||||
android:textSize="14sp"
|
||||
android:textColor="@color/watch_white"
|
||||
/>
|
||||
<Button
|
||||
android:id="@+id/save_button"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"
|
||||
android:gravity="center">
|
||||
<TextView
|
||||
android:id="@+id/confirmation_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Text.SubHeader1"
|
||||
android:textSize="14sp"
|
||||
android:textColor="@color/gray_200"
|
||||
/>
|
||||
<TextView
|
||||
android:id="@+id/confirmation_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Text.Body1"
|
||||
android:textSize="14sp"
|
||||
android:textColor="@color/watch_white"
|
||||
/>
|
||||
<Button
|
||||
android:id="@+id/save_button"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/ChipButton.Icon"
|
||||
android:text="@string/save"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:drawableStart="@drawable/save"/>
|
||||
<Button
|
||||
android:id="@+id/edit_button"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/ChipButton.Icon"
|
||||
android:text="@string/action_edit"
|
||||
android:drawableStart="@drawable/edit"/>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:id="@+id/edit_task_wrapper"
|
||||
style="@style/ChipButton.Icon"
|
||||
android:text="@string/save"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:drawableStart="@drawable/save"/>
|
||||
<Button
|
||||
android:id="@+id/edit_button"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/ChipButton.Icon"
|
||||
android:text="@string/action_edit"
|
||||
android:drawableStart="@drawable/edit"/>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:id="@+id/edit_task_wrapper"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="38dp"
|
||||
android:orientation="vertical">
|
||||
<include
|
||||
android:id="@+id/header"
|
||||
layout="@layout/row_section_header" />
|
||||
<EditText
|
||||
android:id="@+id/edit_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:importantForAutofill="no"
|
||||
android:minHeight="52dp"
|
||||
android:paddingHorizontal="18dp"
|
||||
android:hint="@string/task_title_hint"
|
||||
android:background="@drawable/row_background_outline"
|
||||
android:inputType="textCapSentences" />
|
||||
<TextView
|
||||
android:id="@+id/task_type_header"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
style="@style/Text.Body1"
|
||||
android:textColor="@color/watch_purple_200"
|
||||
android:text="@string/task_type" />
|
||||
<LinearLayout
|
||||
android:id="@+id/task_type_wrapper"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="38dp"
|
||||
android:orientation="vertical">
|
||||
<include
|
||||
android:id="@+id/header"
|
||||
layout="@layout/row_section_header" />
|
||||
<EditText
|
||||
android:id="@+id/edit_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:importantForAutofill="no"
|
||||
android:minHeight="52dp"
|
||||
android:paddingHorizontal="18dp"
|
||||
android:hint="@string/task_title_hint"
|
||||
android:background="@drawable/row_background_outline"
|
||||
android:inputType="textCapSentences" />
|
||||
<TextView
|
||||
android:id="@+id/task_type_header"
|
||||
android:id="@+id/todo_button"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
style="@style/Text.Body1"
|
||||
android:textColor="@color/watch_purple_200"
|
||||
android:text="@string/task_type" />
|
||||
<LinearLayout
|
||||
android:id="@+id/task_type_wrapper"
|
||||
style="@style/Chip.NoPadding"
|
||||
android:gravity="start|center_vertical"
|
||||
android:paddingHorizontal="20dp"
|
||||
android:textColor="@color/watch_white"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:textSize="14sp"
|
||||
android:text="@string/todo" />
|
||||
<TextView
|
||||
android:id="@+id/daily_button"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
<TextView
|
||||
android:id="@+id/todo_button"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Chip.NoPadding"
|
||||
android:gravity="start|center_vertical"
|
||||
android:paddingHorizontal="20dp"
|
||||
android:textColor="@color/watch_white"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:textSize="14sp"
|
||||
android:text="@string/todo" />
|
||||
<TextView
|
||||
android:id="@+id/daily_button"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Chip.NoPadding"
|
||||
android:gravity="start|center_vertical"
|
||||
android:paddingHorizontal="20dp"
|
||||
android:textColor="@color/watch_white"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:textSize="14sp"
|
||||
android:text="@string/daily" />
|
||||
<TextView
|
||||
android:id="@+id/habit_button"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Chip.NoPadding"
|
||||
android:gravity="start|center_vertical"
|
||||
android:paddingHorizontal="20dp"
|
||||
android:textColor="@color/watch_white"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:textSize="14sp"
|
||||
android:text="@string/habit" />
|
||||
</LinearLayout>
|
||||
style="@style/Chip.NoPadding"
|
||||
android:gravity="start|center_vertical"
|
||||
android:paddingHorizontal="20dp"
|
||||
android:textColor="@color/watch_white"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:textSize="14sp"
|
||||
android:text="@string/daily" />
|
||||
<TextView
|
||||
android:id="@+id/habit_button"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Chip.NoPadding"
|
||||
android:gravity="start|center_vertical"
|
||||
android:paddingHorizontal="20dp"
|
||||
android:textColor="@color/watch_white"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:textSize="14sp"
|
||||
android:text="@string/habit" />
|
||||
</LinearLayout>
|
||||
</FrameLayout>
|
||||
</com.habitrpg.wearos.habitica.ui.views.HabiticaScrollView>
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
</FrameLayout>
|
||||
</com.habitrpg.wearos.habitica.ui.views.HabiticaScrollView>
|
||||
|
|
|
|||
17
wearos/src/main/res/layout/empty_task_list.xml
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
<include layout="@layout/row_section_header" android:id="@+id/header" />
|
||||
<TextView
|
||||
android:id="@+id/description_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
style="@style/Text.Body1"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/watch_gray_200"
|
||||
android:paddingHorizontal="@dimen/spacing_xlarge"
|
||||
android:layout_marginTop="36dp"/>
|
||||
</LinearLayout>
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
android:ellipsize="end"
|
||||
tools:text="Task Title"
|
||||
android:textColor="@color/watch_white"
|
||||
style="@style/Text.Body2"/>
|
||||
style="@style/Text.Body1"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</FrameLayout>
|
||||
|
|
@ -34,7 +34,7 @@
|
|||
android:ellipsize="end"
|
||||
tools:text="Task Title"
|
||||
android:textColor="@color/watch_white"
|
||||
style="@style/Text.Body2"/>
|
||||
style="@style/Text.Body1"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</FrameLayout>
|
||||
|
|
@ -23,7 +23,7 @@
|
|||
<item name="android:paddingHorizontal">@dimen/row_padding_horizontal</item>
|
||||
<item name="android:paddingVertical">@dimen/row_padding_vertical</item>
|
||||
<item name="android:background">@drawable/row_background</item>
|
||||
<item name="android:textSize">14sp</item>
|
||||
<item name="android:textSize">16sp</item>
|
||||
<item name="android:textColor">@color/watch_white</item>
|
||||
<item name="android:fontFamily">sans-serif-medium</item>
|
||||
<item name="android:gravity">center</item>
|
||||
|
|
@ -35,6 +35,7 @@
|
|||
|
||||
<style name="ChipButton.Icon" parent="ChipButton">
|
||||
<item name="android:gravity">start|center_vertical</item>
|
||||
<item name="android:textSize">14sp</item>
|
||||
<item name="android:drawablePadding">8dp</item>
|
||||
</style>
|
||||
|
||||
|
|
|
|||