diff --git a/app/src/main/java/com/github/libretube/activities/MainActivity.kt b/app/src/main/java/com/github/libretube/activities/MainActivity.kt index 3613db970..a214973a9 100644 --- a/app/src/main/java/com/github/libretube/activities/MainActivity.kt +++ b/app/src/main/java/com/github/libretube/activities/MainActivity.kt @@ -5,8 +5,6 @@ import android.content.Context import android.content.Intent import android.content.pm.ActivityInfo import android.content.res.Configuration -import android.net.ConnectivityManager -import android.net.NetworkCapabilities import android.net.Uri import android.os.Build import android.os.Bundle @@ -33,6 +31,7 @@ import com.github.libretube.fragments.PlayerFragment import com.github.libretube.fragments.isFullScreen import com.github.libretube.preferences.PreferenceHelper import com.github.libretube.services.ClosingService +import com.github.libretube.util.ConnectionHelper import com.github.libretube.util.CronetHelper import com.github.libretube.util.LocaleHelper import com.github.libretube.util.RetrofitInstance @@ -74,7 +73,7 @@ class MainActivity : AppCompatActivity() { LocaleHelper.updateLanguage(this) // show noInternet Activity if no internet available on app startup - if (!isNetworkAvailable(this)) { + if (!ConnectionHelper.isNetworkAvailable(this)) { val noInternetIntent = Intent(this, NoInternetActivity::class.java) startActivity(noInternetIntent) } else { @@ -142,28 +141,6 @@ class MainActivity : AppCompatActivity() { } } - private fun isNetworkAvailable(context: Context): Boolean { - val connectivityManager = - context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - val nw = connectivityManager.activeNetwork ?: return false - val actNw = connectivityManager.getNetworkCapabilities(nw) ?: return false - return when { - // WiFi - actNw.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true - // Mobile - actNw.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true - // Ethernet - actNw.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true - // Bluetooth - actNw.hasTransport(NetworkCapabilities.TRANSPORT_BLUETOOTH) -> true - else -> false - } - } else { - return connectivityManager.activeNetworkInfo?.isConnected ?: false - } - } - override fun onStart() { super.onStart() val intentData: Uri? = intent?.data diff --git a/app/src/main/java/com/github/libretube/activities/NoInternetActivity.kt b/app/src/main/java/com/github/libretube/activities/NoInternetActivity.kt index 0e391328c..a2e4d9e4d 100644 --- a/app/src/main/java/com/github/libretube/activities/NoInternetActivity.kt +++ b/app/src/main/java/com/github/libretube/activities/NoInternetActivity.kt @@ -3,9 +3,12 @@ package com.github.libretube.activities import android.content.Intent import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import com.github.libretube.R import com.github.libretube.databinding.ActivityNointernetBinding +import com.github.libretube.util.ConnectionHelper import com.github.libretube.util.ThemeHelper import com.google.android.material.color.DynamicColors +import com.google.android.material.snackbar.Snackbar class NoInternetActivity : AppCompatActivity() { private lateinit var binding: ActivityNointernetBinding @@ -14,9 +17,17 @@ class NoInternetActivity : AppCompatActivity() { DynamicColors.applyToActivityIfAvailable(this) ThemeHelper.updateTheme(this) super.onCreate(savedInstanceState) + binding = ActivityNointernetBinding.inflate(layoutInflater) + // retry button binding.retryButton.setOnClickListener { - ThemeHelper.restartMainActivity(this) + if (ConnectionHelper.isNetworkAvailable(this)) { + ThemeHelper.restartMainActivity(this) + } else { + val snackBar = Snackbar + .make(binding.root, R.string.turnInternetOn, Snackbar.LENGTH_LONG) + snackBar.show() + } } binding.noInternetSettingsImageView.setOnClickListener { val intent = Intent(this, SettingsActivity::class.java) diff --git a/app/src/main/java/com/github/libretube/util/ConnectionHelper.kt b/app/src/main/java/com/github/libretube/util/ConnectionHelper.kt new file mode 100644 index 000000000..91020ed45 --- /dev/null +++ b/app/src/main/java/com/github/libretube/util/ConnectionHelper.kt @@ -0,0 +1,32 @@ +package com.github.libretube.util + +import android.content.Context +import android.net.ConnectivityManager +import android.net.NetworkCapabilities +import android.os.Build + +object ConnectionHelper { + fun isNetworkAvailable(context: Context): Boolean { + val connectivityManager = + context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + val nw = connectivityManager.activeNetwork ?: return false + val actNw = connectivityManager.getNetworkCapabilities(nw) ?: return false + return when { + // WiFi + actNw.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true + // Mobile + actNw.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true + // Ethernet + actNw.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true + // Bluetooth + actNw.hasTransport(NetworkCapabilities.TRANSPORT_BLUETOOTH) -> true + // VPN + actNw.hasCapability(NetworkCapabilities.TRANSPORT_VPN) -> true + else -> false + } + } else { + return connectivityManager.activeNetworkInfo?.isConnected ?: false + } + } +} diff --git a/app/src/main/res/drawable/ic_player.xml b/app/src/main/res/drawable/ic_player.xml new file mode 100644 index 000000000..2a9ce7870 --- /dev/null +++ b/app/src/main/res/drawable/ic_player.xml @@ -0,0 +1,12 @@ + + + diff --git a/app/src/main/res/drawable/ic_video.xml b/app/src/main/res/drawable/ic_video.xml deleted file mode 100644 index 16fefb228..000000000 --- a/app/src/main/res/drawable/ic_video.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_vlc.xml b/app/src/main/res/drawable/ic_vlc.xml deleted file mode 100644 index 074c57662..000000000 --- a/app/src/main/res/drawable/ic_vlc.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/app/src/main/res/layout/fragment_player.xml b/app/src/main/res/layout/fragment_player.xml index 942be70dc..57588ced3 100644 --- a/app/src/main/res/layout/fragment_player.xml +++ b/app/src/main/res/layout/fragment_player.xml @@ -193,13 +193,13 @@ android:layout_width="24dp" android:layout_height="25dp" android:padding="2dp" - android:src="@drawable/ic_vlc" /> + android:src="@drawable/ic_player" /> + android:text="@string/open" /> Telegram Reddit Twitter + Please connect to the internet by turning on WiFi or mobile data. + Open … \ No newline at end of file diff --git a/app/src/main/res/xml/player_settings.xml b/app/src/main/res/xml/player_settings.xml index 54e72029b..2a9070080 100644 --- a/app/src/main/res/xml/player_settings.xml +++ b/app/src/main/res/xml/player_settings.xml @@ -14,7 +14,7 @@ app:useSimpleSummaryProvider="true" />