1 /*
2  * Copyright (C) 2013 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License
15  */
16 
17 package com.android.incallui.baseui;
18 
19 import android.os.Bundle;
20 
21 /** Base class for Presenters. */
22 public abstract class Presenter<U extends Ui> {
23 
24   private U mUi;
25 
26   /**
27    * Called after the UI view has been created. That is when fragment.onViewCreated() is called.
28    *
29    * @param ui The Ui implementation that is now ready to be used.
30    */
onUiReady(U ui)31   public void onUiReady(U ui) {
32     mUi = ui;
33   }
34 
35   /** Called when the UI view is destroyed in Fragment.onDestroyView(). */
onUiDestroy(U ui)36   public final void onUiDestroy(U ui) {
37     onUiUnready(ui);
38     mUi = null;
39   }
40 
41   /**
42    * To be overriden by Presenter implementations. Called when the fragment is being destroyed but
43    * before ui is set to null.
44    */
onUiUnready(U ui)45   public void onUiUnready(U ui) {}
46 
onSaveInstanceState(Bundle outState)47   public void onSaveInstanceState(Bundle outState) {}
48 
onRestoreInstanceState(Bundle savedInstanceState)49   public void onRestoreInstanceState(Bundle savedInstanceState) {}
50 
getUi()51   public U getUi() {
52     return mUi;
53   }
54 }
55