bunch of fixes

This commit is contained in:
Phillip Thelen 2022-07-27 13:04:16 +02:00
parent d82de5f333
commit 3e3d3b11f6
18 changed files with 73 additions and 48 deletions

View file

@ -46,6 +46,7 @@ dependencies {
implementation 'com.google.android.material:material:1.6.1'
implementation "androidx.recyclerview:recyclerview:$recyclerview_version"
implementation "androidx.preference:preference-ktx:$preferences_version"
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
//Desugaring
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.6'
@ -86,20 +87,18 @@ dependencies {
androidTestImplementation 'io.kotest:kotest-assertions-core:5.3.0'
androidTestUtil("androidx.test:orchestrator:1.4.1")
implementation "com.google.accompanist:accompanist-appcompat-theme:0.16.0"
implementation 'com.facebook.shimmer:shimmer:0.5.0'
//Leak Detection
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.9.1'
//Push Notifications
implementation platform('com.google.firebase:firebase-bom:30.0.0')
implementation platform("com.google.firebase:firebase-bom:$firebase_bom")
implementation 'com.google.firebase:firebase-crashlytics-ktx'
implementation 'com.google.firebase:firebase-core'
implementation 'com.google.firebase:firebase-messaging-ktx'
implementation 'com.google.firebase:firebase-config-ktx'
implementation 'com.google.firebase:firebase-perf-ktx'
implementation 'com.google.android.gms:play-services-ads:21.0.0'
implementation 'com.google.android.gms:play-services-ads:21.1.0'
implementation "com.google.android.gms:play-services-auth:$play_auth_version"
implementation 'com.google.android.flexbox:flexbox:3.0.0'
implementation "com.google.android.gms:play-services-wearable:$play_wearables_version"

View file

@ -31,8 +31,7 @@
android:layout_marginStart="@dimen/button_padding_small"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="8dp"
android:src="@drawable/ic_arrow_back_white_36dp"
app:tint="@color/back_button" />
android:src="?attr/homeAsUpIndicator" />
<TextView
android:id="@+id/confirm_action_textview"

View file

@ -71,7 +71,7 @@
android:foreground="?selectableItemBackground"
android:paddingTop="@dimen/spacing_small"
android:paddingBottom="@dimen/spacing_small"/>
<androidx.legacy.widget.Space
<Space
android:id="@+id/cutout_space"
android:layout_width="50dp"
android:layout_height="wrap_content" />

View file

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="20dp"
style="@style/Pill.Content"
android:textSize="12sp"
android:gravity="center"
android:layout_margin="2dp"/>
android:layout_margin="2dp"
tools:text="Test pill" />

View file

@ -484,11 +484,11 @@
<item name="android:textColor">@color/text_ternary</item>
</style>
<style name="Pill.Window">
<style name="Pill.Window" parent="Pill">
<item name="android:background">@drawable/pill_bg_window</item>
</style>
<style name="Pill.Content">
<style name="Pill.Content" parent="Pill">
<item name="android:background">@drawable/pill_bg_content</item>
</style>
<style name="Pill.Purple">

View file

@ -13,13 +13,14 @@ import com.habitrpg.android.habitica.databinding.ItemPublicGuildBinding
import com.habitrpg.android.habitica.databinding.ItemUserGuildBinding
import com.habitrpg.android.habitica.databinding.PillTextviewBinding
import com.habitrpg.android.habitica.extensions.inflate
import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.common.habitica.helpers.NumberAbbreviator
import com.habitrpg.android.habitica.models.social.Group
import com.habitrpg.android.habitica.ui.adapter.BaseRecyclerViewAdapter
import com.habitrpg.common.habitica.helpers.EmojiParser
import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.common.habitica.helpers.EmojiParser
import com.habitrpg.common.habitica.helpers.NumberAbbreviator
import io.realm.Case
import io.realm.OrderedRealmCollection
import java.util.Locale
@ -142,6 +143,9 @@ class GuildListAdapter : BaseRecyclerViewAdapter<Group, RecyclerView.ViewHolder>
textView.root.setTextColor(ContextCompat.getColor(itemView.context, R.color.text_secondary))
ContextCompat.getDrawable(itemView.context, R.drawable.pill_bg_gray)
}
val hPadding = 10.dpToPx(itemView.context)
val vPadding = 3.dpToPx(itemView.context)
textView.root.setPadding(hPadding, vPadding, hPadding, vPadding)
}
}
}

