diff --git a/app/src/main/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferFragment.kt index f5cf2c60b..fc73df4af 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferFragment.kt @@ -42,6 +42,7 @@ import android.view.MenuInflater import android.view.MenuItem import android.view.View import android.view.ViewGroup +import android.widget.FrameLayout import android.widget.Toast import androidx.activity.result.contract.ActivityResultContracts import androidx.annotation.RequiresApi @@ -55,16 +56,20 @@ import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import org.kiwix.kiwixmobile.R import org.kiwix.kiwixmobile.cachedComponent +import org.kiwix.kiwixmobile.core.R.dimen import org.kiwix.kiwixmobile.core.R.drawable import org.kiwix.kiwixmobile.core.R.string import org.kiwix.kiwixmobile.core.base.BaseActivity import org.kiwix.kiwixmobile.core.base.BaseFragment +import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.isLandScapeMode +import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.isTablet import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.popNavigationBackstack import org.kiwix.kiwixmobile.core.extensions.getToolbarNavigationIcon import org.kiwix.kiwixmobile.core.extensions.setToolTipWithContentDescription import org.kiwix.kiwixmobile.core.extensions.toast import org.kiwix.kiwixmobile.core.main.CoreMainActivity import org.kiwix.kiwixmobile.core.navigateToAppSettings +import org.kiwix.kiwixmobile.core.utils.DimenUtils.getWindowWidth import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil import org.kiwix.kiwixmobile.core.utils.dialog.AlertDialogShower import org.kiwix.kiwixmobile.core.utils.dialog.KiwixDialog @@ -143,11 +148,42 @@ class LocalFileTransferFragment : wifiDirectManager.callbacks = this wifiDirectManager.lifecycleCoroutineScope = lifecycleScope wifiDirectManager.startWifiDirectManager(filesForTransfer) - fragmentLocalFileTransferBinding - ?.textViewDeviceName - ?.setToolTipWithContentDescription(getString(string.your_device)) + fragmentLocalFileTransferBinding?.apply { + textViewDeviceName.setToolTipWithContentDescription(getString(string.your_device)) + fileTransferShowCaseView.apply { + val fileTransferShowViewParams = layoutParams + fileTransferShowViewParams.width = getShowCaseViewWidth() + fileTransferShowViewParams.height = getShowCaseViewHeight() + layoutParams = fileTransferShowViewParams + } + nearbyDeviceShowCaseView.apply { + val nearbyDeviceShowCaseViewParams = layoutParams + nearbyDeviceShowCaseViewParams.width = getShowCaseViewWidth() + nearbyDeviceShowCaseViewParams.height = getShowCaseViewHeight() + layoutParams = nearbyDeviceShowCaseViewParams + } + } } + private fun getShowCaseViewWidth(): Int { + return when { + requireActivity().isTablet() -> { + requireActivity().resources.getDimensionPixelSize(dimen.maximum_donation_popup_width) + } + + requireActivity().isLandScapeMode() -> { + requireActivity().resources.getDimensionPixelSize( + dimen.showcase_view_maximum_width_in_landscape_mode + ) + } + + else -> FrameLayout.LayoutParams.MATCH_PARENT + } + } + + private fun getShowCaseViewHeight(): Int = + requireActivity().resources.getDimensionPixelSize(dimen.showcase_view_maximum_height) + private fun setupMenu() { (requireActivity() as MenuHost).addMenuProvider( object : MenuProvider { diff --git a/app/src/main/res/layout/fragment_local_file_transfer.xml b/app/src/main/res/layout/fragment_local_file_transfer.xml index e5fae443a..c9e2618f9 100644 --- a/app/src/main/res/layout/fragment_local_file_transfer.xml +++ b/app/src/main/res/layout/fragment_local_file_transfer.xml @@ -100,7 +100,7 @@ = Configuration.SCREENLAYOUT_SIZE_LARGE + val isWideEnough = configuration.smallestScreenWidthDp >= 600 + return isLargeOrXLarge && isWideEnough + } } diff --git a/core/src/main/res/values/dimens.xml b/core/src/main/res/values/dimens.xml index 05f649a50..19e37eea4 100644 --- a/core/src/main/res/values/dimens.xml +++ b/core/src/main/res/values/dimens.xml @@ -26,5 +26,6 @@ 13dp 20dp 400dp - 200dp + 150dp + 10dp