Add an Open in browser button on error panel (#9180)
* add a open in browser button * Corrected a few things that needed to be changed * Remove unneeded changes. * Remove unneeded changes. * Add showAndSetOpenInBrowserButtonAction function * modify some codes
This commit is contained in:
parent
38579e9a29
commit
a22162ffac
|
@ -30,6 +30,7 @@ import org.schabi.newpipe.ktx.animate
|
||||||
import org.schabi.newpipe.ktx.isInterruptedCaused
|
import org.schabi.newpipe.ktx.isInterruptedCaused
|
||||||
import org.schabi.newpipe.ktx.isNetworkRelated
|
import org.schabi.newpipe.ktx.isNetworkRelated
|
||||||
import org.schabi.newpipe.util.ServiceHelper
|
import org.schabi.newpipe.util.ServiceHelper
|
||||||
|
import org.schabi.newpipe.util.external_communication.ShareUtils
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
|
|
||||||
class ErrorPanelHelper(
|
class ErrorPanelHelper(
|
||||||
|
@ -52,6 +53,8 @@ class ErrorPanelHelper(
|
||||||
errorPanelRoot.findViewById(R.id.error_action_button)
|
errorPanelRoot.findViewById(R.id.error_action_button)
|
||||||
private val errorRetryButton: Button =
|
private val errorRetryButton: Button =
|
||||||
errorPanelRoot.findViewById(R.id.error_retry_button)
|
errorPanelRoot.findViewById(R.id.error_retry_button)
|
||||||
|
private val errorOpenInBrowserButton: Button =
|
||||||
|
errorPanelRoot.findViewById(R.id.error_open_in_browser)
|
||||||
|
|
||||||
private var errorDisposable: Disposable? = null
|
private var errorDisposable: Disposable? = null
|
||||||
|
|
||||||
|
@ -69,6 +72,7 @@ class ErrorPanelHelper(
|
||||||
errorServiceExplanationTextView.isVisible = false
|
errorServiceExplanationTextView.isVisible = false
|
||||||
errorActionButton.isVisible = false
|
errorActionButton.isVisible = false
|
||||||
errorRetryButton.isVisible = false
|
errorRetryButton.isVisible = false
|
||||||
|
errorOpenInBrowserButton.isVisible = false
|
||||||
}
|
}
|
||||||
|
|
||||||
fun showError(errorInfo: ErrorInfo) {
|
fun showError(errorInfo: ErrorInfo) {
|
||||||
|
@ -99,6 +103,7 @@ class ErrorPanelHelper(
|
||||||
}
|
}
|
||||||
|
|
||||||
errorRetryButton.isVisible = true
|
errorRetryButton.isVisible = true
|
||||||
|
showAndSetOpenInBrowserButtonAction(errorInfo)
|
||||||
} else if (errorInfo.throwable is AccountTerminatedException) {
|
} else if (errorInfo.throwable is AccountTerminatedException) {
|
||||||
errorTextView.setText(R.string.account_terminated)
|
errorTextView.setText(R.string.account_terminated)
|
||||||
|
|
||||||
|
@ -128,6 +133,7 @@ class ErrorPanelHelper(
|
||||||
// show retry button only for content which is not unavailable or unsupported
|
// show retry button only for content which is not unavailable or unsupported
|
||||||
errorRetryButton.isVisible = true
|
errorRetryButton.isVisible = true
|
||||||
}
|
}
|
||||||
|
showAndSetOpenInBrowserButtonAction(errorInfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
setRootVisible()
|
setRootVisible()
|
||||||
|
@ -145,6 +151,15 @@ class ErrorPanelHelper(
|
||||||
errorActionButton.setOnClickListener(listener)
|
errorActionButton.setOnClickListener(listener)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun showAndSetOpenInBrowserButtonAction(
|
||||||
|
errorInfo: ErrorInfo
|
||||||
|
) {
|
||||||
|
errorOpenInBrowserButton.isVisible = true
|
||||||
|
errorOpenInBrowserButton.setOnClickListener {
|
||||||
|
ShareUtils.openUrlInBrowser(context, errorInfo.request, true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun showTextError(errorString: String) {
|
fun showTextError(errorString: String) {
|
||||||
ensureDefaultVisibility()
|
ensureDefaultVisibility()
|
||||||
|
|
||||||
|
|
|
@ -33,8 +33,8 @@
|
||||||
android:id="@+id/error_message_service_explanation_view"
|
android:id="@+id/error_message_service_explanation_view"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="center"
|
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
|
android:gravity="center"
|
||||||
android:text="@string/general_error"
|
android:text="@string/general_error"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:textStyle="italic"
|
android:textStyle="italic"
|
||||||
|
@ -62,7 +62,6 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
android:layout_marginBottom="8dp"
|
|
||||||
android:text="@string/retry"
|
android:text="@string/retry"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textAllCaps="true"
|
android:textAllCaps="true"
|
||||||
|
@ -72,4 +71,19 @@
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
tools:visibility="visible" />
|
tools:visibility="visible" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/error_open_in_browser"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
android:text="@string/open_in_browser"
|
||||||
|
android:textAlignment="center"
|
||||||
|
android:textAllCaps="true"
|
||||||
|
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:theme="@style/ServiceColoredButton"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:visibility="visible" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
Loading…
Reference in New Issue