1 package org.coolreader.crengine;
2 
3 import android.view.View;
4 
5 public class EinkScreenTolino extends EinkScreenNook {
6 
7 	@Override
prepareController(View view, boolean isPartially)8 	public void prepareController(View view, boolean isPartially) {
9 		//System.err.println("Sleep = " + isPartially);
10 		if (isPartially || mIsSleep != isPartially) {
11 			tolinoSleepController(isPartially, view);
12 //			if (isPartially)
13 			return;
14 		}
15 		if (mRefreshNumber == -1) {
16 			switch (mUpdateMode) {
17 				case Clear:
18 					tolinoSetMode(view, mUpdateMode);
19 					break;
20 				case Active:
21 					if (mUpdateInterval == 0) {
22 						tolinoSetMode(view, mUpdateMode);
23 					}
24 					break;
25 			}
26 			mRefreshNumber = 0;
27 			return;
28 		}
29 		if (mUpdateMode == EinkUpdateMode.Clear) {
30 			tolinoSetMode(view, mUpdateMode);
31 			return;
32 		}
33 		if (mUpdateInterval > 0 || mUpdateMode == EinkUpdateMode.Fast) {
34 			if (mRefreshNumber == 0 || (mUpdateMode == EinkUpdateMode.Fast && mRefreshNumber < mUpdateInterval)) {
35 				switch (mUpdateMode) {
36 					case Active:
37 						tolinoSetMode(view, mUpdateMode);
38 						break;
39 					case Fast:
40 						tolinoSetMode(view, mUpdateMode);
41 						break;
42 				}
43 			} else if (mUpdateInterval <= mRefreshNumber) {
44 				tolinoSetMode(view, EinkUpdateMode.Clear);
45 				mRefreshNumber = -1;
46 			}
47 			if (mUpdateInterval > 0) {
48 				mRefreshNumber++;
49 			}
50 		}
51 	}
52 
53 
54 	// private methods
tolinoSleepController(boolean toSleep, View view)55 	private void tolinoSleepController(boolean toSleep, View view) {
56 		if (toSleep != mIsSleep) {
57 			log.d("+++SleepController " + toSleep);
58 			mIsSleep = toSleep;
59 			if (mIsSleep) {
60 				switch (mUpdateMode) {
61 					case Clear:
62 						break;
63 					case Fast:
64 						break;
65 					case Active:
66 						tolinoSetMode(view, EinkUpdateMode.Clear);
67 						mRefreshNumber = -1;
68 				}
69 			} else {
70 				setupController(mUpdateMode, mUpdateInterval, view);
71 			}
72 		}
73 	}
74 
tolinoSetMode(View view, EinkUpdateMode mode)75 	private void tolinoSetMode(View view, EinkUpdateMode mode) {
76 		TolinoEpdController.setMode(view, mode);
77 	}
78 }
79