diff --git a/app/src/main/java/com/wireguard/android/ConfigActivity.java b/app/src/main/java/com/wireguard/android/ConfigActivity.java index 4833d876..fb565e96 100644 --- a/app/src/main/java/com/wireguard/android/ConfigActivity.java +++ b/app/src/main/java/com/wireguard/android/ConfigActivity.java @@ -25,7 +25,6 @@ public class ConfigActivity extends BaseConfigActivity { private boolean isStateSaved; private ConfigListFragment listFragment; private int mainContainer; - private final PlaceholderFragment placeholderFragment = new PlaceholderFragment(); private boolean wasUpdateSkipped; @Override @@ -153,34 +152,34 @@ public class ConfigActivity extends BaseConfigActivity { } private void switchToFragment(final int container, final String tag, final boolean push) { - final Fragment fragment; if (tag.equals(TAG_PLACEHOLDER)) { - fragment = placeholderFragment; - } else { - final BaseConfigFragment configFragment; - switch (tag) { - case TAG_DETAIL: - if (detailFragment == null) - detailFragment = new ConfigDetailFragment(); - configFragment = detailFragment; - break; - case TAG_EDIT: - if (editFragment == null) - editFragment = new ConfigEditFragment(); - configFragment = editFragment; - break; - case TAG_LIST: - if (listFragment == null) - listFragment = new ConfigListFragment(); - configFragment = listFragment; - break; - default: - throw new IllegalArgumentException(); - } - if (configFragment.getCurrentConfig() != getCurrentConfig()) - configFragment.setCurrentConfig(getCurrentConfig()); - fragment = configFragment; + final Fragment oldFragment = fm.findFragmentById(container); + if (oldFragment != null) + fm.beginTransaction().remove(oldFragment).commit(); + return; } + final BaseConfigFragment fragment; + switch (tag) { + case TAG_DETAIL: + if (detailFragment == null) + detailFragment = new ConfigDetailFragment(); + fragment = detailFragment; + break; + case TAG_EDIT: + if (editFragment == null) + editFragment = new ConfigEditFragment(); + fragment = editFragment; + break; + case TAG_LIST: + if (listFragment == null) + listFragment = new ConfigListFragment(); + fragment = listFragment; + break; + default: + throw new IllegalArgumentException(); + } + if (fragment.getCurrentConfig() != getCurrentConfig()) + fragment.setCurrentConfig(getCurrentConfig()); if (fm.findFragmentById(container) != fragment) { final FragmentTransaction transaction = fm.beginTransaction(); if (push) { diff --git a/app/src/main/java/com/wireguard/android/PlaceholderFragment.java b/app/src/main/java/com/wireguard/android/PlaceholderFragment.java deleted file mode 100644 index db5d7b33..00000000 --- a/app/src/main/java/com/wireguard/android/PlaceholderFragment.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.wireguard.android; - -import android.app.Fragment; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -/** - * Fragment that shows a placeholder message. - */ - -public class PlaceholderFragment extends Fragment { - @Override - public View onCreateView(final LayoutInflater inflater, final ViewGroup parent, - final Bundle savedInstanceState) { - return inflater.inflate(R.layout.placeholder_fragment, parent, false); - } -} diff --git a/app/src/main/res/layout-land/config_activity.xml b/app/src/main/res/layout-land/config_activity.xml index 6b327e01..aa310a43 100644 --- a/app/src/main/res/layout-land/config_activity.xml +++ b/app/src/main/res/layout-land/config_activity.xml @@ -20,5 +20,13 @@ android:background="?android:attr/colorPrimary" android:paddingEnd="0dp" android:paddingStart="4dp" - tools:ignore="InconsistentLayout" /> + tools:ignore="InconsistentLayout"> + + + diff --git a/app/src/main/res/layout/placeholder_fragment.xml b/app/src/main/res/layout/placeholder_fragment.xml deleted file mode 100644 index c519b994..00000000 --- a/app/src/main/res/layout/placeholder_fragment.xml +++ /dev/null @@ -1,7 +0,0 @@ - -