diff --git a/app/src/main/java/de/kuschku/quasseldroid/dagger/AppModule.kt b/app/src/main/java/de/kuschku/quasseldroid/dagger/AppModule.kt index cc8ab34ce1e2fdf15c18e8df3448ab81481df06d..6ddb278003a463d49d40824966d64ce16165fa8a 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/dagger/AppModule.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/dagger/AppModule.kt @@ -22,10 +22,21 @@ package de.kuschku.quasseldroid.dagger import com.google.gson.GsonBuilder import dagger.Module import dagger.Provides +import de.kuschku.quasseldroid.util.avatars.MatrixApi +import retrofit2.Retrofit +import retrofit2.converter.gson.GsonConverterFactory @Module object AppModule { @Provides @JvmStatic 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) } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/user/UserInfoFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/user/UserInfoFragment.kt index d03c6c5eb15ab787f473a6621b25672446392f78..dec3b63d18690f8428c37eb232177766f8fcc037 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/user/UserInfoFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/user/UserInfoFragment.kt @@ -33,7 +33,6 @@ import android.widget.Toast import androidx.lifecycle.Observer import butterknife.BindView import butterknife.ButterKnife -import com.google.gson.GsonBuilder import de.kuschku.libquassel.protocol.Buffer_Type import de.kuschku.libquassel.quassel.BufferInfo import de.kuschku.libquassel.quassel.syncables.IrcUser @@ -54,8 +53,6 @@ import de.kuschku.quasseldroid.util.ui.BetterLinkMovementMethod import de.kuschku.quasseldroid.util.ui.LinkLongClickMenuHelper import de.kuschku.quasseldroid.viewmodel.data.Avatar import io.reactivex.Observable -import retrofit2.Retrofit -import retrofit2.converter.gson.GsonConverterFactory import javax.inject.Inject class UserInfoFragment : ServiceBoundFragment() { @@ -116,6 +113,9 @@ class UserInfoFragment : ServiceBoundFragment() { @Inject lateinit var messageSettings: MessageSettings + @Inject + lateinit var matrixApi: MatrixApi + private var actualUrl: String? = null override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, @@ -123,12 +123,6 @@ class UserInfoFragment : ServiceBoundFragment() { val view = inflater.inflate(R.layout.fragment_info_user, container, false) 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 networkId2 = arguments?.getInt("networkId") @@ -174,11 +168,13 @@ class UserInfoFragment : ServiceBoundFragment() { }.toLiveData().observe(this, Observer { val processUser = { user: IrcUserInfo -> avatar.post { + avatar.visibility = View.GONE actualUrl = null avatar.loadAvatars( AvatarHelper.avatar(messageSettings, user, maxOf(avatar.width, avatar.height)), crop = false ) { model -> + avatar.visibility = View.VISIBLE when (model) { is String -> { actualUrl = model diff --git a/app/src/main/res/layout/fragment_info_user.xml b/app/src/main/res/layout/fragment_info_user.xml index 5deb936961daefaa468ec9f4764fa3b1e63ce50b..95d0c930723aff25b489afe162552e78b19d9147 100644 --- a/app/src/main/res/layout/fragment_info_user.xml +++ b/app/src/main/res/layout/fragment_info_user.xml @@ -34,15 +34,25 @@ android:layout_height="wrap_content" app:layout_scrollFlags="scroll"> - <ImageView - android:id="@+id/avatar" + <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:adjustViewBounds="true" - android:contentDescription="@string/label_avatar" - android:scaleType="fitXY" - app:layout_collapseMode="parallax" - tools:src="@tools:sample/avatars" /> + app:layout_collapseMode="parallax"> + + <ImageView + android:id="@+id/avatar" + 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.AppBarLayout> @@ -57,6 +67,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:animateLayoutChanges="true" + android:elevation="4dp" android:orientation="vertical"> <LinearLayout style="@style/Widget.Info.Header">