Skip to content

Commit e83f61b

Browse files
committed
check if location services enabled.
1 parent 6470446 commit e83f61b

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

mobile/src/main/java/com/windscribe/mobile/ui/common/NetworkNameSheet.kt

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
import android.content.Context
2+
import android.location.LocationManager
3+
import android.os.Build
4+
import android.widget.Toast
15
import androidx.compose.foundation.Image
26
import androidx.compose.foundation.clickable
37
import androidx.compose.foundation.layout.Row
@@ -17,27 +21,40 @@ import androidx.compose.ui.graphics.BlurEffect
1721
import androidx.compose.ui.graphics.ColorFilter
1822
import androidx.compose.ui.graphics.graphicsLayer
1923
import androidx.compose.ui.layout.ContentScale
24+
import androidx.compose.ui.platform.LocalContext
2025
import androidx.compose.ui.res.painterResource
2126
import androidx.compose.ui.res.stringResource
2227
import androidx.compose.ui.text.font.FontWeight
2328
import androidx.compose.ui.unit.dp
2429
import com.windscribe.mobile.R
30+
import com.windscribe.mobile.ui.AppStartActivity
2531
import com.windscribe.mobile.ui.common.RequestLocationPermissions
2632
import com.windscribe.mobile.ui.connection.ConnectionViewmodel
2733
import com.windscribe.mobile.ui.connection.NetworkInfoState
34+
import com.windscribe.mobile.ui.connection.ToastMessage
2835
import com.windscribe.mobile.ui.helper.hapticClickable
2936
import com.windscribe.mobile.ui.home.HomeViewmodel
3037
import com.windscribe.mobile.ui.nav.LocalNavController
3138
import com.windscribe.mobile.ui.nav.Screen
39+
import com.windscribe.mobile.ui.preferences.robert.RobertGoToState
3240
import com.windscribe.mobile.ui.theme.AppColors
3341
import com.windscribe.mobile.ui.theme.font16
3442

3543
internal enum class PermissionDialogType {
3644
ForegroundLocation, BackgroundLocation, OpenSettings, None
3745
}
3846

47+
private fun isLocationEnabled(context: Context): Boolean {
48+
val locationManager = context.getSystemService(Context.LOCATION_SERVICE) as? LocationManager
49+
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
50+
locationManager?.isLocationEnabled == true
51+
} else {
52+
true
53+
}
54+
}
3955
@Composable
4056
fun NetworkNameSheet(connectionViewmodel: ConnectionViewmodel, homeViewmodel: HomeViewmodel) {
57+
val activity = LocalContext.current as AppStartActivity
4158
val networkInfo by connectionViewmodel.networkInfoState.collectAsState()
4259
val hapticEnabled by homeViewmodel.hapticFeedbackEnabled.collectAsState()
4360
var showPermissionRequest by remember { mutableStateOf(false) }
@@ -49,7 +66,15 @@ fun NetworkNameSheet(connectionViewmodel: ConnectionViewmodel, homeViewmodel: Ho
4966
"network_name",
5067
networkInfo.name
5168
)
52-
navController.navigate(Screen.NetworkDetails.route)
69+
if (networkInfo is NetworkInfoState.Unknown) {
70+
if (!isLocationEnabled(activity)) {
71+
Toast.makeText(activity, "Enable location services to access network name & restart app.", Toast.LENGTH_SHORT).show()
72+
return@RequestLocationPermissions
73+
}
74+
Toast.makeText(activity, "Unable to get network name.", Toast.LENGTH_SHORT).show()
75+
} else {
76+
navController.navigate(Screen.NetworkDetails.route)
77+
}
5378
}
5479
}
5580
Row(verticalAlignment = Alignment.CenterVertically) {

0 commit comments

Comments
 (0)