From e4bde87a447b614295bb60244e27aa982935f517 Mon Sep 17 00:00:00 2001 From: Pasha Shkaran Date: Wed, 8 Nov 2017 21:11:42 +0200 Subject: [PATCH] Switch to scanner interface from my QR code screen #270 first screen done --- .../mvp/presenters/MyProfilePresenter.java | 5 ++ .../presenters/QrCodeGeneratorPresenter.java | 1 + .../mvp/view/QrCodeGeneratorView.java | 2 + .../activities/QRCodeGeneratorActivity.java | 40 +++++++++++++- .../ui/activities/QRCodeReaderActivity.java | 14 +---- .../fragments/profile/MyProfileFragment.java | 5 +- .../communicator/utils/ZxingEncoder.java | 2 +- .../res/layout/activity_qr_code_generator.xml | 52 +++++++++++++++++-- app/src/main/res/values/strings.xml | 2 + 9 files changed, 102 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/MyProfilePresenter.java b/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/MyProfilePresenter.java index 4573899671..44f6a5e5ed 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/MyProfilePresenter.java +++ b/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/MyProfilePresenter.java @@ -16,6 +16,7 @@ import com.nynja.mobile.communicator.ui.fragments.chats.ScheduledMessagesFragmen import com.nynja.mobile.communicator.ui.fragments.chats.StarredMessagesFragment; import com.nynja.mobile.communicator.ui.fragments.contacts.HistoryFragment; import com.nynja.mobile.communicator.ui.fragments.profile.MyBalanceFragment; +import com.nynja.mobile.communicator.ui.fragments.profile.MyProfileFragment; import com.nynja.mobile.communicator.ui.fragments.profile.UserProfileFragment; import com.nynja.mobile.communicator.utils.StringUtils; @@ -240,6 +241,10 @@ public class MyProfilePresenter extends BasePresenter { mRouter.replaceScreen(ChatFragment.class.getSimpleName(), fto); } + public void navigateToProfile() { + mRouter.replaceScreen(MyProfileFragment.class.getSimpleName()); + } + private void openHistoryList() { mRouter.replaceScreen(HistoryFragment.class.getSimpleName()); } diff --git a/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/QrCodeGeneratorPresenter.java b/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/QrCodeGeneratorPresenter.java index 9b7e2ac4ae..45ae7bb83b 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/QrCodeGeneratorPresenter.java +++ b/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/QrCodeGeneratorPresenter.java @@ -2,6 +2,7 @@ package com.nynja.mobile.communicator.mvp.presenters; import com.arellomobile.mvp.InjectViewState; import com.nynja.mobile.communicator.mvp.view.QrCodeGeneratorView; +import com.nynja.mobile.communicator.ui.fragments.profile.MyProfileFragment; /** * Created by dmitro.boiko on 09/08/2017. diff --git a/app/src/main/java/com/nynja/mobile/communicator/mvp/view/QrCodeGeneratorView.java b/app/src/main/java/com/nynja/mobile/communicator/mvp/view/QrCodeGeneratorView.java index 7527a93315..1af9e2f7f7 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/mvp/view/QrCodeGeneratorView.java +++ b/app/src/main/java/com/nynja/mobile/communicator/mvp/view/QrCodeGeneratorView.java @@ -9,4 +9,6 @@ import com.nynja.mobile.communicator.data.models.mqtt.Profile; public interface QrCodeGeneratorView extends BaseMvpView { void setProfile(Profile profile); + + void navigateToQRReader(); } diff --git a/app/src/main/java/com/nynja/mobile/communicator/ui/activities/QRCodeGeneratorActivity.java b/app/src/main/java/com/nynja/mobile/communicator/ui/activities/QRCodeGeneratorActivity.java index 17c938add0..09adf8ba9c 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/ui/activities/QRCodeGeneratorActivity.java +++ b/app/src/main/java/com/nynja/mobile/communicator/ui/activities/QRCodeGeneratorActivity.java @@ -1,5 +1,6 @@ package com.nynja.mobile.communicator.ui.activities; +import android.app.Activity; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; @@ -8,11 +9,16 @@ import android.widget.ImageView; import com.arellomobile.mvp.presenter.InjectPresenter; import com.google.zxing.WriterException; +import com.nynja.mobile.communicator.NynjaApp; import com.nynja.mobile.communicator.R; +import com.nynja.mobile.communicator.data.FragmentTransferObject; +import com.nynja.mobile.communicator.data.models.mqtt.Contact; import com.nynja.mobile.communicator.data.models.mqtt.Profile; import com.nynja.mobile.communicator.mvp.presenters.QrCodeGeneratorPresenter; import com.nynja.mobile.communicator.mvp.view.QrCodeGeneratorView; import com.nynja.mobile.communicator.ui.base.BaseActivity; +import com.nynja.mobile.communicator.ui.fragments.profile.MyProfileFragment; +import com.nynja.mobile.communicator.ui.fragments.profile.UserProfileFragment; import com.nynja.mobile.communicator.utils.ZxingEncoder; import butterknife.BindView; @@ -25,6 +31,8 @@ import timber.log.Timber; public class QRCodeGeneratorActivity extends BaseActivity implements QrCodeGeneratorView { + private static final int QR_SCAN_REQUEST_CODE = 0x43; + @BindView(R.id.qr_code_qrcodegeneratoractivity) ImageView qrCode; @InjectPresenter QrCodeGeneratorPresenter mQrCodeGeneratorPresenter; @@ -39,11 +47,16 @@ public class QRCodeGeneratorActivity extends BaseActivity implements QrCodeGener mQrCodeGeneratorPresenter.getProfile(); } - @OnClick(android.R.id.content) - public void onContentClick() { + @OnClick(R.id.close_btn) + public void onCloseClick() { finish(); } + @OnClick(R.id.scan_qr_code_btn) + public void onScanClick() { + navigateToQRReader(); + } + @Override public void setProfile(Profile profile) { try { //// FIXME: 21/07/2017 implement logic for qr code @@ -54,4 +67,27 @@ public class QRCodeGeneratorActivity extends BaseActivity implements QrCodeGener Timber.e(e); } } + + @Override + public void navigateToQRReader() { + startActivityForResult(QRCodeReaderActivity. + getLaunchIntent(this), QR_SCAN_REQUEST_CODE); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == Activity.RESULT_OK) { + switch (requestCode) { + case QR_SCAN_REQUEST_CODE: + finish(); + break; + } + } + } + + @Override + public void onPointerCaptureChanged(boolean hasCapture) { + + } } diff --git a/app/src/main/java/com/nynja/mobile/communicator/ui/activities/QRCodeReaderActivity.java b/app/src/main/java/com/nynja/mobile/communicator/ui/activities/QRCodeReaderActivity.java index 848358b390..30cfe39f1b 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/ui/activities/QRCodeReaderActivity.java +++ b/app/src/main/java/com/nynja/mobile/communicator/ui/activities/QRCodeReaderActivity.java @@ -13,8 +13,6 @@ import com.nynja.mobile.communicator.ui.base.BaseActivity; import com.nynja.mobile.communicator.utils.DialogFactory; import com.nynja.mobile.communicator.utils.ZXingScannerView; -import butterknife.OnClick; - /** * Created by dmitro.boiko on 27/06/2017. @@ -48,12 +46,6 @@ public class QRCodeReaderActivity extends BaseActivity implements ZXingScannerVi mScannerView.stopCamera(); } - - @OnClick(android.R.id.content) public void onContentClick() { - setResult(RESULT_CANCELED); - finish(); - } - @Override public void userNotFound() { DialogFactory.createDialog(this, getString(R.string.error_user_not_found), (dialog, which) -> { @@ -66,14 +58,10 @@ public class QRCodeReaderActivity extends BaseActivity implements ZXingScannerVi } @Override public void showInternetError() { - } @Override public void handleResult(Result rawResult) { + setResult(RESULT_OK, null); mQRCodeReaderPresenter.getContactByPhoneNumber(rawResult.getText()); } - - @Override public void onPointerCaptureChanged(boolean hasCapture) { - - } } diff --git a/app/src/main/java/com/nynja/mobile/communicator/ui/fragments/profile/MyProfileFragment.java b/app/src/main/java/com/nynja/mobile/communicator/ui/fragments/profile/MyProfileFragment.java index 9c6ac51a59..78c27bcdae 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/ui/fragments/profile/MyProfileFragment.java +++ b/app/src/main/java/com/nynja/mobile/communicator/ui/fragments/profile/MyProfileFragment.java @@ -57,6 +57,7 @@ public class MyProfileFragment extends BaseFragment implements MyProfileView, private static final int IMAGE_REQUEST_CODE = 42; private static final int GALLERY_REQUEST_CODE = 43; + private static final int QR_CODE_REQUEST_CODE = 44; @BindView(R.id.f_my_profile_rv) RecyclerView mRecyclerView; @@ -106,7 +107,7 @@ public class MyProfileFragment extends BaseFragment implements MyProfileView, @Override public void navigateToQqCode(Profile profile) { - startActivity(QRCodeGeneratorActivity.getLaunchIntent(getContext())); + startActivityForResult(QRCodeGeneratorActivity.getLaunchIntent(getContext()), QR_CODE_REQUEST_CODE); } @Override @@ -156,6 +157,8 @@ public class MyProfileFragment extends BaseFragment implements MyProfileView, CropImage.ActivityResult result = CropImage.getActivityResult(data); Uri resultUri = result.getUri(); setUserAvatar(new File(resultUri.getPath())); + } else if (requestCode == QR_CODE_REQUEST_CODE && data != null) { + mPresenter.navigateToProfile(); } } diff --git a/app/src/main/java/com/nynja/mobile/communicator/utils/ZxingEncoder.java b/app/src/main/java/com/nynja/mobile/communicator/utils/ZxingEncoder.java index 157fa22556..d7aedb2581 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/utils/ZxingEncoder.java +++ b/app/src/main/java/com/nynja/mobile/communicator/utils/ZxingEncoder.java @@ -186,7 +186,7 @@ public class ZxingEncoder { for (int i = 0; i < mBitmapWidth; i++) { for (int j = 0; j < mBitmapHeight; j++) { - mImageBitmap.setPixel(i, j, bm.get(i, j) ? Color.BLACK : Color.WHITE); + mImageBitmap.setPixel(i, j, bm.get(i, j) ? Color.WHITE : Color.parseColor("#2b2e32")); } } return mImageBitmap; diff --git a/app/src/main/res/layout/activity_qr_code_generator.xml b/app/src/main/res/layout/activity_qr_code_generator.xml index a4273769ee..1c524ca86f 100644 --- a/app/src/main/res/layout/activity_qr_code_generator.xml +++ b/app/src/main/res/layout/activity_qr_code_generator.xml @@ -1,16 +1,60 @@ - + + + + + + - \ No newline at end of file + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6e2c6287ce..63ffc53f14 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -34,6 +34,7 @@ "It is not working now :-(" + Scan QR Code Camera @@ -105,6 +106,7 @@ Name Username Phone \nNumber + my qr code -- GitLab