From 742e9b2f32eef1756fbb4a9da611d569fdee711c Mon Sep 17 00:00:00 2001 From: nift4 <nift4@protonmail.com> Date: Sun, 23 Apr 2023 21:47:42 +0200 Subject: [PATCH] SystemUI: fix antiquated TunerActivity bugs Change-Id: Ic99c951e90b10941124a8afef383f4016bff2bed --- .../android/systemui/tuner/TunerActivity.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/tuner/TunerActivity.java b/packages/SystemUI/src/com/android/systemui/tuner/TunerActivity.java index 642ea5807aa8..1880bcbb6fbc 100644 --- a/packages/SystemUI/src/com/android/systemui/tuner/TunerActivity.java +++ b/packages/SystemUI/src/com/android/systemui/tuner/TunerActivity.java @@ -20,6 +20,8 @@ import android.app.FragmentTransaction; import android.os.Bundle; import android.util.Log; +import java.util.ArrayDeque; + import androidx.preference.Preference; import androidx.preference.PreferenceFragment; import androidx.preference.PreferenceScreen; @@ -42,6 +44,7 @@ public class TunerActivity extends CollapsingToolbarBaseActivity implements private final DemoModeController mDemoModeController; private final GlobalSettings mGlobalSettings; + private final ArrayDeque<String> titleStack = new ArrayDeque<>(); @Inject TunerActivity( @@ -83,7 +86,22 @@ public class TunerActivity extends CollapsingToolbarBaseActivity implements @Override public void onBackPressed() { - if (!getFragmentManager().popBackStackImmediate()) { + if (getFragmentManager().popBackStackImmediate()) { + String title = titleStack.poll(); + if (title != null) { + setTitle(title); + } + try { + Fragment f = getFragmentManager().findFragmentById(R.id.content_frame); + Fragment fragment = (Fragment) f.getClass().newInstance(); + fragment.setArguments(f.getArguments()); + FragmentTransaction transaction = getFragmentManager().beginTransaction(); + transaction.replace(R.id.content_frame, fragment); + transaction.commit(); + } catch (InstantiationException | IllegalAccessException e) { + Log.d("TunerActivity", "Problem launching fragment", e); + } + } else { super.onBackPressed(); } } @@ -97,6 +115,7 @@ public class TunerActivity extends CollapsingToolbarBaseActivity implements b.putString(PreferenceFragment.ARG_PREFERENCE_ROOT, pref.getKey()); fragment.setArguments(b); FragmentTransaction transaction = getFragmentManager().beginTransaction(); + titleStack.push(getTitle().toString()); setTitle(pref.getTitle()); transaction.replace(R.id.content_frame, fragment); transaction.addToBackStack("PreferenceFragment"); -- GitLab