mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-04-14 11:46:32 +00:00
remove viewpagerindicator library
This commit is contained in:
parent
699a31fd52
commit
ee9bbf731e
14 changed files with 203 additions and 2061 deletions
|
|
@ -157,7 +157,6 @@ dependencies {
|
|||
|
||||
// IAP Handling / Verification
|
||||
implementation(libs.billing)
|
||||
implementation(libs.viewPagerIndicator) { exclude(group = "com.google.android") }
|
||||
|
||||
implementation(libs.coil.compose)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_selected="true" android:drawable="@drawable/indicator_diamond_selected" />
|
||||
<item android:drawable="@drawable/indicator_diamond_unselected" />
|
||||
<item android:state_selected="true">
|
||||
<layer-list>
|
||||
<item android:drawable="@drawable/indicator_diamond_selected" android:height="24dp" />
|
||||
</layer-list>
|
||||
</item>
|
||||
<item>
|
||||
<layer-list>
|
||||
<item android:drawable="@drawable/indicator_diamond_unselected" android:height="24dp" />
|
||||
</layer-list>
|
||||
</item>
|
||||
</selector>
|
||||
|
|
@ -1,23 +1,31 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_width="match_parent"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:background="@color/brand">
|
||||
<androidx.viewpager.widget.ViewPager
|
||||
|
||||
<androidx.viewpager2.widget.ViewPager2
|
||||
android:id="@+id/viewPager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<RelativeLayout
|
||||
android:orientation="vertical" android:layout_width="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true">
|
||||
<com.viewpagerindicator.IconPageIndicator
|
||||
|
||||
<com.google.android.material.tabs.TabLayout
|
||||
android:id="@+id/view_pager_indicator"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_marginBottom="16dp" />
|
||||
app:tabGravity="center"
|
||||
app:tabBackground="@drawable/indicator_diamond"
|
||||
android:background="@color/transparent"
|
||||
app:tabIndicator="@null" />
|
||||
|
||||
<Button
|
||||
android:layout_width="wrap_content"
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
<?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"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.habitrpg.android.habitica.ui.views.FadingViewPager
|
||||
<androidx.viewpager2.widget.ViewPager2
|
||||
android:id="@+id/viewPager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
|
|
@ -17,11 +19,16 @@
|
|||
android:background="@color/background_brand"
|
||||
android:gravity="center_vertical"
|
||||
android:elevation="8dp">
|
||||
<com.viewpagerindicator.IconPageIndicator
|
||||
|
||||
<com.google.android.material.tabs.TabLayout
|
||||
android:id="@+id/view_pager_indicator"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true" />
|
||||
android:layout_centerInParent="true"
|
||||
app:tabBackground="@drawable/indicator_diamond"
|
||||
android:background="@color/transparent"
|
||||
app:tabIndicator="@null" />
|
||||
|
||||
<Button
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
@ -30,6 +37,7 @@
|
|||
android:background="@color/transparent"
|
||||
android:drawablePadding="12dp"
|
||||
android:textColor="@color/white" />
|
||||
|
||||
<Button
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<resources>
|
||||
|
||||
<!-- Application theme. -->
|
||||
<style name="AppTheme" parent="Theme.Material3.DayNight">
|
||||
<style name="AppTheme" parent="Theme.Material3.DynamicColors.DayNight">
|
||||
<item name="android:listSeparatorTextViewStyle">@style/MyOwnListSeperatorTextViewStyle
|
||||
</item>
|
||||
|
||||
|
|
|
|||
|
|
@ -94,9 +94,7 @@ abstract class BaseActivity : AppCompatActivity() {
|
|||
|
||||
private val defaultNavigationBarStyle by lazy {
|
||||
SystemBarStyle.auto(ContextCompat.getColor(this, R.color.white_50_alpha),
|
||||
ContextCompat.getColor(this, R.color.black_50_alpha),
|
||||
{ _ -> true}
|
||||
)
|
||||
ContextCompat.getColor(this, R.color.black_50_alpha))
|
||||
}
|
||||
internal var navigationBarStyle: SystemBarStyle? = null
|
||||
|
||||
|
|
|
|||
|
|
@ -4,30 +4,26 @@ import android.content.Intent
|
|||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.activity.SystemBarStyle
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.content.res.ResourcesCompat
|
||||
import androidx.core.view.WindowCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.fragment.app.FragmentStatePagerAdapter
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.viewpager.widget.ViewPager
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter
|
||||
import androidx.viewpager2.widget.ViewPager2
|
||||
import com.google.android.material.tabs.TabLayoutMediator
|
||||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.data.ContentRepository
|
||||
import com.habitrpg.android.habitica.databinding.ActivityIntroBinding
|
||||
import com.habitrpg.android.habitica.extensions.setNavigationBarDarkIcons
|
||||
import com.habitrpg.android.habitica.ui.fragments.setup.IntroFragment
|
||||
import com.habitrpg.common.habitica.helpers.ExceptionHandler
|
||||
import com.viewpagerindicator.IconPagerAdapter
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
|
||||
@AndroidEntryPoint
|
||||
class IntroActivity : BaseActivity(), View.OnClickListener, ViewPager.OnPageChangeListener {
|
||||
class IntroActivity : BaseActivity() {
|
||||
private lateinit var binding: ActivityIntroBinding
|
||||
|
||||
@Inject
|
||||
|
|
@ -46,10 +42,9 @@ class IntroActivity : BaseActivity(), View.OnClickListener, ViewPager.OnPageChan
|
|||
super.onCreate(savedInstanceState)
|
||||
|
||||
setupIntro()
|
||||
binding.viewPagerIndicator.setViewPager(binding.viewPager)
|
||||
|
||||
binding.skipButton.setOnClickListener(this)
|
||||
binding.finishButton.setOnClickListener(this)
|
||||
binding.skipButton.setOnClickListener { finishIntro() }
|
||||
binding.finishButton.setOnClickListener { finishIntro() }
|
||||
|
||||
lifecycleScope.launch(ExceptionHandler.coroutine()) {
|
||||
contentRepository.retrieveContent()
|
||||
|
|
@ -69,13 +64,17 @@ class IntroActivity : BaseActivity(), View.OnClickListener, ViewPager.OnPageChan
|
|||
}
|
||||
|
||||
private fun setupIntro() {
|
||||
binding.viewPager.adapter = PagerAdapter(supportFragmentManager)
|
||||
|
||||
binding.viewPager.addOnPageChangeListener(this)
|
||||
setViewPagerAdapter()
|
||||
binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
|
||||
override fun onPageSelected(position: Int) {
|
||||
super.onPageSelected(position)
|
||||
if (position == 2) {
|
||||
binding.finishButton.visibility = View.VISIBLE
|
||||
} else {
|
||||
binding.finishButton.visibility = View.GONE
|
||||
}
|
||||
|
||||
override fun onClick(v: View) {
|
||||
finishIntro()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
private fun finishIntro() {
|
||||
|
|
@ -87,50 +86,21 @@ class IntroActivity : BaseActivity(), View.OnClickListener, ViewPager.OnPageChan
|
|||
finish()
|
||||
}
|
||||
|
||||
override fun onPageScrolled(
|
||||
position: Int,
|
||||
positionOffset: Float,
|
||||
positionOffsetPixels: Int
|
||||
) { // no-on
|
||||
}
|
||||
|
||||
override fun onPageSelected(position: Int) {
|
||||
if (position == 2) {
|
||||
binding.finishButton.visibility = View.VISIBLE
|
||||
} else {
|
||||
binding.finishButton.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
override fun onPageScrollStateChanged(state: Int) { // no-on
|
||||
}
|
||||
|
||||
private inner class PagerAdapter(fm: FragmentManager) :
|
||||
FragmentStatePagerAdapter(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT), IconPagerAdapter {
|
||||
override fun getItem(position: Int): Fragment {
|
||||
private fun setViewPagerAdapter() {
|
||||
val fragmentManager = supportFragmentManager
|
||||
val viewPagerAdapter = object : FragmentStateAdapter(fragmentManager, lifecycle) {
|
||||
override fun createFragment(position: Int): Fragment {
|
||||
val fragment = IntroFragment()
|
||||
configureFragment(fragment, position)
|
||||
return fragment
|
||||
}
|
||||
|
||||
override fun getIconResId(index: Int): Int {
|
||||
return R.drawable.indicator_diamond
|
||||
}
|
||||
|
||||
override fun getCount(): Int {
|
||||
override fun getItemCount(): Int {
|
||||
return 3
|
||||
}
|
||||
|
||||
override fun instantiateItem(
|
||||
container: ViewGroup,
|
||||
position: Int
|
||||
): Any {
|
||||
val item = super.instantiateItem(container, position)
|
||||
if (item is IntroFragment) {
|
||||
configureFragment(item, position)
|
||||
}
|
||||
return item
|
||||
}
|
||||
binding.viewPager.adapter = viewPagerAdapter
|
||||
TabLayoutMediator(binding.viewPagerIndicator, binding.viewPager) { tab, position -> }.attach()
|
||||
}
|
||||
|
||||
private fun configureFragment(
|
||||
|
|
|
|||
|
|
@ -1,23 +1,19 @@
|
|||
package com.habitrpg.android.habitica.ui.activities
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.WindowInsetsController
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
import androidx.appcompat.content.res.AppCompatResources
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.content.edit
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.fragment.app.FragmentPagerAdapter
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.viewpager.widget.ViewPager
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter
|
||||
import androidx.viewpager2.widget.ViewPager2
|
||||
import com.google.android.material.tabs.TabLayoutMediator
|
||||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.data.ApiClient
|
||||
import com.habitrpg.android.habitica.data.InventoryRepository
|
||||
|
|
@ -30,10 +26,8 @@ import com.habitrpg.android.habitica.models.user.User
|
|||
import com.habitrpg.android.habitica.ui.fragments.setup.AvatarSetupFragment
|
||||
import com.habitrpg.android.habitica.ui.fragments.setup.TaskSetupFragment
|
||||
import com.habitrpg.android.habitica.ui.fragments.setup.WelcomeFragment
|
||||
import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
|
||||
import com.habitrpg.common.habitica.helpers.ExceptionHandler
|
||||
import com.habitrpg.common.habitica.helpers.launchCatching
|
||||
import com.viewpagerindicator.IconPagerAdapter
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlinx.coroutines.FlowPreview
|
||||
import kotlinx.coroutines.flow.debounce
|
||||
|
|
@ -44,7 +38,7 @@ import javax.inject.Inject
|
|||
import kotlin.time.Duration.Companion.milliseconds
|
||||
|
||||
@AndroidEntryPoint
|
||||
class SetupActivity : BaseActivity(), ViewPager.OnPageChangeListener {
|
||||
class SetupActivity : BaseActivity() {
|
||||
private lateinit var binding: ActivitySetupBinding
|
||||
|
||||
@Inject
|
||||
|
|
@ -66,7 +60,7 @@ class SetupActivity : BaseActivity(), ViewPager.OnPageChangeListener {
|
|||
private val isLastPage: Boolean
|
||||
get() =
|
||||
binding.viewPager.adapter == null || binding.viewPager.currentItem == (
|
||||
binding.viewPager.adapter?.count
|
||||
binding.viewPager.adapter?.itemCount
|
||||
?: 0
|
||||
) - 1
|
||||
|
||||
|
|
@ -103,7 +97,7 @@ class SetupActivity : BaseActivity(), ViewPager.OnPageChangeListener {
|
|||
}
|
||||
}
|
||||
|
||||
binding.viewPager.disableFading = true
|
||||
binding.viewPager.isUserInputEnabled = false
|
||||
|
||||
binding.previousButton.setOnClickListener { previousClicked() }
|
||||
binding.nextButton.setOnClickListener { nextClicked() }
|
||||
|
|
@ -115,12 +109,26 @@ class SetupActivity : BaseActivity(), ViewPager.OnPageChangeListener {
|
|||
}
|
||||
|
||||
private fun setupViewpager() {
|
||||
val fragmentManager = supportFragmentManager
|
||||
|
||||
binding.viewPager.adapter = ViewPageAdapter(fragmentManager)
|
||||
|
||||
binding.viewPager.addOnPageChangeListener(this)
|
||||
binding.viewPagerIndicator.setViewPager(binding.viewPager)
|
||||
setViewPagerAdapter()
|
||||
binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
|
||||
override fun onPageSelected(position: Int) {
|
||||
super.onPageSelected(position)
|
||||
when {
|
||||
position == 0 -> {
|
||||
setPreviousButtonEnabled(false)
|
||||
binding.nextButton.text = getString(R.string.next_button)
|
||||
}
|
||||
isLastPage -> {
|
||||
setPreviousButtonEnabled(true)
|
||||
binding.nextButton.text = getString(R.string.finish)
|
||||
}
|
||||
else -> {
|
||||
setPreviousButtonEnabled(true)
|
||||
binding.nextButton.text = getString(R.string.next_button)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
private fun nextClicked() {
|
||||
|
|
@ -147,7 +155,7 @@ class SetupActivity : BaseActivity(), ViewPager.OnPageChangeListener {
|
|||
} else if (binding.viewPager.currentItem == 0) {
|
||||
confirmNames(welcomeFragment?.displayName ?: "", welcomeFragment?.username ?: "")
|
||||
|
||||
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager
|
||||
val imm = getSystemService(INPUT_METHOD_SERVICE) as? InputMethodManager
|
||||
imm?.hideSoftInputFromWindow(currentFocus?.windowToken, 0)
|
||||
}
|
||||
binding.viewPager.currentItem = binding.viewPager.currentItem + 1
|
||||
|
|
@ -187,34 +195,6 @@ class SetupActivity : BaseActivity(), ViewPager.OnPageChangeListener {
|
|||
binding.nextButton.setCompoundDrawablesWithIntrinsicBounds(null, null, rightDrawable, null)
|
||||
}
|
||||
|
||||
override fun onPageScrolled(
|
||||
position: Int,
|
||||
positionOffset: Float,
|
||||
positionOffsetPixels: Int
|
||||
) =
|
||||
Unit
|
||||
|
||||
override fun onPageSelected(position: Int) {
|
||||
when {
|
||||
position == 0 -> {
|
||||
this.setPreviousButtonEnabled(false)
|
||||
binding.nextButton.text = this.getString(R.string.next_button)
|
||||
}
|
||||
|
||||
isLastPage -> {
|
||||
this.setPreviousButtonEnabled(true)
|
||||
binding.nextButton.text = this.getString(R.string.finish)
|
||||
}
|
||||
|
||||
else -> {
|
||||
this.setPreviousButtonEnabled(true)
|
||||
binding.nextButton.text = this.getString(R.string.next_button)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onPageScrollStateChanged(state: Int) = Unit
|
||||
|
||||
private var hasCompleted = false
|
||||
|
||||
private fun onUserReceived(user: User?) {
|
||||
|
|
@ -255,9 +235,10 @@ class SetupActivity : BaseActivity(), ViewPager.OnPageChangeListener {
|
|||
}
|
||||
}
|
||||
|
||||
private inner class ViewPageAdapter(fm: FragmentManager) :
|
||||
FragmentPagerAdapter(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT), IconPagerAdapter {
|
||||
override fun getItem(position: Int): Fragment {
|
||||
private fun setViewPagerAdapter() {
|
||||
val fragmentManager = supportFragmentManager
|
||||
val viewPagerAdapter = object : FragmentStateAdapter(fragmentManager, lifecycle) {
|
||||
override fun createFragment(position: Int): Fragment {
|
||||
return when (position) {
|
||||
1 -> {
|
||||
val fragment = AvatarSetupFragment()
|
||||
|
|
@ -284,38 +265,11 @@ class SetupActivity : BaseActivity(), ViewPager.OnPageChangeListener {
|
|||
}
|
||||
}
|
||||
|
||||
override fun instantiateItem(
|
||||
container: ViewGroup,
|
||||
position: Int
|
||||
): Any {
|
||||
val item = super.instantiateItem(container, position)
|
||||
when (item) {
|
||||
is AvatarSetupFragment -> {
|
||||
avatarSetupFragment = item
|
||||
item.activity = this@SetupActivity
|
||||
item.setUser(user)
|
||||
item.width = binding.viewPager.width
|
||||
}
|
||||
|
||||
is TaskSetupFragment -> {
|
||||
taskSetupFragment = item
|
||||
item.setUser(user)
|
||||
}
|
||||
|
||||
is WelcomeFragment -> {
|
||||
welcomeFragment = item
|
||||
item.onNameValid = { setNextButtonEnabled(it == true) }
|
||||
}
|
||||
}
|
||||
return item
|
||||
}
|
||||
|
||||
override fun getCount(): Int {
|
||||
override fun getItemCount(): Int {
|
||||
return 3
|
||||
}
|
||||
|
||||
override fun getIconResId(index: Int): Int {
|
||||
return R.drawable.indicator_diamond
|
||||
}
|
||||
}
|
||||
binding.viewPager.adapter = viewPagerAdapter
|
||||
TabLayoutMediator(binding.viewPagerIndicator, binding.viewPager) { tab, position -> }.attach()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ abstract class BaseMainFragment<VB : ViewBinding> : BaseFragment<VB>() {
|
|||
view?.systemUiVisibility
|
||||
window.setNavigationBarDarkIcons(false)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
window.isNavigationBarContrastEnforced = false
|
||||
window.isNavigationBarContrastEnforced = true
|
||||
}
|
||||
} else {
|
||||
windowInsetsController.isAppearanceLightNavigationBars = requireActivity().isUsingNightModeResources()
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ import kotlinx.coroutines.flow.firstOrNull
|
|||
import kotlinx.coroutines.flow.map
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
import androidx.core.graphics.drawable.toDrawable
|
||||
|
||||
@AndroidEntryPoint
|
||||
class WelcomeFragment : BaseFragment<FragmentWelcomeBinding>() {
|
||||
|
|
@ -47,17 +48,14 @@ class WelcomeFragment : BaseFragment<FragmentWelcomeBinding>() {
|
|||
|
||||
private val checkmarkIcon: Drawable by lazy {
|
||||
context?.let {
|
||||
BitmapDrawable(
|
||||
resources,
|
||||
HabiticaIconsHelper.imageOfCheckmark(
|
||||
ContextCompat.getColor(it, R.color.green_50),
|
||||
1f
|
||||
)
|
||||
)
|
||||
).toDrawable(resources)
|
||||
} ?: VectorDrawable()
|
||||
}
|
||||
private val alertIcon: Drawable by lazy {
|
||||
BitmapDrawable(resources, HabiticaIconsHelper.imageOfAlertIcon())
|
||||
HabiticaIconsHelper.imageOfAlertIcon().toDrawable(resources)
|
||||
}
|
||||
val username: String
|
||||
get() = binding?.usernameEditText?.text?.toString() ?: ""
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -3,7 +3,6 @@ package com.habitrpg.android.habitica.ui.views;
|
|||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.RectF;
|
||||
|
||||
import androidx.annotation.ColorInt;
|
||||
|
|
@ -470,44 +469,6 @@ public class HabiticaIconsHelper {
|
|||
return imageOfCaret;
|
||||
}
|
||||
|
||||
private static Bitmap imageOfRageStrikeInactive = null;
|
||||
|
||||
public static Bitmap imageOfRageStrikeInactive() {
|
||||
if (imageOfRageStrikeInactive != null)
|
||||
return imageOfRageStrikeInactive;
|
||||
|
||||
imageOfRageStrikeInactive = Bitmap.createBitmap(scaleSize(63), scaleSize(82), Bitmap.Config.ARGB_8888);
|
||||
Canvas canvas = new Canvas(imageOfRageStrikeInactive);
|
||||
canvas.scale(displayDensity, displayDensity);
|
||||
HabiticaIcons.drawRageStrikeInactive(canvas);
|
||||
|
||||
return imageOfRageStrikeInactive;
|
||||
}
|
||||
|
||||
public static Bitmap imageOfRageStrikeActive(Context context, Bitmap rageStrikeNPC) {
|
||||
Bitmap imageOfRageStrikeActive = Bitmap.createBitmap(scaleSize(63), scaleSize(82), Bitmap.Config.ARGB_8888);
|
||||
Canvas canvas = new Canvas(imageOfRageStrikeActive);
|
||||
canvas.scale(displayDensity, displayDensity);
|
||||
HabiticaIcons.drawRageStrikeActive(canvas, context, rageStrikeNPC);
|
||||
|
||||
return imageOfRageStrikeActive;
|
||||
}
|
||||
|
||||
private static Bitmap imageOfRage = null;
|
||||
|
||||
public static Bitmap imageOfRage() {
|
||||
if (imageOfRage != null)
|
||||
return imageOfRage;
|
||||
|
||||
int size = scaleSize(18);
|
||||
imageOfRage = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
|
||||
Canvas canvas = new Canvas(imageOfRage);
|
||||
canvas.scale(displayDensity, displayDensity);
|
||||
HabiticaIcons.drawRage(canvas);
|
||||
|
||||
return imageOfRage;
|
||||
}
|
||||
|
||||
public static Bitmap imageOfLocked(@ColorInt int lockColor) {
|
||||
return imageOfLocked(lockColor, 15, 17);
|
||||
}
|
||||
|
|
@ -670,15 +631,6 @@ public class HabiticaIconsHelper {
|
|||
return imageOfHabitControlMinus;
|
||||
}
|
||||
|
||||
public static Bitmap imageOfGuildCrest(boolean isOwner, boolean isPublic, float memberCount, String memberCountLabel) {
|
||||
Bitmap imageOfGuildCrest = Bitmap.createBitmap(scaleSize(40), scaleSize(38), Bitmap.Config.ARGB_8888);
|
||||
Canvas canvas = new Canvas(imageOfGuildCrest);
|
||||
canvas.scale(displayDensity, displayDensity);
|
||||
HabiticaIcons.drawGuildCrest(canvas, isOwner, isPublic, memberCount, memberCountLabel);
|
||||
|
||||
return imageOfGuildCrest;
|
||||
}
|
||||
|
||||
public static Bitmap imageOfGuildCrestMedium(float memberCount) {
|
||||
Bitmap imageOfGuildCrestMedium = Bitmap.createBitmap(scaleSize(30), scaleSize(34), Bitmap.Config.ARGB_8888);
|
||||
Canvas canvas = new Canvas(imageOfGuildCrestMedium);
|
||||
|
|
@ -688,12 +640,4 @@ public class HabiticaIconsHelper {
|
|||
return imageOfGuildCrestMedium;
|
||||
}
|
||||
|
||||
public static Bitmap imageOfGuildCrestSmall(float memberCount) {
|
||||
Bitmap imageOfGuildCrestSmall = Bitmap.createBitmap(scaleSize(16), scaleSize(16), Bitmap.Config.ARGB_8888);
|
||||
Canvas canvas = new Canvas(imageOfGuildCrestSmall);
|
||||
canvas.scale(displayDensity, displayDensity);
|
||||
HabiticaIcons.drawGuildCrestSmall(canvas, memberCount);
|
||||
|
||||
return imageOfGuildCrestSmall;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
android.enableJetifier=true
|
||||
android.useAndroidX=true
|
||||
android.debug.obsoleteApi=true
|
||||
org.gradle.configureondemand=true
|
||||
|
|
|
|||
|
|
@ -22,14 +22,14 @@ coordinatorlayout = "1.2.0"
|
|||
coreSplashscreen = "1.1.0-rc01"
|
||||
core_ktx = "1.15.0"
|
||||
coroutines = "1.9.0"
|
||||
crashlytics = "3.0.2"
|
||||
crashlytics = "3.0.3"
|
||||
credentials = "1.3.0"
|
||||
daggerhilt = "2.55"
|
||||
desuggar = "2.1.4"
|
||||
detekt = "1.19.0"
|
||||
deviceNames = "2.1.1"
|
||||
firebase-perf = "1.4.2"
|
||||
firebase_bom = "33.8.0"
|
||||
firebase_bom = "33.9.0"
|
||||
flexbox = "3.0.0"
|
||||
fragmentKtx = "1.8.5"
|
||||
fragmentTesting = "1.8.5"
|
||||
|
|
|
|||
Loading…
Reference in a new issue