Skip to content
Snippets Groups Projects
Commit ea84b447 authored by Rayan Osseiran's avatar Rayan Osseiran Committed by Adrien Béraud
Browse files

android tv: fix incorrect uri in share page

Change-Id: I18e90784947ac88eda4f26d26ff3d6324e3df560
parent de9ac141
No related branches found
No related tags found
No related merge requests found
......@@ -31,16 +31,20 @@ import butterknife.BindString;
import butterknife.BindView;
import cx.ring.R;
import cx.ring.dependencyinjection.RingInjectionComponent;
import cx.ring.model.Account;
import cx.ring.mvp.BaseFragment;
import cx.ring.mvp.GenericView;
import cx.ring.services.VCardServiceImpl;
import cx.ring.share.SharePresenter;
import cx.ring.share.ShareViewModel;
import cx.ring.utils.Log;
import cx.ring.utils.QRCodeUtils;
import cx.ring.views.AvatarDrawable;
public class TVShareFragment extends BaseFragment<SharePresenter> implements GenericView<ShareViewModel> {
@BindView(R.id.share_instruction)
@BindView(R.id.share_qr_instruction)
protected TextView mShareInstruction;
@BindView(R.id.qr_image)
......@@ -49,6 +53,12 @@ public class TVShareFragment extends BaseFragment<SharePresenter> implements Gen
@BindString(R.string.share_message)
protected String mShareMessage;
@BindView(R.id.share_uri)
protected TextView mShareUri;
@BindView(R.id.qr_user_photo)
protected ImageView mUserPhoto;
@Override
public int getLayout() {
return R.layout.tv_frag_share;
......@@ -67,13 +77,15 @@ public class TVShareFragment extends BaseFragment<SharePresenter> implements Gen
@Override
public void showViewModel(final ShareViewModel viewModel) {
final QRCodeUtils.QRCodeData qrCodeData = viewModel.getAccountQRCodeData(0x00000000, 0xFFFFFFFF);
getUserAvatar(viewModel.getAccount());
if (mQrImage == null || mShareInstruction == null) {
if (mQrImage == null || mShareInstruction == null || mShareUri == null) {
return;
}
if (qrCodeData == null) {
mQrImage.setVisibility(View.INVISIBLE);
} else {
Bitmap bitmap = Bitmap.createBitmap(qrCodeData.getWidth(), qrCodeData.getHeight(), Bitmap.Config.ARGB_8888);
bitmap.setPixels(qrCodeData.getData(), 0, qrCodeData.getWidth(), 0, 0, qrCodeData.getWidth(), qrCodeData.getHeight());
......@@ -82,4 +94,22 @@ public class TVShareFragment extends BaseFragment<SharePresenter> implements Gen
mQrImage.setVisibility(View.VISIBLE);
}
}
private void getUserAvatar(Account account) {
VCardServiceImpl
.loadProfile(account)
.doOnSuccess(profile -> {
mShareUri.setVisibility(View.VISIBLE);
if (profile.first != null && !profile.first.isEmpty()) {
mShareUri.setText(profile.first);
} else {
mShareUri.setText(account.getDisplayUri());
}
})
.flatMap(p -> AvatarDrawable.load(getActivity(), account))
.subscribe(a -> {
mUserPhoto.setVisibility(View.VISIBLE);
mUserPhoto.setImageDrawable(a);
}, e-> Log.e(TAG, e.getMessage()));
}
}
......@@ -185,7 +185,7 @@ public class MainPresenter extends RootPresenter<MainView> {
}
public String getAccountUri() {
return mAccountService.getCurrentAccount().getDisplayUri();
return mAccountService.getCurrentAccount().getUri();
}
public void reloadAccountInfos() {
......
......@@ -19,23 +19,37 @@ along with this program; if not, write to the Free Software
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/share_instruction"
android:layout_width="wrap_content"
android:id="@+id/share_qr_instruction"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/padding_small"
android:layout_marginEnd="@dimen/padding_small"
android:layout_marginBottom="@dimen/padding_small"
android:gravity="center"
android:text="@string/share_message"
android:textColor="@color/text_color_primary_dark"
android:textSize="24sp"
app:layout_constraintBottom_toTopOf="@+id/qr_image"
app:layout_constraintEnd_toEndOf="@+id/qr_image"
app:layout_constraintStart_toStartOf="@+id/qr_image" />
<TextView
android:id="@+id/share_uri"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/padding_small"
android:layout_marginEnd="48dp"
android:gravity="center"
android:text=""
android:textColor="@color/text_color_primary_dark"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/qr_image"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/qr_image"
app:layout_constraintTop_toTopOf="parent" />
......@@ -43,16 +57,27 @@ along with this program; if not, write to the Free Software
android:id="@+id/qr_image"
android:layout_width="@dimen/qr_code_size"
android:layout_height="@dimen/qr_code_size"
android:layout_marginEnd="48dp"
android:layout_marginStart="48dp"
android:background="@null"
android:gravity="center"
android:padding="@dimen/padding_small"
android:scaleType="fitCenter"
android:transitionName="photo"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/qr_user_photo"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginStart="32dp"
app:layout_constraintBottom_toBottomOf="@+id/share_uri"
app:layout_constraintStart_toEndOf="@+id/share_uri"
app:layout_constraintTop_toTopOf="@+id/share_uri"
app:layout_constraintVertical_bias="0.504"
tools:srcCompat="@tools:sample/avatars[0]" />
</androidx.constraintlayout.widget.ConstraintLayout>
......
......@@ -19,12 +19,12 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/share_instruction"
app:layout_constraintTop_toBottomOf="@+id/share_qr_instruction"
tools:layout_conversion_wrapHeight="1050"
tools:layout_conversion_wrapWidth="1050" />
<TextView
android:id="@+id/share_instruction"
android:id="@+id/share_qr_instruction"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="76dp"
......
......@@ -25,9 +25,13 @@ import cx.ring.utils.QRCodeUtils;
public class ShareViewModel {
private final String shareUri;
private final String displayUri;
private final Account mAccount;
public ShareViewModel(Account account) {
shareUri = account.getDisplayUri();
shareUri = account.getUri();
displayUri = account.getDisplayUri();
mAccount = account;
}
public QRCodeUtils.QRCodeData getAccountQRCodeData(final int foregroundColor, final int backgroundColor) {
......@@ -37,4 +41,14 @@ public class ShareViewModel {
public String getAccountShareUri() {
return shareUri;
}
public String getAccountDisplayUri() {
return displayUri;
}
public Account getAccount() {
return mAccount;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment