diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index 2920eaa6b..aec444b80 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -815,7 +815,6 @@ Guild Members Guild Bank Invite to Party - Are you sure? Delete Task Delete Reminder Not right now diff --git a/Habitica/res/drawable-hdpi/ic_gryphon_white.webp b/common/src/main/res/drawable-hdpi/ic_gryphon_white.webp similarity index 100% rename from Habitica/res/drawable-hdpi/ic_gryphon_white.webp rename to common/src/main/res/drawable-hdpi/ic_gryphon_white.webp diff --git a/Habitica/res/drawable-mdpi/ic_gryphon_white.webp b/common/src/main/res/drawable-mdpi/ic_gryphon_white.webp similarity index 100% rename from Habitica/res/drawable-mdpi/ic_gryphon_white.webp rename to common/src/main/res/drawable-mdpi/ic_gryphon_white.webp diff --git a/Habitica/res/drawable-xhdpi/ic_gryphon_white.webp b/common/src/main/res/drawable-xhdpi/ic_gryphon_white.webp similarity index 100% rename from Habitica/res/drawable-xhdpi/ic_gryphon_white.webp rename to common/src/main/res/drawable-xhdpi/ic_gryphon_white.webp diff --git a/Habitica/res/drawable-xxhdpi/ic_gryphon_white.webp b/common/src/main/res/drawable-xxhdpi/ic_gryphon_white.webp similarity index 100% rename from Habitica/res/drawable-xxhdpi/ic_gryphon_white.webp rename to common/src/main/res/drawable-xxhdpi/ic_gryphon_white.webp diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index ca0db2249..4e8ec2384 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -54,4 +54,6 @@ Create a Task Complete a Task Create %s + + Are you sure? \ No newline at end of file diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/TaskLocalRepository.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/TaskLocalRepository.kt index 214bb1e33..1268a5947 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/TaskLocalRepository.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/TaskLocalRepository.kt @@ -62,4 +62,11 @@ class TaskLocalRepository @Inject constructor() { } return emptyFlow() } + + fun getTaskCounts() = flowOf(mapOf( + TaskType.HABIT.value to (tasks[TaskType.HABIT]?.value?.size ?: 0), + TaskType.DAILY.value to (tasks[TaskType.DAILY]?.value?.size ?: 0), + TaskType.TODO.value to (tasks[TaskType.TODO]?.value?.size ?: 0), + TaskType.REWARD.value to (tasks[TaskType.REWARD]?.value?.size ?: 0), + )) } \ No newline at end of file diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/TaskRepository.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/TaskRepository.kt index d7da7cf13..14504050e 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/TaskRepository.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/data/repositories/TaskRepository.kt @@ -18,8 +18,7 @@ class TaskRepository @Inject constructor(val apiClient: ApiClient, val localRepo tasks?.let { localRepository.saveTasks(tasks) } return tasks } - fun getTasks(taskType: TaskType): Flow> = localRepository.getTasks(taskType) - + fun getTasks(taskType: TaskType) = localRepository.getTasks(taskType) suspend fun scoreTask(user: User?, task: Task, direction: TaskDirection): TaskScoringResult? { val id = task.id ?: return null @@ -42,4 +41,6 @@ class TaskRepository @Inject constructor(val apiClient: ApiClient, val localRepo localRepository.updateTask(newTask) } } + + fun getTaskCounts() = localRepository.getTaskCounts() } \ No newline at end of file diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/user/MenuItem.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/user/MenuItem.kt index 22dbbae8e..ab787fcbf 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/user/MenuItem.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/user/MenuItem.kt @@ -9,5 +9,6 @@ data class MenuItem( val color: Int, val textColor: Int, val isProminent: Boolean = false, + var detailText: String? = null, val onClick: () -> Unit ) \ No newline at end of file diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/LoginActivity.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/LoginActivity.kt index b7313743a..bce7dbe63 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/LoginActivity.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/LoginActivity.kt @@ -21,7 +21,7 @@ class LoginActivity: BaseActivity() { INPUT } override val viewModel: LoginViewModel by viewModels() - var currentState: State = State.INITIAL + private var currentState: State = State.INITIAL set(value) { field = value when(value) { @@ -59,6 +59,7 @@ class LoginActivity: BaseActivity() { binding.loginButton.isVisible = true } } + binding.root.smoothScrollTo(0, 0) } override fun onCreate(savedInstanceState: Bundle?) { diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/MainActivity.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/MainActivity.kt index 2193f73bc..a15220cec 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/MainActivity.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/MainActivity.kt @@ -44,7 +44,7 @@ class MainActivity : BaseActivity() { openTaskFormActivity() }, MenuItem( - "habits", + TaskType.HABIT.value, getString(R.string.habits), AppCompatResources.getDrawable(this, R.drawable.icon_habits), ContextCompat.getColor(this, R.color.watch_purple_200), @@ -53,7 +53,7 @@ class MainActivity : BaseActivity() { openTasklist(TaskType.HABIT) }, MenuItem( - "dailies", + TaskType.DAILY.value, getString(R.string.dailies), AppCompatResources.getDrawable(this, R.drawable.icon_dailies), ContextCompat.getColor(this, R.color.watch_purple_200), @@ -62,7 +62,7 @@ class MainActivity : BaseActivity() { openTasklist(TaskType.DAILY) }, MenuItem( - "todos", + TaskType.TODO.value, getString(R.string.todos), AppCompatResources.getDrawable(this, R.drawable.icon_todos), ContextCompat.getColor(this, R.color.watch_purple_200), @@ -71,7 +71,7 @@ class MainActivity : BaseActivity() { openTasklist(TaskType.TODO) }, MenuItem( - "rewards", + TaskType.REWARD.value, getString(R.string.rewards), AppCompatResources.getDrawable(this, R.drawable.icon_rewards), ContextCompat.getColor(this, R.color.watch_purple_200), @@ -111,6 +111,16 @@ class MainActivity : BaseActivity() { adapter.title = it.profile?.name ?: "" adapter.notifyItemChanged(0) } + viewModel.taskCounts.observe(this) { + adapter.data.forEach { menuItem -> + if (it.containsKey(menuItem.identifier) && it[menuItem.identifier]!! > 0) { + menuItem.detailText = it[menuItem.identifier].toString() + } else { + menuItem.detailText = null + } + } + adapter.notifyDataSetChanged() + } } private fun openTaskFormActivity() { diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/RYAActivity.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/RYAActivity.kt index 6cee407b3..a7e077d2a 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/RYAActivity.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/RYAActivity.kt @@ -7,7 +7,6 @@ import androidx.core.view.isVisible import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.ActivityRyaBinding import com.habitrpg.android.habitica.databinding.RowDailyBinding -import com.habitrpg.common.habitica.extensions.dpToPx import com.habitrpg.wearos.habitica.models.tasks.Task import com.habitrpg.wearos.habitica.ui.viewHolders.tasks.DailyViewHolder import com.habitrpg.wearos.habitica.ui.viewmodels.RYAViewModel @@ -60,7 +59,6 @@ class RYAActivity : BaseActivity() { taskBinding.root.setOnClickListener { viewModel.tappedTask(task) } - val verticalPadding = 2.dpToPx(this) val layoutParams = taskBinding.root.layoutParams as LinearLayout.LayoutParams layoutParams.marginStart = 0 layoutParams.marginEnd = 0 diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/SettingsActivity.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/SettingsActivity.kt index 1ae80da42..c4f5f7a9e 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/SettingsActivity.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/SettingsActivity.kt @@ -1,5 +1,6 @@ package com.habitrpg.wearos.habitica.ui.activities +import android.app.AlertDialog import android.content.Intent import android.os.Bundle import androidx.activity.viewModels @@ -39,14 +40,59 @@ class SettingsActivity: BaseActivity private fun buildSettings(): List { return listOf( + SettingsItem( + "header", + getString(R.string.settings), + SettingsItem.Types.HEADER, + null + ) { + }, + SettingsItem( + "sync", + getString(R.string.sync_data), + SettingsItem.Types.BUTTON, + null + ) { + viewModel.resyncData() + }, + SettingsItem( + "hide_results", + getString(R.string.hide_task_rewards), + SettingsItem.Types.TOGGLE, + viewModel.isTaskResultHidden() + ) { + viewModel.setHideTaskResults(!viewModel.isTaskResultHidden()) + val index = adapter.data.indexOfFirst { it.identifier == "hide_results" } + adapter.data[index].value = viewModel.isTaskResultHidden() + adapter.notifyItemChanged(index) + }, + SettingsItem( + "spacer", + getString(R.string.settings), + SettingsItem.Types.SPACER, + null + ) { + }, SettingsItem( "logout", getString(R.string.logout), SettingsItem.Types.DESTRUCTIVE_BUTTON, null ) { - logout() + showLogoutConfirmation() } ) } + + private fun showLogoutConfirmation() { + AlertDialog.Builder(this) + .setTitle(R.string.are_you_sure) + .setPositiveButton(R.string.logout) { alert, _ -> + logout() + alert.dismiss() + } + .setPositiveButton(R.string.action_cancel) { alert, _ -> + alert.dismiss() + }.show() + } } \ No newline at end of file diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/TaskResultActivity.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/TaskResultActivity.kt index 03f229771..ee759ede2 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/TaskResultActivity.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/TaskResultActivity.kt @@ -8,6 +8,7 @@ import android.view.animation.AlphaAnimation import android.widget.GridLayout import androidx.activity.viewModels import androidx.lifecycle.lifecycleScope +import androidx.preference.PreferenceManager import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.ActivityTaskResultBinding import com.habitrpg.android.habitica.databinding.TaskRewardDropBinding @@ -167,6 +168,8 @@ class TaskResultActivity : BaseActivity() { +class SettingsAdapter: RecyclerView.Adapter() { var data = listOf() set(value) { field = value notifyDataSetChanged() } - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SettingsViewHolder { - return SettingsViewHolder(RowSettingsBinding.inflate(parent.context.layoutInflater, parent, false).root) + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { + if (viewType == 0) { + return HeaderViewHolder(RowHeaderBinding.inflate(parent.context.layoutInflater, parent, false).root) + } else if (viewType == 1) { + return SpacerViewHolder(RowSpacerBinding.inflate(parent.context.layoutInflater, parent, false).root) + } else { + return SettingsViewHolder(RowSettingsBinding.inflate(parent.context.layoutInflater, parent, false).root) + } } - override fun onBindViewHolder(holder: SettingsViewHolder, position: Int) { - holder.bind(data[position]) + override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { + if (holder is SettingsViewHolder) { + holder.bind(data[position]) + } else if (holder is HeaderViewHolder) { + holder.bind(data[position].title) + } else if (holder is SpacerViewHolder) { + holder.bind(16.dpToPx(holder.itemView.context)) + } } override fun getItemCount(): Int = data.size + + override fun getItemViewType(position: Int): Int { + val item = data[position] + return when (item.type) { + SettingsItem.Types.HEADER -> 0 + SettingsItem.Types.SPACER -> 1 + else -> 2 + } + } } class SettingsViewHolder(itemView: View) : BindableViewHolder(itemView) { private val binding = RowSettingsBinding.bind(itemView) + private var widget: View? = null + override fun bind(data: SettingsItem) { + if (widget != null) { + (widget?.parent as? ViewGroup)?.removeView(widget) + widget = null + } binding.titleView.text = data.title if (data.type == SettingsItem.Types.DESTRUCTIVE_BUTTON) { binding.titleView.setTextColor(ContextCompat.getColor(itemView.context, R.color.text_red)) @@ -37,6 +71,22 @@ class SettingsViewHolder(itemView: View) : BindableViewHolder(item binding.titleView.setTextColor(ContextCompat.getColor(itemView.context, R.color.white)) } + if (data.type == SettingsItem.Types.TOGGLE) { + val radio = RadioButton(itemView.context) + radio.isChecked = data.value as? Boolean == true + radio.isEnabled = false + widget = radio + binding.row.addView(radio) + + if (data.value as? Boolean == true) { + binding.row.backgroundTintList = ColorStateList.valueOf(ContextCompat.getColor(itemView.context, R.color.watch_purple_100)) + binding.row.background.alpha = 127 + } else { + binding.row.backgroundTintList = ColorStateList.valueOf(ContextCompat.getColor(itemView.context, R.color.watch_purple_5)) + binding.row.background.alpha = 255 + } + } + binding.root.setOnClickListener { data.onTap() } @@ -47,12 +97,14 @@ data class SettingsItem( val identifier: String, val title: String, val type: Types, - val value: Any?, + var value: Any?, val onTap: () -> Unit ) { enum class Types { BUTTON, DESTRUCTIVE_BUTTON, - TOGGLE + SPACER, + TOGGLE, + HEADER } } diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/HubViewHolder.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/HubViewHolder.kt index 8ff3311df..8c07f4419 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/HubViewHolder.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/HubViewHolder.kt @@ -12,7 +12,9 @@ class HubViewHolder(itemView: View): BindableViewHolder(itemView) { override fun bind(data: MenuItem) { binding.title.text = data.title + binding.detailView.text = data.detailText binding.title.setTextColor(data.textColor) + binding.detailView.setTextColor(data.textColor) binding.iconView.setImageDrawable(data.icon) if (data.isProminent) { binding.iconView.setColorFilter(ContextCompat.getColor(itemView.context, R.color.black)) diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/SpacerViewHolder.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/SpacerViewHolder.kt new file mode 100644 index 000000000..52a026db1 --- /dev/null +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/SpacerViewHolder.kt @@ -0,0 +1,12 @@ +package com.habitrpg.wearos.habitica.ui.viewHolders + +import android.view.View +import com.habitrpg.android.habitica.databinding.RowSpacerBinding + +class SpacerViewHolder(itemView: View): BindableViewHolder(itemView) { + private val binding = RowSpacerBinding.bind(itemView) + + override fun bind(data: Int) { + binding.root.layoutParams.height = data + } +} \ No newline at end of file diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/tasks/HabitViewHolder.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/tasks/HabitViewHolder.kt index eb5ce60dc..db7dacdcc 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/tasks/HabitViewHolder.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/tasks/HabitViewHolder.kt @@ -27,10 +27,10 @@ class HabitViewHolder(itemView: View) : TaskViewHolder(itemView) { binding.habitButtonIcon.setImageResource(R.drawable.watch_habit_posneg) } else { binding.habitButtonIcon.setBackgroundResource(R.drawable.habit_button_round) - if (data.up == true) { - binding.habitButtonIcon.setImageResource(R.drawable.watch_habit_positive) - } else { + if (data.down == true) { binding.habitButtonIcon.setImageResource(R.drawable.watch_habit_negative) + } else { + binding.habitButtonIcon.setImageResource(R.drawable.watch_habit_positive) } } if (data.up != true && data.down != true) { diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/LoginViewModel.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/LoginViewModel.kt index 8b200e341..6f449df4e 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/LoginViewModel.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/LoginViewModel.kt @@ -26,6 +26,7 @@ import com.habitrpg.wearos.habitica.data.repositories.UserRepository import com.habitrpg.wearos.habitica.managers.LoadingManager import com.habitrpg.wearos.habitica.util.ExceptionHandlerBuilder import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import java.io.IOException import javax.inject.Inject @@ -70,17 +71,19 @@ class LoginViewModel @Inject constructor(userRepository: UserRepository, val scopesString = Scopes.PROFILE + " " + Scopes.EMAIL val scopes = "oauth2:$scopesString" viewModelScope.launch(exceptionBuilder.userFacing(this)) { - val token = try { - GoogleAuthUtil.getToken(activity, googleEmail ?: "", scopes) - } catch (e: IOException) { - return@launch - } catch (e: GoogleAuthException) { - if (recoverFromPlayServicesErrorResult != null) { - handleGoogleAuthException(e, activity, recoverFromPlayServicesErrorResult) + val token = launch(Dispatchers.IO) { + try { + GoogleAuthUtil.getToken(activity, googleEmail ?: "", scopes) + } catch (e: IOException) { + return@launch + } catch (e: GoogleAuthException) { + if (recoverFromPlayServicesErrorResult != null) { + handleGoogleAuthException(e, activity, recoverFromPlayServicesErrorResult) + } + return@launch + } catch (e: UserRecoverableException) { + return@launch } - return@launch - } catch (e: UserRecoverableException) { - return@launch } val response = apiClient.loginSocial(UserAuthSocial()) handleAuthResponse(response) diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/MainViewModel.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/MainViewModel.kt index 96e9d9dda..0f56f6e4e 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/MainViewModel.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/MainViewModel.kt @@ -13,10 +13,11 @@ import javax.inject.Inject @HiltViewModel class MainViewModel @Inject constructor( userRepository: UserRepository, - val taskRepository: TaskRepository, + private val taskRepository: TaskRepository, exceptionBuilder: ExceptionHandlerBuilder, loadingManager: LoadingManager ) : BaseViewModel(userRepository, exceptionBuilder, loadingManager) { - var user = userRepository.getUser().asLiveData() + val taskCounts = taskRepository.getTaskCounts().asLiveData() + val user = userRepository.getUser().asLiveData() init { viewModelScope.launch(exceptionBuilder.userFacing(this)) { diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/SettingsViewModel.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/SettingsViewModel.kt index d79cc803e..7e7cb1d03 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/SettingsViewModel.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/SettingsViewModel.kt @@ -2,18 +2,23 @@ package com.habitrpg.wearos.habitica.ui.viewmodels import android.content.SharedPreferences import androidx.core.content.edit +import androidx.lifecycle.viewModelScope import com.habitrpg.wearos.habitica.data.ApiClient +import com.habitrpg.wearos.habitica.data.repositories.TaskRepository import com.habitrpg.wearos.habitica.data.repositories.UserRepository import com.habitrpg.wearos.habitica.managers.LoadingManager import com.habitrpg.wearos.habitica.util.ExceptionHandlerBuilder import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.launch import javax.inject.Inject @HiltViewModel class SettingsViewModel @Inject constructor(userRepository: UserRepository, + private val taskRepository: TaskRepository, exceptionBuilder: ExceptionHandlerBuilder, private val apiClient: ApiClient, - private val sharedPreferences: SharedPreferences, loadingManager: LoadingManager + private val sharedPreferences: SharedPreferences, + loadingManager: LoadingManager ) : BaseViewModel(userRepository, exceptionBuilder, loadingManager) { fun logout() { @@ -22,4 +27,23 @@ class SettingsViewModel @Inject constructor(userRepository: UserRepository, } apiClient.updateAuthenticationCredentials(null, null) } + + fun resyncData() { + viewModelScope.launch(exceptionBuilder.userFacing(this)) { + loadingManager.startLoading() + userRepository.retrieveUser() + taskRepository.retrieveTasks() + loadingManager.endLoading() + } + } + + fun setHideTaskResults(hide: Boolean) { + sharedPreferences.edit { + putBoolean("hide_task_results", hide) + } + } + + fun isTaskResultHidden(): Boolean { + return sharedPreferences.getBoolean("hide_task_results", false) + } } diff --git a/wearos/src/main/res/layout/activity_login.xml b/wearos/src/main/res/layout/activity_login.xml index de2fdea05..11e70d08e 100644 --- a/wearos/src/main/res/layout/activity_login.xml +++ b/wearos/src/main/res/layout/activity_login.xml @@ -11,6 +11,11 @@ android:orientation="vertical" android:gravity="center" android:animateLayoutChanges="true"> + + tools:text="Task Title" + style="@style/Text.Body2"/> \ No newline at end of file diff --git a/wearos/src/main/res/layout/row_hub.xml b/wearos/src/main/res/layout/row_hub.xml index 52b68bc2a..b5a891097 100644 --- a/wearos/src/main/res/layout/row_hub.xml +++ b/wearos/src/main/res/layout/row_hub.xml @@ -1,12 +1,12 @@ + \ No newline at end of file diff --git a/wearos/src/main/res/layout/row_reward.xml b/wearos/src/main/res/layout/row_reward.xml index 176fe4dd4..f5167fb56 100644 --- a/wearos/src/main/res/layout/row_reward.xml +++ b/wearos/src/main/res/layout/row_reward.xml @@ -12,6 +12,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:lines="1" - tools:text="Task Title"/> + tools:text="Task Title" + style="@style/Text.Body2"/> \ No newline at end of file diff --git a/wearos/src/main/res/layout/row_settings.xml b/wearos/src/main/res/layout/row_settings.xml index 4d90f14f7..ae01d67d7 100644 --- a/wearos/src/main/res/layout/row_settings.xml +++ b/wearos/src/main/res/layout/row_settings.xml @@ -1,9 +1,13 @@ + android:layout_height="wrap_content" + android:layout_gravity="center"> @@ -11,6 +15,12 @@ android:id="@+id/title_view" android:layout_width="wrap_content" android:layout_height="wrap_content" - style="@style/TextAppearance.AppCompat.Title" /> + tools:text="Settings text" + android:textColor="@color/white" + style="@style/Text.Body1"/> + \ No newline at end of file diff --git a/wearos/src/main/res/layout/row_spacer.xml b/wearos/src/main/res/layout/row_spacer.xml new file mode 100644 index 000000000..68ca8e400 --- /dev/null +++ b/wearos/src/main/res/layout/row_spacer.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/wearos/src/main/res/layout/row_todo.xml b/wearos/src/main/res/layout/row_todo.xml index 6c3542522..58e989f39 100644 --- a/wearos/src/main/res/layout/row_todo.xml +++ b/wearos/src/main/res/layout/row_todo.xml @@ -27,6 +27,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:lines="1" - tools:text="Task Title"/> + tools:text="Task Title" + style="@style/Text.Body2"/> \ No newline at end of file diff --git a/wearos/src/main/res/values/strings.xml b/wearos/src/main/res/values/strings.xml index dd81a453f..79fea9643 100644 --- a/wearos/src/main/res/values/strings.xml +++ b/wearos/src/main/res/values/strings.xml @@ -27,4 +27,6 @@ Task Type Task title... Save + Sync Data + Hide task rewards \ No newline at end of file diff --git a/wearos/src/main/res/values/styles.xml b/wearos/src/main/res/values/styles.xml index 25ade0bb1..0f39b661e 100644 --- a/wearos/src/main/res/values/styles.xml +++ b/wearos/src/main/res/values/styles.xml @@ -9,7 +9,7 @@ @dimen/row_padding_horizontal @dimen/row_padding_vertical @drawable/row_background - center + start|center_vertical 52dp @@ -23,7 +23,7 @@ @drawable/row_background 16sp sans-serif-medium - center + start|center_vertical 52dp false 0.01