mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-18 21:59:54 +01:00
Re-open DisplayFragment after changing theme
This commit is contained in:
@@ -31,6 +31,7 @@ import static java.util.logging.Level.INFO;
|
|||||||
import static java.util.logging.Logger.getLogger;
|
import static java.util.logging.Logger.getLogger;
|
||||||
import static org.briarproject.briar.android.BriarApplication.ENTRY_ACTIVITY;
|
import static org.briarproject.briar.android.BriarApplication.ENTRY_ACTIVITY;
|
||||||
import static org.briarproject.briar.android.navdrawer.NavDrawerActivity.SIGN_OUT_URI;
|
import static org.briarproject.briar.android.navdrawer.NavDrawerActivity.SIGN_OUT_URI;
|
||||||
|
import static org.briarproject.briar.android.settings.SettingsActivity.EXTRA_THEME_CHANGE;
|
||||||
|
|
||||||
@NotNullByDefault
|
@NotNullByDefault
|
||||||
public class DisplayFragment extends PreferenceFragmentCompat {
|
public class DisplayFragment extends PreferenceFragmentCompat {
|
||||||
@@ -131,8 +132,8 @@ public class DisplayFragment extends PreferenceFragmentCompat {
|
|||||||
intent.setFlags(FLAG_ACTIVITY_CLEAR_TASK | FLAG_ACTIVITY_NEW_TASK);
|
intent.setFlags(FLAG_ACTIVITY_CLEAR_TASK | FLAG_ACTIVITY_NEW_TASK);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
// bring this activity back to the foreground
|
// bring this activity back to the foreground
|
||||||
// TODO maybe tell the activity here to relaunch this fragment?
|
|
||||||
intent = new Intent(getActivity(), activity.getClass());
|
intent = new Intent(getActivity(), activity.getClass());
|
||||||
|
intent.putExtra(EXTRA_THEME_CHANGE, true);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
activity.finish();
|
activity.finish();
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ import androidx.preference.PreferenceFragmentCompat.OnPreferenceStartFragmentCal
|
|||||||
public class SettingsActivity extends BriarActivity
|
public class SettingsActivity extends BriarActivity
|
||||||
implements OnPreferenceStartFragmentCallback {
|
implements OnPreferenceStartFragmentCallback {
|
||||||
|
|
||||||
|
static final String EXTRA_THEME_CHANGE = "themeChange";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void injectActivity(ActivityComponent component) {
|
public void injectActivity(ActivityComponent component) {
|
||||||
component.inject(this);
|
component.inject(this);
|
||||||
@@ -38,6 +40,14 @@ public class SettingsActivity extends BriarActivity
|
|||||||
actionBar.setDisplayHomeAsUpEnabled(true);
|
actionBar.setDisplayHomeAsUpEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// show display fragment after theme change
|
||||||
|
Bundle extras = getIntent().getExtras();
|
||||||
|
if (bundle == null && extras != null &&
|
||||||
|
extras.getBoolean(EXTRA_THEME_CHANGE, false)) {
|
||||||
|
FragmentManager fragmentManager = getSupportFragmentManager();
|
||||||
|
showNextFragment(fragmentManager, new DisplayFragment());
|
||||||
|
}
|
||||||
|
|
||||||
setContentView(R.layout.activity_settings);
|
setContentView(R.layout.activity_settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,14 +69,18 @@ public class SettingsActivity extends BriarActivity
|
|||||||
.instantiate(getClassLoader(), pref.getFragment());
|
.instantiate(getClassLoader(), pref.getFragment());
|
||||||
fragment.setTargetFragment(caller, 0);
|
fragment.setTargetFragment(caller, 0);
|
||||||
// Replace the existing Fragment with the new Fragment
|
// Replace the existing Fragment with the new Fragment
|
||||||
|
showNextFragment(fragmentManager, fragment);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showNextFragment(FragmentManager fragmentManager, Fragment f) {
|
||||||
fragmentManager.beginTransaction()
|
fragmentManager.beginTransaction()
|
||||||
.setCustomAnimations(R.anim.step_next_in,
|
.setCustomAnimations(R.anim.step_next_in,
|
||||||
R.anim.step_previous_out, R.anim.step_previous_in,
|
R.anim.step_previous_out, R.anim.step_previous_in,
|
||||||
R.anim.step_next_out)
|
R.anim.step_next_out)
|
||||||
.replace(R.id.fragmentContainer, fragment)
|
.replace(R.id.fragmentContainer, f)
|
||||||
.addToBackStack(null)
|
.addToBackStack(null)
|
||||||
.commit();
|
.commit();
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user