Skip to content
Snippets Groups Projects
Verified Commit c3c2085b authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Set limit for profile image, improving scrollability

parent e6ec8b74
No related branches found
No related tags found
No related merge requests found
...@@ -22,10 +22,21 @@ package de.kuschku.quasseldroid.dagger ...@@ -22,10 +22,21 @@ package de.kuschku.quasseldroid.dagger
import com.google.gson.GsonBuilder import com.google.gson.GsonBuilder
import dagger.Module import dagger.Module
import dagger.Provides import dagger.Provides
import de.kuschku.quasseldroid.util.avatars.MatrixApi
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
@Module @Module
object AppModule { object AppModule {
@Provides @Provides
@JvmStatic @JvmStatic
fun provideGson() = GsonBuilder().setPrettyPrinting().create() fun provideGson() = GsonBuilder().setPrettyPrinting().create()
@Provides
@JvmStatic
fun provideMatrixApi() = Retrofit.Builder()
.baseUrl("https://matrix.org/")
.addConverterFactory(GsonConverterFactory.create(GsonBuilder().setLenient().create()))
.build()
.create(MatrixApi::class.java)
} }
...@@ -33,7 +33,6 @@ import android.widget.Toast ...@@ -33,7 +33,6 @@ import android.widget.Toast
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
import butterknife.BindView import butterknife.BindView
import butterknife.ButterKnife import butterknife.ButterKnife
import com.google.gson.GsonBuilder
import de.kuschku.libquassel.protocol.Buffer_Type import de.kuschku.libquassel.protocol.Buffer_Type
import de.kuschku.libquassel.quassel.BufferInfo import de.kuschku.libquassel.quassel.BufferInfo
import de.kuschku.libquassel.quassel.syncables.IrcUser import de.kuschku.libquassel.quassel.syncables.IrcUser
...@@ -54,8 +53,6 @@ import de.kuschku.quasseldroid.util.ui.BetterLinkMovementMethod ...@@ -54,8 +53,6 @@ import de.kuschku.quasseldroid.util.ui.BetterLinkMovementMethod
import de.kuschku.quasseldroid.util.ui.LinkLongClickMenuHelper import de.kuschku.quasseldroid.util.ui.LinkLongClickMenuHelper
import de.kuschku.quasseldroid.viewmodel.data.Avatar import de.kuschku.quasseldroid.viewmodel.data.Avatar
import io.reactivex.Observable import io.reactivex.Observable
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import javax.inject.Inject import javax.inject.Inject
class UserInfoFragment : ServiceBoundFragment() { class UserInfoFragment : ServiceBoundFragment() {
...@@ -116,6 +113,9 @@ class UserInfoFragment : ServiceBoundFragment() { ...@@ -116,6 +113,9 @@ class UserInfoFragment : ServiceBoundFragment() {
@Inject @Inject
lateinit var messageSettings: MessageSettings lateinit var messageSettings: MessageSettings
@Inject
lateinit var matrixApi: MatrixApi
private var actualUrl: String? = null private var actualUrl: String? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
...@@ -123,12 +123,6 @@ class UserInfoFragment : ServiceBoundFragment() { ...@@ -123,12 +123,6 @@ class UserInfoFragment : ServiceBoundFragment() {
val view = inflater.inflate(R.layout.fragment_info_user, container, false) val view = inflater.inflate(R.layout.fragment_info_user, container, false)
ButterKnife.bind(this, view) ButterKnife.bind(this, view)
val matrixApi = Retrofit.Builder()
.baseUrl("https://matrix.org/")
.addConverterFactory(GsonConverterFactory.create(GsonBuilder().setLenient().create()))
.build()
.create(MatrixApi::class.java)
val openBuffer = arguments?.getBoolean("openBuffer") val openBuffer = arguments?.getBoolean("openBuffer")
val networkId2 = arguments?.getInt("networkId") val networkId2 = arguments?.getInt("networkId")
...@@ -174,11 +168,13 @@ class UserInfoFragment : ServiceBoundFragment() { ...@@ -174,11 +168,13 @@ class UserInfoFragment : ServiceBoundFragment() {
}.toLiveData().observe(this, Observer { }.toLiveData().observe(this, Observer {
val processUser = { user: IrcUserInfo -> val processUser = { user: IrcUserInfo ->
avatar.post { avatar.post {
avatar.visibility = View.GONE
actualUrl = null actualUrl = null
avatar.loadAvatars( avatar.loadAvatars(
AvatarHelper.avatar(messageSettings, user, maxOf(avatar.width, avatar.height)), AvatarHelper.avatar(messageSettings, user, maxOf(avatar.width, avatar.height)),
crop = false crop = false
) { model -> ) { model ->
avatar.visibility = View.VISIBLE
when (model) { when (model) {
is String -> { is String -> {
actualUrl = model actualUrl = model
......
...@@ -34,15 +34,25 @@ ...@@ -34,15 +34,25 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_scrollFlags="scroll"> app:layout_scrollFlags="scroll">
<ImageView <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/avatar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:adjustViewBounds="true" app:layout_collapseMode="parallax">
android:contentDescription="@string/label_avatar"
android:scaleType="fitXY" <ImageView
app:layout_collapseMode="parallax" android:id="@+id/avatar"
tools:src="@tools:sample/avatars" /> android:layout_width="0dp"
android:layout_height="0dp"
android:adjustViewBounds="true"
android:contentDescription="@string/label_avatar"
android:scaleType="centerCrop"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@tools:sample/avatars" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.appbar.CollapsingToolbarLayout> </com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
...@@ -57,6 +67,7 @@ ...@@ -57,6 +67,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:animateLayoutChanges="true" android:animateLayoutChanges="true"
android:elevation="4dp"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout style="@style/Widget.Info.Header"> <LinearLayout style="@style/Widget.Info.Header">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment