Skip to content

Commit 2dca94e

Browse files
author
Aphid Mobile
committed
Eliminate flash issue
Issue openaphid#52
1 parent 919e7fe commit 2dca94e

File tree

8 files changed

+20
-86
lines changed

8 files changed

+20
-86
lines changed
-642 Bytes
Binary file not shown.

FlipView/Demo/Aphid-FlipView-Demo.iml

+1-24
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,7 @@
1111
<component name="FacetManager">
1212
<facet type="android" name="Android">
1313
<configuration>
14-
<option name="GEN_FOLDER_RELATIVE_PATH_APT" value="/gen" />
15-
<option name="GEN_FOLDER_RELATIVE_PATH_AIDL" value="/gen" />
16-
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/AndroidManifest.xml" />
17-
<option name="RES_FOLDER_RELATIVE_PATH" value="/res" />
18-
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/assets" />
19-
<option name="LIBS_FOLDER_RELATIVE_PATH" value="/libs" />
20-
<option name="USE_CUSTOM_APK_RESOURCE_FOLDER" value="false" />
21-
<option name="CUSTOM_APK_RESOURCE_FOLDER" value="" />
22-
<option name="USE_CUSTOM_COMPILER_MANIFEST" value="false" />
23-
<option name="CUSTOM_COMPILER_MANIFEST" value="" />
24-
<option name="APK_PATH" value="" />
25-
<option name="LIBRARY_PROJECT" value="false" />
26-
<option name="RUN_PROCESS_RESOURCES_MAVEN_TASK" value="true" />
27-
<option name="GENERATE_UNSIGNED_APK" value="false" />
28-
<option name="CUSTOM_DEBUG_KEYSTORE_PATH" value="" />
29-
<option name="PACK_TEST_CODE" value="false" />
30-
<option name="RUN_PROGUARD" value="false" />
31-
<option name="PROGUARD_CFG_PATH" value="/proguard-project.txt" />
32-
<resOverlayFolders>
33-
<path>/res-overlay</path>
34-
</resOverlayFolders>
35-
<includeSystemProguardFile>true</includeSystemProguardFile>
3614
<includeAssetsFromLibraries>true</includeAssetsFromLibraries>
37-
<additionalNativeLibs />
3815
</configuration>
3916
</facet>
4017
</component>
@@ -56,7 +33,7 @@
5633
</CLASSES>
5734
<JAVADOC />
5835
<SOURCES>
59-
<root url="file://$MODULE_DIR$/../../../../../../Develop/android-sdk-mac_86/extras/android/support/v4/src/java" />
36+
<root url="file:///home/Develop/android-sdk-mac_86/extras/android/support/v4/src/java" />
6037
</SOURCES>
6138
<jarDirectory url="file://$MODULE_DIR$/libs" recursive="false" />
6239
</library>

FlipView/FlipLibrary/Aphid-FlipView-Library.iml

-22
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,8 @@
1111
<component name="FacetManager">
1212
<facet type="android" name="Android">
1313
<configuration>
14-
<option name="GEN_FOLDER_RELATIVE_PATH_APT" value="/gen" />
15-
<option name="GEN_FOLDER_RELATIVE_PATH_AIDL" value="/gen" />
16-
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/AndroidManifest.xml" />
17-
<option name="RES_FOLDER_RELATIVE_PATH" value="/res" />
18-
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/assets" />
19-
<option name="LIBS_FOLDER_RELATIVE_PATH" value="/libs" />
20-
<option name="USE_CUSTOM_APK_RESOURCE_FOLDER" value="false" />
21-
<option name="CUSTOM_APK_RESOURCE_FOLDER" value="" />
22-
<option name="USE_CUSTOM_COMPILER_MANIFEST" value="false" />
23-
<option name="CUSTOM_COMPILER_MANIFEST" value="" />
24-
<option name="APK_PATH" value="" />
2514
<option name="LIBRARY_PROJECT" value="true" />
26-
<option name="RUN_PROCESS_RESOURCES_MAVEN_TASK" value="true" />
27-
<option name="GENERATE_UNSIGNED_APK" value="false" />
28-
<option name="CUSTOM_DEBUG_KEYSTORE_PATH" value="" />
29-
<option name="PACK_TEST_CODE" value="false" />
30-
<option name="RUN_PROGUARD" value="false" />
31-
<option name="PROGUARD_CFG_PATH" value="/proguard-project.txt" />
32-
<resOverlayFolders>
33-
<path>/res-overlay</path>
34-
</resOverlayFolders>
35-
<includeSystemProguardFile>true</includeSystemProguardFile>
3615
<includeAssetsFromLibraries>true</includeAssetsFromLibraries>
37-
<additionalNativeLibs />
3816
</configuration>
3917
</facet>
4018
</component>

