mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Show animations on reader menu. Don't retain fragment instances in ViewPagerReader.
This commit is contained in:
		| @@ -68,8 +68,6 @@ public class ReaderActivity extends BaseRxActivity<ReaderPresenter> { | ||||
|         readerMenu = new ReaderMenu(this, prefs); | ||||
|         createUiHideFlags(); | ||||
|         enableHardwareAcceleration(); | ||||
|  | ||||
|         viewer = getViewer(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -94,6 +92,7 @@ public class ReaderActivity extends BaseRxActivity<ReaderPresenter> { | ||||
|     } | ||||
|  | ||||
|     public void onChapterReady(List<Page> pages, Manga manga, Chapter chapter) { | ||||
|         viewer = getViewer(manga); | ||||
|         viewer.onPageListReady(pages); | ||||
|         viewer.updatePageNumber(); | ||||
|         readerMenu.onChapterReady(pages.size(), manga, chapter); | ||||
| @@ -132,8 +131,10 @@ public class ReaderActivity extends BaseRxActivity<ReaderPresenter> { | ||||
|         readerMenu.toggle(); | ||||
|     } | ||||
|  | ||||
|     private BaseReader getViewer() { | ||||
|         switch (prefs.getDefaultViewer()) { | ||||
|     private BaseReader getViewer(Manga manga) { | ||||
|         int mangaViewer = manga.viewer == 0 ? prefs.getDefaultViewer() : manga.viewer; | ||||
|  | ||||
|         switch (mangaViewer) { | ||||
|             case LEFT_TO_RIGHT: default: | ||||
|                 return new LeftToRightReader(this, container); | ||||
|             case RIGHT_TO_LEFT: | ||||
|   | ||||
| @@ -1,6 +1,10 @@ | ||||
| package eu.kanade.mangafeed.ui.reader; | ||||
|  | ||||
| import android.support.v7.widget.Toolbar; | ||||
| import android.view.View; | ||||
| import android.view.animation.Animation; | ||||
| import android.view.animation.AnimationUtils; | ||||
| import android.widget.LinearLayout; | ||||
| import android.widget.RelativeLayout; | ||||
| import android.widget.SeekBar; | ||||
| import android.widget.TextView; | ||||
| @@ -17,11 +21,12 @@ import eu.kanade.mangafeed.data.preference.PreferencesHelper; | ||||
| public class ReaderMenu { | ||||
|  | ||||
|     @Bind(R.id.reader_menu) RelativeLayout menu; | ||||
|     @Bind(R.id.reader_menu_bottom) LinearLayout bottomMenu; | ||||
|     @Bind(R.id.toolbar) Toolbar toolbar; | ||||
|     @Bind(R.id.current_page) TextView currentPage; | ||||
|     @Bind(R.id.page_seeker) SeekBar seekBar; | ||||
|     @Bind(R.id.total_pages) TextView totalPages; | ||||
|  | ||||
|  | ||||
|     private ReaderActivity activity; | ||||
|     private PreferencesHelper preferences; | ||||
|     private boolean showing; | ||||
| @@ -37,12 +42,33 @@ public class ReaderMenu { | ||||
|     } | ||||
|  | ||||
|     public void toggle() { | ||||
|         toggle(!showing); | ||||
|         if (showing) | ||||
|             hide(); | ||||
|         else | ||||
|             show(); | ||||
|     } | ||||
|  | ||||
|     private void toggle(boolean show) { | ||||
|         menu.setVisibility(show ? View.VISIBLE : View.GONE); | ||||
|         showing = show; | ||||
|     private void show() { | ||||
|         menu.setVisibility(View.VISIBLE); | ||||
|  | ||||
|         Animation toolbarAnimation = AnimationUtils.loadAnimation(activity, R.anim.enter_from_top); | ||||
|         toolbar.startAnimation(toolbarAnimation); | ||||
|  | ||||
|         Animation bottomMenuAnimation = AnimationUtils.loadAnimation(activity, R.anim.enter_from_bottom); | ||||
|         bottomMenu.startAnimation(bottomMenuAnimation); | ||||
|  | ||||
|         showing = true; | ||||
|     } | ||||
|  | ||||
|     private void hide() { | ||||
|         Animation toolbarAnimation = AnimationUtils.loadAnimation(activity, R.anim.exit_to_top); | ||||
|         toolbarAnimation.setAnimationListener(new HideMenuAnimationListener()); | ||||
|         toolbar.startAnimation(toolbarAnimation); | ||||
|  | ||||
|         Animation bottomMenuAnimation = AnimationUtils.loadAnimation(activity, R.anim.exit_to_bottom); | ||||
|         bottomMenu.startAnimation(bottomMenuAnimation); | ||||
|  | ||||
|         showing = false; | ||||
|     } | ||||
|  | ||||
|     public void onChapterReady(int numPages, Manga manga, Chapter chapter) { | ||||
| @@ -77,4 +103,22 @@ public class ReaderMenu { | ||||
|         @Override | ||||
|         public void onStopTrackingTouch(SeekBar seekBar) {} | ||||
|     } | ||||
|  | ||||
|     class HideMenuAnimationListener implements Animation.AnimationListener { | ||||
|  | ||||
|         @Override | ||||
|         public void onAnimationStart(Animation animation) { | ||||
|  | ||||
|         } | ||||
|  | ||||
|         @Override | ||||
|         public void onAnimationEnd(Animation animation) { | ||||
|             menu.setVisibility(View.GONE); | ||||
|         } | ||||
|  | ||||
|         @Override | ||||
|         public void onAnimationRepeat(Animation animation) { | ||||
|  | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -50,12 +50,6 @@ public class ViewPagerReaderFragment extends BaseFragment { | ||||
|         return fragment; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void onCreate(Bundle savedInstanceState) { | ||||
|         super.onCreate(savedInstanceState); | ||||
|         setRetainInstance(true); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { | ||||
|         View view = inflater.inflate(R.layout.fragment_page, container, false); | ||||
| @@ -70,6 +64,12 @@ public class ViewPagerReaderFragment extends BaseFragment { | ||||
|         return view; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void onDestroyView() { | ||||
|         ButterKnife.unbind(this); | ||||
|         super.onDestroyView(); | ||||
|     } | ||||
|  | ||||
|     public void onStart() { | ||||
|         super.onStart(); | ||||
|         observeStatus(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user