diff --git a/app/src/main/java/com/nynja/mobile/communicator/data/sdk/calls/ConferenceSDKModule.java b/app/src/main/java/com/nynja/mobile/communicator/data/sdk/calls/ConferenceSDKModule.java index 127b277d0c7e2ff77e18eb42310534644ca30cf2..05a5b72a980ad4363a315670f5db17ecb503711a 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/data/sdk/calls/ConferenceSDKModule.java +++ b/app/src/main/java/com/nynja/mobile/communicator/data/sdk/calls/ConferenceSDKModule.java @@ -2806,7 +2806,7 @@ public class ConferenceSDKModule extends BaseSDKModule { final boolean hasRegisteredProducts = InAppPurchaseManager.getInstance(getContext()).hasRegisteredProducts(); final boolean isConferenceHasRestrictedDuration = (mActiveConference != null) ? mActiveConference.isConferenceHasRestrictedDuration() : false; return (isSamsungBuild && - !InAppPurchaseManager.getInstance(getContext()).isSettingsAlwaysAllowed() && + //!InAppPurchaseManager.getInstance(getContext()).isSettingsAlwaysAllowed() && hasRegisteredProducts && isConferenceHasRestrictedDuration); diff --git a/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/ChatPresenter.java b/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/ChatPresenter.java index 60b0ae62df467183c086630082f00e24461cf3ae..97f0ac33bea1f49f68400988a209e4e55dd2c7b5 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/ChatPresenter.java +++ b/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/ChatPresenter.java @@ -93,6 +93,7 @@ import com.nynja.mobile.communicator.utils.container.data.model.Sticker; import com.nynja.mobile.communicator.utils.container.data.packs.NynjaStickerPack; import com.nynja.mobile.communicator.utils.contextmenu.ContextMenuManager; import com.nynja.mobile.communicator.utils.exeption.FileDoesNotExistExeption; +import com.nynja.mobile.communicator.utils.iap.InAppPurchaseManager; import com.nynja.mobile.communicator.utils.navigation.navigators.HomeNavigator; import com.nynja.mobile.communicator.utils.navigation.navigators.NynjaNavigator; import com.nynja.mobile.communicator.utils.tracking.AppsTrackerConsts; @@ -2298,7 +2299,11 @@ public class ChatPresenter extends BaseChatPresenter { // FragmentTransferObject fto = new FragmentTransferObject(null, mRoom, OpenVideoConferenceCreate); // mRouter.navigateTo(HomeNavigator.CHOOSE_USER, fto); } else { - getViewState().showMessage(R.string.call_start_video_conference_alert); + if (!InAppPurchaseManager.getInstance(mDataManager.getContext()).isSettingsAlwaysAllowed()) { + getViewState().showMessage(R.string.call_start_video_conference_alert); + } else { + navigateToStartGroupCall(true, mRoom); + } } } else { mDataManager.startCall(new ContactModel(mRoom.getOnlyMembers().get(0)), true); diff --git a/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/MainActivityPresenter.kt b/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/MainActivityPresenter.kt index 923269e60c835f11fd894ff153ce673b40f38637..89994c6709c6436e1bbb660749c10f056bb8b546 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/MainActivityPresenter.kt +++ b/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/MainActivityPresenter.kt @@ -33,6 +33,7 @@ import com.nynja.mobile.communicator.utils.Consts import com.nynja.mobile.communicator.utils.NynjaRequestCodes import com.nynja.mobile.communicator.utils.SecurityCheck import com.nynja.mobile.communicator.utils.StringUtils +import com.nynja.mobile.communicator.utils.iap.InAppPurchaseManager import com.nynja.mobile.communicator.utils.navigation.Screen import com.nynja.mobile.communicator.utils.navigation.navigators.HomeNavigator import com.nynja.mobile.communicator.utils.navigation.navigators.NynjaNavigator @@ -372,7 +373,11 @@ class MainActivityPresenter : ConferenceSDKPresenter() { if (Consts.CLIENT_ALLOWED_VIDEO_CONFERENCE) { tryStartCall(true, true, true, null) } else { - viewState.showAlertMessage(R.string.call_start_video_conference_alert) + if (!InAppPurchaseManager.getInstance(mDataManager.context).isSettingsAlwaysAllowed()) { + viewState.showAlertMessage(R.string.call_start_video_conference_alert) + } else { + tryStartCall(true, true, true, null) + } } viewState.closeWheel() } diff --git a/app/src/main/java/com/nynja/mobile/communicator/ui/activities/MainActivity.java b/app/src/main/java/com/nynja/mobile/communicator/ui/activities/MainActivity.java index cc4a659d4112f93443722db0a4b11e8a5bc7a3da..c11eb28521e568d4483671d3eb9c8a1fa615b991 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/ui/activities/MainActivity.java +++ b/app/src/main/java/com/nynja/mobile/communicator/ui/activities/MainActivity.java @@ -670,7 +670,7 @@ public class MainActivity extends BaseActivity implements MainActivityView, @Override public void showAlertMessage(int res) { - DialogFactory.showAlertDialog(this, + DialogFactory.showModalAlertDialog(this, getString(res), getString(R.string.signin_text_ok), (dialog, which) -> dialog.dismiss()); diff --git a/app/src/main/java/com/nynja/mobile/communicator/ui/fragments/chats/ChatFragment.java b/app/src/main/java/com/nynja/mobile/communicator/ui/fragments/chats/ChatFragment.java index cc4579d2c1408d6a609a6bfbef4478c599cd4c3a..d54726d1a41a0f97563dd5066f6559ea0a41d47d 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/ui/fragments/chats/ChatFragment.java +++ b/app/src/main/java/com/nynja/mobile/communicator/ui/fragments/chats/ChatFragment.java @@ -2911,7 +2911,7 @@ public class ChatFragment extends BaseChatFragment implements ChatMvpView, @Override public void showMessage(int stringRes) { - DialogFactory.showAlertDialog(getContext(), + DialogFactory.showModalAlertDialog(getContext(), getString(stringRes), getString(R.string.signin_text_ok), (dialog, which) -> dialog.dismiss()); diff --git a/app/src/main/java/com/nynja/mobile/communicator/ui/fragments/conference/ConferenceCallFragment.java b/app/src/main/java/com/nynja/mobile/communicator/ui/fragments/conference/ConferenceCallFragment.java index 7122cc65bf9678aa41b01439eecc3349129269a6..249f902b4708a442f799bf375fba4bb69cad660c 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/ui/fragments/conference/ConferenceCallFragment.java +++ b/app/src/main/java/com/nynja/mobile/communicator/ui/fragments/conference/ConferenceCallFragment.java @@ -54,6 +54,7 @@ import com.nynja.mobile.communicator.utils.DialogFactory; import com.nynja.mobile.communicator.utils.ImageUtils; import com.nynja.mobile.communicator.utils.PermissionHelper; import com.nynja.mobile.communicator.utils.StringUtils; +import com.nynja.mobile.communicator.utils.iap.InAppPurchaseManager; import org.webrtc.ContextUtils; import org.webrtc.EglBase; @@ -299,10 +300,14 @@ public class ConferenceCallFragment extends BaseFragment implements CallView, if (Consts.CLIENT_ALLOWED_VIDEO_CONFERENCE) { onClickCameraButton(); } else { - DialogFactory.showAlertDialog(getContext(), - getString(R.string.call_start_video_conference_alert), - getString(R.string.signin_text_ok), - (dialog, which) -> dialog.dismiss()); + if (!InAppPurchaseManager.getInstance(getContext()).isSettingsAlwaysAllowed()) { + DialogFactory.showModalAlertDialog(getContext(), + getString(R.string.call_start_video_conference_alert), + getString(R.string.signin_text_ok), + (dialog, which) -> dialog.dismiss()); + } else { + onClickCameraButton(); + } } } else { onClickCameraButton(); diff --git a/app/src/main/java/com/nynja/mobile/communicator/utils/DialogFactory.java b/app/src/main/java/com/nynja/mobile/communicator/utils/DialogFactory.java index d0fdb7f1b3d171b277ebddadc4c140f9f6ef213f..4354878781437bb6b7923801a86c6585f349df81 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/utils/DialogFactory.java +++ b/app/src/main/java/com/nynja/mobile/communicator/utils/DialogFactory.java @@ -568,8 +568,8 @@ public class DialogFactory { if (mLastMessageTouchCount >= 10) { mLastMessageTouchTime = -1; mLastMessageTouchCount = 0; - InAppPurchaseManager.getInstance(context).setSettingsAlwaysAllowed(); - dialog.dismiss(); + //InAppPurchaseManager.getInstance(context).setSettingsAlwaysAllowed(); + //dialog.dismiss(); } } return false; @@ -612,4 +612,43 @@ public class DialogFactory { return dialog; } + @SuppressLint("ClickableViewAccessibility") + public static void showModalAlertDialog(@NonNull Context context, + @Nullable String message, + @Nullable String positiveButton, + @Nullable DialogInterface.OnClickListener listener) { + AlertDialog.Builder builder = new AlertDialog.Builder(context) + .setMessage(message) + .setPositiveButton(positiveButton, listener); + builder.setCancelable(false); + Dialog dialog = builder.create(); + dialog.show(); + + TextView tv = dialog.findViewById(android.R.id.message); + if (tv != null) { + tv.setGravity(Gravity.CENTER); + tv.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View view, MotionEvent motionEvent) { + ++mLastMessageTouchCount; + if (System.currentTimeMillis() - mLastMessageTouchTime > 5000) { + mLastMessageTouchTime = System.currentTimeMillis(); + mLastMessageTouchCount = 0; + } else { + if (mLastMessageTouchCount >= 10) { + mLastMessageTouchTime = -1; + mLastMessageTouchCount = 0; + InAppPurchaseManager.getInstance(context).setSettingsAlwaysAllowed(); + dialog.dismiss(); + } + } + return false; + } + }); + } + + changeMessageTextSize(dialog); + } + + } \ No newline at end of file