Skip to content

Commit c4a5c8d

Browse files
author
曾伟明
committed
fix bug
1 parent 2e02de9 commit c4a5c8d

File tree

8 files changed

+285
-40
lines changed

8 files changed

+285
-40
lines changed

.idea/vcs.xml

+2-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gradle.properties

+8-9
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
1-
# Project-wide Gradle settings.
2-
3-
# IDE (e.g. Android Studio) users:
4-
# Gradle settings configured through the IDE *will override*
5-
# any settings specified in this file.
6-
1+
## Project-wide Gradle settings.
2+
#
73
# For more details on how to configure your build environment visit
84
# http://www.gradle.org/docs/current/userguide/build_environment.html
9-
5+
#
106
# Specifies the JVM arguments used for the daemon process.
117
# The setting is particularly useful for tweaking memory settings.
128
# Default value: -Xmx10248m -XX:MaxPermSize=256m
139
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14-
10+
#
1511
# When configured, Gradle will run in incubating parallel mode.
1612
# This option should only be used with decoupled projects. More details, visit
1713
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18-
# org.gradle.parallel=true
14+
# org.gradle.parallel=true
15+
#Mon Aug 10 17:54:37 CST 2015
16+
systemProp.http.proxyHost=127.0.0.1
17+
systemProp.http.proxyPort=1080

shapeloading/shapeloading.iml

