forked from organicmaps/organicmaps
adjustments and bug fixes
This commit is contained in:
parent
dc0523cbb3
commit
e78bbe397e
21 changed files with 155 additions and 50 deletions
|
@ -413,7 +413,6 @@ dependencies {
|
|||
def retrofit = '2.11.0'
|
||||
implementation "com.squareup.retrofit2:retrofit:$retrofit"
|
||||
implementation "com.squareup.retrofit2:converter-gson:$retrofit"
|
||||
implementation "com.squareup.retrofit2:converter-simplexml:$retrofit"
|
||||
def okhttp = '5.0.0-alpha.14'
|
||||
implementation "com.squareup.okhttp3:okhttp:$okhttp"
|
||||
implementation "com.squareup.okhttp3:logging-interceptor:$okhttp"
|
||||
|
|
|
@ -564,10 +564,10 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||
Runnable delayedAction = () -> {
|
||||
CountryItem mCurrentCountry = CountryItem.fill("Tajikistan");
|
||||
|
||||
goToTjkIfNotThere();
|
||||
if(mCurrentCountry.status != CountryItem.STATUS_DONE) {
|
||||
// navigate to Dushanbe so it automatically downloads Tajikistan map
|
||||
blockScreen();
|
||||
Framework.nativeZoomToPoint(38.5598, 68.7870, 10, true);
|
||||
goToDushanbe();
|
||||
}
|
||||
};
|
||||
handler.postDelayed(delayedAction, 1000);
|
||||
|
@ -585,16 +585,31 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||
startLocationToPoint(endPoint.toMapObject());
|
||||
}
|
||||
|
||||
private void goToTjkIfNotThere() {
|
||||
final double[] center = Framework.nativeGetScreenRectCenter();
|
||||
final double lat = center[0];
|
||||
final double lon = center[1];
|
||||
if(!isInsideTajikistan(lat, lon))
|
||||
goToTjk();
|
||||
}
|
||||
|
||||
private void goToDushanbe() {
|
||||
Framework.nativeZoomToPoint(38.5598, 68.7870, 10, false);
|
||||
}
|
||||
|
||||
public void goToTjk() {
|
||||
Framework.nativeZoomToPoint(38.5598, 68.7870, 8, false);
|
||||
}
|
||||
|
||||
public void blockScreen() {
|
||||
getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
|
||||
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
|
||||
}
|
||||
}
|
||||
|
||||
public void removeScreenBlock() {
|
||||
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
|
||||
}
|
||||
|
||||
|
||||
private void refreshLightStatusBar()
|
||||
{
|
||||
UiUtils.setLightStatusBar(this, !(
|
||||
|
|
|
@ -7,10 +7,12 @@ import android.location.Location;
|
|||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
|
@ -27,6 +29,7 @@ import app.organicmaps.util.UiUtils;
|
|||
import app.tourism.MainActivity;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
|
||||
{
|
||||
|
@ -34,12 +37,15 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
|
|||
|
||||
private final MwmActivity mActivity;
|
||||
private final View mFrame;
|
||||
private final TextView mTitle;
|
||||
private final TextView mSize;
|
||||
private final WheelProgressView mProgress;
|
||||
private final Button mButton;
|
||||
|
||||
private int mStorageSubscriptionSlot;
|
||||
|
||||
private boolean alreadyNavigating = false;
|
||||
|
||||
@Nullable
|
||||
private CountryItem mCurrentCountry;
|
||||
|
||||
|
@ -101,6 +107,7 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
|
|||
{
|
||||
mCurrentCountry = (TextUtils.isEmpty(countryId) ? null : CountryItem.fill(countryId));
|
||||
updateState(true);
|
||||
stopIfNotTjk();
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -109,19 +116,12 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
|
|||
updateStateInternal(shouldAutoDownload);
|
||||
}
|
||||
|
||||
private static boolean isMapDownloading(@Nullable CountryItem country)
|
||||
{
|
||||
if (country == null) return false;
|
||||
|
||||
boolean enqueued = country.status == CountryItem.STATUS_ENQUEUED;
|
||||
boolean progress = country.status == CountryItem.STATUS_PROGRESS;
|
||||
boolean applying = country.status == CountryItem.STATUS_APPLYING;
|
||||
return enqueued || progress || applying;
|
||||
}
|
||||
|
||||
private void updateProgressState(boolean shouldAutoDownload)
|
||||
{
|
||||
navigationToMainActivityHandling();
|
||||
if(!alreadyNavigating) {
|
||||
alreadyNavigating = true;
|
||||
navigationToMainActivityHandling();
|
||||
}
|
||||
updateStateInternal(shouldAutoDownload);
|
||||
}
|
||||
|
||||
|
@ -144,6 +144,7 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
|
|||
|
||||
if (showFrame)
|
||||
{
|
||||
setUiForTjkDownload();
|
||||
UiUtils.showIf(progress || enqueued, mProgress);
|
||||
UiUtils.showIf(!progress && !enqueued, mButton);
|
||||
|
||||
|
@ -151,6 +152,7 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
|
|||
|
||||
if (progress)
|
||||
{
|
||||
mActivity.blockScreen();
|
||||
mProgress.setPending(false);
|
||||
mProgress.setProgress(Math.round(mCurrentCountry.progress));
|
||||
sizeText = StringUtils.formatUsingSystemLocale("%1$s %2$.2f%%",
|
||||
|
@ -160,6 +162,7 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
|
|||
{
|
||||
if (enqueued)
|
||||
{
|
||||
mActivity.blockScreen();
|
||||
sizeText = mActivity.getString(R.string.downloader_queued);
|
||||
mProgress.setPending(true);
|
||||
}
|
||||
|
@ -187,6 +190,7 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
|
|||
|
||||
mButton.setText(failed ? R.string.downloader_retry
|
||||
: R.string.download);
|
||||
mActivity.removeScreenBlock();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -197,10 +201,23 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
|
|||
UiUtils.showIf(showFrame, mFrame);
|
||||
}
|
||||
|
||||
public void stopIfNotTjk() {
|
||||
if(mCurrentCountry != null && !Objects.equals(mCurrentCountry.id, "Tajikistan")) {
|
||||
mActivity.goToTjk();
|
||||
Toast.makeText(mActivity, R.string.plz_dont_go_out_of_tjk, Toast.LENGTH_LONG).show();
|
||||
MapManager.nativeCancel(mCurrentCountry.id);
|
||||
}
|
||||
}
|
||||
|
||||
public void setUiForTjkDownload() {
|
||||
mTitle.setText(mActivity.getString(R.string.wait_tjk_map_downloading));
|
||||
}
|
||||
|
||||
public OnmapDownloader(MwmActivity activity)
|
||||
{
|
||||
mActivity = activity;
|
||||
mFrame = activity.findViewById(R.id.onmap_downloader);
|
||||
mTitle = mFrame.findViewById(R.id.downloader_title);
|
||||
mSize = mFrame.findViewById(R.id.downloader_size);
|
||||
|
||||
View controls = mFrame.findViewById(R.id.downloader_controls_frame);
|
||||
|
|
|
@ -43,6 +43,8 @@ public class MapButtonsController extends Fragment
|
|||
@Nullable
|
||||
private View mBottomButtonsFrame;
|
||||
@Nullable
|
||||
private View mBackButton;
|
||||
@Nullable
|
||||
private FloatingActionButton mToggleMapLayerButton;
|
||||
|
||||
@Nullable
|
||||
|
@ -81,6 +83,7 @@ public class MapButtonsController extends Fragment
|
|||
mInnerLeftButtonsFrame = mFrame.findViewById(R.id.map_buttons_inner_left);
|
||||
mInnerRightButtonsFrame = mFrame.findViewById(R.id.map_buttons_inner_right);
|
||||
mBottomButtonsFrame = mFrame.findViewById(R.id.map_buttons_bottom);
|
||||
mBackButton = mFrame.findViewById(R.id.back_btn);
|
||||
|
||||
final FloatingActionButton helpButton = mFrame.findViewById(R.id.help_button);
|
||||
if (helpButton != null)
|
||||
|
@ -151,6 +154,11 @@ public class MapButtonsController extends Fragment
|
|||
UiUtils.setViewInsetsPadding(view, windowInsets);
|
||||
return windowInsets;
|
||||
});
|
||||
|
||||
if(mBackButton != null) {
|
||||
mBackButton.setOnClickListener((v) -> activity.getOnBackPressedDispatcher().onBackPressed());
|
||||
}
|
||||
|
||||
return mFrame;
|
||||
}
|
||||
|
||||
|
|
|
@ -46,8 +46,8 @@ class MainActivity : ComponentActivity() {
|
|||
intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION)
|
||||
registerReceiver(wifiReceiver, intentFilter)
|
||||
|
||||
navigateToMapToDownloadIfNotPresent()
|
||||
navigateToAuthIfNotAuthed()
|
||||
navigateToMapToDownloadIfNotPresent()
|
||||
|
||||
val blackest = resources.getColor(R.color.button_text) // yes, I know
|
||||
enableEdgeToEdge(
|
||||
|
@ -74,7 +74,10 @@ class MainActivity : ComponentActivity() {
|
|||
|
||||
private fun navigateToAuthIfNotAuthed() {
|
||||
val token = userPreferences.getToken()
|
||||
if (token.isNullOrEmpty()) navigateToAuth()
|
||||
if (token.isNullOrEmpty()) {
|
||||
navigateToAuth()
|
||||
return
|
||||
}
|
||||
|
||||
profileVM.getPersonalData()
|
||||
lifecycleScope.launch {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package app.tourism.data.dto
|
||||
package app.tourism.data.dto.currency
|
||||
|
||||
import app.tourism.data.db.entities.CurrencyRatesEntity
|
||||
import app.tourism.domain.models.profile.CurrencyRates
|
|
@ -1,6 +1,6 @@
|
|||
package app.tourism.data.remote
|
||||
|
||||
import app.tourism.data.dto.CurrencyRatesDataDto
|
||||
import app.tourism.data.dto.currency.CurrencyRatesDataDto
|
||||
import retrofit2.Response
|
||||
import retrofit2.http.GET
|
||||
|
||||
|
|
|
@ -5,8 +5,6 @@ import app.tourism.BASE_URL
|
|||
import app.tourism.data.prefs.UserPreferences
|
||||
import app.tourism.data.remote.CurrencyApi
|
||||
import app.tourism.data.remote.TourismApi
|
||||
import app.tourism.data.repositories.CurrencyRepository
|
||||
import app.tourism.data.db.Database
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
|
@ -16,8 +14,6 @@ import okhttp3.OkHttpClient
|
|||
import okhttp3.logging.HttpLoggingInterceptor
|
||||
import retrofit2.Retrofit
|
||||
import retrofit2.converter.gson.GsonConverterFactory
|
||||
import retrofit2.converter.simplexml.SimpleXmlConverterFactory
|
||||
import java.util.concurrent.TimeUnit
|
||||
import javax.inject.Named
|
||||
import javax.inject.Singleton
|
||||
|
||||
|
|
|
@ -17,11 +17,14 @@ import androidx.compose.ui.layout.onSizeChanged
|
|||
import androidx.compose.ui.platform.LocalDensity
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.skydoves.cloudy.Cloudy
|
||||
import com.skydoves.cloudy.CloudyState
|
||||
|
||||
@Composable
|
||||
fun BlurryContainer(modifier: Modifier = Modifier, content: @Composable () -> Unit) {
|
||||
val localDensity = LocalDensity.current
|
||||
|
||||
val cloudyState = remember { mutableStateOf<CloudyState>(CloudyState.Nothing) }
|
||||
|
||||
Box(Modifier.then(modifier)) {
|
||||
var height by remember { mutableStateOf(0.dp) }
|
||||
Cloudy(
|
||||
|
@ -30,16 +33,22 @@ fun BlurryContainer(modifier: Modifier = Modifier, content: @Composable () -> Un
|
|||
.fillMaxWidth()
|
||||
.height(height)
|
||||
.align(Alignment.Center)
|
||||
.clip(RoundedCornerShape(16.dp))
|
||||
.clip(RoundedCornerShape(16.dp)),
|
||||
|
||||
onStateChanged = {
|
||||
println("cloudyState: $cloudyState")
|
||||
cloudyState.value = it
|
||||
}
|
||||
) {}
|
||||
Column(
|
||||
Modifier
|
||||
.align(Alignment.Center)
|
||||
.onSizeChanged { newSize ->
|
||||
height = with(localDensity) { newSize.height.toDp() }
|
||||
}
|
||||
) {
|
||||
content()
|
||||
}
|
||||
if (cloudyState.value is CloudyState.Success || cloudyState.value is CloudyState.Error || cloudyState.value is CloudyState.Loading)
|
||||
Column(
|
||||
Modifier
|
||||
.align(Alignment.Center)
|
||||
.onSizeChanged { newSize ->
|
||||
height = with(localDensity) { newSize.height.toDp() }
|
||||
}
|
||||
) {
|
||||
content()
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,6 +2,7 @@ package app.tourism.ui.screens.auth.sign_in
|
|||
|
||||
import PasswordEditText
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
|
@ -10,6 +11,7 @@ import androidx.compose.foundation.layout.padding
|
|||
import androidx.compose.foundation.text.KeyboardActions
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TextButton
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.ui.Alignment
|
||||
|
@ -25,6 +27,7 @@ import androidx.compose.ui.text.input.ImeAction
|
|||
import androidx.compose.ui.unit.dp
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import app.organicmaps.R
|
||||
import app.tourism.BASE_URL
|
||||
import app.tourism.Constants
|
||||
import app.tourism.domain.models.resource.Resource
|
||||
import app.tourism.ui.ObserveAsEvents
|
||||
|
@ -35,6 +38,7 @@ import app.tourism.ui.common.nav.BackButton
|
|||
import app.tourism.ui.common.textfields.AuthEditText
|
||||
import app.tourism.ui.theme.TextStyles
|
||||
import app.tourism.ui.utils.showToast
|
||||
import app.tourism.utils.openUrlInBrowser
|
||||
|
||||
@Composable
|
||||
fun SignInScreen(
|
||||
|
@ -78,11 +82,12 @@ fun SignInScreen(
|
|||
.fillMaxWidth()
|
||||
.align(Alignment.TopCenter)
|
||||
) {
|
||||
VerticalSpace(height = 48.dp)
|
||||
BlurryContainer(
|
||||
Modifier
|
||||
.padding(Constants.SCREEN_PADDING),
|
||||
) {
|
||||
VerticalSpace(height = 80.dp)
|
||||
Box(Modifier.padding(Constants.SCREEN_PADDING)) {
|
||||
Image(
|
||||
painter = painterResource(id = R.drawable.blur_background),
|
||||
contentDescription = null
|
||||
)
|
||||
Column(Modifier.padding(36.dp)) {
|
||||
Text(
|
||||
modifier = Modifier.align(Alignment.CenterHorizontally),
|
||||
|
@ -117,6 +122,21 @@ fun SignInScreen(
|
|||
isLoading = signInResponse is Resource.Loading,
|
||||
onClick = { vm.signIn() },
|
||||
)
|
||||
VerticalSpace(height = 16.dp)
|
||||
|
||||
TextButton(
|
||||
onClick = {
|
||||
openUrlInBrowser(
|
||||
context,
|
||||
"http://192.168.1.80:8888/forgot-password"
|
||||
)
|
||||
},
|
||||
) {
|
||||
Text(
|
||||
text = stringResource(id = R.string.forgot_password),
|
||||
color = Color.White
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -87,12 +87,14 @@ fun SignUpScreen(
|
|||
Column(
|
||||
Modifier
|
||||
.fillMaxWidth()
|
||||
.align(alignment = Alignment.TopCenter)) {
|
||||
.align(alignment = Alignment.TopCenter)
|
||||
) {
|
||||
VerticalSpace(height = 48.dp)
|
||||
BlurryContainer(
|
||||
Modifier
|
||||
.padding(Constants.SCREEN_PADDING),
|
||||
) {
|
||||
Box(Modifier.padding(Constants.SCREEN_PADDING)) {
|
||||
Image(
|
||||
painter = painterResource(id = R.drawable.blur_background),
|
||||
contentDescription = null
|
||||
)
|
||||
Column(
|
||||
Modifier.padding(36.dp)
|
||||
) {
|
||||
|
|
|
@ -68,18 +68,26 @@ class CategoriesViewModel @Inject constructor(
|
|||
_selectedCategory.collectLatest { item ->
|
||||
item?.key?.let { id ->
|
||||
val categoryId = id as Long
|
||||
placesRepository.getPlacesByCategoryFromApiIfThereIsChange(categoryId)
|
||||
placesRepository.getPlacesByCategoryFromDbFlow(categoryId)
|
||||
.collectLatest { resource ->
|
||||
if (resource is Resource.Success) {
|
||||
resource.data?.let { _places.value = it }
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun onCategoryChangeGetPlacesFromApiAlso() {
|
||||
viewModelScope.launch {
|
||||
_selectedCategory.collectLatest { item ->
|
||||
item?.key?.let { id ->
|
||||
val categoryId = id as Long
|
||||
placesRepository.getPlacesByCategoryFromApiIfThereIsChange(categoryId)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
init {
|
||||
|
@ -90,6 +98,7 @@ class CategoriesViewModel @Inject constructor(
|
|||
)
|
||||
_selectedCategory.value = categories.value.first()
|
||||
onCategoryChangeGetPlaces()
|
||||
onCategoryChangeGetPlacesFromApiAlso()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
package app.tourism.utils
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
|
||||
fun openUrlInBrowser(context: Context, url: String) {
|
||||
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
|
||||
context.startActivity(intent)
|
||||
}
|
BIN
android/app/src/main/res/drawable/blur_background.png
Normal file
BIN
android/app/src/main/res/drawable/blur_background.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
|
@ -8,6 +8,13 @@
|
|||
android:clipToPadding="false"
|
||||
tools:background="@color/bg_primary">
|
||||
|
||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
android:id="@+id/back_btn"
|
||||
style="@style/MwmWidget.MapButton.Back"
|
||||
app:srcCompat="@drawable/back"
|
||||
android:layout_margin="8dp"
|
||||
android:contentDescription="@string/back"/>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/map_buttons_top"
|
||||
android:layout_width="wrap_content"
|
||||
|
|
|
@ -8,6 +8,13 @@
|
|||
android:clipToPadding="false"
|
||||
tools:background="@color/bg_primary">
|
||||
|
||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
android:id="@+id/back_btn"
|
||||
style="@style/MwmWidget.MapButton.Back"
|
||||
app:srcCompat="@drawable/back"
|
||||
android:layout_margin="8dp"
|
||||
android:contentDescription="@string/back"/>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/map_buttons_top"
|
||||
android:layout_width="wrap_content"
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
android:fontFamily="@string/robotoMedium"
|
||||
android:textStyle="normal"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="@string/wait_tjk_map_downloading"
|
||||
android:textSize="16sp"
|
||||
tools:ignore="UnusedAttribute"/>
|
||||
<TextView
|
||||
|
|
|
@ -2229,5 +2229,5 @@
|
|||
<string name="review_will_be_published">Отзыв будет публикован когда будете онлайн</string>
|
||||
<string name="review_was_published">Отзыв был успешно опубликован</string>
|
||||
<string name="failed_to_publish_review">Не удалось публиковать отзыв</string>
|
||||
<string name="plz_dont_go_out_of_tjk">Поажалуйста, не выходите за рамки Таджикистана</string>
|
||||
<string name="plz_dont_go_out_of_tjk">Поажалуйста, не выходите за рамки Таджикистана, вы должны быть в Таджикистане</string>
|
||||
</resources>
|
||||
|
|
|
@ -2271,5 +2271,5 @@
|
|||
<string name="review_will_be_published">Review will be published when you are online</string>
|
||||
<string name="review_was_published">Review was successfully published</string>
|
||||
<string name="failed_to_publish_review">Failed to publish review\n</string>
|
||||
<string name="plz_dont_go_out_of_tjk">Please, don\'t go out of Tajikistan</string>
|
||||
<string name="plz_dont_go_out_of_tjk">Please, don\'t go out of Tajikistan, it\'s Tajikistan app</string>
|
||||
</resources>
|
||||
|
|
|
@ -41,6 +41,10 @@
|
|||
<item name="cornerSize">10dp</item>
|
||||
</style>
|
||||
|
||||
<style name="MwmWidget.MapButton.Back">
|
||||
<item name="maxImageSize">34dp</item>
|
||||
</style>
|
||||
|
||||
<style name="MwmWidget.Button">
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
|
|
|
@ -17,7 +17,7 @@ android.nonTransitiveRClass=true
|
|||
android.useAndroidX=true
|
||||
enableVulkanDiagnostics=OFF
|
||||
org.gradle.caching=true
|
||||
org.gradle.jvmargs=-Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx2048M" -Xms256m
|
||||
org.gradle.jvmargs=-Xmx4096M -Dkotlin.daemon.jvm.options\="-Xmx4096M" -Xms1024m
|
||||
propCompileSdkVersion=34
|
||||
propMinSdkVersion=21
|
||||
propTargetSdkVersion=34
|
||||
|
|
Loading…
Add table
Reference in a new issue