/* * Copyright 2016 Kejun Xia * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.shipdream.lib.android.mvc; public abstract class FragmentController<MODEL, VIEW extends UiView> extends Controller<MODEL, VIEW>{ Orientation orientation; protected Orientation currentOrientation() { return orientation; } /** * Called when the view of the corresponding fragment is created. */ public void onViewReady(Reason reason) { } /** * Called when corresponding fragment's onResume is called */ public void onResume() { } /** * Called when corresponding fragment is about to be pushed to background */ public void onPushToBackStack() { } /** * Called when corresponding fragment was the top most fragment and is about to be removed by * fragment popping out from back stack */ public void onPopAway() { } /** * Called when corresponding fragment returns foreground from background <b>ONLY</b> when the * model doesn't need to be rebound to the controller. For example, if the fragment is rotated * or recreated then this method won't be called. But if home button pressed and then then the * app is brought back to front without being killed by the OS, this method will be called. */ public void onReturnForeground() { } /** * Called when corresponding fragment popped out from back history */ public void onPoppedOutToFront() { } /** * Called when corresponding fragment's orientation changed */ public void onOrientationChanged(Orientation last, Orientation current) { orientation = current; } /** * Called when corresponding fragment's onPause is called */ public void onPause() { } /** * Called when corresponding fragment's onBackButtonPressed is called. This happens when the * device back button is pressed. * @return True to consume the back button pressed event, otherwise returns false which will * forward the back button pressed event to OS */ public boolean onBackButtonPressed() { return false; } }