+205-3
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@
6565
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
6666
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
6767
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
68-
<excludeFolder url="file://$MODULE_DIR$/build/docs" />
6968
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
7069
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
7170
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
@@ -85,13 +84,216 @@
8584
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
8685
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
8786
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
88-
<excludeFolder url="file://$MODULE_DIR$/build/libs" />
8987
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
90-
<excludeFolder url="file://$MODULE_DIR$/build/poms" />
9188
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
9289
</content>
9390
<orderEntry type="jdk" jdkName="Android API 21 Platform" jdkType="Android SDK" />
9491
<orderEntry type="sourceFolder" forTests="false" />
9592
<orderEntry type="library" exported="" name="library-2.4.0" level="project" />
9693
</component>
94+
<component name="org.twodividedbyzero.idea.findbugs">
95+
<option name="_basePreferences">
96+
<map>
97+
<entry key="property.analysisEffortLevel" value="default" />
98+
<entry key="property.analyzeAfterAutoMake" value="false" />
99+
<entry key="property.analyzeAfterCompile" value="false" />
100+
<entry key="property.annotationGutterIconEnabled" value="true" />
101+
<entry key="property.annotationSuppressWarningsClass" value="edu.umd.cs.findbugs.annotations.SuppressFBWarnings" />
102+
<entry key="property.annotationTextRangeMarkupEnabled" value="true" />
103+
<entry key="property.exportAsHtml" value="true" />
104+
<entry key="property.exportAsXml" value="true" />
105+
<entry key="property.exportBaseDir" value="" />
106+
<entry key="property.exportCreateArchiveDir" value="false" />
107+
<entry key="property.exportOpenBrowser" value="true" />
108+
<entry key="property.minPriorityToReport" value="Medium" />
109+
<entry key="property.runAnalysisInBackground" value="false" />
110+
<entry key="property.showHiddenDetectors" value="false" />
111+
<entry key="property.toolWindowToFront" value="true" />
112+
</map>
113+
</option>
114+
<option name="_detectors">
115+
<map>
116+
<entry key="AppendingToAnObjectOutputStream" value="true" />
117+
<entry key="AtomicityProblem" value="true" />
118+
<entry key="BadAppletConstructor" value="false" />
119+
<entry key="BadResultSetAccess" value="true" />
120+
<entry key="BadSyntaxForRegularExpression" value="true" />
121+
<entry key="BadUseOfReturnValue" value="true" />
122+
<entry key="BadlyOverriddenAdapter" value="true" />
123+
<entry key="BooleanReturnNull" value="true" />
124+
<entry key="BuildInterproceduralCallGraph" value="false" />
125+
<entry key="BuildObligationPolicyDatabase" value="true" />
126+
<entry key="BuildStringPassthruGraph" value="true" />
127+
<entry key="CallToUnsupportedMethod" value="false" />
128+
<entry key="CalledMethods" value="true" />
129+
<entry key="CheckCalls" value="false" />
130+
<entry key="CheckExpectedWarnings" value="false" />
131+
<entry key="CheckImmutableAnnotation" value="true" />
132+
<entry key="CheckRelaxingNullnessAnnotation" value="true" />
133+
<entry key="CheckTypeQualifiers" value="true" />
134+
<entry key="CloneIdiom" value="true" />
135+
<entry key="ComparatorIdiom" value="true" />
136+
<entry key="ConfusedInheritance" value="true" />
137+
<entry key="ConfusionBetweenInheritedAndOuterMethod" value="true" />
138+
<entry key="CovariantArrayAssignment" value="false" />
139+
<entry key="CrossSiteScripting" value="true" />
140+
<entry key="DefaultEncodingDetector" value="true" />
141+
<entry key="DoInsideDoPrivileged" value="true" />
142+
<entry key="DontCatchIllegalMonitorStateException" value="true" />
143+
<entry key="DontIgnoreResultOfPutIfAbsent" value="true" />
144+
<entry key="DontUseEnum" value="true" />
145+
<entry key="DroppedException" value="true" />
146+
<entry key="DumbMethodInvocations" value="true" />
147+
<entry key="DumbMethods" value="true" />
148+
<entry key="DuplicateBranches" value="true" />
149+
<entry key="EmptyZipFileEntry" value="false" />
150+
<entry key="EqualsOperandShouldHaveClassCompatibleWithThis" value="true" />
151+
<entry key="ExplicitSerialization" value="true" />
152+
<entry key="FieldItemSummary" value="true" />
153+
<entry key="FinalizerNullsFields" value="true" />
154+
<entry key="FindBadCast2" value="true" />
155+
<entry key="FindBadForLoop" value="true" />
156+
<entry key="FindBugsSummaryStats" value="true" />
157+
<entry key="FindCircularDependencies" value="false" />
158+
<entry key="FindComparatorProblems" value="true" />
159+
<entry key="FindDeadLocalStores" value="true" />
160+
<entry key="FindDoubleCheck" value="true" />
161+
<entry key="FindEmptySynchronizedBlock" value="true" />
162+
<entry key="FindFieldSelfAssignment" value="true" />
163+
<entry key="FindFinalizeInvocations" value="true" />
164+
<entry key="FindFloatEquality" value="true" />
165+
<entry key="FindFloatMath" value="false" />
166+
<entry key="FindHEmismatch" value="true" />
167+
<entry key="FindInconsistentSync2" value="true" />
168+
<entry key="FindJSR166LockMonitorenter" value="true" />
169+
<entry key="FindLocalSelfAssignment2" value="true" />
170+
<entry key="FindMaskedFields" value="true" />
171+
<entry key="FindMismatchedWaitOrNotify" value="true" />
172+
<entry key="FindNakedNotify" value="true" />
173+
<entry key="FindNoSideEffectMethods" value="true" />
174+
<entry key="FindNonSerializableStoreIntoSession" value="false" />
175+
<entry key="FindNonSerializableValuePassedToWriteObject" value="false" />
176+
<entry key="FindNonShortCircuit" value="true" />
177+
<entry key="FindNullDeref" value="true" />
178+
<entry key="FindNullDerefsInvolvingNonShortCircuitEvaluation" value="true" />
179+
<entry key="FindOpenStream" value="true" />
180+
<entry key="FindPuzzlers" value="true" />
181+
<entry key="FindRefComparison" value="true" />
182+
<entry key="FindReturnRef" value="true" />
183+
<entry key="FindRoughConstants" value="true" />
184+
<entry key="FindRunInvocations" value="true" />
185+
<entry key="FindSelfComparison" value="true" />
186+
<entry key="FindSelfComparison2" value="true" />
187+
<entry key="FindSleepWithLockHeld" value="true" />
188+
<entry key="FindSpinLoop" value="true" />
189+
<entry key="FindSqlInjection" value="true" />
190+
<entry key="FindTwoLockWait" value="true" />
191+
<entry key="FindUncalledPrivateMethods" value="true" />
192+
<entry key="FindUnconditionalWait" value="true" />
193+
<entry key="FindUninitializedGet" value="true" />
194+
<entry key="FindUnrelatedTypesInGenericContainer" value="true" />
195+
<entry key="FindUnreleasedLock" value="true" />
196+
<entry key="FindUnsatisfiedObligation" value="true" />
197+
<entry key="FindUnsyncGet" value="true" />
198+
<entry key="FindUseOfNonSerializableValue" value="true" />
199+
<entry key="FindUselessControlFlow" value="true" />
200+
<entry key="FindUselessObjects" value="true" />
201+
<entry key="FormatStringChecker" value="true" />
202+
<entry key="FunctionsThatMightBeMistakenForProcedures" value="true" />
203+
<entry key="HugeSharedStringConstants" value="true" />
204+
<entry key="IDivResultCastToDouble" value="true" />
205+
<entry key="IncompatMask" value="true" />
206+
<entry key="InconsistentAnnotations" value="true" />
207+
<entry key="InefficientIndexOf" value="false" />
208+
<entry key="InefficientInitializationInsideLoop" value="false" />
209+
<entry key="InefficientMemberAccess" value="false" />
210+
<entry key="InefficientToArray" value="false" />
211+
<entry key="InfiniteLoop" value="true" />
212+
<entry key="InfiniteRecursiveLoop" value="true" />
213+
<entry key="InheritanceUnsafeGetResource" value="true" />
214+
<entry key="InitializationChain" value="true" />
215+
<entry key="InitializeNonnullFieldsInConstructor" value="true" />
216+
<entry key="InstantiateStaticClass" value="true" />
217+
<entry key="IntCast2LongAsInstant" value="true" />
218+
<entry key="InvalidJUnitTest" value="true" />
219+
<entry key="IteratorIdioms" value="true" />
220+
<entry key="LazyInit" value="true" />
221+
<entry key="LoadOfKnownNullValue" value="true" />
222+
<entry key="LostLoggerDueToWeakReference" value="true" />
223+
<entry key="MethodReturnCheck" value="true" />
224+
<entry key="Methods" value="true" />
225+
<entry key="MultithreadedInstanceAccess" value="true" />
226+
<entry key="MutableEnum" value="true" />
227+
<entry key="MutableLock" value="true" />
228+
<entry key="MutableStaticFields" value="true" />
229+
<entry key="Naming" value="true" />
230+
<entry key="Noise" value="false" />
231+
<entry key="NoiseNullDeref" value="false" />
232+
<entry key="NoteAnnotationRetention" value="true" />
233+
<entry key="NoteCheckReturnValueAnnotations" value="true" />
234+
<entry key="NoteDirectlyRelevantTypeQualifiers" value="true" />
235+
<entry key="NoteJCIPAnnotation" value="true" />
236+
<entry key="NoteNonNullAnnotations" value="false" />
237+
<entry key="NoteNonnullReturnValues" value="false" />
238+
<entry key="NoteSuppressedWarnings" value="true" />
239+
<entry key="NoteUnconditionalParamDerefs" value="true" />
240+
<entry key="NumberConstructor" value="true" />
241+
<entry key="OptionalReturnNull" value="true" />
242+
<entry key="OverridingEqualsNotSymmetrical" value="true" />
243+
<entry key="PreferZeroLengthArrays" value="true" />
244+
<entry key="PublicSemaphores" value="false" />
245+
<entry key="QuestionableBooleanAssignment" value="true" />
246+
<entry key="ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass" value="true" />
247+
<entry key="ReadReturnShouldBeChecked" value="true" />
248+
<entry key="RedundantConditions" value="true" />
249+
<entry key="RedundantInterfaces" value="true" />
250+
<entry key="ReflectiveClasses" value="true" />
251+
<entry key="RepeatedConditionals" value="true" />
252+
<entry key="ResolveAllReferences" value="false" />
253+
<entry key="RuntimeExceptionCapture" value="true" />
254+
<entry key="SerializableIdiom" value="true" />
255+
<entry key="StartInConstructor" value="true" />
256+
<entry key="StaticCalendarDetector" value="true" />
257+
<entry key="StringConcatenation" value="true" />
258+
<entry key="SuperfluousInstanceOf" value="true" />
259+
<entry key="SuspiciousThreadInterrupted" value="true" />
260+
<entry key="SwitchFallthrough" value="true" />
261+
<entry key="SynchronizationOnSharedBuiltinConstant" value="true" />
262+
<entry key="SynchronizeAndNullCheckField" value="true" />
263+
<entry key="SynchronizeOnClassLiteralNotGetClass" value="true" />
264+
<entry key="SynchronizingOnContentsOfFieldToProtectField" value="true" />
265+
<entry key="TestASM" value="false" />
266+
<entry key="TestDataflowAnalysis" value="false" />
267+
<entry key="TestingGround" value="false" />
268+
<entry key="TestingGround2" value="false" />
269+
<entry key="TrainFieldStoreTypes" value="true" />
270+
<entry key="TrainLongInstantfParams" value="true" />
271+
<entry key="TrainNonNullAnnotations" value="true" />
272+
<entry key="TrainUnconditionalDerefParams" value="true" />
273+
<entry key="URLProblems" value="true" />
274+
<entry key="UncallableMethodOfAnonymousClass" value="true" />
275+
<entry key="UnnecessaryMath" value="true" />
276+
<entry key="UnreadFields" value="true" />
277+
<entry key="UselessSubclassMethod" value="false" />
278+
<entry key="VarArgsProblems" value="true" />
279+
<entry key="VolatileUsage" value="true" />
280+
<entry key="WaitInLoop" value="true" />
281+
<entry key="WrongMapIterator" value="true" />
282+
<entry key="XMLFactoryBypass" value="true" />
283+
</map>
284+
</option>
285+
<option name="_reportCategories">
286+
<map>
287+
<entry key="BAD_PRACTICE" value="true" />
288+
<entry key="CORRECTNESS" value="true" />
289+
<entry key="EXPERIMENTAL" value="true" />
290+
<entry key="I18N" value="true" />
291+
<entry key="MALICIOUS_CODE" value="true" />
292+
<entry key="MT_CORRECTNESS" value="true" />
293+
<entry key="PERFORMANCE" value="true" />
294+
<entry key="SECURITY" value="true" />
295+
<entry key="STYLE" value="true" />
296+
</map>
297+
</option>
298+
</component>
97299
</module>

