diff --git a/app/src/main/java/org/xbmc/kore/ui/AbstractDetailsFragment.java b/app/src/main/java/org/xbmc/kore/ui/AbstractDetailsFragment.java index 613141b..379b352 100644 --- a/app/src/main/java/org/xbmc/kore/ui/AbstractDetailsFragment.java +++ b/app/src/main/java/org/xbmc/kore/ui/AbstractDetailsFragment.java @@ -23,6 +23,9 @@ import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.widget.SwipeRefreshLayout; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; @@ -111,6 +114,12 @@ abstract public class AbstractDetailsFragment extends Fragment return view; } + @Override + public void onActivityCreated(@Nullable Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + setHasOptionsMenu(true); + } + @Override public void onStart() { super.onStart(); @@ -136,9 +145,18 @@ abstract public class AbstractDetailsFragment extends Fragment } @Override - public void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); -// outState.putInt(ITEMID, itemId); + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + inflater.inflate(R.menu.refresh_item, menu); + super.onCreateOptionsMenu(menu, inflater); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.action_refresh: + onRefresh(); + } + return super.onOptionsItemSelected(item); } protected void startSync(boolean silentRefresh) { diff --git a/app/src/main/java/org/xbmc/kore/ui/AbstractListFragment.java b/app/src/main/java/org/xbmc/kore/ui/AbstractListFragment.java index e019471..00e2caa 100644 --- a/app/src/main/java/org/xbmc/kore/ui/AbstractListFragment.java +++ b/app/src/main/java/org/xbmc/kore/ui/AbstractListFragment.java @@ -28,6 +28,9 @@ import android.support.v4.content.Loader; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.SearchView; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; @@ -133,6 +136,21 @@ public abstract class AbstractListFragment extends Fragment SyncUtils.disconnectFromLibrarySyncService(getActivity(), serviceConnection); } + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + inflater.inflate(R.menu.refresh_item, menu); + super.onCreateOptionsMenu(menu, inflater); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch(item.getItemId()) { + case R.id.action_refresh: + onRefresh(); + } + return super.onOptionsItemSelected(item); + } + /** * Swipe refresh layout callback */ diff --git a/app/src/main/java/org/xbmc/kore/ui/MovieDetailsFragment.java b/app/src/main/java/org/xbmc/kore/ui/MovieDetailsFragment.java index cd9d408..64c06de 100644 --- a/app/src/main/java/org/xbmc/kore/ui/MovieDetailsFragment.java +++ b/app/src/main/java/org/xbmc/kore/ui/MovieDetailsFragment.java @@ -203,8 +203,6 @@ public class MovieDetailsFragment extends AbstractDetailsFragment // Start the loaders getLoaderManager().initLoader(LOADER_MOVIE, null, this); getLoaderManager().initLoader(LOADER_CAST, null, this); - - setHasOptionsMenu(false); } @Override diff --git a/app/src/main/java/org/xbmc/kore/ui/MusicVideoDetailsFragment.java b/app/src/main/java/org/xbmc/kore/ui/MusicVideoDetailsFragment.java index ca9603b..3dbfb67 100644 --- a/app/src/main/java/org/xbmc/kore/ui/MusicVideoDetailsFragment.java +++ b/app/src/main/java/org/xbmc/kore/ui/MusicVideoDetailsFragment.java @@ -185,8 +185,6 @@ public class MusicVideoDetailsFragment extends AbstractDetailsFragment // Start the loaders getLoaderManager().initLoader(LOADER_MUSIC_VIDEO, null, this); - - setHasOptionsMenu(false); } @Override diff --git a/app/src/main/java/org/xbmc/kore/ui/TVShowEpisodeDetailsFragment.java b/app/src/main/java/org/xbmc/kore/ui/TVShowEpisodeDetailsFragment.java index db532fc..42b2192 100644 --- a/app/src/main/java/org/xbmc/kore/ui/TVShowEpisodeDetailsFragment.java +++ b/app/src/main/java/org/xbmc/kore/ui/TVShowEpisodeDetailsFragment.java @@ -195,8 +195,6 @@ public class TVShowEpisodeDetailsFragment extends AbstractDetailsFragment // Start the loaders getLoaderManager().initLoader(LOADER_EPISODE, null, this); // getLoaderManager().initLoader(LOADER_CAST, null, this); - - setHasOptionsMenu(false); } @Override diff --git a/app/src/main/java/org/xbmc/kore/ui/TVShowOverviewFragment.java b/app/src/main/java/org/xbmc/kore/ui/TVShowOverviewFragment.java index 5f750f0..1176f12 100644 --- a/app/src/main/java/org/xbmc/kore/ui/TVShowOverviewFragment.java +++ b/app/src/main/java/org/xbmc/kore/ui/TVShowOverviewFragment.java @@ -166,8 +166,6 @@ public class TVShowOverviewFragment extends AbstractDetailsFragment // Start the loaders getLoaderManager().initLoader(LOADER_TVSHOW, null, this); getLoaderManager().initLoader(LOADER_CAST, null, this); - - setHasOptionsMenu(false); } @Override diff --git a/app/src/main/res/menu/refresh_item.xml b/app/src/main/res/menu/refresh_item.xml new file mode 100644 index 0000000..a1fb3a7 --- /dev/null +++ b/app/src/main/res/menu/refresh_item.xml @@ -0,0 +1,23 @@ + + +
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2ae83dc..f52292c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -342,6 +342,7 @@