diff --git a/app/src/main/java/com/kabouzeid/materialmusic/ui/activities/MainActivity.java b/app/src/main/java/com/kabouzeid/materialmusic/ui/activities/MainActivity.java index aa3ac754..7ca2a604 100644 --- a/app/src/main/java/com/kabouzeid/materialmusic/ui/activities/MainActivity.java +++ b/app/src/main/java/com/kabouzeid/materialmusic/ui/activities/MainActivity.java @@ -36,6 +36,7 @@ import com.kabouzeid.materialmusic.ui.activities.base.AbsFabActivity; import com.kabouzeid.materialmusic.ui.fragments.NavigationDrawerFragment; import com.kabouzeid.materialmusic.ui.fragments.mainactivityfragments.AlbumViewFragment; import com.kabouzeid.materialmusic.ui.fragments.mainactivityfragments.ArtistViewFragment; +import com.kabouzeid.materialmusic.ui.fragments.mainactivityfragments.MainActivityFragment; import com.kabouzeid.materialmusic.ui.fragments.mainactivityfragments.SongViewFragment; import com.kabouzeid.materialmusic.util.ImageLoaderUtil; import com.kabouzeid.materialmusic.util.MusicUtil; @@ -162,6 +163,7 @@ public class MainActivity extends AbsFabActivity try { super.enableViews(); toolbar.setEnabled(true); + ((MainActivityFragment)viewPagerAdapter.getItem(viewPager.getCurrentItem())).enableViews(); } catch (NullPointerException e) { Log.e(TAG, "wasn't able to enable the views", e); } @@ -171,7 +173,7 @@ public class MainActivity extends AbsFabActivity public void disableViews() { try { super.disableViews(); - toolbar.setEnabled(false); + ((MainActivityFragment)viewPagerAdapter.getItem(viewPager.getCurrentItem())).disableViews(); } catch (NullPointerException e) { Log.e(TAG, "wasn't able to disable the views", e); } @@ -261,19 +263,7 @@ public class MainActivity extends AbsFabActivity super.onBackPressed(); } - private void disableFragmentViews() { - - } - - private void enableFragmentViews() { - - } - - private boolean areFragmentViewsEnabled() { - return true; - } - - public static class PlaceholderFragment extends Fragment { + public static class PlaceholderFragment extends MainActivityFragment { public PlaceholderFragment() { } @@ -286,13 +276,38 @@ public class MainActivity extends AbsFabActivity text.setText("Coming soon!"); return rootView; } + + @Override + public void search(String query) { + + } + + @Override + public void returnToNonSearch() { + + } + + @Override + public void enableViews() { + + } + + @Override + public void disableViews() { + + } + + @Override + public boolean areViewsEnabled() { + return false; + } } private class MainActivityViewPagerAdapter extends FragmentPagerAdapter { private String[] titles; - private SparseArray pages; //TODO check if this must be static + private SparseArray pages; //TODO check if this must be static private Context context; public MainActivityViewPagerAdapter(Activity activity) { diff --git a/app/src/main/java/com/kabouzeid/materialmusic/ui/activities/SearchActivity.java b/app/src/main/java/com/kabouzeid/materialmusic/ui/activities/SearchActivity.java index 7c5882bb..bbdea978 100644 --- a/app/src/main/java/com/kabouzeid/materialmusic/ui/activities/SearchActivity.java +++ b/app/src/main/java/com/kabouzeid/materialmusic/ui/activities/SearchActivity.java @@ -62,10 +62,8 @@ public class SearchActivity extends AbsBaseActivity { playList.add((Song) item); getApp().getMusicPlayerRemote().openQueue(playList, 0, true); } else if (item instanceof Album) { - disableViews(); goToAlbum(((Album) item).id, new Pair[]{Pair.create(view.findViewById(R.id.image), getResources().getString(R.string.transition_album_cover))}); } else if (item instanceof Artist) { - disableViews(); goToArtist(((Artist) item).id, new Pair[]{Pair.create(view.findViewById(R.id.image), getResources().getString(R.string.transition_artist_image))}); } } @@ -92,12 +90,6 @@ public class SearchActivity extends AbsBaseActivity { return TAG; } - @Override - protected void onResume() { - super.onResume(); - enableViews(); - } - @Override public void enableViews() { super.enableViews(); diff --git a/app/src/main/java/com/kabouzeid/materialmusic/ui/activities/base/AbsBaseActivity.java b/app/src/main/java/com/kabouzeid/materialmusic/ui/activities/base/AbsBaseActivity.java index 85942191..146338ec 100644 --- a/app/src/main/java/com/kabouzeid/materialmusic/ui/activities/base/AbsBaseActivity.java +++ b/app/src/main/java/com/kabouzeid/materialmusic/ui/activities/base/AbsBaseActivity.java @@ -105,28 +105,34 @@ public abstract class AbsBaseActivity extends ActionBarActivity implements KabVi } public void goToArtist(int artistId, Pair[] sharedViews) { - final Intent intent = new Intent(this, ArtistDetailActivity.class); - intent.putExtra(AppKeys.E_ARTIST, artistId); - if (sharedViews != null) { - ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(this, - sharedViews - ); - ActivityCompat.startActivity(this, intent, optionsCompat.toBundle()); - } else { - startActivity(intent); + if(areViewsEnabled()) { + disableViews(); + final Intent intent = new Intent(this, ArtistDetailActivity.class); + intent.putExtra(AppKeys.E_ARTIST, artistId); + if (sharedViews != null) { + ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(this, + sharedViews + ); + ActivityCompat.startActivity(this, intent, optionsCompat.toBundle()); + } else { + startActivity(intent); + } } } public void goToAlbum(int albumId, Pair[] sharedViews) { - final Intent intent = new Intent(this, AlbumDetailActivity.class); - intent.putExtra(AppKeys.E_ALBUM, albumId); - if (sharedViews != null) { - ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(this, - sharedViews - ); - ActivityCompat.startActivity(this, intent, optionsCompat.toBundle()); - } else { - startActivity(intent); + if(areViewsEnabled()) { + disableViews(); + final Intent intent = new Intent(this, AlbumDetailActivity.class); + intent.putExtra(AppKeys.E_ALBUM, albumId); + if (sharedViews != null) { + ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(this, + sharedViews + ); + ActivityCompat.startActivity(this, intent, optionsCompat.toBundle()); + } else { + startActivity(intent); + } } } } diff --git a/app/src/main/java/com/kabouzeid/materialmusic/ui/fragments/mainactivityfragments/AlbumViewFragment.java b/app/src/main/java/com/kabouzeid/materialmusic/ui/fragments/mainactivityfragments/AlbumViewFragment.java index ab0e22e2..785649a8 100644 --- a/app/src/main/java/com/kabouzeid/materialmusic/ui/fragments/mainactivityfragments/AlbumViewFragment.java +++ b/app/src/main/java/com/kabouzeid/materialmusic/ui/fragments/mainactivityfragments/AlbumViewFragment.java @@ -1,9 +1,6 @@ package com.kabouzeid.materialmusic.ui.fragments.mainactivityfragments; -import android.content.Intent; import android.os.Bundle; -import android.support.v4.app.ActivityCompat; -import android.support.v4.app.ActivityOptionsCompat; import android.support.v4.util.Pair; import android.view.LayoutInflater; import android.view.View; @@ -15,12 +12,8 @@ import com.kabouzeid.materialmusic.App; import com.kabouzeid.materialmusic.R; import com.kabouzeid.materialmusic.adapter.AlbumViewGridAdapter; import com.kabouzeid.materialmusic.comparator.AlbumAlphabeticComparator; -import com.kabouzeid.materialmusic.interfaces.KabViewsDisableAble; import com.kabouzeid.materialmusic.loader.AlbumLoader; -import com.kabouzeid.materialmusic.misc.AppKeys; import com.kabouzeid.materialmusic.model.Album; -import com.kabouzeid.materialmusic.ui.activities.AlbumDetailActivity; -import com.melnykov.fab.FloatingActionButton; import java.util.Collections; import java.util.List; @@ -34,8 +27,6 @@ public class AlbumViewFragment extends MainActivityFragment { private App app; private AbsListView absListView; private View fragmentRootView; - private FloatingActionButton fab; - private boolean areViewsEnabled; @Override public void onCreate(Bundle savedInstanceState) { @@ -58,32 +49,20 @@ public class AlbumViewFragment extends MainActivityFragment { setUpViews(); } - @Override - public void onResume() { - super.onResume(); - enableViews(); - } - @Override public void enableViews() { - areViewsEnabled = true; + super.enableViews(); absListView.setEnabled(true); } @Override public void disableViews() { - areViewsEnabled = false; + super.disableViews(); absListView.setEnabled(false); } - @Override - public boolean areViewsEnabled() { - return areViewsEnabled; - } - private void initViews() { absListView = (AbsListView) fragmentRootView.findViewById(R.id.absList); - fab = (FloatingActionButton) getActivity().findViewById(R.id.fab); } private void setUpViews() { @@ -105,43 +84,17 @@ public class AlbumViewFragment extends MainActivityFragment { Album album = (Album) parent.getItemAtPosition(position); View albumArtView = view.findViewById(R.id.album_art); - openAlbumDetailsActivityIfPossible(album, albumArtView); + openAlbumDetailsActivity(album, albumArtView); } }); absListView.setPadding(0, getTopPadding(app), 0, getBottomPadding(app)); } - @SuppressWarnings("unchecked") - private void openAlbumDetailsActivityIfPossible(Album album, View albumArtForTransition) { - if (areParentActivitiesViewsEnabled()) { - disableViews(); - disableParentActivitiesViews(); - - final Intent intent = new Intent(getActivity(), AlbumDetailActivity.class); - intent.putExtra(AppKeys.E_ALBUM, album.id); - - final ActivityOptionsCompat activityOptions; - if (fab != null && albumArtForTransition != null) { - activityOptions = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity(), - Pair.create(albumArtForTransition, getString(R.string.transition_album_cover)), - Pair.create((View) fab, getString(R.string.transition_fab)) - ); - } else { - activityOptions = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity()); - } - ActivityCompat.startActivity(getActivity(), intent, activityOptions.toBundle()); - } - } - - private void disableParentActivitiesViews() { - if (getActivity() instanceof KabViewsDisableAble) { - ((KabViewsDisableAble) getActivity()).disableViews(); - } - } - - private boolean areParentActivitiesViewsEnabled() { - return !(getActivity() instanceof KabViewsDisableAble) || ((KabViewsDisableAble) getActivity()).areViewsEnabled(); + private void openAlbumDetailsActivity(Album album, View albumArtForTransition) { + getMainActivity().goToAlbum(album.id, new Pair[]{ + Pair.create(albumArtForTransition, getString(R.string.transition_album_cover)) + }); } @Override diff --git a/app/src/main/java/com/kabouzeid/materialmusic/ui/fragments/mainactivityfragments/ArtistViewFragment.java b/app/src/main/java/com/kabouzeid/materialmusic/ui/fragments/mainactivityfragments/ArtistViewFragment.java index bfde9f81..7422ace8 100644 --- a/app/src/main/java/com/kabouzeid/materialmusic/ui/fragments/mainactivityfragments/ArtistViewFragment.java +++ b/app/src/main/java/com/kabouzeid/materialmusic/ui/fragments/mainactivityfragments/ArtistViewFragment.java @@ -56,29 +56,19 @@ public class ArtistViewFragment extends MainActivityFragment { setUpViews(); } - @Override - public void onResume() { - super.onResume(); - enableViews(); - } @Override public void enableViews() { - areViewsEnabled = true; + super.enableViews(); absListView.setEnabled(true); } @Override public void disableViews() { - areViewsEnabled = false; + super.disableViews(); absListView.setEnabled(false); } - @Override - public boolean areViewsEnabled() { - return areViewsEnabled; - } - private void initViews() { absListView = (AbsListView) fragmentRootView.findViewById(R.id.absList); } @@ -132,14 +122,4 @@ public class ArtistViewFragment extends MainActivityFragment { public void returnToNonSearch() { setUpAbsListView(); } - - private void disableParentActivityViews() { - if (getActivity() instanceof KabViewsDisableAble) { - ((KabViewsDisableAble) getActivity()).disableViews(); - } - } - - private boolean areParentActivityViewsEnabled() { - return !(getActivity() instanceof KabViewsDisableAble) || ((KabViewsDisableAble) getActivity()).areViewsEnabled(); - } } diff --git a/app/src/main/java/com/kabouzeid/materialmusic/ui/fragments/mainactivityfragments/MainActivityFragment.java b/app/src/main/java/com/kabouzeid/materialmusic/ui/fragments/mainactivityfragments/MainActivityFragment.java index 87db8946..6811673a 100644 --- a/app/src/main/java/com/kabouzeid/materialmusic/ui/fragments/mainactivityfragments/MainActivityFragment.java +++ b/app/src/main/java/com/kabouzeid/materialmusic/ui/fragments/mainactivityfragments/MainActivityFragment.java @@ -7,12 +7,15 @@ import com.kabouzeid.materialmusic.App; import com.kabouzeid.materialmusic.R; import com.kabouzeid.materialmusic.interfaces.KabSearchAbleFragment; import com.kabouzeid.materialmusic.interfaces.KabViewsDisableAble; +import com.kabouzeid.materialmusic.ui.activities.MainActivity; import com.kabouzeid.materialmusic.util.Util; /** * Created by karim on 27.02.15. */ public abstract class MainActivityFragment extends Fragment implements KabViewsDisableAble, KabSearchAbleFragment { + private boolean areViewsEnabled; + protected int getTopPadding(App app) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { if (app.isInPortraitMode() || app.isTablet()) { @@ -31,4 +34,29 @@ public abstract class MainActivityFragment extends Fragment implements KabViewsD } return 0; } + + @Override + public void enableViews() { + areViewsEnabled = true; + } + + @Override + public void disableViews() { + areViewsEnabled = false; + } + + @Override + public boolean areViewsEnabled() { + return areViewsEnabled; + } + + @Override + public void onResume() { + super.onResume(); + enableViews(); + } + + protected MainActivity getMainActivity() { + return (MainActivity) getActivity(); + } } diff --git a/app/src/main/java/com/kabouzeid/materialmusic/ui/fragments/mainactivityfragments/SongViewFragment.java b/app/src/main/java/com/kabouzeid/materialmusic/ui/fragments/mainactivityfragments/SongViewFragment.java index a9a41508..5b1b023c 100644 --- a/app/src/main/java/com/kabouzeid/materialmusic/ui/fragments/mainactivityfragments/SongViewFragment.java +++ b/app/src/main/java/com/kabouzeid/materialmusic/ui/fragments/mainactivityfragments/SongViewFragment.java @@ -97,16 +97,13 @@ public class SongViewFragment extends MainActivityFragment { @Override public void enableViews() { - + super.enableViews(); + absListView.setEnabled(true); } @Override public void disableViews() { - - } - - @Override - public boolean areViewsEnabled() { - return false; + super.disableViews(); + absListView.setEnabled(false); } }