shapeloading/src/main/java/com/mingle/widget/LoadingView.java

+43-7
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class LoadingView extends FrameLayout {
2929

3030
private static final int ANIMATION_DURATION = 500;
3131

32-
private static float mDistance = 200;
32+
private static float mDistance = 200;
3333

3434
private ShapeLoadingView mShapeLoadingView;
3535

@@ -103,14 +103,50 @@ protected void onFinishInflate() {
103103

104104
addView(view, layoutParams);
105105

106-
this.postDelayed(new Runnable() {
107-
@Override
108-
public void run() {
109-
freeFall();
110-
}
111-
}, 900);
112106

107+
startLoading(900);
108+
}
109+
110+
111+
private AnimatorSet mAnimatorSet = null;
112+
113+
private Runnable mFreeFallRunnable = new Runnable() {
114+
@Override
115+
public void run() {
116+
freeFall();
117+
}
118+
};
119+
120+
private void startLoading(long delay) {
121+
if (mAnimatorSet != null && mAnimatorSet.isRunning()) {
122+
return;
123+
}
124+
this.removeCallbacks(mFreeFallRunnable);
125+
if (delay > 0) {
126+
this.postDelayed(mFreeFallRunnable, delay);
127+
} else {
128+
this.post(mFreeFallRunnable);
129+
}
130+
}
131+
132+
private void stopLoading() {
133+
if (mAnimatorSet != null) {
134+
if (mAnimatorSet.isRunning()) {
135+
mAnimatorSet.cancel();
136+
}
137+
mAnimatorSet = null;
138+
}
139+
this.removeCallbacks(mFreeFallRunnable);
140+
}
113141

142+
@Override
143+
public void setVisibility(int visibility) {
144+
super.setVisibility(visibility);
145+
if (visibility == View.VISIBLE) {
146+
startLoading(200);
147+
} else {
148+
stopLoading();
149+
}
114150
}
115151

116152
public void setLoadingText(CharSequence loadingText) {

0 commit comments

Comments
 (0)