Benoit Marty
10 months ago
committed by
GitHub
9 changed files with 2 additions and 298 deletions
@ -1,24 +0,0 @@ |
|||||||
/* |
|
||||||
* Copyright (c) 2023 New Vector Ltd |
|
||||||
* |
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
||||||
* you may not use this file except in compliance with the License. |
|
||||||
* You may obtain a copy of the License at |
|
||||||
* |
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0 |
|
||||||
* |
|
||||||
* Unless required by applicable law or agreed to in writing, software |
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
* See the License for the specific language governing permissions and |
|
||||||
* limitations under the License. |
|
||||||
*/ |
|
||||||
|
|
||||||
package io.element.android.libraries.androidutils.extensions |
|
||||||
|
|
||||||
import android.util.Patterns |
|
||||||
|
|
||||||
/** |
|
||||||
* Check if a CharSequence is an email. |
|
||||||
*/ |
|
||||||
fun CharSequence.isEmail() = Patterns.EMAIL_ADDRESS.matcher(this).matches() |
|
@ -1,38 +0,0 @@ |
|||||||
/* |
|
||||||
* Copyright (c) 2021 New Vector Ltd |
|
||||||
* |
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
||||||
* you may not use this file except in compliance with the License. |
|
||||||
* You may obtain a copy of the License at |
|
||||||
* |
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0 |
|
||||||
* |
|
||||||
* Unless required by applicable law or agreed to in writing, software |
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
* See the License for the specific language governing permissions and |
|
||||||
* limitations under the License. |
|
||||||
*/ |
|
||||||
|
|
||||||
package io.element.android.libraries.androidutils.network |
|
||||||
|
|
||||||
import android.content.Context |
|
||||||
import android.net.ConnectivityManager |
|
||||||
import android.net.NetworkCapabilities |
|
||||||
import androidx.core.content.getSystemService |
|
||||||
import io.element.android.libraries.core.bool.orFalse |
|
||||||
import timber.log.Timber |
|
||||||
|
|
||||||
class WifiDetector( |
|
||||||
context: Context |
|
||||||
) { |
|
||||||
private val connectivityManager = context.getSystemService<ConnectivityManager>()!! |
|
||||||
|
|
||||||
fun isConnectedToWifi(): Boolean { |
|
||||||
return connectivityManager.activeNetwork |
|
||||||
?.let { connectivityManager.getNetworkCapabilities(it) } |
|
||||||
?.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) |
|
||||||
.orFalse() |
|
||||||
.also { Timber.d("isConnected to WiFi: $it") } |
|
||||||
} |
|
||||||
} |
|
@ -1,45 +0,0 @@ |
|||||||
/* |
|
||||||
* Copyright (c) 2022 New Vector Ltd |
|
||||||
* |
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
||||||
* you may not use this file except in compliance with the License. |
|
||||||
* You may obtain a copy of the License at |
|
||||||
* |
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0 |
|
||||||
* |
|
||||||
* Unless required by applicable law or agreed to in writing, software |
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
* See the License for the specific language governing permissions and |
|
||||||
* limitations under the License. |
|
||||||
*/ |
|
||||||
package io.element.android.libraries.androidutils.ui |
|
||||||
|
|
||||||
import android.content.res.Resources |
|
||||||
import android.util.TypedValue |
|
||||||
import androidx.annotation.Px |
|
||||||
|
|
||||||
class DimensionConverter(private val resources: Resources) { |
|
||||||
|
|
||||||
@Px |
|
||||||
fun dpToPx(dp: Int): Int { |
|
||||||
return TypedValue.applyDimension( |
|
||||||
TypedValue.COMPLEX_UNIT_DIP, |
|
||||||
dp.toFloat(), |
|
||||||
resources.displayMetrics |
|
||||||
).toInt() |
|
||||||
} |
|
||||||
|
|
||||||
@Px |
|
||||||
fun spToPx(sp: Int): Int { |
|
||||||
return TypedValue.applyDimension( |
|
||||||
TypedValue.COMPLEX_UNIT_SP, |
|
||||||
sp.toFloat(), |
|
||||||
resources.displayMetrics |
|
||||||
).toInt() |
|
||||||
} |
|
||||||
|
|
||||||
fun pxToDp(@Px px: Int): Int { |
|
||||||
return (px.toFloat() / resources.displayMetrics.density).toInt() |
|
||||||
} |
|
||||||
} |
|
Loading…
Reference in new issue