Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3,351 changes: 3,351 additions & 0 deletions app/schemas/one.mixin.android.db.MixinDatabase/70.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion app/src/main/java/one/mixin/android/Constants.kt
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ object Constants {
object DataBase {
const val DB_NAME = "mixin.db"
const val MINI_VERSION = 15
const val CURRENT_VERSION = 69
const val CURRENT_VERSION = 70

const val FTS_DB_NAME = "fts.db"
const val PENDING_DB_NAME = "pending.db"
Expand Down
4 changes: 3 additions & 1 deletion app/src/main/java/one/mixin/android/db/MixinDatabase.kt
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ import one.mixin.android.db.MixinDatabaseMigrations.Companion.MIGRATION_65_66
import one.mixin.android.db.MixinDatabaseMigrations.Companion.MIGRATION_66_67
import one.mixin.android.db.MixinDatabaseMigrations.Companion.MIGRATION_67_68
import one.mixin.android.db.MixinDatabaseMigrations.Companion.MIGRATION_68_69
import one.mixin.android.db.MixinDatabaseMigrations.Companion.MIGRATION_69_70
import one.mixin.android.db.converter.DepositEntryListConverter
import one.mixin.android.db.converter.FiatOrderConverter

Expand Down Expand Up @@ -424,7 +425,8 @@ abstract class MixinDatabase : RoomDatabase() {
MIGRATION_65_66,
MIGRATION_66_67,
MIGRATION_67_68,
MIGRATION_68_69
MIGRATION_68_69,
MIGRATION_69_70,
)
.enableMultiInstanceInvalidation()
.setQueryExecutor(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -597,6 +597,13 @@ class MixinDatabaseMigrations private constructor() {
}
}

val MIGRATION_69_70: Migration =
object : Migration(69, 70) {
override fun migrate(db: SupportSQLiteDatabase) {
db.execSQL("ALTER TABLE `markets` ADD COLUMN `descriptions` TEXT")
}
}

// If you add a new table, be sure to add a clear method to the DatabaseUtil
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package one.mixin.android.db.converter

import androidx.room.TypeConverter
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import one.mixin.android.extension.equalsIgnoreCase

object DescriptionsConverter {
@TypeConverter
fun fromString(value: String?): Map<String, String>? {
if (value.isNullOrEmpty() || value.equalsIgnoreCase("null")) return null
val mapType = object : TypeToken<Map<String, String>>() {}.type
return Gson().fromJson(value, mapType)
}

@TypeConverter
fun fromMap(map: Map<String, String>?): String? {
if (map.isNullOrEmpty()) return null
return Gson().toJson(map)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import android.view.View
import android.view.View.VISIBLE
import androidx.compose.runtime.mutableStateOf
import androidx.core.app.NotificationManagerCompat
import androidx.core.text.HtmlCompat
import androidx.core.view.isInvisible
import androidx.core.view.isVisible
import androidx.fragment.app.viewModels
Expand Down Expand Up @@ -50,6 +51,7 @@ import one.mixin.android.vo.Fiats
import one.mixin.android.vo.market.MarketItem
import one.mixin.android.vo.safe.TokenItem
import java.math.BigDecimal
import java.util.Locale
import javax.inject.Inject
import timber.log.Timber

Expand Down Expand Up @@ -369,6 +371,15 @@ class MarketDetailsFragment : BaseFragment(R.layout.fragment_details_market) {
lowTime.isVisible = true
lowTime.text = info.atlDate.dayTime()

val desc = info.descriptions?.let { map ->
val lang = Locale.getDefault().language
(map[lang]?.takeIf { it.isNotBlank() }
?: map["en"]?.takeIf { it.isNotBlank() }
?: map.values.firstOrNull { it.isNotBlank() })
}?.let { HtmlCompat.fromHtml(it, HtmlCompat.FROM_HTML_MODE_LEGACY).toString().trim() }
aboutContainer.isVisible = !desc.isNullOrBlank()
aboutContent.text = desc.orEmpty()

priceValue.setTextColor(textPrimary)
marketCap.setTextColor(textPrimary)
marketHigh.setTextColor(textPrimary)
Expand Down Expand Up @@ -403,6 +414,7 @@ class MarketDetailsFragment : BaseFragment(R.layout.fragment_details_market) {
highValue.setText(R.string.N_A)
lowValue.setTextColor(textAssist)
lowValue.setText(R.string.N_A)
aboutContainer.isVisible = false
}
}
}
Expand Down
8 changes: 6 additions & 2 deletions app/src/main/java/one/mixin/android/vo/market/Market.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,13 @@ import androidx.room.PrimaryKey
import androidx.room.TypeConverters
import com.google.gson.annotations.SerializedName
import kotlinx.parcelize.Parcelize
import one.mixin.android.db.converter.DescriptionsConverter
import one.mixin.android.db.converter.OptionalListConverter

@Entity(
tableName = "markets",
)
@TypeConverters(OptionalListConverter::class)
@TypeConverters(OptionalListConverter::class, DescriptionsConverter::class)
@Parcelize
data class Market(
@PrimaryKey
Expand Down Expand Up @@ -105,5 +106,8 @@ data class Market(
val sparklineIn24h: String,
@SerializedName("updated_at")
@ColumnInfo(name = "updated_at")
val updatedAt: String
val updatedAt: String,
@SerializedName("descriptions")
@ColumnInfo(name = "descriptions")
val descriptions: Map<String, String>? = null,
) : Parcelable
10 changes: 7 additions & 3 deletions app/src/main/java/one/mixin/android/vo/market/MarketItem.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@ import android.os.Parcelable
import androidx.room.ColumnInfo
import androidx.room.TypeConverters
import kotlinx.parcelize.Parcelize
import one.mixin.android.db.converter.DescriptionsConverter
import one.mixin.android.db.converter.OptionalListConverter

@Parcelize
@TypeConverters(OptionalListConverter::class)
@TypeConverters(OptionalListConverter::class, DescriptionsConverter::class)
data class MarketItem(
@ColumnInfo(name = "coin_id")
val coinId: String,
Expand Down Expand Up @@ -68,7 +69,9 @@ data class MarketItem(
@ColumnInfo(name = "sparkline_in_24h")
val sparklineIn24: String,
@ColumnInfo(name = "is_favored")
var isFavored: Boolean?
var isFavored: Boolean?,
@ColumnInfo(name = "descriptions")
val descriptions: Map<String, String>? = null,
) : Parcelable {
companion object {
fun fromMarket(market: Market): MarketItem {
Expand Down Expand Up @@ -102,7 +105,8 @@ data class MarketItem(
assetIds = market.assetIds,
sparklineIn7d = market.sparklineIn7d,
sparklineIn24 = market.sparklineIn24h,
isFavored = null
isFavored = null,
descriptions = market.descriptions,
)
}
}
Expand Down
28 changes: 28 additions & 0 deletions app/src/main/res/layout/fragment_details_market.xml
Original file line number Diff line number Diff line change
Expand Up @@ -574,6 +574,34 @@
</LinearLayout>
</FrameLayout>

<LinearLayout
android:id="@+id/about_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingStart="20dp"
android:paddingTop="20dp"
android:paddingEnd="20dp"
android:paddingBottom="20dp"
android:visibility="gone">

<TextView
android:id="@+id/about_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/About"
android:textColor="?attr/text_minor"
android:textSize="14sp" />

<TextView
android:id="@+id/about_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="?attr/text_assist"
android:textSize="12sp" />
</LinearLayout>

</LinearLayout>
</ScrollView>

Expand Down