FlipView/FlipLibrary/src/com/aphidmobile/flip/Card.java

+8-5
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@
3939
import static javax.microedition.khronos.opengles.GL10.GL_DEPTH_TEST;
4040
import static javax.microedition.khronos.opengles.GL10.GL_FLOAT;
4141
import static javax.microedition.khronos.opengles.GL10.GL_LIGHTING;
42+
import static javax.microedition.khronos.opengles.GL10.GL_ONE;
4243
import static javax.microedition.khronos.opengles.GL10.GL_ONE_MINUS_SRC_ALPHA;
43-
import static javax.microedition.khronos.opengles.GL10.GL_SRC_ALPHA;
4444
import static javax.microedition.khronos.opengles.GL10.GL_TEXTURE_2D;
4545
import static javax.microedition.khronos.opengles.GL10.GL_TEXTURE_COORD_ARRAY;
4646
import static javax.microedition.khronos.opengles.GL10.GL_TEXTURE_WRAP_S;
@@ -154,7 +154,7 @@ public void draw(GL10 gl) {
154154
gl.glEnableClientState(GL_VERTEX_ARRAY);
155155

156156
gl.glEnable(GL_BLEND);
157-
gl.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
157+
gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE_MINUS_SRC_ALPHA);
158158

159159
gl.glColor4f(1f, 1.0f, 1f, 1.0f);
160160

