From 410d589a5714971c91ec8a416f21fc8728ee4d83 Mon Sep 17 00:00:00 2001 From: Jarek Potiuk Date: Thu, 27 Jan 2011 16:19:21 +0100 Subject: [PATCH] Coverflow as sub-project - initial commit. --- .checkstyle | 10 + .classpath | 7 + .fbprefs | 128 +++ .hgignore | 14 + .pmd | 821 ++++++++++++++++++ .project | 34 + AndroidManifest.xml | 15 + LICENCE.txt | 5 + README.txt | 50 ++ RELEASE_NOTES.txt | 3 + analysis/checkstyle.xml | 119 +++ analysis/findbugs_exclude.xml | 12 + analysis/local_suppressions.xml | 8 + analysis/pmd.xml | 274 ++++++ analysis/suppressions.xml | 25 + build-libs/ant4hg-V0.07.jar | Bin 0 -> 67115 bytes build.properties | 5 + build.xml | 5 + build_android_manage_template.xml | 181 ++++ build_android_template.xml | 117 +++ cert/debug.keystore | Bin 0 -> 1386 bytes cert/default.keyset | 25 + default.properties | 11 + proguard.cfg | 34 + project.properties | 40 + res/drawable-hdpi/icon.png | Bin 0 -> 4147 bytes res/drawable-ldpi/icon.png | Bin 0 -> 1723 bytes res/drawable-mdpi/icon.png | Bin 0 -> 2574 bytes res/layout/main.xml | 13 + res/values/strings.xml | 4 + .../polidea/coverflow/CoverFlowTesting.java | 15 + template/ant.properties | 17 + version.txt | 3 + 33 files changed, 1995 insertions(+) create mode 100644 .checkstyle create mode 100644 .classpath create mode 100644 .fbprefs create mode 100644 .hgignore create mode 100644 .pmd create mode 100644 .project create mode 100644 AndroidManifest.xml create mode 100644 LICENCE.txt create mode 100644 README.txt create mode 100644 RELEASE_NOTES.txt create mode 100644 analysis/checkstyle.xml create mode 100644 analysis/findbugs_exclude.xml create mode 100644 analysis/local_suppressions.xml create mode 100644 analysis/pmd.xml create mode 100644 analysis/suppressions.xml create mode 100644 build-libs/ant4hg-V0.07.jar create mode 100644 build.properties create mode 100644 build.xml create mode 100644 build_android_manage_template.xml create mode 100644 build_android_template.xml create mode 100644 cert/debug.keystore create mode 100644 cert/default.keyset create mode 100644 default.properties create mode 100644 proguard.cfg create mode 100644 project.properties create mode 100644 res/drawable-hdpi/icon.png create mode 100644 res/drawable-ldpi/icon.png create mode 100644 res/drawable-mdpi/icon.png create mode 100644 res/layout/main.xml create mode 100644 res/values/strings.xml create mode 100644 src/pl/polidea/coverflow/CoverFlowTesting.java create mode 100644 template/ant.properties create mode 100644 version.txt diff --git a/.checkstyle b/.checkstyle new file mode 100644 index 0000000..133c82e --- /dev/null +++ b/.checkstyle @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..609aa00 --- /dev/null +++ b/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.fbprefs b/.fbprefs new file mode 100644 index 0000000..38a81bc --- /dev/null +++ b/.fbprefs @@ -0,0 +1,128 @@ +#FindBugs User Preferences +#Sun Dec 19 22:56:40 CET 2010 +detectorAppendingToAnObjectOutputStream=AppendingToAnObjectOutputStream|true +detectorBadAppletConstructor=BadAppletConstructor|false +detectorBadResultSetAccess=BadResultSetAccess|true +detectorBadSyntaxForRegularExpression=BadSyntaxForRegularExpression|true +detectorBadUseOfReturnValue=BadUseOfReturnValue|true +detectorBadlyOverriddenAdapter=BadlyOverriddenAdapter|true +detectorBooleanReturnNull=BooleanReturnNull|true +detectorCallToUnsupportedMethod=CallToUnsupportedMethod|false +detectorCheckImmutableAnnotation=CheckImmutableAnnotation|true +detectorCheckTypeQualifiers=CheckTypeQualifiers|true +detectorCloneIdiom=CloneIdiom|true +detectorComparatorIdiom=ComparatorIdiom|true +detectorConfusedInheritance=ConfusedInheritance|true +detectorConfusionBetweenInheritedAndOuterMethod=ConfusionBetweenInheritedAndOuterMethod|true +detectorCrossSiteScripting=CrossSiteScripting|true +detectorDoInsideDoPrivileged=DoInsideDoPrivileged|true +detectorDontCatchIllegalMonitorStateException=DontCatchIllegalMonitorStateException|true +detectorDontIgnoreResultOfPutIfAbsent=DontIgnoreResultOfPutIfAbsent|true +detectorDontUseEnum=DontUseEnum|true +detectorDroppedException=DroppedException|true +detectorDumbMethodInvocations=DumbMethodInvocations|true +detectorDumbMethods=DumbMethods|true +detectorDuplicateBranches=DuplicateBranches|true +detectorEmptyZipFileEntry=EmptyZipFileEntry|true +detectorEqualsOperandShouldHaveClassCompatibleWithThis=EqualsOperandShouldHaveClassCompatibleWithThis|true +detectorFinalizerNullsFields=FinalizerNullsFields|true +detectorFindBadCast2=FindBadCast2|true +detectorFindBadForLoop=FindBadForLoop|true +detectorFindCircularDependencies=FindCircularDependencies|false +detectorFindDeadLocalStores=FindDeadLocalStores|true +detectorFindDoubleCheck=FindDoubleCheck|true +detectorFindEmptySynchronizedBlock=FindEmptySynchronizedBlock|true +detectorFindFieldSelfAssignment=FindFieldSelfAssignment|true +detectorFindFinalizeInvocations=FindFinalizeInvocations|true +detectorFindFloatEquality=FindFloatEquality|true +detectorFindHEmismatch=FindHEmismatch|true +detectorFindInconsistentSync2=FindInconsistentSync2|true +detectorFindJSR166LockMonitorenter=FindJSR166LockMonitorenter|true +detectorFindLocalSelfAssignment2=FindLocalSelfAssignment2|true +detectorFindMaskedFields=FindMaskedFields|true +detectorFindMismatchedWaitOrNotify=FindMismatchedWaitOrNotify|true +detectorFindNakedNotify=FindNakedNotify|true +detectorFindNonSerializableStoreIntoSession=FindNonSerializableStoreIntoSession|true +detectorFindNonSerializableValuePassedToWriteObject=FindNonSerializableValuePassedToWriteObject|true +detectorFindNonShortCircuit=FindNonShortCircuit|true +detectorFindNullDeref=FindNullDeref|true +detectorFindNullDerefsInvolvingNonShortCircuitEvaluation=FindNullDerefsInvolvingNonShortCircuitEvaluation|true +detectorFindOpenStream=FindOpenStream|true +detectorFindPuzzlers=FindPuzzlers|true +detectorFindRefComparison=FindRefComparison|true +detectorFindReturnRef=FindReturnRef|true +detectorFindRunInvocations=FindRunInvocations|true +detectorFindSelfComparison=FindSelfComparison|true +detectorFindSelfComparison2=FindSelfComparison2|true +detectorFindSleepWithLockHeld=FindSleepWithLockHeld|true +detectorFindSpinLoop=FindSpinLoop|true +detectorFindSqlInjection=FindSqlInjection|true +detectorFindTwoLockWait=FindTwoLockWait|true +detectorFindUncalledPrivateMethods=FindUncalledPrivateMethods|true +detectorFindUnconditionalWait=FindUnconditionalWait|true +detectorFindUninitializedGet=FindUninitializedGet|true +detectorFindUnrelatedTypesInGenericContainer=FindUnrelatedTypesInGenericContainer|true +detectorFindUnreleasedLock=FindUnreleasedLock|true +detectorFindUnsatisfiedObligation=FindUnsatisfiedObligation|true +detectorFindUnsyncGet=FindUnsyncGet|true +detectorFindUselessControlFlow=FindUselessControlFlow|true +detectorFormatStringChecker=FormatStringChecker|true +detectorHugeSharedStringConstants=HugeSharedStringConstants|true +detectorIDivResultCastToDouble=IDivResultCastToDouble|true +detectorIncompatMask=IncompatMask|true +detectorInconsistentAnnotations=InconsistentAnnotations|true +detectorInefficientMemberAccess=InefficientMemberAccess|false +detectorInefficientToArray=InefficientToArray|true +detectorInfiniteLoop=InfiniteLoop|true +detectorInfiniteRecursiveLoop=InfiniteRecursiveLoop|true +detectorInfiniteRecursiveLoop2=InfiniteRecursiveLoop2|false +detectorInheritanceUnsafeGetResource=InheritanceUnsafeGetResource|true +detectorInitializationChain=InitializationChain|true +detectorInstantiateStaticClass=InstantiateStaticClass|true +detectorInvalidJUnitTest=InvalidJUnitTest|true +detectorIteratorIdioms=IteratorIdioms|true +detectorLazyInit=LazyInit|true +detectorLoadOfKnownNullValue=LoadOfKnownNullValue|true +detectorLostLoggerDueToWeakReference=LostLoggerDueToWeakReference|true +detectorMethodReturnCheck=MethodReturnCheck|true +detectorMultithreadedInstanceAccess=MultithreadedInstanceAccess|true +detectorMutableLock=MutableLock|true +detectorMutableStaticFields=MutableStaticFields|true +detectorNaming=Naming|true +detectorNumberConstructor=NumberConstructor|true +detectorOverridingEqualsNotSymmetrical=OverridingEqualsNotSymmetrical|true +detectorPreferZeroLengthArrays=PreferZeroLengthArrays|true +detectorPublicSemaphores=PublicSemaphores|false +detectorQuestionableBooleanAssignment=QuestionableBooleanAssignment|true +detectorReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass=ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass|true +detectorReadReturnShouldBeChecked=ReadReturnShouldBeChecked|true +detectorRedundantInterfaces=RedundantInterfaces|true +detectorRepeatedConditionals=RepeatedConditionals|true +detectorRuntimeExceptionCapture=RuntimeExceptionCapture|true +detectorSerializableIdiom=SerializableIdiom|true +detectorStartInConstructor=StartInConstructor|true +detectorStaticCalendarDetector=StaticCalendarDetector|true +detectorStringConcatenation=StringConcatenation|true +detectorSuperfluousInstanceOf=SuperfluousInstanceOf|true +detectorSuspiciousThreadInterrupted=SuspiciousThreadInterrupted|true +detectorSwitchFallthrough=SwitchFallthrough|true +detectorSynchronizeAndNullCheckField=SynchronizeAndNullCheckField|true +detectorSynchronizeOnClassLiteralNotGetClass=SynchronizeOnClassLiteralNotGetClass|true +detectorSynchronizingOnContentsOfFieldToProtectField=SynchronizingOnContentsOfFieldToProtectField|true +detectorURLProblems=URLProblems|true +detectorUncallableMethodOfAnonymousClass=UncallableMethodOfAnonymousClass|true +detectorUnnecessaryMath=UnnecessaryMath|true +detectorUnreadFields=UnreadFields|true +detectorUseObjectEquals=UseObjectEquals|false +detectorUselessSubclassMethod=UselessSubclassMethod|false +detectorVarArgsProblems=VarArgsProblems|true +detectorVolatileUsage=VolatileUsage|true +detectorWaitInLoop=WaitInLoop|true +detectorWrongMapIterator=WrongMapIterator|true +detectorXMLFactoryBypass=XMLFactoryBypass|true +detector_threshold=2 +effort=default +excludefilter0=analysis/findbugs_exclude.xml +filter_settings=Medium|BAD_PRACTICE,CORRECTNESS,MT_CORRECTNESS,PERFORMANCE,STYLE|false +filter_settings_neg=MALICIOUS_CODE,NOISE,I18N,SECURITY,EXPERIMENTAL| +run_at_full_build=false diff --git a/.hgignore b/.hgignore new file mode 100644 index 0000000..fdc4257 --- /dev/null +++ b/.hgignore @@ -0,0 +1,14 @@ +syntax: regexp +^local\.properties$ +syntax: regexp +^reports$ +syntax: regexp +^ZumiAndroid\.apk$ +syntax: regexp +^gen$ +syntax: regexp +^bin$ +syntax: regexp +^\.settings$ +syntax: regexp +^javadoc$ \ No newline at end of file diff --git a/.pmd b/.pmd new file mode 100644 index 0000000..ad9cdeb --- /dev/null +++ b/.pmd @@ -0,0 +1,821 @@ + + + false + .ruleset + + + AbstractClassWithoutAbstractMethod + Design Rules + + + AbstractClassWithoutAnyMethod + Design Rules + + + AbstractNaming + Naming Rules + + + AccessorClassGeneration + Design Rules + + + AddEmptyString + Optimization Rules + + + AppendCharacterWithChar + String and StringBuffer Rules + + + ArrayIsStoredDirectly + Security Code Guidelines + + + AssignmentToNonFinalStatic + Design Rules + + + AvoidAccessibilityAlteration + Controversial Rules + + + AvoidArrayLoops + Optimization Rules + + + AvoidAssertAsIdentifier + Migration Rules + + + AvoidCallingFinalize + Finalizer Rules + + + AvoidCatchingNPE + Strict Exception Rules + + + AvoidCatchingThrowable + Strict Exception Rules + + + AvoidConstantsInterface + Design Rules + + + AvoidDecimalLiteralsInBigDecimalConstructor + Basic Rules + + + AvoidDeeplyNestedIfStmts + Design Rules + + + AvoidDollarSigns + Naming Rules + + + AvoidDuplicateLiterals + String and StringBuffer Rules + + + AvoidEnumAsIdentifier + Migration Rules + + + AvoidFieldNameMatchingMethodName + Naming Rules + + + AvoidFieldNameMatchingTypeName + Naming Rules + + + AvoidFinalLocalVariable + Controversial Rules + + + AvoidInstanceofChecksInCatchClause + Design Rules + + + AvoidMultipleUnaryOperators + Basic Rules + + + AvoidPrintStackTrace + Java Logging Rules + + + AvoidProtectedFieldInFinalClass + Design Rules + + + AvoidReassigningParameters + Design Rules + + + AvoidRethrowingException + Strict Exception Rules + + + AvoidStringBufferField + String and StringBuffer Rules + + + AvoidThreadGroup + Basic Rules + + + AvoidThrowingNewInstanceOfSameException + Strict Exception Rules + + + AvoidThrowingNullPointerException + Strict Exception Rules + + + AvoidThrowingRawExceptionTypes + Strict Exception Rules + + + AvoidUsingHardCodedIP + Basic Rules + + + AvoidUsingNativeCode + Controversial Rules + + + AvoidUsingOctalValues + Basic Rules + + + AvoidUsingShortType + Controversial Rules + + + AvoidUsingVolatile + Controversial Rules + + + BadComparison + Design Rules + + + BigIntegerInstantiation + Basic Rules + + + BooleanGetMethodName + Naming Rules + + + BooleanInstantiation + Basic Rules + + + BooleanInversion + Controversial Rules + + + BrokenNullCheck + Basic Rules + + + ByteInstantiation + Migration Rules + + + CallSuperInConstructor + Controversial Rules + + + CheckResultSet + Basic Rules + + + ClassCastExceptionWithToArray + Basic Rules + + + ClassNamingConventions + Naming Rules + + + ClassWithOnlyPrivateConstructorsShouldBeFinal + Design Rules + + + CloneMethodMustImplementCloneable + Type Resolution Rules + + + CloneThrowsCloneNotSupportedException + Clone Implementation Rules + + + CloseResource + Design Rules + + + CollapsibleIfStatements + Basic Rules + + + ConfusingTernary + Design Rules + + + ConsecutiveLiteralAppends + String and StringBuffer Rules + + + ConstructorCallsOverridableMethod + Design Rules + + + CouplingBetweenObjects + Coupling Rules + + + DefaultLabelNotLastInSwitchStmt + Design Rules + + + DoNotCallGarbageCollectionExplicitly + Controversial Rules + + + DoNotExtendJavaLangError + Strict Exception Rules + + + DoNotThrowExceptionInFinally + Strict Exception Rules + + + DontImportJavaLang + Import Statement Rules + + + DontImportSun + Controversial Rules + + + DoubleCheckedLocking + Basic Rules + + + DuplicateImports + Import Statement Rules + + + EmptyCatchBlock + Basic Rules + + + EmptyFinalizer + Finalizer Rules + + + EmptyFinallyBlock + Basic Rules + + + EmptyIfStmt + Basic Rules + + + EmptyInitializer + Basic Rules + + + EmptyMethodInAbstractClassShouldBeAbstract + Design Rules + + + EmptyStatementNotInLoop + Basic Rules + + + EmptyStaticInitializer + Basic Rules + + + EmptySwitchStatements + Basic Rules + + + EmptySynchronizedBlock + Basic Rules + + + EmptyTryBlock + Basic Rules + + + EmptyWhileStmt + Basic Rules + + + EqualsNull + Design Rules + + + ExceptionAsFlowControl + Strict Exception Rules + + + ExcessiveClassLength + Code Size Rules + + + ExcessiveImports + Coupling Rules + + + ExcessiveMethodLength + Code Size Rules + + + ExcessiveParameterList + Code Size Rules + + + FinalFieldCouldBeStatic + Design Rules + + + FinalizeDoesNotCallSuperFinalize + Finalizer Rules + + + FinalizeOnlyCallsSuperFinalize + Finalizer Rules + + + FinalizeOverloaded + Finalizer Rules + + + FinalizeShouldBeProtected + Finalizer Rules + + + ForLoopShouldBeWhileLoop + Basic Rules + + + ForLoopsMustUseBraces + Braces Rules + + + IdempotentOperations + Design Rules + + + IfElseStmtsMustUseBraces + Braces Rules + + + IfStmtsMustUseBraces + Braces Rules + + + ImmutableField + Design Rules + + + ImportFromSamePackage + Import Statement Rules + + + InefficientEmptyStringCheck + String and StringBuffer Rules + + + InefficientStringBuffering + String and StringBuffer Rules + + + InstantiationToGetClass + Design Rules + + + InsufficientStringBufferDeclaration + String and StringBuffer Rules + + + IntegerInstantiation + Migration Rules + + + JumbledIncrementer + Basic Rules + + + JUnit4SuitesShouldUseSuiteAnnotation + Migration Rules + + + JUnit4TestShouldUseAfterAnnotation + Migration Rules + + + JUnit4TestShouldUseBeforeAnnotation + Migration Rules + + + JUnit4TestShouldUseTestAnnotation + Migration Rules + + + JUnitAssertionsShouldIncludeMessage + JUnit Rules + + + JUnitSpelling + JUnit Rules + + + JUnitStaticSuite + JUnit Rules + + + JUnitTestsShouldIncludeAssert + JUnit Rules + + + JUnitUseExpected + Migration Rules + + + LocalVariableCouldBeFinal + Optimization Rules + + + LoggerIsNotStaticFinal + Java Logging Rules + + + LongInstantiation + Migration Rules + + + LooseCoupling + Type Resolution Rules + + + MethodArgumentCouldBeFinal + Optimization Rules + + + MethodNamingConventions + Naming Rules + + + MethodReturnsInternalArray + Security Code Guidelines + + + MethodWithSameNameAsEnclosingClass + Naming Rules + + + MisleadingVariableName + Naming Rules + + + MisplacedNullCheck + Basic Rules + + + MissingBreakInSwitch + Design Rules + + + MissingSerialVersionUID + JavaBean Rules + + + MissingStaticMethodInNonInstantiatableClass + Design Rules + + + MoreThanOneLogger + Java Logging Rules + + + NcssConstructorCount + Code Size Rules + + + NcssMethodCount + Code Size Rules + + + NcssTypeCount + Code Size Rules + + + NonCaseLabelInSwitchStatement + Design Rules + + + NonStaticInitializer + Design Rules + + + NonThreadSafeSingleton + Design Rules + + + NoPackage + Naming Rules + + + OptimizableToArrayCall + Design Rules + + + OverrideBothEqualsAndHashcode + Basic Rules + + + PackageCase + Naming Rules + + + PositionLiteralsFirstInComparisons + Design Rules + + + PreserveStackTrace + Design Rules + + + ProperCloneImplementation + Clone Implementation Rules + + + ProperLogger + Jakarta Commons Logging Rules + + + ReplaceEnumerationWithIterator + Migration Rules + + + ReplaceHashtableWithMap + Migration Rules + + + ReplaceVectorWithList + Migration Rules + + + ReturnEmptyArrayRatherThanNull + Design Rules + + + ReturnFromFinallyBlock + Basic Rules + + + ShortInstantiation + Migration Rules + + + ShortMethodName + Naming Rules + + + SignatureDeclareThrowsException + Type Resolution Rules + + + SimpleDateFormatNeedsLocale + Design Rules + + + SimplifyBooleanAssertion + JUnit Rules + + + SimplifyBooleanExpressions + Design Rules + + + SimplifyBooleanReturns + Design Rules + + + SimplifyConditional + Design Rules + + + SimplifyStartsWith + Optimization Rules + + + SingularField + Design Rules + + + StringBufferInstantiationWithChar + String and StringBuffer Rules + + + StringInstantiation + String and StringBuffer Rules + + + StringToString + String and StringBuffer Rules + + + SuspiciousConstantFieldName + Naming Rules + + + SuspiciousEqualsMethodName + Naming Rules + + + SuspiciousHashcodeMethodName + Naming Rules + + + SuspiciousOctalEscape + Controversial Rules + + + SwitchDensity + Design Rules + + + SwitchStmtsShouldHaveDefault + Design Rules + + + SystemPrintln + Java Logging Rules + + + TestClassWithoutTestCases + JUnit Rules + + + TooManyStaticImports + Import Statement Rules + + + UncommentedEmptyConstructor + Design Rules + + + UncommentedEmptyMethod + Design Rules + + + UnconditionalIfStatement + Basic Rules + + + UnnecessaryBooleanAssertion + JUnit Rules + + + UnnecessaryCaseChange + String and StringBuffer Rules + + + UnnecessaryConversionTemporary + Basic Rules + + + UnnecessaryFinalModifier + Basic Rules + + + UnnecessaryLocalBeforeReturn + Design Rules + + + UnnecessaryParentheses + Controversial Rules + + + UnnecessaryReturn + Basic Rules + + + UnnecessaryWrapperObjectCreation + Optimization Rules + + + UnsynchronizedStaticDateFormatter + Design Rules + + + UnusedFormalParameter + Unused Code Rules + + + UnusedLocalVariable + Unused Code Rules + + + UnusedNullCheckInEquals + Basic Rules + + + UnusedPrivateField + Unused Code Rules + + + UnusedPrivateMethod + Unused Code Rules + + + UseArrayListInsteadOfVector + Optimization Rules + + + UseArraysAsList + Optimization Rules + + + UseAssertEqualsInsteadOfAssertTrue + JUnit Rules + + + UseAssertNullInsteadOfAssertTrue + JUnit Rules + + + UseAssertSameInsteadOfAssertTrue + JUnit Rules + + + UseCollectionIsEmpty + Design Rules + + + UseCorrectExceptionLogging + Jakarta Commons Logging Rules + + + UseEqualsToCompareStrings + String and StringBuffer Rules + + + UseIndexOfChar + String and StringBuffer Rules + + + UselessOperationOnImmutable + Basic Rules + + + UselessOverridingMethod + Basic Rules + + + UselessStringValueOf + String and StringBuffer Rules + + + UseLocaleWithCaseConversions + Design Rules + + + UseNotifyAllInsteadOfNotify + Design Rules + + + UseSingleton + Design Rules + + + UseStringBufferForStringAppends + Optimization Rules + + + UseStringBufferLength + String and StringBuffer Rules + + + VariableNamingConventions + Naming Rules + + + WhileLoopsMustUseBraces + Braces Rules + + + false + true + diff --git a/.project b/.project new file mode 100644 index 0000000..252cd23 --- /dev/null +++ b/.project @@ -0,0 +1,34 @@ + + + android-coverflow + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + edu.umd.cs.findbugs.plugin.eclipse.findbugsNature + + diff --git a/AndroidManifest.xml b/AndroidManifest.xml new file mode 100644 index 0000000..1a2c4b3 --- /dev/null +++ b/AndroidManifest.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + diff --git a/LICENCE.txt b/LICENCE.txt new file mode 100644 index 0000000..555948f --- /dev/null +++ b/LICENCE.txt @@ -0,0 +1,5 @@ +External licences: + +* LIBRARY + URL + Type of licence \ No newline at end of file diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..0c6396f --- /dev/null +++ b/README.txt @@ -0,0 +1,50 @@ +Make sure the projects are checked out in the same workspace in eclipse and +have the right name. + + +---------------------------------------------------------------------------- +Requirements : + - Android SDK - https://dl-ssl.google.com/android/eclipse/ + - Ant ( only if not using IDE). + +Additonal requirements for IDE : + +- Eclipse Helios 3.6 IDE - http://www.eclipse.org/downloads/ +- Android Eclipse ADT Plugin - http://developer.android.com/sdk/index.html + +Optional requirements ( for analysis ) : +- PMD - http://pmd.sourceforge.net/ +- Checkstyle - http://checkstyle.sourceforge.net/ +- Findbugs - http://findbugs.sourceforge.net/ +---------------------------------------------------------------------------- + +Building : + +I. Building from ANT + + 1. Download the dependent libraries into directory containg the project (you can also run ant -f build_android_manage_template.xml checkout_libraries) + 2. Copy ant.properties from template to local.properties in main directory, and edit appropriate paths ( sdk.dir is required ) + 3. Run build task (default) from build.xml + +II. Building from Eclipse + + 1. Download the dependent libraries (you can also run ant -f build_android_manage_template.xml checkout_libraries) + 2. Add ant.properties to "global property files in eclipse" or copy it to local.properties, edit appropriate paths ( sdk.dir is required ) + 3. Install Eclipse IDE, and ADT Android plugin (http://developer.android.com/sdk/eclipse-adt.html#installing) + 4. Configure Android SDK in Eclipse IDE + 5. Download SDK Platform 8 in Android SDK Manager (Eclipse->Window->Android SDK and AVD manager) + 6. Import dependent libraries into eclipse workspace + 7. Run application. + + +---------------------------------------------------------------------------- +Publishing : +---------------------------------------------------------------------------- + +To publish application on Android Market use instructions described here : + +1. Sign application +http://developer.android.com/guide/publishing/app-signing.html + +2. Publish +http://developer.android.com/guide/publishing/publishing.html diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt new file mode 100644 index 0000000..f127a20 --- /dev/null +++ b/RELEASE_NOTES.txt @@ -0,0 +1,3 @@ +Release 0.0.1 + +Fixed Issues: diff --git a/analysis/checkstyle.xml b/analysis/checkstyle.xml new file mode 100644 index 0000000..5783d39 --- /dev/null +++ b/analysis/checkstyle.xml @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/analysis/findbugs_exclude.xml b/analysis/findbugs_exclude.xml new file mode 100644 index 0000000..453cd47 --- /dev/null +++ b/analysis/findbugs_exclude.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/analysis/local_suppressions.xml b/analysis/local_suppressions.xml new file mode 100644 index 0000000..14990c4 --- /dev/null +++ b/analysis/local_suppressions.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/analysis/pmd.xml b/analysis/pmd.xml new file mode 100644 index 0000000..6fbb3ec --- /dev/null +++ b/analysis/pmd.xml @@ -0,0 +1,274 @@ + + + Polidea rule set + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/analysis/suppressions.xml b/analysis/suppressions.xml new file mode 100644 index 0000000..c5e57c6 --- /dev/null +++ b/analysis/suppressions.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build-libs/ant4hg-V0.07.jar b/build-libs/ant4hg-V0.07.jar new file mode 100644 index 0000000000000000000000000000000000000000..c4d0157aa21670f75e3b33b10523f085eff2cddc GIT binary patch literal 67115 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 literal 0 HcmV?d00001 diff --git a/build.properties b/build.properties new file mode 100644 index 0000000..05ab1bc --- /dev/null +++ b/build.properties @@ -0,0 +1,5 @@ +source.dir = src +key.store.password =android +key.alias.password =android +key.store = cert/debug.keystore +key.alias = androiddebugkey diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..965603d --- /dev/null +++ b/build.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/build_android_manage_template.xml b/build_android_manage_template.xml new file mode 100644 index 0000000..a2fb846 --- /dev/null +++ b/build_android_manage_template.xml @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build_android_template.xml b/build_android_template.xml new file mode 100644 index 0000000..35b2cf6 --- /dev/null +++ b/build_android_template.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${javadoc.title}]]> + + + + + diff --git a/cert/debug.keystore b/cert/debug.keystore new file mode 100644 index 0000000000000000000000000000000000000000..d33815b8cad92954ddfefaf2cc49df0ab544b5bb GIT binary patch literal 1386 zcmezO_TO6u1_mY|W&~sY#JrTE{LGY;)TGk%?9@u2xaQmwYDGXbI}Mtcwi@uUacQ$L zvM_2f2{JOWGO#o;ExZ%-Zsz7iw;6jEBq_@OHQ`>8Ahpq%Yj^Y<1^<%!XTQ$vTs*nb z{Zs6{>*YIE3P_~hiC4E-k-#OsSyjX~=JV~I3u)1%i?x?I7vIxbS+z>)WK`)p#)oTO zOpHi;D!#5~-IbX6)A=^keOdqPZ_IA#a)+IK>zKdHKbg3Arh@Y`gHt;;s4Il%)@@tD zxA6a@omwqyif@nCYc}7%)VRmm;fqtPU(7Mp8(OY_o5APGc-OH zr;Dqtdc>u*;jck(%)|7gkZtz$Sud*;6+kV43Wl8RvG9aemN&(_dmQx(hJXb~!38GHYjAGwWnq zU1)WytomLH2Umdw84jXP-?IOz{=bJ=H8R7Jk&kuxzjc@EfA=fiO}`!=!=rPmROXX( z@`m6C)hGVVkqVge|I>f-P3hOSvmbc4*|yIj@xWshPPxUWUY~8O&b5Ci!q>iO?Xg|I zG8_(AKF_>V8Ft{A{m<9h*S}5a{q>yp1G80=4zQ?pluo`JOh5TitkgpuKik;G4ZZy%jQN zRcpK6dS5B9l9~BUGF9gG{-kb&HT`GISudC|d(C!!%;Y4JDr2x#U*WLo>)Z0TCoJhJ z&f#9C>Tye}wdd>Xe-CFaU%4Tu$M?_^LGG~Iva$XbS{h30->5t8nLWSM^tR7!$v2jk zU-(xF_jOIl*GS6!qA?{t<^QeFpcY5=$2YYfw#{+tHwpPU`NMzp$QMueSw2rUd&lri z_M1D+mn}W*_|op-ZT7{svii{#>TmxU`PQ+^&a4Za$rgUf_3n|DG=GzA_F;bUPA)|a|07Y6Ci08CC+PXZfIy|3FQuqqZ;QU zhYc{tGdK1!7&LY=H8wKz9OT^TZnMq((80W}vzv<3KfL?9#Oj;ks?>d)OTXzo*{8nw z@`44*`%k32NqoN``^kdUdQNY)?ibhguvvNG=IXWjB`pkJ-flS8n(R1hw}fQS)DvcQ zy<2Z4Ud^|Ak!4%?=VqbP@r?>9(_Z#oV)P8`aon~@^lC=+-t-gsD*i6Y3n%+BF*7nS zB0CQlb<99_iG&&i6l=YC{^VxyPvL(&bHZ!O7u8q%i)e1kR6jMf#QZ#4LdH9pn+_4K zv;HnvmU_1(mdm!yGAYX-@(44eWn*3G0+qYj)Hqm;mK1(HRCjTz8>z6*CoWEw` z8NP)Tj~9uQT@Z+-JBDCAy<;)8XIXRw3JKi4Sl}#^*dNXNdj@84(Yf_^>wFykw MbLYpykl#i502IYCS^xk5 literal 0 HcmV?d00001 diff --git a/cert/default.keyset b/cert/default.keyset new file mode 100644 index 0000000..e0d2b13 --- /dev/null +++ b/cert/default.keyset @@ -0,0 +1,25 @@ +BUTTON_CALL F3 +BUTTON_HANGUP F4 +BUTTON_HOME Home +BUTTON_BACK Escape +BUTTON_MENU F2, PageUp +BUTTON_STAR Shift-F2, PageDown +BUTTON_POWER F7 +BUTTON_SEARCH F5 +BUTTON_CAMERA Ctrl-Keypad_5, Ctrl-F3 +BUTTON_VOLUME_UP Keypad_Plus, Ctrl-F5 +BUTTON_VOLUME_DOWN Keypad_Minus, Ctrl-F6 +TOGGLE_NETWORK F8 +TOGGLE_TRACING F9 +TOGGLE_FULLSCREEN Alt-Enter +BUTTON_DPAD_CENTER Keypad_5 +BUTTON_DPAD_UP Keypad_8 +BUTTON_DPAD_LEFT Keypad_4 +BUTTON_DPAD_RIGHT Keypad_6 +BUTTON_DPAD_DOWN Keypad_2 +TOGGLE_TRACKBALL F6 +SHOW_TRACKBALL Delete +CHANGE_LAYOUT_PREV Keypad_7, Ctrl-F11 +CHANGE_LAYOUT_NEXT Keypad_9, Ctrl-F12 +ONION_ALPHA_UP Keypad_Multiply +ONION_ALPHA_DOWN Keypad_Divide diff --git a/default.properties b/default.properties new file mode 100644 index 0000000..9d135cb --- /dev/null +++ b/default.properties @@ -0,0 +1,11 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system use, +# "build.properties", and override values to adapt the script to your +# project structure. + +# Project target. +target=android-7 diff --git a/proguard.cfg b/proguard.cfg new file mode 100644 index 0000000..8ad7d33 --- /dev/null +++ b/proguard.cfg @@ -0,0 +1,34 @@ +-optimizationpasses 5 +-dontusemixedcaseclassnames +-dontskipnonpubliclibraryclasses +-dontpreverify +-verbose +-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* + +-keep public class * extends android.app.Activity +-keep public class * extends android.app.Application +-keep public class * extends android.app.Service +-keep public class * extends android.content.BroadcastReceiver +-keep public class * extends android.content.ContentProvider +-keep public class com.android.vending.licensing.ILicensingService + +-keepclasseswithmembernames class * { + native ; +} + +-keepclasseswithmembernames class * { + public (android.content.Context, android.util.AttributeSet); +} + +-keepclasseswithmembernames class * { + public (android.content.Context, android.util.AttributeSet, int); +} + +-keepclassmembers enum * { + public static **[] values(); + public static ** valueOf(java.lang.String); +} + +-keep class * implements android.os.Parcelable { + public static final android.os.Parcelable$Creator *; +} diff --git a/project.properties b/project.properties new file mode 100644 index 0000000..46d7ca5 --- /dev/null +++ b/project.properties @@ -0,0 +1,40 @@ +# This file is part of Polidea build process +########################################################################## +# Name of the project (and APK). +# NOTE! Should be THE SAME as name in .project file +########################################################################## +project.apk.name=android-coverflow + +########################################################################## +# Javadoc parameters +# Title - is title of the Javadoc documentation displayed in browser +# Overview is the overview description of the project. It should be +# link to the FILE (so slashes rather than . to separate dirs) +########################################################################## +javadoc.title=Android Coverflow +javadoc.overview.location=src/pl/polidea/coverflow/overview.html + +########################################################################## +# Release information +# The application will be available after release in versioned directory +# ${release.url}${release.dir}${external.directory.name} +# Choose external directory name as random sequence of characters +# Add appropriate to.release.mail so that your team will receive release +# emails automatically. +########################################################################## +release.url=http://dev.polidea.pl +release.dir=/ext/ +external.directory.name = coverflow +hg.user=bot@polidea.pl +from.release.mail = Hudson +to.release.mail = lab@polidea.pl + +########################################################################## +# Libraries +########################################################################## +# +# For every library there should be URL and branch defined from where this +# library can be cloned (mercurial) +########################################################################## +#android.library.url.1=URL TO CHECKOUT THE LIBRARIE +#android.library.branch.1=default diff --git a/res/drawable-hdpi/icon.png b/res/drawable-hdpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8074c4c571b8cd19e27f4ee5545df367420686d7 GIT binary patch literal 4147 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 literal 0 HcmV?d00001 diff --git a/res/drawable-ldpi/icon.png b/res/drawable-ldpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1095584ec21f71cd0afc9e0993aa2209671b590c GIT binary patch literal 1723 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 + + + + diff --git a/res/values/strings.xml b/res/values/strings.xml new file mode 100644 index 0000000..98d566d --- /dev/null +++ b/res/values/strings.xml @@ -0,0 +1,4 @@ + + + CoverFlowTesting + diff --git a/src/pl/polidea/coverflow/CoverFlowTesting.java b/src/pl/polidea/coverflow/CoverFlowTesting.java new file mode 100644 index 0000000..13af272 --- /dev/null +++ b/src/pl/polidea/coverflow/CoverFlowTesting.java @@ -0,0 +1,15 @@ +package pl.polidea.coverflow; + +import android.app.Activity; +import android.os.Bundle; + +public class CoverFlowTesting extends Activity +{ + /** Called when the activity is first created. */ + @Override + public void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + setContentView(R.layout.main); + } +} diff --git a/template/ant.properties b/template/ant.properties new file mode 100644 index 0000000..7749f8a --- /dev/null +++ b/template/ant.properties @@ -0,0 +1,17 @@ +# Android SDK +sdk.dir=/var/lib/google/android-sdk + +# Junit +junit.jar=/usr/share/java/junit4.jar + +# Analysis +findbugs.home.dir=/var/lib/analysis/findbugs +pmd.home.dir=/var/lib/analysis/pmd +checkstyle.home.dir=/var/lib/analysis/checkstyle + +# GWT and appengine +gwt.sdk.home.dir=/var/lib/google/gwt +appengine.sdk.home.dir=/var/lib/google/appengine-java-sdk + +#encoding +java.encoding=utf-8 diff --git a/version.txt b/version.txt new file mode 100644 index 0000000..3106186 --- /dev/null +++ b/version.txt @@ -0,0 +1,3 @@ +#Fri, 14 Jan 2011 00:11:49 +0100 +#Wed Dec 08 18:06:04 CET 2010 +current.version.code=0