View file

@ -8,7 +8,6 @@ import android.text.TextWatcher
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.WindowManager
import androidx.core.content.ContextCompat
import androidx.fragment.app.DialogFragment
import com.habitrpg.android.habitica.R
@ -33,7 +32,6 @@ class HabiticaAccountDialog(private var thisContext: Context) : DialogFragment(R
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
when (accountAction) {
"reset_account" -> setResetAccountViews()
"delete_account" -> setDeleteAccountViews()

View file

@ -16,10 +16,11 @@ import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.android.habitica.helpers.PurchaseHandler
import com.habitrpg.android.habitica.helpers.PurchaseTypes
import com.habitrpg.android.habitica.proxy.AnalyticsManager
import javax.inject.Inject
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import javax.inject.Inject
/**
* Created by phillip on 27.09.17.
@ -69,14 +70,19 @@ class InsufficientGemsDialog(context: Context, var gemPrice: Int) : Insufficient
CoroutineScope(Dispatchers.IO).launch {
val sku = purchaseHandler.getInAppPurchaseSKU(PurchaseTypes.Purchase4Gems)
?: return@launch
val purchaseTextView =
contentView.findViewById<TextView>(R.id.purchase_textview)
purchaseTextView.text = sku.title
purchaseButton?.text = sku.price
withContext(Dispatchers.Main) {
val purchaseTextView =
contentView.findViewById<TextView>(R.id.purchase_textview)
purchaseTextView.text = sku.title
purchaseButton?.text = sku.price
purchaseButton?.setOnClickListener {
FirebaseAnalytics.getInstance(context).logEvent("purchased_gems_from_insufficient", bundleOf(Pair("gemPrice", gemPrice), Pair("sku", "")))
purchaseHandler.purchase(activity, sku)
purchaseButton?.setOnClickListener {
FirebaseAnalytics.getInstance(context).logEvent(
"purchased_gems_from_insufficient",
bundleOf(Pair("gemPrice", gemPrice), Pair("sku", ""))
)
purchaseHandler.purchase(activity, sku)
}
}
}

View file

@ -7,22 +7,23 @@ buildscript {
app_version_code = 0
kotlin_version = '1.7.0'
core_ktx_version = '1.8.0'
appcompat_version = '1.4.2'
lifecycle_version = '2.5.0'
coroutines_version = '1.6.2'
okhttp_version = '4.9.3'
retrofit_version = '2.9.0'
daggerhilt_version = '2.42'
recyclerview_version = '1.2.1'
amplitude_version = '3.35.1'
preferences_version = '1.2.0'
markwon_version = '4.6.2'
appcompat_version = '1.4.2'
coil_version = '2.1.0'
core_ktx_version = '1.8.0'
coroutines_version = '1.6.2'
daggerhilt_version = '2.42'
firebase_bom = '30.2.0'
kotlin_version = '1.7.10'
lifecycle_version = '2.5.0'
markwon_version = '4.6.2'
moshi_version = '1.13.0'
okhttp_version = '4.9.3'
play_wearables_version = '17.1.0'
play_auth_version = '20.2.0'
moshi_version = '1.13.0'
preferences_version = '1.2.0'
retrofit_version = '2.9.0'
recyclerview_version = '1.2.1'
}
repositories {

View file

@ -113,7 +113,7 @@ dependencies {
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
kapt("com.squareup.moshi:moshi-kotlin-codegen:$moshi_version")
implementation platform('com.google.firebase:firebase-bom:30.2.0')
implementation platform("com.google.firebase:firebase-bom:$firebase_bom")
implementation 'com.google.firebase:firebase-crashlytics-ktx'
implementation 'com.google.firebase:firebase-analytics-ktx'

View file

@ -14,6 +14,7 @@ import com.habitrpg.wearos.habitica.ui.activities.BaseActivity
import com.habitrpg.wearos.habitica.ui.activities.FaintActivity
import com.habitrpg.wearos.habitica.ui.activities.MainActivity
import com.habitrpg.wearos.habitica.ui.activities.RYAActivity
import com.habitrpg.wearos.habitica.ui.activities.TaskResultActivity
import dagger.hilt.android.HiltAndroidApp
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.flow.collect
@ -35,7 +36,7 @@ class MainApplication : Application() {
MainScope().launch {
userRepository.getUser().onEach {
if (it.isDead && BaseActivity.currentActivityClassName == MainActivity::class.java.name) {
if (it.isDead && (BaseActivity.currentActivityClassName == MainActivity::class.java.name) || (BaseActivity.currentActivityClassName == TaskResultActivity::class.java.name)) {
val intent = Intent(this@MainApplication, FaintActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)

View file

@ -49,6 +49,7 @@ class InputActivity: BaseActivity<ActivityInputBinding, InputViewModel>() {
private fun showKeyboard() {
binding.editText.hint = binding.titleView.text
binding.editText.setText(viewModel.existingInput)
binding.editText.requestFocus()
binding.editText.postDelayed(100) {
val imm: InputMethodManager =

View file

@ -11,6 +11,7 @@ import com.habitrpg.common.habitica.models.tasks.TaskType
import com.habitrpg.common.habitica.models.tasks.streakString
import com.habitrpg.wearos.habitica.ui.viewmodels.TaskDetailViewModel
import dagger.hilt.android.AndroidEntryPoint
import java.text.DateFormat
@AndroidEntryPoint
class TaskDetailActivity : BaseActivity<ActivityTaskDetailBinding, TaskDetailViewModel>() {
@ -56,12 +57,21 @@ class TaskDetailActivity : BaseActivity<ActivityTaskDetailBinding, TaskDetailVie
} else {
binding.taskNotesView.isVisible = false
}
val streakString = task?.streakString
if (streakString != null) {
binding.taskStreakView.isVisible = true
binding.taskStreakView.text = streakString
if (task?.type == TaskType.TODO) {
task.dueDate?.let { dueDate ->
val format = DateFormat.getDateInstance()
binding.taskStreakView.text = format.format(dueDate)
binding.taskStreakView.isVisible = true
binding.taskStreakView.setCompoundDrawables(null, null, null, null)
}
} else {
binding.taskStreakView.isVisible = false
val streakString = task?.streakString
if (streakString != null) {
binding.taskStreakView.isVisible = true
binding.taskStreakView.text = streakString
} else {
binding.taskStreakView.isVisible = false
}
}
}
}

View file

@ -101,6 +101,7 @@ class TaskFormActivity : BaseActivity<ActivityTaskFormBinding, TaskFormViewModel
private fun requestInput() {
val intent = Intent(this, InputActivity::class.java).apply {
putExtra("title", getString(R.string.task_title_hint))
putExtra("input", binding.editText.text.toString())
}
inputResult.launch(intent)
}

View file

@ -13,11 +13,11 @@ open class TaskListAdapter : BaseAdapter<Any>() {
var onTaskTapped:((Task) -> Unit)? = null
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
if (viewType == TYPE_HEADER) {
return if (viewType == TYPE_HEADER) {
val inflater = parent.context.layoutInflater
return HeaderTaskViewHolder(RowTaskHeaderBinding.inflate(inflater, parent, false).root)
HeaderTaskViewHolder(RowTaskHeaderBinding.inflate(inflater, parent, false).root)
} else {
return super.onCreateViewHolder(parent, viewType)
super.onCreateViewHolder(parent, viewType)
}
}
@ -50,7 +50,7 @@ open class TaskListAdapter : BaseAdapter<Any>() {
TYPE_HEADER
} else {
val item = data[position - 1]
if (item is Task) 1 else 0
if (item is Task) 1 else TYPE_HEADER
}
}
}

View file

@ -17,4 +17,5 @@ class InputViewModel @Inject constructor(
appStateManager: AppStateManager
) : BaseViewModel(userRepository, taskRepository, exceptionBuilder, appStateManager) {
val title = savedStateHandle.get<String>("title") ?: ""
val existingInput = savedStateHandle.get<String>("input")
}

View file

@ -14,6 +14,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
style="@style/Text.SubHeader1"
android:textColor="@color/watch_white"
android:layout_marginBottom="@dimen/spacing_large"/>
<LinearLayout
android:id="@+id/picker_layout"

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
@ -14,4 +14,4 @@
android:layout_height="39dp"
android:layout_gravity="center|bottom"
app:layout_behavior="com.habitrpg.wearos.habitica.util.ScrollAwayBehavior"/>
</FrameLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>