summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java/org
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2022-11-13 21:01:56 +0100
committerGitHub <noreply@github.com>2022-11-13 21:01:56 +0100
commitf614f94568ca62d65ae94e37d5819822f7e0645f (patch)
treec0c1cce96517f920673c40ef987fc2d1e795a54c /Source/Android/app/src/main/java/org
parent2340a7eea6d2fbb93f373dd2630ff55c9ecdafda (diff)
parent2e978ad4282c5fa0ada59a93b71cfc5b18fe637e (diff)
Merge pull request #11272 from t895/tv-update-fix
Android: Use progress bar that does not inherit from AppCompat on leanback
Diffstat (limited to 'Source/Android/app/src/main/java/org')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/sysupdate/ui/SystemUpdateProgressBarDialogFragment.java70
1 files changed, 49 insertions, 21 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/sysupdate/ui/SystemUpdateProgressBarDialogFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/sysupdate/ui/SystemUpdateProgressBarDialogFragment.java
index 7f865106b8..96dda28903 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/sysupdate/ui/SystemUpdateProgressBarDialogFragment.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/sysupdate/ui/SystemUpdateProgressBarDialogFragment.java
@@ -10,6 +10,7 @@ import android.widget.Button;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.ViewModelProvider;
@@ -17,6 +18,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.dolphinemu.dolphinemu.R;
import org.dolphinemu.dolphinemu.databinding.DialogProgressBinding;
+import org.dolphinemu.dolphinemu.databinding.DialogProgressTvBinding;
public class SystemUpdateProgressBarDialogFragment extends DialogFragment
{
@@ -32,32 +34,58 @@ public class SystemUpdateProgressBarDialogFragment extends DialogFragment
SystemUpdateViewModel viewModel =
new ViewModelProvider(requireActivity()).get(SystemUpdateViewModel.class);
- DialogProgressBinding dialogProgressBinding =
- DialogProgressBinding.inflate(getLayoutInflater());
+ DialogProgressBinding dialogProgressBinding;
+ DialogProgressTvBinding dialogProgressTvBinding;
// We need to set the message to something here, otherwise the text will not appear when we set it later.
- AlertDialog progressDialog = new MaterialAlertDialogBuilder(requireContext())
- .setTitle(getString(R.string.updating))
- .setMessage("")
- .setNegativeButton(getString(R.string.cancel), null)
- .setView(dialogProgressBinding.getRoot())
- .setCancelable(false)
- .create();
-
- viewModel.getProgressData()
- .observe(this, (@Nullable
- Integer progress) -> dialogProgressBinding.updateProgress.setProgress(
- progress));
-
- viewModel.getTotalData().observe(this, (@Nullable Integer total) ->
+ MaterialAlertDialogBuilder progressDialogBuilder =
+ new MaterialAlertDialogBuilder(requireContext())
+ .setTitle(getString(R.string.updating))
+ .setMessage("")
+ .setNegativeButton(getString(R.string.cancel), null)
+ .setCancelable(false);
+
+ // TODO: Remove dialog_progress_tv if we switch to an AppCompatActivity for leanback
+ if (getActivity() instanceof AppCompatActivity)
{
- if (total == 0)
+ dialogProgressBinding = DialogProgressBinding.inflate(getLayoutInflater());
+ progressDialogBuilder.setView(dialogProgressBinding.getRoot());
+
+ viewModel.getProgressData().observe(this,
+ (@Nullable Integer progress) -> dialogProgressBinding.updateProgress.setProgress(
+ progress));
+
+ viewModel.getTotalData().observe(this, (@Nullable Integer total) ->
{
- return;
- }
+ if (total == 0)
+ {
+ return;
+ }
- dialogProgressBinding.updateProgress.setMax(total);
- });
+ dialogProgressBinding.updateProgress.setMax(total);
+ });
+ }
+ else
+ {
+ dialogProgressTvBinding = DialogProgressTvBinding.inflate(getLayoutInflater());
+ progressDialogBuilder.setView(dialogProgressTvBinding.getRoot());
+
+ viewModel.getProgressData().observe(this,
+ (@Nullable Integer progress) -> dialogProgressTvBinding.updateProgress.setProgress(
+ progress));
+
+ viewModel.getTotalData().observe(this, (@Nullable Integer total) ->
+ {
+ if (total == 0)
+ {
+ return;
+ }
+
+ dialogProgressTvBinding.updateProgress.setMax(total);
+ });
+ }
+
+ AlertDialog progressDialog = progressDialogBuilder.create();
viewModel.getTitleIdData().observe(this, (@Nullable Long titleId) -> progressDialog.setMessage(
getString(R.string.updating_message, titleId)));