diff options
Diffstat (limited to 'cgeo-contacts')
-rw-r--r-- | cgeo-contacts/.classpath | 2 | ||||
-rw-r--r-- | cgeo-contacts/.settings/org.eclipse.jdt.core.prefs | 14 | ||||
-rw-r--r-- | cgeo-contacts/.settings/org.eclipse.jdt.ui.prefs | 29 | ||||
-rw-r--r-- | cgeo-contacts/AndroidManifest.xml | 4 | ||||
-rw-r--r-- | cgeo-contacts/build.gradle | 4 | ||||
-rw-r--r-- | cgeo-contacts/cgeo-contacts.iml | 203 | ||||
-rw-r--r-- | cgeo-contacts/org.eclipse.jdt.annotation_1.1.0.v20130513-1648.jar | bin | 14613 -> 0 bytes | |||
-rw-r--r-- | cgeo-contacts/res/values-lv/strings.xml | 7 | ||||
-rw-r--r-- | cgeo-contacts/src/cgeo/contacts/ContactsActivity.java | 44 |
9 files changed, 272 insertions, 35 deletions
diff --git a/cgeo-contacts/.classpath b/cgeo-contacts/.classpath index 448b12e..004d749 100644 --- a/cgeo-contacts/.classpath +++ b/cgeo-contacts/.classpath @@ -10,6 +10,6 @@ <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> <classpathentry combineaccessrules="false" kind="src" path="/cgeo"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> - <classpathentry kind="lib" path="org.eclipse.jdt.annotation_1.1.0.v20130513-1648.jar"/> + <classpathentry kind="lib" path="/cgeo/compile-libs/org.eclipse.jdt.annotation_1.1.0.v20130513-1648.jar"/> <classpathentry kind="output" path="bin/classes"/> </classpath> diff --git a/cgeo-contacts/.settings/org.eclipse.jdt.core.prefs b/cgeo-contacts/.settings/org.eclipse.jdt.core.prefs index 90a6f5b..f8876c8 100644 --- a/cgeo-contacts/.settings/org.eclipse.jdt.core.prefs +++ b/cgeo-contacts/.settings/org.eclipse.jdt.core.prefs @@ -13,6 +13,7 @@ org.eclipse.jdt.core.compiler.compliance=1.7 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=enabled org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.autoboxing=ignore @@ -36,12 +37,25 @@ org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=all_standard_tags +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=disabled org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning diff --git a/cgeo-contacts/.settings/org.eclipse.jdt.ui.prefs b/cgeo-contacts/.settings/org.eclipse.jdt.ui.prefs index 7616a5b..06e562c 100644 --- a/cgeo-contacts/.settings/org.eclipse.jdt.ui.prefs +++ b/cgeo-contacts/.settings/org.eclipse.jdt.ui.prefs @@ -1,4 +1,3 @@ -#Wed Sep 14 20:41:07 CEST 2011 eclipse.preferences.version=1 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true formatter_profile=_cgeo @@ -9,7 +8,7 @@ org.eclipse.jdt.ui.ondemandthreshold=99 org.eclipse.jdt.ui.staticondemandthreshold=99 sp_cleanup.add_default_serial_version_id=true sp_cleanup.add_generated_serial_version_id=false -sp_cleanup.add_missing_annotations=false +sp_cleanup.add_missing_annotations=true sp_cleanup.add_missing_deprecated_annotations=true sp_cleanup.add_missing_methods=false sp_cleanup.add_missing_nls_tags=false @@ -20,15 +19,17 @@ sp_cleanup.always_use_blocks=true sp_cleanup.always_use_parentheses_in_expressions=false sp_cleanup.always_use_this_for_non_static_field_access=false sp_cleanup.always_use_this_for_non_static_method_access=false -sp_cleanup.convert_to_enhanced_for_loop=false +sp_cleanup.convert_functional_interfaces=false +sp_cleanup.convert_to_enhanced_for_loop=true sp_cleanup.correct_indentation=false sp_cleanup.format_source_code=true sp_cleanup.format_source_code_changes_only=true -sp_cleanup.make_local_variable_final=false -sp_cleanup.make_parameters_final=false -sp_cleanup.make_private_fields_final=false +sp_cleanup.insert_inferred_type_arguments=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true sp_cleanup.make_type_abstract_if_missing_method=false -sp_cleanup.make_variable_declarations_final=false +sp_cleanup.make_variable_declarations_final=true sp_cleanup.never_use_blocks=false sp_cleanup.never_use_parentheses_in_expressions=true sp_cleanup.on_save_use_additional_actions=true @@ -36,15 +37,16 @@ sp_cleanup.organize_imports=true sp_cleanup.qualify_static_field_accesses_with_declaring_class=false sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_with_declaring_class=true sp_cleanup.qualify_static_method_accesses_with_declaring_class=false sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_redundant_type_arguments=false sp_cleanup.remove_trailing_whitespaces=true sp_cleanup.remove_trailing_whitespaces_all=true sp_cleanup.remove_trailing_whitespaces_ignore_empty=false -sp_cleanup.remove_unnecessary_casts=false -sp_cleanup.remove_unnecessary_nls_tags=false -sp_cleanup.remove_unused_imports=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=true +sp_cleanup.remove_unused_imports=true sp_cleanup.remove_unused_local_variables=false sp_cleanup.remove_unused_private_fields=true sp_cleanup.remove_unused_private_members=false @@ -52,10 +54,13 @@ sp_cleanup.remove_unused_private_methods=true sp_cleanup.remove_unused_private_types=true sp_cleanup.sort_members=false sp_cleanup.sort_members_all=false -sp_cleanup.use_blocks=false +sp_cleanup.use_anonymous_class_creation=false +sp_cleanup.use_blocks=true sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_lambda=false sp_cleanup.use_parentheses_in_expressions=false sp_cleanup.use_this_for_non_static_field_access=false sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true sp_cleanup.use_this_for_non_static_method_access=false sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true +sp_cleanup.use_type_arguments=false diff --git a/cgeo-contacts/AndroidManifest.xml b/cgeo-contacts/AndroidManifest.xml index f441973..b7ef1c5 100644 --- a/cgeo-contacts/AndroidManifest.xml +++ b/cgeo-contacts/AndroidManifest.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cgeo.contacts" - android:versionCode="3" - android:versionName="1.3" > + android:versionCode="5" + android:versionName="1.5" > <uses-sdk android:minSdkVersion="7" diff --git a/cgeo-contacts/build.gradle b/cgeo-contacts/build.gradle index e35cff8..74d135b 100644 --- a/cgeo-contacts/build.gradle +++ b/cgeo-contacts/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 19 - buildToolsVersion "19.1.0" + buildToolsVersion "21.1.2" @@ -28,4 +28,4 @@ dependencies { compile files('../main/compile-libs/org.eclipse.jdt.annotation_1.1.0.v20130513-1648.jar') // The depency to the ICalnder interface from the main project is missing // compile(:main) is not right -}
\ No newline at end of file +} diff --git a/cgeo-contacts/cgeo-contacts.iml b/cgeo-contacts/cgeo-contacts.iml index c045b7e..1b85002 100644 --- a/cgeo-contacts/cgeo-contacts.iml +++ b/cgeo-contacts/cgeo-contacts.iml @@ -15,6 +15,7 @@ <proGuardCfgFiles> <file>file://$MODULE_DIR$/proguard-project.txt</file> </proGuardCfgFiles> + <option name="UPDATE_PROPERTY_FILES" value="false" /> </configuration> </facet> </component> @@ -28,5 +29,203 @@ <orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="module" module-name="cgeo" /> </component> -</module> - + <component name="org.twodividedbyzero.idea.findbugs"> + <option name="_basePreferences"> + <map> + <entry key="property.analysisEffortLevel" value="default" /> + <entry key="property.analyzeAfterCompile" value="false" /> + <entry key="property.annotationGutterIconEnabled" value="true" /> + <entry key="property.annotationSuppressWarningsClass" value="edu.umd.cs.findbugs.annotations.SuppressFBWarnings" /> + <entry key="property.annotationTextRangeMarkupEnabled" value="true" /> + <entry key="property.exportAsHtml" value="true" /> + <entry key="property.exportAsXml" value="true" /> + <entry key="property.exportBaseDir" value="" /> + <entry key="property.exportCreateArchiveDir" value="false" /> + <entry key="property.exportOpenBrowser" value="true" /> + <entry key="property.minPriorityToReport" value="Medium" /> + <entry key="property.runAnalysisInBackground" value="false" /> + <entry key="property.showHiddenDetectors" value="false" /> + <entry key="property.toolWindowToFront" value="true" /> + </map> + </option> + <option name="_detectors"> + <map> + <entry key="AppendingToAnObjectOutputStream" value="true" /> + <entry key="AtomicityProblem" value="true" /> + <entry key="BadAppletConstructor" value="false" /> + <entry key="BadResultSetAccess" value="true" /> + <entry key="BadSyntaxForRegularExpression" value="true" /> + <entry key="BadUseOfReturnValue" value="true" /> + <entry key="BadlyOverriddenAdapter" value="true" /> + <entry key="BooleanReturnNull" value="true" /> + <entry key="BuildInterproceduralCallGraph" value="false" /> + <entry key="BuildObligationPolicyDatabase" value="true" /> + <entry key="BuildStringPassthruGraph" value="true" /> + <entry key="CallToUnsupportedMethod" value="false" /> + <entry key="CalledMethods" value="true" /> + <entry key="CheckCalls" value="false" /> + <entry key="CheckExpectedWarnings" value="false" /> + <entry key="CheckImmutableAnnotation" value="true" /> + <entry key="CheckRelaxingNullnessAnnotation" value="true" /> + <entry key="CheckTypeQualifiers" value="true" /> + <entry key="CloneIdiom" value="true" /> + <entry key="ComparatorIdiom" value="true" /> + <entry key="ConfusedInheritance" value="true" /> + <entry key="ConfusionBetweenInheritedAndOuterMethod" value="true" /> + <entry key="CrossSiteScripting" value="true" /> + <entry key="DefaultEncodingDetector" value="true" /> + <entry key="DoInsideDoPrivileged" value="true" /> + <entry key="DontCatchIllegalMonitorStateException" value="true" /> + <entry key="DontIgnoreResultOfPutIfAbsent" value="true" /> + <entry key="DontUseEnum" value="true" /> + <entry key="DroppedException" value="true" /> + <entry key="DumbMethodInvocations" value="true" /> + <entry key="DumbMethods" value="true" /> + <entry key="DuplicateBranches" value="true" /> + <entry key="EmptyZipFileEntry" value="false" /> + <entry key="EqualsOperandShouldHaveClassCompatibleWithThis" value="true" /> + <entry key="ExplicitSerialization" value="true" /> + <entry key="FieldItemSummary" value="true" /> + <entry key="FinalizerNullsFields" value="true" /> + <entry key="FindBadCast2" value="true" /> + <entry key="FindBadForLoop" value="true" /> + <entry key="FindBugsSummaryStats" value="true" /> + <entry key="FindCircularDependencies" value="false" /> + <entry key="FindDeadLocalStores" value="true" /> + <entry key="FindDoubleCheck" value="true" /> + <entry key="FindEmptySynchronizedBlock" value="true" /> + <entry key="FindFieldSelfAssignment" value="true" /> + <entry key="FindFinalizeInvocations" value="true" /> + <entry key="FindFloatEquality" value="true" /> + <entry key="FindFloatMath" value="false" /> + <entry key="FindHEmismatch" value="true" /> + <entry key="FindInconsistentSync2" value="true" /> + <entry key="FindJSR166LockMonitorenter" value="true" /> + <entry key="FindLocalSelfAssignment2" value="true" /> + <entry key="FindMaskedFields" value="true" /> + <entry key="FindMismatchedWaitOrNotify" value="true" /> + <entry key="FindNakedNotify" value="true" /> + <entry key="FindNoSideEffectMethods" value="true" /> + <entry key="FindNonSerializableStoreIntoSession" value="false" /> + <entry key="FindNonSerializableValuePassedToWriteObject" value="false" /> + <entry key="FindNonShortCircuit" value="true" /> + <entry key="FindNullDeref" value="true" /> + <entry key="FindNullDerefsInvolvingNonShortCircuitEvaluation" value="true" /> + <entry key="FindOpenStream" value="true" /> + <entry key="FindPuzzlers" value="true" /> + <entry key="FindRefComparison" value="true" /> + <entry key="FindReturnRef" value="true" /> + <entry key="FindRoughConstants" value="true" /> + <entry key="FindRunInvocations" value="true" /> + <entry key="FindSelfComparison" value="true" /> + <entry key="FindSelfComparison2" value="true" /> + <entry key="FindSleepWithLockHeld" value="true" /> + <entry key="FindSpinLoop" value="true" /> + <entry key="FindSqlInjection" value="true" /> + <entry key="FindTwoLockWait" value="true" /> + <entry key="FindUncalledPrivateMethods" value="true" /> + <entry key="FindUnconditionalWait" value="true" /> + <entry key="FindUninitializedGet" value="true" /> + <entry key="FindUnrelatedTypesInGenericContainer" value="true" /> + <entry key="FindUnreleasedLock" value="true" /> + <entry key="FindUnsatisfiedObligation" value="true" /> + <entry key="FindUnsyncGet" value="true" /> + <entry key="FindUseOfNonSerializableValue" value="true" /> + <entry key="FindUselessControlFlow" value="true" /> + <entry key="FormatStringChecker" value="true" /> + <entry key="FunctionsThatMightBeMistakenForProcedures" value="true" /> + <entry key="HugeSharedStringConstants" value="true" /> + <entry key="IDivResultCastToDouble" value="true" /> + <entry key="IncompatMask" value="true" /> + <entry key="InconsistentAnnotations" value="true" /> + <entry key="InefficientIndexOf" value="true" /> + <entry key="InefficientInitializationInsideLoop" value="true" /> + <entry key="InefficientMemberAccess" value="false" /> + <entry key="InefficientToArray" value="true" /> + <entry key="InfiniteLoop" value="true" /> + <entry key="InfiniteRecursiveLoop" value="true" /> + <entry key="InheritanceUnsafeGetResource" value="true" /> + <entry key="InitializationChain" value="true" /> + <entry key="InitializeNonnullFieldsInConstructor" value="true" /> + <entry key="InstantiateStaticClass" value="true" /> + <entry key="IntCast2LongAsInstant" value="true" /> + <entry key="InvalidJUnitTest" value="true" /> + <entry key="IteratorIdioms" value="true" /> + <entry key="LazyInit" value="true" /> + <entry key="LoadOfKnownNullValue" value="true" /> + <entry key="LostLoggerDueToWeakReference" value="true" /> + <entry key="MethodReturnCheck" value="true" /> + <entry key="Methods" value="true" /> + <entry key="MultithreadedInstanceAccess" value="true" /> + <entry key="MutableLock" value="true" /> + <entry key="MutableStaticFields" value="true" /> + <entry key="Naming" value="true" /> + <entry key="Noise" value="false" /> + <entry key="NoiseNullDeref" value="false" /> + <entry key="NoteAnnotationRetention" value="true" /> + <entry key="NoteCheckReturnValueAnnotations" value="true" /> + <entry key="NoteDirectlyRelevantTypeQualifiers" value="true" /> + <entry key="NoteJCIPAnnotation" value="true" /> + <entry key="NoteNonNullAnnotations" value="false" /> + <entry key="NoteNonnullReturnValues" value="false" /> + <entry key="NoteSuppressedWarnings" value="true" /> + <entry key="NoteUnconditionalParamDerefs" value="true" /> + <entry key="NumberConstructor" value="true" /> + <entry key="OptionalReturnNull" value="true" /> + <entry key="OverridingEqualsNotSymmetrical" value="true" /> + <entry key="PreferZeroLengthArrays" value="true" /> + <entry key="PublicSemaphores" value="false" /> + <entry key="QuestionableBooleanAssignment" value="true" /> + <entry key="ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass" value="true" /> + <entry key="ReadReturnShouldBeChecked" value="true" /> + <entry key="RedundantInterfaces" value="true" /> + <entry key="ReflectiveClasses" value="true" /> + <entry key="RepeatedConditionals" value="true" /> + <entry key="ResolveAllReferences" value="false" /> + <entry key="RuntimeExceptionCapture" value="true" /> + <entry key="SerializableIdiom" value="true" /> + <entry key="StartInConstructor" value="true" /> + <entry key="StaticCalendarDetector" value="true" /> + <entry key="StringConcatenation" value="true" /> + <entry key="SuperfluousInstanceOf" value="true" /> + <entry key="SuspiciousThreadInterrupted" value="true" /> + <entry key="SwitchFallthrough" value="true" /> + <entry key="SynchronizationOnSharedBuiltinConstant" value="true" /> + <entry key="SynchronizeAndNullCheckField" value="true" /> + <entry key="SynchronizeOnClassLiteralNotGetClass" value="true" /> + <entry key="SynchronizingOnContentsOfFieldToProtectField" value="true" /> + <entry key="TestASM" value="false" /> + <entry key="TestDataflowAnalysis" value="false" /> + <entry key="TestingGround" value="false" /> + <entry key="TestingGround2" value="false" /> + <entry key="TrainFieldStoreTypes" value="true" /> + <entry key="TrainLongInstantfParams" value="true" /> + <entry key="TrainNonNullAnnotations" value="true" /> + <entry key="TrainUnconditionalDerefParams" value="true" /> + <entry key="URLProblems" value="true" /> + <entry key="UncallableMethodOfAnonymousClass" value="true" /> + <entry key="UnnecessaryMath" value="true" /> + <entry key="UnreadFields" value="true" /> + <entry key="UselessSubclassMethod" value="false" /> + <entry key="VarArgsProblems" value="true" /> + <entry key="VolatileUsage" value="true" /> + <entry key="WaitInLoop" value="true" /> + <entry key="WrongMapIterator" value="true" /> + <entry key="XMLFactoryBypass" value="true" /> + </map> + </option> + <option name="_reportCategories"> + <map> + <entry key="BAD_PRACTICE" value="true" /> + <entry key="CORRECTNESS" value="true" /> + <entry key="EXPERIMENTAL" value="true" /> + <entry key="I18N" value="true" /> + <entry key="MALICIOUS_CODE" value="true" /> + <entry key="MT_CORRECTNESS" value="true" /> + <entry key="PERFORMANCE" value="true" /> + <entry key="SECURITY" value="true" /> + <entry key="STYLE" value="true" /> + </map> + </option> + </component> +</module>
\ No newline at end of file diff --git a/cgeo-contacts/org.eclipse.jdt.annotation_1.1.0.v20130513-1648.jar b/cgeo-contacts/org.eclipse.jdt.annotation_1.1.0.v20130513-1648.jar Binary files differdeleted file mode 100644 index daca164..0000000 --- a/cgeo-contacts/org.eclipse.jdt.annotation_1.1.0.v20130513-1648.jar +++ /dev/null diff --git a/cgeo-contacts/res/values-lv/strings.xml b/cgeo-contacts/res/values-lv/strings.xml new file mode 100644 index 0000000..3da741e --- /dev/null +++ b/cgeo-contacts/res/values-lv/strings.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<!--Generated by crowdin.com--> +<resources> + <string name="app_name">c:geo - kontakti (Add-on)</string> + <string name="contact_not_found">Kontakts ar pseidonīmu/niku %s nav atrasts. Vispirms pievienojiet kontaktpersonas aplikācijai.</string> + <string name="multiple_matches">Vairākas atbilstības</string> +</resources> diff --git a/cgeo-contacts/src/cgeo/contacts/ContactsActivity.java b/cgeo-contacts/src/cgeo/contacts/ContactsActivity.java index bbda493..74b2617 100644 --- a/cgeo-contacts/src/cgeo/contacts/ContactsActivity.java +++ b/cgeo-contacts/src/cgeo/contacts/ContactsActivity.java @@ -7,6 +7,7 @@ import org.eclipse.jdt.annotation.NonNull; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; +import android.content.DialogInterface.OnCancelListener; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.database.Cursor; @@ -28,7 +29,7 @@ public final class ContactsActivity extends Activity { static final String LOG_TAG = "cgeo.contacts"; @Override - public void onCreate(Bundle savedInstanceState) { + public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); final Uri uri = getIntent().getData(); @@ -67,14 +68,14 @@ public final class ContactsActivity extends Activity { selectContact(contacts); } else { - int contactId = contacts.get(0).first; + final int contactId = contacts.get(0).first; openContactAndFinish(contactId); } } - private void selectContact(final List<Pair<Integer, String>> contacts) { - List<String> list = new ArrayList<>(); - for (Pair<Integer, String> p : contacts) { + private void selectContact(@NonNull final List<Pair<Integer, String>> contacts) { + final List<String> list = new ArrayList<>(); + for (final Pair<Integer, String> p : contacts) { list.add(p.second); } final CharSequence[] items = list.toArray(new CharSequence[list.size()]); @@ -82,38 +83,48 @@ public final class ContactsActivity extends Activity { .setTitle(R.string.multiple_matches) .setItems(items, new OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - int contactId = contacts.get(which).first; + @Override + public void onClick(final DialogInterface dialog, final int which) { + final int contactId = contacts.get(which).first; dialog.dismiss(); openContactAndFinish(contactId); } }) + .setOnCancelListener(new OnCancelListener() { + + @Override + public void onCancel(final DialogInterface dialog) { + dialog.dismiss(); + finish(); + } + }) .create().show(); } - private void openContactAndFinish(int id) { + private void openContactAndFinish(final int id) { final Intent intent = new Intent(Intent.ACTION_VIEW); - Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, String.valueOf(id)); + final Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, String.valueOf(id)); intent.setData(uri); startActivity(intent); finish(); } - private List<Pair<Integer, String>> getContacts(final @NonNull String searchName, Uri uri, final @NonNull String idColumnName, final @NonNull String selectionColumnName, boolean like) { + @NonNull + private List<Pair<Integer, String>> getContacts(final @NonNull String searchName, final Uri uri, final @NonNull String idColumnName, final @NonNull String selectionColumnName, final boolean like) { final String[] projection = new String[] { idColumnName, selectionColumnName }; final String selection = selectionColumnName + (like ? " LIKE" : " =") + " ? COLLATE NOCASE"; final String[] selectionArgs = new String[] { like ? "%" + searchName + "%" : searchName }; Cursor cursor = null; - List<Pair<Integer, String>> result = new ArrayList<>(); + final List<Pair<Integer, String>> result = new ArrayList<>(); try { cursor = getContentResolver().query(uri, projection, selection, selectionArgs, null); while (cursor != null && cursor.moveToNext()) { - int foundId = cursor.getInt(0); - String foundName = cursor.getString(1); + final int foundId = cursor.getInt(0); + final String foundName = cursor.getString(1); result.add(new Pair<>(foundId, foundName)); } - } catch (Exception e) { + } catch (final Exception e) { Log.e(LOG_TAG, "ContactsActivity.getContactId", e); } finally { if (cursor != null) { @@ -130,14 +141,15 @@ public final class ContactsActivity extends Activity { toast.show(); } - private static String getParameter(final Uri uri, final String paramKey) { + @NonNull + private static String getParameter(@NonNull final Uri uri, @NonNull final String paramKey) { try { final String param = uri.getQueryParameter(paramKey); if (param == null) { return StringUtils.EMPTY; } return URLDecoder.decode(param, CharEncoding.UTF_8).trim(); - } catch (UnsupportedEncodingException e) { + } catch (final UnsupportedEncodingException e) { Log.e(LOG_TAG, "ContactsActivity.getParameter", e); } return StringUtils.EMPTY; |