summaryrefslogtreecommitdiff
path: root/app/src/main/java
diff options
context:
space:
mode:
authorH. Lehmann <ByteHamster@users.noreply.github.com>2020-03-25 17:01:31 +0100
committerGitHub <noreply@github.com>2020-03-25 17:01:31 +0100
commit3bb222089e75accfdc311e4b30f09fd68df08a02 (patch)
tree26476f94607fd376170f1d73f22318c553e2196c /app/src/main/java
parentdee519c2dfc71a9a39ff75386f38d17f997a6f0a (diff)
parent4ecf9ca605d027eaeb13b98849d7ac66c8d4fd16 (diff)
downloadAntennaPod-3bb222089e75accfdc311e4b30f09fd68df08a02.zip
Merge pull request #3958 from ByteHamster/fix-sidebar-position
Fixed sidebar sometimes highlighting wrong fragment
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java19
2 files changed, 16 insertions, 7 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
index 6dab5ab45..872174403 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
@@ -176,6 +176,7 @@ public class MainActivity extends CastEnabledActivity {
default:
// default to the queue
fragment = new QueueFragment();
+ tag = QueueFragment.TAG;
args = null;
break;
}
@@ -183,6 +184,7 @@ public class MainActivity extends CastEnabledActivity {
if (args != null) {
fragment.setArguments(args);
}
+ NavDrawerFragment.saveLastNavFragment(this, tag);
loadFragment(fragment);
}
@@ -191,6 +193,7 @@ public class MainActivity extends CastEnabledActivity {
if (args != null) {
fragment.setArguments(args);
}
+ NavDrawerFragment.saveLastNavFragment(this, String.valueOf(feedId));
loadFragment(fragment);
}
@@ -367,7 +370,6 @@ public class MainActivity extends CastEnabledActivity {
super.onBackPressed();
} else {
loadFragment(UserPreferences.getBackButtonGoToPage(), null);
- NavDrawerFragment.saveLastNavFragment(this, UserPreferences.getBackButtonGoToPage());
}
break;
default: super.onBackPressed();
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java
index 63969345c..0dff8f24b 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java
@@ -48,7 +48,7 @@ import org.greenrobot.eventbus.Subscribe;
import java.util.List;
public class NavDrawerFragment extends Fragment implements AdapterView.OnItemClickListener,
- AdapterView.OnItemLongClickListener {
+ AdapterView.OnItemLongClickListener, SharedPreferences.OnSharedPreferenceChangeListener {
@VisibleForTesting
public static final String PREF_LAST_FRAGMENT_TAG = "prefLastFragmentTag";
@VisibleForTesting
@@ -88,6 +88,8 @@ public class NavDrawerFragment extends Fragment implements AdapterView.OnItemCli
root.findViewById(R.id.nav_settings).setOnClickListener(v -> {
startActivity(new Intent(getActivity(), PreferenceActivity.class));
});
+ getContext().getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)
+ .registerOnSharedPreferenceChangeListener(this);
return root;
}
@@ -124,6 +126,8 @@ public class NavDrawerFragment extends Fragment implements AdapterView.OnItemCli
if (disposable != null) {
disposable.dispose();
}
+ getContext().getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)
+ .unregisterOnSharedPreferenceChangeListener(this);
}
@Override
@@ -192,7 +196,6 @@ public class NavDrawerFragment extends Fragment implements AdapterView.OnItemCli
} else {
showMainActivity(EpisodesFragment.TAG);
}
- saveLastNavFragment(getContext(), EpisodesFragment.TAG);
}
}
};
@@ -371,7 +374,6 @@ public class NavDrawerFragment extends Fragment implements AdapterView.OnItemCli
} else {
showMainActivity(tag);
}
- saveLastNavFragment(getContext(), tag);
} else {
int pos = position - navAdapter.getSubscriptionOffset();
long feedId = navDrawerData.feeds.get(pos).getId();
@@ -382,10 +384,7 @@ public class NavDrawerFragment extends Fragment implements AdapterView.OnItemCli
intent.putExtra(MainActivity.EXTRA_FEED_ID, feedId);
startActivity(intent);
}
- saveLastNavFragment(getContext(), String.valueOf(feedId));
}
- selectedNavListIndex = position;
- navAdapter.notifyDataSetChanged();
}
}
@@ -418,4 +417,12 @@ public class NavDrawerFragment extends Fragment implements AdapterView.OnItemCli
Log.d(TAG, "getLastNavFragment() -> " + lastFragment);
return lastFragment;
}
+
+ @Override
+ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
+ if (PREF_LAST_FRAGMENT_TAG.equals(key)) {
+ updateSelection();
+ navAdapter.notifyDataSetChanged();
+ }
+ }
}