@@ -217,9 +217,6 @@ public void draw(GL10 gl) {
217217
float[] shadowVertices;
218218

219219
if (angle > 0) {
220-
gl.glDisable(GL_LIGHTING);
221-
gl.glDisable(GL_DEPTH_TEST);
222-
223220
float alpha = 1f * (90f - angle) / 90f;
224221

225222
if (axis == AXIS_TOP) {
@@ -264,10 +261,16 @@ public void draw(GL10 gl) {
264261
}
265262
}
266263

264+
gl.glDisable(GL_LIGHTING);
265+
gl.glDisable(GL_DEPTH_TEST);
266+
gl.glDisable(GL_TEXTURE_2D);
267+
gl.glEnable(GL_BLEND);
268+
gl.glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
267269
gl.glColor4f(0f, 0.0f, 0f, alpha);
268270
gl.glVertexPointer(3, GL_FLOAT, 0, toFloatBuffer(shadowVertices));
269271
gl.glDrawElements(GL_TRIANGLES, indices.length, GL_UNSIGNED_SHORT, indexBuffer);
270272

273+
gl.glEnable(GL_TEXTURE_2D);
271274
gl.glEnable(GL_DEPTH_TEST);
272275
gl.glEnable(GL_LIGHTING);
273276
}

FlipView/FlipLibrary/src/com/aphidmobile/flip/FlipCards.java

+1-11
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ public class FlipCards {
5454
private FlipViewController controller;
5555

5656
private volatile boolean visible = false;
57-
private volatile boolean waitForFirstDraw = false;
5857

5958
private int maxIndex = 0;
6059

@@ -76,10 +75,6 @@ public void setVisible(boolean visible) {
7675
this.visible = visible;
7776
}
7877

79-
public void setWaitForFirstDraw(boolean waitForFirstDraw) {
80-
this.waitForFirstDraw = waitForFirstDraw;
81-
}
82-
8378
boolean refreshPageView(View view) {
8479
boolean match = false;
8580
if (frontCards.getView() == view) {
@@ -223,7 +218,7 @@ public synchronized void draw(FlipRenderer renderer, GL10 gl) {
223218
AphidLog.e("Invalid state: " + state);
224219
break;
225220
}
226-
221+
227222
float angle = getDisplayAngle();
228223
if (angle < 0) {
229224
frontCards.getTopCard().setAxis(Card.AXIS_BOTTOM);
@@ -257,11 +252,6 @@ public synchronized void draw(FlipRenderer renderer, GL10 gl) {
257252
backCards.getBottomCard().draw(gl);
258253
}
259254
}
260-
261-
if (waitForFirstDraw) {
262-
waitForFirstDraw = false;
263-
controller.sendMessage(FlipViewController.MSG_ANIMATION_READY);
264-
}
265255
}
266256

267257
public void invalidateTexture() {

FlipView/FlipLibrary/src/com/aphidmobile/flip/FlipViewController.java

+4-17
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ public static interface ViewFlipListener {
5656
private static final int MAX_RELEASED_VIEW_SIZE = 1;
5757

5858
static final int MSG_SURFACE_CREATED = 1;
59-
static final int MSG_ANIMATION_READY = 2;
6059

6160
private Handler handler = new Handler(new Handler.Callback() {
6261
@Override
@@ -66,11 +65,8 @@ public boolean handleMessage(Message msg) {
6665
contentHeight = 0;
6766
requestLayout();
6867
return true;
69-
} else if (msg.what == MSG_ANIMATION_READY) {
70-
if (inFlipAnimation) {
71-
AphidLog.i("First draw is ready, hide real views");
72-
updateVisibleView(-1);
73-
}
68+
} else {
69+
AphidLog.w("Unknown msg.what: " + msg.what);
7470
}
7571
return false;
7672
}
@@ -96,11 +92,7 @@ public boolean handleMessage(Message msg) {
9692
private DataSetObserver adapterDataObserver;
9793

9894
private final LinkedList<View> bufferedViews = new LinkedList<View>();
99-
private final
100-
LinkedList<View>
101-
releasedViews =
102-
new LinkedList<View>();
103-
//XXX: use a SparseArray to keep the related view indices?
95+
private final LinkedList<View> releasedViews = new LinkedList<View>(); //XXX: use a SparseArray to keep the related view indices?
10496
private int bufferIndex = -1;
10597
private int adapterIndex = -1;
10698
private final int sideBufferSize = 1;
@@ -490,11 +482,7 @@ private void setupAdapterView(View view, boolean addToTop, boolean isReusedView)
490482
}
491483
}
492484

493-
private void updateVisibleView(int index) { /*
494-
if (AphidLog.ENABLE_DEBUG)
495-
AphidLog.d("Update visible views, index %d, buffered: %d, adapter %d", index, bufferedViews.size(), adapterIndex);
496-
*/
497-
485+
private void updateVisibleView(int index) {
498486
for (int i = 0; i < bufferedViews.size(); i++) {
499487
bufferedViews.get(i).setVisibility(index == i ? VISIBLE : INVISIBLE);
500488
}
@@ -568,7 +556,6 @@ void showFlipAnimation() {
568556
inFlipAnimation = true;
569557

570558
cards.setVisible(true);
571-
cards.setWaitForFirstDraw(true);
572559
surfaceView.requestRender();
573560
}
574561
}

FlipView/FlipLibrary/src/com/aphidmobile/utils/AphidLog.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
public class AphidLog {
2424

25-
public static final boolean ENABLE_DEBUG = true;
25+
public static final boolean ENABLE_DEBUG = false;
2626

2727
private AphidLog() {
2828
}

FlipView/FlipView.ipr

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<project version="4">
3-
<component name="AntConfiguration">
4-
<defaultAnt bundledAnt="true" />
5-
</component>
63
<component name="CompilerConfiguration">
74
<option name="DEFAULT_COMPILER" value="Javac" />
85
<excludeFromCompile>
@@ -483,12 +480,14 @@
483480
<XML>
484481
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
485482
</XML>
486-
<ADDITIONAL_INDENT_OPTIONS fileType="haml">
487-
<option name="INDENT_SIZE" value="2" />
488-
</ADDITIONAL_INDENT_OPTIONS>
489483
<ADDITIONAL_INDENT_OPTIONS fileType="sass">
490484
<option name="INDENT_SIZE" value="2" />
491485
</ADDITIONAL_INDENT_OPTIONS>
486+
<codeStyleSettings language="CoffeeScript">
487+
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
488+
<option name="METHOD_PARAMETERS_WRAP" value="1" />
489+
<option name="PARENT_SETTINGS_INSTALLED" value="true" />
490+
</codeStyleSettings>
492491
<codeStyleSettings language="JAVA">
493492
<option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
494493
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />

0 commit comments

Comments
 (0)