diff --git a/MyTracksLib/.classpath b/MyTracksLib/.classpath deleted file mode 100644 index d57ec0251..000000000 --- a/MyTracksLib/.classpath +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/MyTracksLib/.project b/MyTracksLib/.project deleted file mode 100644 index 1fefe8898..000000000 --- a/MyTracksLib/.project +++ /dev/null @@ -1,33 +0,0 @@ - - - MyTracksLib - - - - - - 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 - - diff --git a/MyTracksLib/.settings/org.eclipse.jdt.core.prefs b/MyTracksLib/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index f7f54abd1..000000000 --- a/MyTracksLib/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,401 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 -org.eclipse.jdt.core.compiler.compliance=1.6 -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning -org.eclipse.jdt.core.compiler.problem.autoboxing=ignore -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore -org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=warning -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=error -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore -org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore -org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedImport=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore -org.eclipse.jdt.core.compiler.problem.unusedParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.6 -org.eclipse.jdt.core.formatter.align_type_members_on_columns=false -org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field=1585 -org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field.count_dependent=1585|-1|1585 -org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable=1585 -org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable.count_dependent=1585|-1|1585 -org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method=1585 -org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method.count_dependent=1585|-1|1585 -org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package=1585 -org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package.count_dependent=1585|-1|1585 -org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter=1040 -org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter.count_dependent=1040|-1|1040 -org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type=1585 -org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type.count_dependent=1585|-1|1585 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression.count_dependent=16|-1|16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation.count_dependent=16|-1|16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=48 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant.count_dependent=16|-1|16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call.count_dependent=16|-1|16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation.count_dependent=16|-1|16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression.count_dependent=16|-1|16 -org.eclipse.jdt.core.formatter.alignment_for_assignment=0 -org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_binary_expression.count_dependent=16|-1|16 -org.eclipse.jdt.core.formatter.alignment_for_cascading_method_invocation_with_arguments=16 -org.eclipse.jdt.core.formatter.alignment_for_cascading_method_invocation_with_arguments.count_dependent=16|-1|16 -org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 -org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 -org.eclipse.jdt.core.formatter.alignment_for_enum_constants=48 -org.eclipse.jdt.core.formatter.alignment_for_enum_constants.count_dependent=0|-1|0 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer.count_dependent=16|-1|16 -org.eclipse.jdt.core.formatter.alignment_for_field_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_for_statement=16 -org.eclipse.jdt.core.formatter.alignment_for_generic_type_arguments=16 -org.eclipse.jdt.core.formatter.alignment_for_generic_type_arguments.count_dependent=16|-1|16 -org.eclipse.jdt.core.formatter.alignment_for_local_variable_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields.count_dependent=16|-1|16 -org.eclipse.jdt.core.formatter.alignment_for_new_anonymous_class=0 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration.count_dependent=16|-1|16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration.count_dependent=16|-1|16 -org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 -org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation.count_dependent=16|-1|16 -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=48 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration.count_dependent=16|-1|16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration.count_dependent=16|-1|16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration.count_dependent=16|-1|16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration.count_dependent=16|-1|16 -org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 -org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_after_package=1 -org.eclipse.jdt.core.formatter.blank_lines_before_field=0 -org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 -org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 -org.eclipse.jdt.core.formatter.blank_lines_before_method=1 -org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 -org.eclipse.jdt.core.formatter.blank_lines_before_package=0 -org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 -org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 -org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true -org.eclipse.jdt.core.formatter.comment.format_block_comments=true -org.eclipse.jdt.core.formatter.comment.format_header=false -org.eclipse.jdt.core.formatter.comment.format_html=true -org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=true -org.eclipse.jdt.core.formatter.comment.format_source_code=true -org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true -org.eclipse.jdt.core.formatter.comment.indent_root_tags=true -org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert -org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert -org.eclipse.jdt.core.formatter.comment.line_length=80 -org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true -org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true -org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false -org.eclipse.jdt.core.formatter.comment_new_line_at_start_of_html_paragraph=true -org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=2 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 -org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off -org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on -org.eclipse.jdt.core.formatter.force_if_else_statement_brace=false -org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true -org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_empty_lines=false -org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true -org.eclipse.jdt.core.formatter.indentation.size=4 -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comment_prefix=insert -org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert -org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert -org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.join_lines_in_comments=true -org.eclipse.jdt.core.formatter.join_wrapped_lines=true -org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false -org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false -org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false -org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false -org.eclipse.jdt.core.formatter.lineSplit=100 -org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false -org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false -org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 -org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 -org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true -org.eclipse.jdt.core.formatter.sort_local_variable_annotations=false -org.eclipse.jdt.core.formatter.sort_member_annotations=false -org.eclipse.jdt.core.formatter.sort_package_annotations=false -org.eclipse.jdt.core.formatter.sort_parameter_annotations=false -org.eclipse.jdt.core.formatter.sort_type_annotations=false -org.eclipse.jdt.core.formatter.tabulation.char=space -org.eclipse.jdt.core.formatter.tabulation.size=2 -org.eclipse.jdt.core.formatter.use_on_off_tags=false -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false -org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true -org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true -org.eclipse.jdt.core.formatter.wrap_comment_inline_tags=false -org.eclipse.jdt.core.formatter.wrap_non_simple_local_variable_annotation=true -org.eclipse.jdt.core.formatter.wrap_non_simple_member_annotation=true -org.eclipse.jdt.core.formatter.wrap_non_simple_package_annotation=true -org.eclipse.jdt.core.formatter.wrap_non_simple_parameter_annotation=false -org.eclipse.jdt.core.formatter.wrap_non_simple_type_annotation=true -org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true -org.eclipse.jdt.core.formatter.wrap_prefer_two_fragments=false diff --git a/MyTracksLib/.settings/org.eclipse.jdt.ui.prefs b/MyTracksLib/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 189d09e17..000000000 --- a/MyTracksLib/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,61 +0,0 @@ -#Tue Jul 17 10:22:31 PDT 2012 -eclipse.preferences.version=1 -editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true -formatter_profile=_My Tracks -formatter_settings_version=13 -org.eclipse.jdt.ui.ignorelowercasenames=true -org.eclipse.jdt.ui.importorder=com;android;java;javax;org; -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=true -sp_cleanup.add_missing_deprecated_annotations=true -sp_cleanup.add_missing_methods=false -sp_cleanup.add_missing_nls_tags=false -sp_cleanup.add_missing_override_annotations=true -sp_cleanup.add_missing_override_annotations_interface_methods=true -sp_cleanup.add_serial_version_id=false -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.correct_indentation=false -sp_cleanup.format_source_code=false -sp_cleanup.format_source_code_changes_only=false -sp_cleanup.make_local_variable_final=false -sp_cleanup.make_parameters_final=false -sp_cleanup.make_private_fields_final=true -sp_cleanup.make_type_abstract_if_missing_method=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=false -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_method_accesses_with_declaring_class=false -sp_cleanup.remove_private_constructors=true -sp_cleanup.remove_trailing_whitespaces=false -sp_cleanup.remove_trailing_whitespaces_all=true -sp_cleanup.remove_trailing_whitespaces_ignore_empty=false -sp_cleanup.remove_unnecessary_casts=true -sp_cleanup.remove_unnecessary_nls_tags=false -sp_cleanup.remove_unused_imports=false -sp_cleanup.remove_unused_local_variables=false -sp_cleanup.remove_unused_private_fields=true -sp_cleanup.remove_unused_private_members=false -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_blocks_only_for_return_and_throw=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 diff --git a/MyTracksLib/AndroidManifest.xml b/MyTracksLib/AndroidManifest.xml deleted file mode 100644 index bf69ed909..000000000 --- a/MyTracksLib/AndroidManifest.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/MyTracksLib/libs/protobuf-java-2.3.0-lite.jar b/MyTracksLib/libs/protobuf-java-2.3.0-lite.jar deleted file mode 100644 index 9b6605da7..000000000 Binary files a/MyTracksLib/libs/protobuf-java-2.3.0-lite.jar and /dev/null differ diff --git a/MyTracksLib/lint.xml b/MyTracksLib/lint.xml deleted file mode 100644 index 6cc927866..000000000 --- a/MyTracksLib/lint.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/MyTracksLib/project.properties b/MyTracksLib/project.properties deleted file mode 100644 index 0e58ae1c0..000000000 --- a/MyTracksLib/project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# 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, -# "ant.properties", and override values to adapt the script to your -# project structure. - -android.library=true -# Project target. -target=android-17 diff --git a/MyTracksLib/proto/sensor.proto b/MyTracksLib/proto/sensor.proto deleted file mode 100644 index a3261d7f7..000000000 --- a/MyTracksLib/proto/sensor.proto +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2010 Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); you may not -// use this file except in compliance with the License. You may obtain a copy of -// the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations under -// the License. - -package com.google.android.apps.mytracks.content; - -option optimize_for = LITE_RUNTIME; - -// An enumeration of the state of a single sensor. -enum SensorState { - // There is no sensor. - NONE = 1; - - // Now initiating an outgoing connection. - CONNECTING = 2; - - // Now connected to a remote device. - CONNECTED = 3; - - // A state where the sensor is not connected. - DISCONNECTED = 4; - - // This is the only state where the sensor data can be used. - SENDING = 5; -}; - -// The state and possible reading for one integer sensor. -message SensorData { - required SensorState state = 1 [default = NONE]; - - // Value is only defined if state = SENDING. - optional int32 value = 2; -}; - -// A message to encapsulate sensor readings associated with a track point. -message SensorDataSet { - // This is a required field. - optional uint64 creation_time = 1 [default = 0]; - - optional SensorData heart_rate = 2; - optional SensorData cadence = 3; - optional SensorData power = 4; - optional SensorData battery_level = 5; -} \ No newline at end of file diff --git a/MyTracksLib/res/drawable-hdpi/ic_launcher_my_tracks.png b/MyTracksLib/res/drawable-hdpi/ic_launcher_my_tracks.png deleted file mode 100644 index 1f70e5ba7..000000000 Binary files a/MyTracksLib/res/drawable-hdpi/ic_launcher_my_tracks.png and /dev/null differ diff --git a/MyTracksLib/res/drawable-mdpi/ic_launcher_my_tracks.png b/MyTracksLib/res/drawable-mdpi/ic_launcher_my_tracks.png deleted file mode 100644 index 91b99dff4..000000000 Binary files a/MyTracksLib/res/drawable-mdpi/ic_launcher_my_tracks.png and /dev/null differ diff --git a/MyTracksLib/res/drawable-xhdpi/ic_launcher_my_tracks.png b/MyTracksLib/res/drawable-xhdpi/ic_launcher_my_tracks.png deleted file mode 100644 index 0d259e059..000000000 Binary files a/MyTracksLib/res/drawable-xhdpi/ic_launcher_my_tracks.png and /dev/null differ diff --git a/MyTracksLib/res/drawable-xxhdpi/ic_launcher_my_tracks.png b/MyTracksLib/res/drawable-xxhdpi/ic_launcher_my_tracks.png deleted file mode 100644 index 08bd7b777..000000000 Binary files a/MyTracksLib/res/drawable-xxhdpi/ic_launcher_my_tracks.png and /dev/null differ diff --git a/MyTracksLib/res/values/strings.xml b/MyTracksLib/res/values/strings.xml deleted file mode 100644 index 3688082e4..000000000 --- a/MyTracksLib/res/values/strings.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - My Tracks Base Library - diff --git a/MyTracksLib/res/values/third_party.xml b/MyTracksLib/res/values/third_party.xml deleted file mode 100644 index 5831ba65c..000000000 --- a/MyTracksLib/res/values/third_party.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - com.google.android.apps.mytracks.TRACK_NOTIFICATIONS - com.google.android.apps.mytracks.READ_TRACK_DATA - com.google.android.apps.mytracks.WRITE_TRACK_DATA - - com.google.android.apps.mytracks.TRACK_ID - com.google.android.apps.mytracks.TRACK_PAUSED - com.google.android.apps.mytracks.TRACK_RESUMED - com.google.android.apps.mytracks.TRACK_STARTED - com.google.android.apps.mytracks.TRACK_STOPPED - com.google.android.apps.mytracks.TRACK_UPDATE - - com.google.android.apps.mytracks.services.TrackRecordingService - com.google.android.maps.mytracks - \ No newline at end of file diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/ContentTypeIds.java b/MyTracksLib/src/com/google/android/apps/mytracks/content/ContentTypeIds.java deleted file mode 100644 index 72c4020ea..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/ContentTypeIds.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2010 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.google.android.apps.mytracks.content; - -/** - * Utilities for serializing primitive types. - * - * @author Rodrigo Damazio - */ -public class ContentTypeIds { - - private ContentTypeIds() {} - - public static final byte BOOLEAN_TYPE_ID = 0; - public static final byte LONG_TYPE_ID = 1; - public static final byte INT_TYPE_ID = 2; - public static final byte FLOAT_TYPE_ID = 3; - public static final byte DOUBLE_TYPE_ID = 4; - public static final byte STRING_TYPE_ID = 5; - public static final byte BLOB_TYPE_ID = 6; -} diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/DescriptionGenerator.java b/MyTracksLib/src/com/google/android/apps/mytracks/content/DescriptionGenerator.java deleted file mode 100644 index 6a489d40e..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/DescriptionGenerator.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2010 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.content; - -import com.google.android.apps.mytracks.stats.TripStatistics; - -import java.util.Vector; - -/** - * An interface for an object that can generate descriptions of track and - * waypoint. - * - * @author Sandor Dornbush - */ -public interface DescriptionGenerator { - - /** - * Generates a track description. - * - * @param track the track - * @param distances a vector of distances to generate the elevation chart - * @param elevations a vector of elevations to generate the elevation chart - * @param html true to output html, false to output plain text - */ - public String generateTrackDescription( - Track track, Vector distances, Vector elevations, boolean html); - - /** - * Generate a waypoint description from a trip statistics. - * - * @param tripStatistics the trip statistics - */ - public String generateWaypointDescription(TripStatistics tripStatistics); -} diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksLocation.java b/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksLocation.java deleted file mode 100644 index 081e5d6ec..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksLocation.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2010 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.content; - -import com.google.android.apps.mytracks.content.Sensor.SensorDataSet; - -import android.location.Location; - -/** - * This class extends the standard Android location with extra information. - * - * @author Sandor Dornbush - */ -public class MyTracksLocation extends Location { - - private SensorDataSet sensorDataSet = null; - - /** - * The id of this location from the provider. - */ - private int id = -1; - - public MyTracksLocation(Location location, Sensor.SensorDataSet sd) { - super(location); - this.sensorDataSet = sd; - } - - public MyTracksLocation(String provider) { - super(provider); - } - - public SensorDataSet getSensorDataSet() { - return sensorDataSet; - } - - public void setSensorDataSet(SensorDataSet sensorDataSet) { - this.sensorDataSet = sensorDataSet; - } - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public void reset() { - super.reset(); - sensorDataSet = null; - id = -1; - } -} diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtils.java b/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtils.java deleted file mode 100644 index 3bdb57c80..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtils.java +++ /dev/null @@ -1,402 +0,0 @@ -/* - * Copyright 2010 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.google.android.apps.mytracks.content; - -import com.google.android.apps.mytracks.content.Waypoint.WaypointType; - -import android.content.Context; -import android.database.Cursor; -import android.location.Location; -import android.location.LocationManager; -import android.net.Uri; - -import java.util.Iterator; -import java.util.List; - -/** - * Utilities to access data from the My Tracks content provider. - * - * @author Rodrigo Damazio - */ -public interface MyTracksProviderUtils { - - /** - * The authority (the first part of the URI) for the My Tracks content - * provider. - */ - public static final String AUTHORITY = "com.google.android.maps.mytracks"; - - /** - * Clears a track. Removes waypoints and trackpoints. Only keeps the track id. - * - * @param trackId the track id - */ - public void clearTrack(Context context, long trackId); - - /** - * Creates a {@link Track} from a cursor. - * - * @param cursor the cursor pointing to the track - */ - public Track createTrack(Cursor cursor); - - /** - * Deletes all tracks (including waypoints and track points). - */ - public void deleteAllTracks(Context context); - - /** - * Deletes a track. - * - * @param trackId the track id - */ - public void deleteTrack(Context context, long trackId); - - /** - * Gets all the tracks. If no track exists, an empty list is returned. - *

- * Note that the returned tracks do not have any track points attached. - */ - public List getAllTracks(); - - /** - * Gets the last track. Returns null if doesn't exist. - */ - public Track getLastTrack(); - - /** - * Gets a track by a track id. Returns null if not found. - *

- * Note that the returned track doesn't have any track points attached. - * - * @param trackId the track id. - */ - public Track getTrack(long trackId); - - /** - * Gets a track cursor. The caller owns the returned cursor and is responsible - * for closing it. - * - * @param selection the selection. Can be null - * @param selectionArgs the selection arguments. Can be null - * @param sortOrder the sort order. Can be null - */ - public Cursor getTrackCursor(String selection, String[] selectionArgs, String sortOrder); - - /** - * Inserts a track. - *

- * Note: This doesn't insert any track points. - * - * @param track the track - * @return the content provider URI of the inserted track. - */ - public Uri insertTrack(Track track); - - /** - * Updates a track. - *

- * Note: This doesn't update any track points. - * - * @param track the track - */ - public void updateTrack(Track track); - - /** - * Creates a waypoint from a cursor. - * - * @param cursor the cursor pointing to the waypoint - */ - public Waypoint createWaypoint(Cursor cursor); - - /** - * Deletes a waypoint. If deleting a statistics waypoint, this will also - * correct the next statistics waypoint after the deleted one to reflect the - * deletion. The generator is used to update the next statistics waypoint. - * - * @param waypointId the waypoint id - * @param descriptionGenerator the description generator. Can be null for - * waypoint marker - */ - public void deleteWaypoint(Context context, long waypointId, DescriptionGenerator descriptionGenerator); - - /** - * Gets the first waypoint id for a track. The first waypoint is special as it - * contains the stats for the track. Returns -1L if it doesn't exist. - * - * @param trackId the track id - */ - public long getFirstWaypointId(long trackId); - - /** - * Gets the last waypoint for a type. Returns null if it doesn't exist. - * - * @param trackId the track id - * @param waypointType the waypoint type - */ - public Waypoint getLastWaypoint(long trackId, WaypointType waypointType); - - /** - * Gets the next waypoint number for a type. Returns -1 if not able to get the - * next waypoint number. - * - * @param trackId the track id - * @param waypointType the waypoint type - */ - public int getNextWaypointNumber(long trackId, WaypointType waypointType); - - /** - * Gets a waypoint from a waypoint id. Returns null if not found. - * - * @param waypointId the waypoint id - */ - public Waypoint getWaypoint(long waypointId); - - /** - * Gets a waypoint cursor. The caller owns the returned cursor and is - * responsible for closing it. - * - * @param selection the selection. Can be null - * @param selectionArgs the selection arguments. Can be null - * @param sortOrder the sort order. Can be null - * @param maxWaypoints the maximum number of waypoints to return. -1 for no - * limit - */ - public Cursor getWaypointCursor( - String selection, String[] selectionArgs, String sortOrder, int maxWaypoints); - - /** - * Gets a waypoint cursor for a track. The caller owns the returned cursor and - * is responsible for closing it. - * - * @param trackId the track id - * @param minWaypointId the minimum waypoint id. -1L to ignore - * @param maxWaypoints the maximum number of waypoints to return. -1 for no - * limit - */ - public Cursor getWaypointCursor(long trackId, long minWaypointId, int maxWaypoints); - - /** - * Gets the number of waypoints for a track. - * - * @param trackId the track id - */ - public int getWaypointCount(long trackId); - - /** - * Inserts a waypoint. - * - * @param waypoint the waypoint - * @return the content provider URI of the inserted waypoint. - */ - public Uri insertWaypoint(Waypoint waypoint); - - /** - * Updates a waypoint. Returns true if successful. - * - * @param waypoint the waypoint - */ - public boolean updateWaypoint(Waypoint waypoint); - - /** - * Inserts multiple track points. - * - * @param locations an array of locations - * @param length the number of locations (from the beginning of the array) to - * insert, or -1 for all of them - * @param trackId the track id - * @return the number of points inserted - */ - public int bulkInsertTrackPoint(Location[] locations, int length, long trackId); - - /** - * Creates a location object from a cursor. - * - * @param cursor the cursor pointing to the location - */ - public Location createTrackPoint(Cursor cursor); - - /** - * Gets the first location id for a track. Returns -1L if it doesn't exist. - * - * @param trackId the track id - */ - public long getFirstTrackPointId(long trackId); - - /** - * Gets the last location id for a track. Returns -1L if it doesn't exist. - * - * @param trackId the track id - */ - public long getLastTrackPointId(long trackId); - - /** - * Gets the track point id of a location. - * - * @param trackId the track id - * @param location the location - * @return track point id if the location is in the track. -1L otherwise. - */ - public long getTrackPointId(long trackId, Location location); - - /** - * Gets the first valid location for a track. Returns null if it doesn't - * exist. - * - * @param trackId the track id - */ - public Location getFirstValidTrackPoint(long trackId); - - /** - * Gets the last valid location for a track. Returns null if it doesn't exist. - * - * @param trackId the track id - */ - public Location getLastValidTrackPoint(long trackId); - - - /** - * Gets the last valid location. - */ - public Location getLastValidTrackPoint(); - - /** - * Creates a location cursor. The caller owns the returned cursor and is - * responsible for closing it. - * - * @param trackId the track id - * @param startTrackPointId the starting track point id. -1L to ignore - * @param maxLocations maximum number of locations to return. -1 for no limit - * @param descending true to sort the result in descending order (latest - * location first) - */ - public Cursor getTrackPointCursor( - long trackId, long startTrackPointId, int maxLocations, boolean descending); - - /** - * Creates a new read-only iterator over a given track's points. It provides a - * lightweight way of iterating over long tracks without failing due to the - * underlying cursor limitations. Since it's a read-only iterator, - * {@link Iterator#remove()} always throws - * {@link UnsupportedOperationException}. Each call to - * {@link LocationIterator#next()} may advance to the next DB record, and if - * so, the iterator calls {@link LocationFactory#createLocation()} and - * populates it with information retrieved from the record. When done with - * iteration, {@link LocationIterator#close()} must be called. - * - * @param trackId the track id - * @param startTrackPointId the starting track point id. -1L to ignore - * @param descending true to sort the result in descending order (latest - * location first) - * @param locationFactory the location factory - */ - public LocationIterator getTrackPointLocationIterator( - long trackId, long startTrackPointId, boolean descending, LocationFactory locationFactory); - - /** - * Inserts a track point. - * - * @param location the location - * @param trackId the track id - * @return the content provider URI of the inserted track point - */ - public Uri insertTrackPoint(Location location, long trackId); - - /** - * A lightweight wrapper around the original {@link Cursor} with a method to - * clean up. - */ - public interface LocationIterator extends Iterator { - - /** - * Gets the most recently retrieved track point id by {@link #next()}. - */ - public long getLocationId(); - - /** - * Closes the iterator. - */ - public void close(); - } - - /** - * A factory for creating new {@link Location}. - */ - public interface LocationFactory { - - /** - * Creates a new {@link Location}. An implementation can create new - * instances or reuse existing instances for optimization. - */ - public Location createLocation(); - } - - /** - * The default {@link LocationFactory} which creates a location each time. - */ - public LocationFactory DEFAULT_LOCATION_FACTORY = new LocationFactory() { - @Override - public Location createLocation() { - return new MyTracksLocation(LocationManager.GPS_PROVIDER); - } - }; - - /** - * A factory which can produce instances of {@link MyTracksProviderUtils}, and - * can be overridden for testing. - */ - public static class Factory { - - private static Factory instance = new Factory(); - - /** - * Creates an instance of {@link MyTracksProviderUtils}. - * - * @param context the context - */ - public static MyTracksProviderUtils get(Context context) { - return instance.newForContext(context); - } - - /** - * Returns the factory instance. - */ - public static Factory getInstance() { - return instance; - } - - /** - * Overrides the factory instance for testing. Don't forget to set it back - * to the original value after testing. - * - * @param factory the factory - */ - public static void overrideInstance(Factory factory) { - instance = factory; - } - - /** - * Creates an instance of {@link MyTracksProviderUtils}. Allows subclasses - * to override for testing. - * - * @param context the context - */ - protected MyTracksProviderUtils newForContext(Context context) { - return new MyTracksProviderUtilsImpl(context.getContentResolver()); - } - } -} diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java b/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java deleted file mode 100644 index 2bcf13d60..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java +++ /dev/null @@ -1,1186 +0,0 @@ -/* - * Copyright 2008 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.google.android.apps.mytracks.content; - -import com.google.android.apps.mytracks.content.Sensor.SensorDataSet; -import com.google.android.apps.mytracks.content.Waypoint.WaypointType; -import com.google.android.apps.mytracks.stats.TripStatistics; -import com.google.android.apps.mytracks.util.FileUtils; -import com.google.protobuf.InvalidProtocolBufferException; - -import android.content.ContentResolver; -import android.content.ContentValues; -import android.content.Context; -import android.database.Cursor; -import android.location.Location; -import android.net.Uri; -import android.util.Log; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; -import java.util.NoSuchElementException; - -/** - * {@link MyTracksProviderUtils} implementation. - * - * @author Leif Hendrik Wilden - */ -public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { - - private static final String TAG = MyTracksProviderUtilsImpl.class.getSimpleName(); - - private static final int MAX_LATITUDE = 90000000; - - private final ContentResolver contentResolver; - private int defaultCursorBatchSize = 2000; - - public MyTracksProviderUtilsImpl(ContentResolver contentResolver) { - this.contentResolver = contentResolver; - } - - @Override - public void clearTrack(Context context, long trackId) { - deleteTrackPointsAndWaypoints(context, trackId); - Track track = new Track(); - track.setId(trackId); - updateTrack(track); - } - - @Override - public Track createTrack(Cursor cursor) { - int idIndex = cursor.getColumnIndexOrThrow(TracksColumns._ID); - int nameIndex = cursor.getColumnIndexOrThrow(TracksColumns.NAME); - int descriptionIndex = cursor.getColumnIndexOrThrow(TracksColumns.DESCRIPTION); - int categoryIndex = cursor.getColumnIndexOrThrow(TracksColumns.CATEGORY); - int startIdIndex = cursor.getColumnIndexOrThrow(TracksColumns.STARTID); - int stopIdIndex = cursor.getColumnIndexOrThrow(TracksColumns.STOPID); - int startTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.STARTTIME); - int stopTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.STOPTIME); - int numPointsIndex = cursor.getColumnIndexOrThrow(TracksColumns.NUMPOINTS); - int totalDistanceIndex = cursor.getColumnIndexOrThrow(TracksColumns.TOTALDISTANCE); - int totalTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.TOTALTIME); - int movingTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.MOVINGTIME); - int minLatIndex = cursor.getColumnIndexOrThrow(TracksColumns.MINLAT); - int maxLatIndex = cursor.getColumnIndexOrThrow(TracksColumns.MAXLAT); - int minLonIndex = cursor.getColumnIndexOrThrow(TracksColumns.MINLON); - int maxLonIndex = cursor.getColumnIndexOrThrow(TracksColumns.MAXLON); - int maxSpeedIndex = cursor.getColumnIndexOrThrow(TracksColumns.MAXSPEED); - int minElevationIndex = cursor.getColumnIndexOrThrow(TracksColumns.MINELEVATION); - int maxElevationIndex = cursor.getColumnIndexOrThrow(TracksColumns.MAXELEVATION); - int elevationGainIndex = cursor.getColumnIndexOrThrow(TracksColumns.ELEVATIONGAIN); - int minGradeIndex = cursor.getColumnIndexOrThrow(TracksColumns.MINGRADE); - int maxGradeIndex = cursor.getColumnIndexOrThrow(TracksColumns.MAXGRADE); - int iconIndex = cursor.getColumnIndexOrThrow(TracksColumns.ICON); - int driveIdIndex = cursor.getColumnIndexOrThrow(TracksColumns.DRIVEID); - int modifiedTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.MODIFIEDTIME); - int sharedWithMeIndex = cursor.getColumnIndexOrThrow(TracksColumns.SHAREDWITHME); - int sharedOwnerIndex = cursor.getColumnIndexOrThrow(TracksColumns.SHAREDOWNER); - int caloriesIndex = cursor.getColumnIndexOrThrow(TracksColumns.CALORIE); - - Track track = new Track(); - TripStatistics tripStatistics = track.getTripStatistics(); - if (!cursor.isNull(idIndex)) { - track.setId(cursor.getLong(idIndex)); - } - if (!cursor.isNull(nameIndex)) { - track.setName(cursor.getString(nameIndex)); - } - if (!cursor.isNull(descriptionIndex)) { - track.setDescription(cursor.getString(descriptionIndex)); - } - if (!cursor.isNull(categoryIndex)) { - track.setCategory(cursor.getString(categoryIndex)); - } - if (!cursor.isNull(startIdIndex)) { - track.setStartId(cursor.getLong(startIdIndex)); - } - if (!cursor.isNull(stopIdIndex)) { - track.setStopId(cursor.getLong(stopIdIndex)); - } - if (!cursor.isNull(startTimeIndex)) { - tripStatistics.setStartTime(cursor.getLong(startTimeIndex)); - } - if (!cursor.isNull(stopTimeIndex)) { - tripStatistics.setStopTime(cursor.getLong(stopTimeIndex)); - } - if (!cursor.isNull(numPointsIndex)) { - track.setNumberOfPoints(cursor.getInt(numPointsIndex)); - } - if (!cursor.isNull(totalDistanceIndex)) { - tripStatistics.setTotalDistance(cursor.getFloat(totalDistanceIndex)); - } - if (!cursor.isNull(totalTimeIndex)) { - tripStatistics.setTotalTime(cursor.getLong(totalTimeIndex)); - } - if (!cursor.isNull(movingTimeIndex)) { - tripStatistics.setMovingTime(cursor.getLong(movingTimeIndex)); - } - if (!cursor.isNull(minLatIndex) && !cursor.isNull(maxLatIndex) && !cursor.isNull(minLonIndex) - && !cursor.isNull(maxLonIndex)) { - int bottom = cursor.getInt(minLatIndex); - int top = cursor.getInt(maxLatIndex); - int left = cursor.getInt(minLonIndex); - int right = cursor.getInt(maxLonIndex); - tripStatistics.setBounds(left, top, right, bottom); - } - if (!cursor.isNull(maxSpeedIndex)) { - tripStatistics.setMaxSpeed(cursor.getFloat(maxSpeedIndex)); - } - if (!cursor.isNull(minElevationIndex)) { - tripStatistics.setMinElevation(cursor.getFloat(minElevationIndex)); - } - if (!cursor.isNull(maxElevationIndex)) { - tripStatistics.setMaxElevation(cursor.getFloat(maxElevationIndex)); - } - if (!cursor.isNull(elevationGainIndex)) { - tripStatistics.setTotalElevationGain(cursor.getFloat(elevationGainIndex)); - } - if (!cursor.isNull(minGradeIndex)) { - tripStatistics.setMinGrade(cursor.getFloat(minGradeIndex)); - } - if (!cursor.isNull(maxGradeIndex)) { - tripStatistics.setMaxGrade(cursor.getFloat(maxGradeIndex)); - } - if (!cursor.isNull(caloriesIndex)) { - tripStatistics.setCalorie(cursor.getFloat(caloriesIndex)); - } - if (!cursor.isNull(iconIndex)) { - track.setIcon(cursor.getString(iconIndex)); - } - if (!cursor.isNull(driveIdIndex)) { - track.setDriveId(cursor.getString(driveIdIndex)); - } - if (!cursor.isNull(modifiedTimeIndex)) { - track.setModifiedTime(cursor.getLong(modifiedTimeIndex)); - } - if (!cursor.isNull(sharedWithMeIndex)) { - track.setSharedWithMe(cursor.getInt(sharedWithMeIndex) == 1); - } - if (!cursor.isNull(sharedOwnerIndex)) { - track.setSharedOwner(cursor.getString(sharedOwnerIndex)); - } - return track; - } - - @Override - public void deleteAllTracks(Context context) { - contentResolver.delete(TrackPointsColumns.CONTENT_URI, null, null); - contentResolver.delete(WaypointsColumns.CONTENT_URI, null, null); - // Delete tracks last since it triggers a database vaccum call - contentResolver.delete(TracksColumns.CONTENT_URI, null, null); - - File dir = FileUtils.getPhotoDir(); - deleteDirectoryRecurse(context, dir); - } - - @Override - public void deleteTrack(Context context, long trackId) { - deleteTrackPointsAndWaypoints(context, trackId); - - // Delete track last since it triggers a database vaccum call - contentResolver.delete(TracksColumns.CONTENT_URI, TracksColumns._ID + "=?", - new String[] { Long.toString(trackId) }); - } - - /** - * Deletes track points and waypoints of a track. Assumes - * {@link TracksColumns#STARTID}, {@link TracksColumns#STOPID}, and - * {@link TracksColumns#NUMPOINTS} will be updated by the caller. - * - * @param trackId the track id - */ - private void deleteTrackPointsAndWaypoints(Context context, long trackId) { - Track track = getTrack(trackId); - if (track != null) { - String where = TrackPointsColumns._ID + ">=? AND " + TrackPointsColumns._ID + "<=?"; - String[] selectionArgs = new String[] { - Long.toString(track.getStartId()), Long.toString(track.getStopId()) }; - contentResolver.delete(TrackPointsColumns.CONTENT_URI, where, selectionArgs); - } - contentResolver.delete(WaypointsColumns.CONTENT_URI, WaypointsColumns.TRACKID + "=?", - new String[] { Long.toString(trackId) }); - deleteDirectoryRecurse(context, FileUtils.getPhotoDir(trackId)); - } - - /** - * Delete the directory recursively. - * - * @param dir the directory - */ - private void deleteDirectoryRecurse(Context context, File dir) { - if (FileUtils.isDirectory(dir)) { - for (File child : dir.listFiles()) { - deleteDirectoryRecurse(context, child); - } - } - if (dir.exists()) { - dir.delete(); - FileUtils.updateMediaScanner(context, Uri.fromFile(dir)); - } - } - - @Override - public List getAllTracks() { - ArrayList tracks = new ArrayList(); - Cursor cursor = null; - try { - cursor = getTrackCursor(null, null, null, TracksColumns._ID); - if (cursor != null && cursor.moveToFirst()) { - tracks.ensureCapacity(cursor.getCount()); - do { - tracks.add(createTrack(cursor)); - } while (cursor.moveToNext()); - } - } finally { - if (cursor != null) { - cursor.close(); - } - } - return tracks; - } - - @Override - public Track getLastTrack() { - Cursor cursor = null; - try { - // Using the same order as shown in the track list - cursor = getTrackCursor(null, null, null, - TracksColumns.SHAREDWITHME + " ASC, " + TracksColumns.STARTTIME + " DESC"); - if (cursor != null && cursor.moveToNext()) { - return createTrack(cursor); - } - } finally { - if (cursor != null) { - cursor.close(); - } - } - return null; - } - - @Override - public Track getTrack(long trackId) { - if (trackId < 0) { - return null; - } - Cursor cursor = null; - try { - cursor = getTrackCursor(null, TracksColumns._ID + "=?", - new String[] { Long.toString(trackId) }, TracksColumns._ID); - if (cursor != null && cursor.moveToNext()) { - return createTrack(cursor); - } - } finally { - if (cursor != null) { - cursor.close(); - } - } - return null; - } - - @Override - public Cursor getTrackCursor(String selection, String[] selectionArgs, String sortOrder) { - return getTrackCursor(null, selection, selectionArgs, sortOrder); - } - - @Override - public Uri insertTrack(Track track) { - return contentResolver.insert(TracksColumns.CONTENT_URI, createContentValues(track)); - } - - @Override - public void updateTrack(Track track) { - contentResolver.update(TracksColumns.CONTENT_URI, createContentValues(track), - TracksColumns._ID + "=?", new String[] { Long.toString(track.getId()) }); - } - - private ContentValues createContentValues(Track track) { - ContentValues values = new ContentValues(); - TripStatistics tripStatistics = track.getTripStatistics(); - - // Value < 0 indicates no id is available - if (track.getId() >= 0) { - values.put(TracksColumns._ID, track.getId()); - } - values.put(TracksColumns.NAME, track.getName()); - values.put(TracksColumns.DESCRIPTION, track.getDescription()); - values.put(TracksColumns.CATEGORY, track.getCategory()); - values.put(TracksColumns.STARTID, track.getStartId()); - values.put(TracksColumns.STOPID, track.getStopId()); - values.put(TracksColumns.STARTTIME, tripStatistics.getStartTime()); - values.put(TracksColumns.STOPTIME, tripStatistics.getStopTime()); - values.put(TracksColumns.NUMPOINTS, track.getNumberOfPoints()); - values.put(TracksColumns.TOTALDISTANCE, tripStatistics.getTotalDistance()); - values.put(TracksColumns.TOTALTIME, tripStatistics.getTotalTime()); - values.put(TracksColumns.MOVINGTIME, tripStatistics.getMovingTime()); - values.put(TracksColumns.MINLAT, tripStatistics.getBottom()); - values.put(TracksColumns.MAXLAT, tripStatistics.getTop()); - values.put(TracksColumns.MINLON, tripStatistics.getLeft()); - values.put(TracksColumns.MAXLON, tripStatistics.getRight()); - values.put(TracksColumns.AVGSPEED, tripStatistics.getAverageSpeed()); - values.put(TracksColumns.AVGMOVINGSPEED, tripStatistics.getAverageMovingSpeed()); - values.put(TracksColumns.MAXSPEED, tripStatistics.getMaxSpeed()); - values.put(TracksColumns.MINELEVATION, tripStatistics.getMinElevation()); - values.put(TracksColumns.MAXELEVATION, tripStatistics.getMaxElevation()); - values.put(TracksColumns.ELEVATIONGAIN, tripStatistics.getTotalElevationGain()); - values.put(TracksColumns.MINGRADE, tripStatistics.getMinGrade()); - values.put(TracksColumns.MAXGRADE, tripStatistics.getMaxGrade()); - values.put(TracksColumns.ICON, track.getIcon()); - values.put(TracksColumns.DRIVEID, track.getDriveId()); - values.put(TracksColumns.MODIFIEDTIME, track.getModifiedTime()); - values.put(TracksColumns.SHAREDWITHME, track.isSharedWithMe()); - values.put(TracksColumns.SHAREDOWNER, track.getSharedOwner()); - values.put(TracksColumns.CALORIE, tripStatistics.getCalorie()); - - return values; - } - - /** - * Gets a track cursor. - * - * @param projection the projection - * @param selection the selection - * @param selectionArgs the selection arguments - * @param sortOrder the sort oder - */ - private Cursor getTrackCursor( - String[] projection, String selection, String[] selectionArgs, String sortOrder) { - return contentResolver.query( - TracksColumns.CONTENT_URI, projection, selection, selectionArgs, sortOrder); - } - - @Override - public Waypoint createWaypoint(Cursor cursor) { - int idIndex = cursor.getColumnIndexOrThrow(WaypointsColumns._ID); - int nameIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.NAME); - int descriptionIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.DESCRIPTION); - int categoryIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.CATEGORY); - int iconIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.ICON); - int trackIdIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.TRACKID); - int typeIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.TYPE); - int lengthIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.LENGTH); - int durationIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.DURATION); - int startTimeIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.STARTTIME); - int startIdIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.STARTID); - int stopIdIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.STOPID); - int longitudeIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.LONGITUDE); - int latitudeIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.LATITUDE); - int timeIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.TIME); - int altitudeIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.ALTITUDE); - int accuracyIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.ACCURACY); - int speedIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.SPEED); - int bearingIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.BEARING); - int totalDistanceIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.TOTALDISTANCE); - int totalTimeIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.TOTALTIME); - int movingTimeIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.MOVINGTIME); - int maxSpeedIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.MAXSPEED); - int minElevationIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.MINELEVATION); - int maxElevationIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.MAXELEVATION); - int elevationGainIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.ELEVATIONGAIN); - int minGradeIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.MINGRADE); - int maxGradeIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.MAXGRADE); - int calorieIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.CALORIE); - int photoUrlIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.PHOTOURL); - - Waypoint waypoint = new Waypoint(); - - if (!cursor.isNull(idIndex)) { - waypoint.setId(cursor.getLong(idIndex)); - } - if (!cursor.isNull(nameIndex)) { - waypoint.setName(cursor.getString(nameIndex)); - } - if (!cursor.isNull(descriptionIndex)) { - waypoint.setDescription(cursor.getString(descriptionIndex)); - } - if (!cursor.isNull(categoryIndex)) { - waypoint.setCategory(cursor.getString(categoryIndex)); - } - if (!cursor.isNull(iconIndex)) { - waypoint.setIcon(cursor.getString(iconIndex)); - } - if (!cursor.isNull(trackIdIndex)) { - waypoint.setTrackId(cursor.getLong(trackIdIndex)); - } - if (!cursor.isNull(typeIndex)) { - waypoint.setType(WaypointType.values()[cursor.getInt(typeIndex)]); - } - if (!cursor.isNull(lengthIndex)) { - waypoint.setLength(cursor.getFloat(lengthIndex)); - } - if (!cursor.isNull(durationIndex)) { - waypoint.setDuration(cursor.getLong(durationIndex)); - } - if (!cursor.isNull(startIdIndex)) { - waypoint.setStartId(cursor.getLong(startIdIndex)); - } - if (!cursor.isNull(stopIdIndex)) { - waypoint.setStopId(cursor.getLong(stopIdIndex)); - } - - Location location = new Location(""); - if (!cursor.isNull(longitudeIndex) && !cursor.isNull(latitudeIndex)) { - location.setLongitude(((double) cursor.getInt(longitudeIndex)) / 1E6); - location.setLatitude(((double) cursor.getInt(latitudeIndex)) / 1E6); - } - if (!cursor.isNull(timeIndex)) { - location.setTime(cursor.getLong(timeIndex)); - } - if (!cursor.isNull(altitudeIndex)) { - location.setAltitude(cursor.getFloat(altitudeIndex)); - } - if (!cursor.isNull(accuracyIndex)) { - location.setAccuracy(cursor.getFloat(accuracyIndex)); - } - if (!cursor.isNull(speedIndex)) { - location.setSpeed(cursor.getFloat(speedIndex)); - } - if (!cursor.isNull(bearingIndex)) { - location.setBearing(cursor.getFloat(bearingIndex)); - } - waypoint.setLocation(location); - - TripStatistics tripStatistics = new TripStatistics(); - boolean hasTripStatistics = false; - if (!cursor.isNull(startTimeIndex)) { - tripStatistics.setStartTime(cursor.getLong(startTimeIndex)); - hasTripStatistics = true; - } - if (!cursor.isNull(totalDistanceIndex)) { - tripStatistics.setTotalDistance(cursor.getFloat(totalDistanceIndex)); - hasTripStatistics = true; - } - if (!cursor.isNull(totalTimeIndex)) { - tripStatistics.setTotalTime(cursor.getLong(totalTimeIndex)); - hasTripStatistics = true; - } - if (!cursor.isNull(movingTimeIndex)) { - tripStatistics.setMovingTime(cursor.getLong(movingTimeIndex)); - hasTripStatistics = true; - } - if (!cursor.isNull(maxSpeedIndex)) { - tripStatistics.setMaxSpeed(cursor.getFloat(maxSpeedIndex)); - hasTripStatistics = true; - } - if (!cursor.isNull(minElevationIndex)) { - tripStatistics.setMinElevation(cursor.getFloat(minElevationIndex)); - hasTripStatistics = true; - } - if (!cursor.isNull(maxElevationIndex)) { - tripStatistics.setMaxElevation(cursor.getFloat(maxElevationIndex)); - hasTripStatistics = true; - } - if (!cursor.isNull(elevationGainIndex)) { - tripStatistics.setTotalElevationGain(cursor.getFloat(elevationGainIndex)); - hasTripStatistics = true; - } - if (!cursor.isNull(minGradeIndex)) { - tripStatistics.setMinGrade(cursor.getFloat(minGradeIndex)); - hasTripStatistics = true; - } - if (!cursor.isNull(maxGradeIndex)) { - tripStatistics.setMaxGrade(cursor.getFloat(maxGradeIndex)); - hasTripStatistics = true; - } - if (!cursor.isNull(calorieIndex)) { - tripStatistics.setCalorie(cursor.getFloat(calorieIndex)); - hasTripStatistics = true; - } - if (hasTripStatistics) { - waypoint.setTripStatistics(tripStatistics); - } - - if (!cursor.isNull(photoUrlIndex)) { - waypoint.setPhotoUrl(cursor.getString(photoUrlIndex)); - } - return waypoint; - } - - @Override - public void deleteWaypoint(Context context, long waypointId, DescriptionGenerator descriptionGenerator) { - final Waypoint waypoint = getWaypoint(waypointId); - if (waypoint != null && waypoint.getType() == WaypointType.STATISTICS - && descriptionGenerator != null) { - final Waypoint nextWaypoint = getNextStatisticsWaypointAfter(waypoint); - if (nextWaypoint == null) { - Log.d(TAG, "Unable to find the next statistics marker after deleting one."); - } else { - nextWaypoint.getTripStatistics().merge(waypoint.getTripStatistics()); - nextWaypoint.setDescription( - descriptionGenerator.generateWaypointDescription(nextWaypoint.getTripStatistics())); - if (!updateWaypoint(nextWaypoint)) { - Log.e(TAG, "Unable to update the next statistics marker after deleting one."); - } - } - } - if (waypoint != null) { - String photoUrl = waypoint.getPhotoUrl(); - if (photoUrl != null && !photoUrl.equals("")) { - Uri uri = Uri.parse(photoUrl); - File file = new File(uri.getPath()); - if (file.exists()) { - File parent = file.getParentFile(); - file.delete(); - FileUtils.updateMediaScanner(context, uri); - if (parent.listFiles().length == 0) { - parent.delete(); - } - } - } - } - contentResolver.delete(WaypointsColumns.CONTENT_URI, WaypointsColumns._ID + "=?", - new String[] { Long.toString(waypointId) }); - } - - @Override - public long getFirstWaypointId(long trackId) { - if (trackId < 0) { - return -1L; - } - Cursor cursor = null; - try { - cursor = getWaypointCursor(new String[] { WaypointsColumns._ID }, - WaypointsColumns.TRACKID + "=?", new String[] { Long.toString(trackId) }, - WaypointsColumns._ID, 1); - if (cursor != null && cursor.moveToFirst()) { - return cursor.getLong(cursor.getColumnIndexOrThrow(WaypointsColumns._ID)); - } - } finally { - if (cursor != null) { - cursor.close(); - } - } - return -1L; - } - - @Override - public Waypoint getLastWaypoint(long trackId, WaypointType waypointType) { - if (trackId < 0) { - return null; - } - Cursor cursor = null; - try { - String selection = WaypointsColumns.TRACKID + "=? AND " + WaypointsColumns.TYPE + "=?"; - String[] selectionArgs = new String[] { - Long.toString(trackId), Integer.toString(waypointType.ordinal()) }; - cursor = getWaypointCursor(null, selection, selectionArgs, WaypointsColumns._ID + " DESC", 1); - if (cursor != null && cursor.moveToFirst()) { - return createWaypoint(cursor); - } - } finally { - if (cursor != null) { - cursor.close(); - } - } - return null; - } - - @Override - public int getNextWaypointNumber(long trackId, WaypointType waypointType) { - if (trackId < 0) { - return -1; - } - Cursor cursor = null; - try { - String[] projection = { WaypointsColumns._ID }; - String selection = WaypointsColumns.TRACKID + "=? AND " + WaypointsColumns.TYPE + "=?"; - String[] selectionArgs = new String[] { - Long.toString(trackId), Integer.toString(waypointType.ordinal()) }; - cursor = getWaypointCursor(projection, selection, selectionArgs, WaypointsColumns._ID, -1); - if (cursor != null) { - int count = cursor.getCount(); - /* - * For statistics markers, the first marker is for the track statistics, - * so return the count as the next user visible number. - */ - return waypointType == WaypointType.STATISTICS ? count : count + 1; - } - } finally { - if (cursor != null) { - cursor.close(); - } - } - return -1; - } - - @Override - public Waypoint getWaypoint(long waypointId) { - if (waypointId < 0) { - return null; - } - Cursor cursor = null; - try { - cursor = getWaypointCursor(null, WaypointsColumns._ID + "=?", - new String[] { Long.toString(waypointId) }, WaypointsColumns._ID, 1); - if (cursor != null && cursor.moveToFirst()) { - return createWaypoint(cursor); - } - } finally { - if (cursor != null) { - cursor.close(); - } - } - return null; - } - - @Override - public Cursor getWaypointCursor( - String selection, String[] selectionArgs, String sortOrder, int maxWaypoints) { - return getWaypointCursor(null, selection, selectionArgs, sortOrder, maxWaypoints); - } - - @Override - public Cursor getWaypointCursor(long trackId, long minWaypointId, int maxWaypoints) { - if (trackId < 0) { - return null; - } - - String selection; - String[] selectionArgs; - if (minWaypointId >= 0) { - selection = WaypointsColumns.TRACKID + "=? AND " + WaypointsColumns._ID + ">=?"; - selectionArgs = new String[] { Long.toString(trackId), Long.toString(minWaypointId) }; - } else { - selection = WaypointsColumns.TRACKID + "=?"; - selectionArgs = new String[] { Long.toString(trackId) }; - } - return getWaypointCursor(null, selection, selectionArgs, WaypointsColumns._ID, maxWaypoints); - } - - @Override - public int getWaypointCount(long trackId) { - if (trackId < 0) { - return 0; - } - - String[] projection = new String[] { "count(*) AS count" }; - String selection = WaypointsColumns.TRACKID + "=?"; - String[] selectionArgs = new String[] { Long.toString(trackId) }; - Cursor cursor = contentResolver.query( - WaypointsColumns.CONTENT_URI, projection, selection, selectionArgs, WaypointsColumns._ID); - - cursor.moveToFirst(); - int count = cursor.getInt(0); - // not count the first waypoint - return count > 0 ? count - 1 : 0; - } - - @Override - public Uri insertWaypoint(Waypoint waypoint) { - waypoint.setId(-1L); - return contentResolver.insert(WaypointsColumns.CONTENT_URI, createContentValues(waypoint)); - } - - @Override - public boolean updateWaypoint(Waypoint waypoint) { - int rows = contentResolver.update(WaypointsColumns.CONTENT_URI, createContentValues(waypoint), - WaypointsColumns._ID + "=?", new String[] { Long.toString(waypoint.getId()) }); - return rows == 1; - } - - ContentValues createContentValues(Waypoint waypoint) { - ContentValues values = new ContentValues(); - - // Value < 0 indicates no id is available - if (waypoint.getId() >= 0) { - values.put(WaypointsColumns._ID, waypoint.getId()); - } - values.put(WaypointsColumns.NAME, waypoint.getName()); - values.put(WaypointsColumns.DESCRIPTION, waypoint.getDescription()); - values.put(WaypointsColumns.CATEGORY, waypoint.getCategory()); - values.put(WaypointsColumns.ICON, waypoint.getIcon()); - values.put(WaypointsColumns.TRACKID, waypoint.getTrackId()); - values.put(WaypointsColumns.TYPE, waypoint.getType().ordinal()); - values.put(WaypointsColumns.LENGTH, waypoint.getLength()); - values.put(WaypointsColumns.DURATION, waypoint.getDuration()); - values.put(WaypointsColumns.STARTID, waypoint.getStartId()); - values.put(WaypointsColumns.STOPID, waypoint.getStopId()); - - Location location = waypoint.getLocation(); - if (location != null) { - values.put(WaypointsColumns.LONGITUDE, (int) (location.getLongitude() * 1E6)); - values.put(WaypointsColumns.LATITUDE, (int) (location.getLatitude() * 1E6)); - values.put(WaypointsColumns.TIME, location.getTime()); - if (location.hasAltitude()) { - values.put(WaypointsColumns.ALTITUDE, location.getAltitude()); - } - if (location.hasAccuracy()) { - values.put(WaypointsColumns.ACCURACY, location.getAccuracy()); - } - if (location.hasSpeed()) { - values.put(WaypointsColumns.SPEED, location.getSpeed()); - } - if (location.hasBearing()) { - values.put(WaypointsColumns.BEARING, location.getBearing()); - } - } - - TripStatistics tripStatistics = waypoint.getTripStatistics(); - if (tripStatistics != null) { - values.put(WaypointsColumns.STARTTIME, tripStatistics.getStartTime()); - values.put(WaypointsColumns.TOTALDISTANCE, tripStatistics.getTotalDistance()); - values.put(WaypointsColumns.TOTALTIME, tripStatistics.getTotalTime()); - values.put(WaypointsColumns.MOVINGTIME, tripStatistics.getMovingTime()); - values.put(WaypointsColumns.AVGSPEED, tripStatistics.getAverageSpeed()); - values.put(WaypointsColumns.AVGMOVINGSPEED, tripStatistics.getAverageMovingSpeed()); - values.put(WaypointsColumns.MAXSPEED, tripStatistics.getMaxSpeed()); - values.put(WaypointsColumns.MINELEVATION, tripStatistics.getMinElevation()); - values.put(WaypointsColumns.MAXELEVATION, tripStatistics.getMaxElevation()); - values.put(WaypointsColumns.ELEVATIONGAIN, tripStatistics.getTotalElevationGain()); - values.put(WaypointsColumns.MINGRADE, tripStatistics.getMinGrade()); - values.put(WaypointsColumns.MAXGRADE, tripStatistics.getMaxGrade()); - values.put(WaypointsColumns.CALORIE, tripStatistics.getCalorie()); - } - - values.put(WaypointsColumns.PHOTOURL, waypoint.getPhotoUrl()); - return values; - } - - private Waypoint getNextStatisticsWaypointAfter(Waypoint waypoint) { - Cursor cursor = null; - try { - String selection = WaypointsColumns._ID + ">? AND " + WaypointsColumns.TRACKID + "=? AND " - + WaypointsColumns.TYPE + "=" + WaypointType.STATISTICS.ordinal(); - String[] selectionArgs = new String[] { - Long.toString(waypoint.getId()), Long.toString(waypoint.getTrackId()) }; - cursor = getWaypointCursor(null, selection, selectionArgs, WaypointsColumns._ID, 1); - if (cursor != null && cursor.moveToFirst()) { - return createWaypoint(cursor); - } - } finally { - if (cursor != null) { - cursor.close(); - } - } - return null; - } - - /** - * Gets a waypoint cursor. - * - * @param projection the projection - * @param selection the selection - * @param selectionArgs the selection args - * @param sortOrder the sort order - * @param maxWaypoints the maximum number of waypoints - */ - private Cursor getWaypointCursor(String[] projection, String selection, String[] selectionArgs, - String sortOrder, int maxWaypoints) { - if (sortOrder == null) { - sortOrder = WaypointsColumns._ID; - } - if (maxWaypoints >= 0) { - sortOrder += " LIMIT " + maxWaypoints; - } - return contentResolver.query( - WaypointsColumns.CONTENT_URI, projection, selection, selectionArgs, sortOrder); - } - - @Override - public int bulkInsertTrackPoint(Location[] locations, int length, long trackId) { - if (length == -1) { - length = locations.length; - } - ContentValues[] values = new ContentValues[length]; - for (int i = 0; i < length; i++) { - values[i] = createContentValues(locations[i], trackId); - } - return contentResolver.bulkInsert(TrackPointsColumns.CONTENT_URI, values); - } - - @Override - public Location createTrackPoint(Cursor cursor) { - Location location = new MyTracksLocation(""); - fillTrackPoint(cursor, new CachedTrackPointsIndexes(cursor), location); - return location; - } - - @Override - public long getFirstTrackPointId(long trackId) { - if (trackId < 0) { - return -1L; - } - Cursor cursor = null; - try { - String selection = TrackPointsColumns._ID + "=(select min(" + TrackPointsColumns._ID - + ") from " + TrackPointsColumns.TABLE_NAME + " WHERE " + TrackPointsColumns.TRACKID - + "=?)"; - String[] selectionArgs = new String[] { Long.toString(trackId) }; - cursor = getTrackPointCursor(new String[] { TrackPointsColumns._ID }, selection, - selectionArgs, TrackPointsColumns._ID); - if (cursor != null && cursor.moveToFirst()) { - return cursor.getLong(cursor.getColumnIndexOrThrow(TrackPointsColumns._ID)); - } - } finally { - if (cursor != null) { - cursor.close(); - } - } - return -1L; - } - - @Override - public long getLastTrackPointId(long trackId) { - if (trackId < 0) { - return -1L; - } - Cursor cursor = null; - try { - String selection = TrackPointsColumns._ID + "=(select max(" + TrackPointsColumns._ID - + ") from " + TrackPointsColumns.TABLE_NAME + " WHERE " + TrackPointsColumns.TRACKID - + "=?)"; - String[] selectionArgs = new String[] { Long.toString(trackId) }; - cursor = getTrackPointCursor(new String[] { TrackPointsColumns._ID }, selection, - selectionArgs, TrackPointsColumns._ID); - if (cursor != null && cursor.moveToFirst()) { - return cursor.getLong(cursor.getColumnIndexOrThrow(TrackPointsColumns._ID)); - } - } finally { - if (cursor != null) { - cursor.close(); - } - } - return -1L; - } - - @Override - public long getTrackPointId(long trackId, Location location) { - if (trackId < 0) { - return -1L; - } - Cursor cursor = null; - try { - String selection = TrackPointsColumns._ID + "=(select max(" + TrackPointsColumns._ID - + ") from " + TrackPointsColumns.TABLE_NAME + " WHERE " + TrackPointsColumns.TRACKID - + "=? AND " + TrackPointsColumns.TIME + "=?)"; - String[] selectionArgs = new String[] { - Long.toString(trackId), Long.toString(location.getTime()) }; - cursor = getTrackPointCursor(new String[] { TrackPointsColumns._ID }, selection, - selectionArgs, TrackPointsColumns._ID); - if (cursor != null && cursor.moveToFirst()) { - return cursor.getLong(cursor.getColumnIndexOrThrow(TrackPointsColumns._ID)); - } - } finally { - if (cursor != null) { - cursor.close(); - } - } - return -1L; - } - - @Override - public Location getFirstValidTrackPoint(long trackId) { - if (trackId < 0) { - return null; - } - String selection = TrackPointsColumns._ID + "=(select min(" + TrackPointsColumns._ID + ") from " - + TrackPointsColumns.TABLE_NAME + " WHERE " + TrackPointsColumns.TRACKID + "=? AND " - + TrackPointsColumns.LATITUDE + "<=" + MAX_LATITUDE + ")"; - String[] selectionArgs = new String[] { Long.toString(trackId) }; - return findTrackPointBy(selection, selectionArgs); - } - - @Override - public Location getLastValidTrackPoint(long trackId) { - if (trackId < 0) { - return null; - } - String selection = TrackPointsColumns._ID + "=(select max(" + TrackPointsColumns._ID + ") from " - + TrackPointsColumns.TABLE_NAME + " WHERE " + TrackPointsColumns.TRACKID + "=? AND " - + TrackPointsColumns.LATITUDE + "<=" + MAX_LATITUDE + ")"; - String[] selectionArgs = new String[] { Long.toString(trackId) }; - return findTrackPointBy(selection, selectionArgs); - } - - @Override - public Location getLastValidTrackPoint() { - String selection = TrackPointsColumns._ID + "=(select max(" + TrackPointsColumns._ID + ") from " - + TrackPointsColumns.TABLE_NAME + " WHERE " + TrackPointsColumns.LATITUDE + "<=" - + MAX_LATITUDE + ")"; - return findTrackPointBy(selection, null); - } - - @Override - public Cursor getTrackPointCursor( - long trackId, long startTrackPointId, int maxLocations, boolean descending) { - if (trackId < 0) { - return null; - } - - String selection; - String[] selectionArgs; - if (startTrackPointId >= 0) { - String comparison = descending ? "<=" : ">="; - selection = TrackPointsColumns.TRACKID + "=? AND " + TrackPointsColumns._ID + comparison - + "?"; - selectionArgs = new String[] { Long.toString(trackId), Long.toString(startTrackPointId) }; - } else { - selection = TrackPointsColumns.TRACKID + "=?"; - selectionArgs = new String[] { Long.toString(trackId) }; - } - - String sortOrder = TrackPointsColumns._ID; - if (descending) { - sortOrder += " DESC"; - } - if (maxLocations >= 0) { - sortOrder += " LIMIT " + maxLocations; - } - return getTrackPointCursor(null, selection, selectionArgs, sortOrder); - } - - @Override - public LocationIterator getTrackPointLocationIterator(final long trackId, - final long startTrackPointId, final boolean descending, - final LocationFactory locationFactory) { - if (locationFactory == null) { - throw new IllegalArgumentException("locationFactory is null"); - } - return new LocationIterator() { - private long lastTrackPointId = -1L; - private Cursor cursor = getCursor(startTrackPointId); - private final CachedTrackPointsIndexes - indexes = cursor != null ? new CachedTrackPointsIndexes(cursor) - : null; - - /** - * Gets the track point cursor. - * - * @param trackPointId the starting track point id - */ - private Cursor getCursor(long trackPointId) { - return getTrackPointCursor(trackId, trackPointId, defaultCursorBatchSize, descending); - } - - /** - * Advances the cursor to the next batch. Returns true if successful. - */ - private boolean advanceCursorToNextBatch() { - long trackPointId = lastTrackPointId == -1L ? -1L - : lastTrackPointId + (descending ? -1 : 1); - Log.d(TAG, "Advancing track point id: " + trackPointId); - cursor.close(); - cursor = getCursor(trackPointId); - return cursor != null; - } - - @Override - public long getLocationId() { - return lastTrackPointId; - } - - @Override - public boolean hasNext() { - if (cursor == null) { - return false; - } - if (cursor.isAfterLast()) { - return false; - } - if (cursor.isLast()) { - if (cursor.getCount() != defaultCursorBatchSize) { - return false; - } - return advanceCursorToNextBatch() && !cursor.isAfterLast(); - } - return true; - } - - @Override - public Location next() { - if (cursor == null) { - throw new NoSuchElementException(); - } - if (!cursor.moveToNext()) { - if (!advanceCursorToNextBatch() || !cursor.moveToNext()) { - throw new NoSuchElementException(); - } - } - lastTrackPointId = cursor.getLong(indexes.idIndex); - Location location = locationFactory.createLocation(); - fillTrackPoint(cursor, indexes, location); - return location; - } - - @Override - public void close() { - if (cursor != null) { - cursor.close(); - cursor = null; - } - } - - @Override - public void remove() { - throw new UnsupportedOperationException(); - } - }; - } - - @Override - public Uri insertTrackPoint(Location location, long trackId) { - return contentResolver.insert( - TrackPointsColumns.CONTENT_URI, createContentValues(location, trackId)); - } - - /** - * Creates the {@link ContentValues} for a {@link Location}. - * - * @param location the location - * @param trackId the track id - */ - private ContentValues createContentValues(Location location, long trackId) { - ContentValues values = new ContentValues(); - values.put(TrackPointsColumns.TRACKID, trackId); - values.put(TrackPointsColumns.LONGITUDE, (int) (location.getLongitude() * 1E6)); - values.put(TrackPointsColumns.LATITUDE, (int) (location.getLatitude() * 1E6)); - - // Hack for Samsung phones that don't properly populate the time field - long time = location.getTime(); - if (time == 0) { - time = System.currentTimeMillis(); - } - values.put(TrackPointsColumns.TIME, time); - if (location.hasAltitude()) { - values.put(TrackPointsColumns.ALTITUDE, location.getAltitude()); - } - if (location.hasAccuracy()) { - values.put(TrackPointsColumns.ACCURACY, location.getAccuracy()); - } - if (location.hasSpeed()) { - values.put(TrackPointsColumns.SPEED, location.getSpeed()); - } - if (location.hasBearing()) { - values.put(TrackPointsColumns.BEARING, location.getBearing()); - } - - if (location instanceof MyTracksLocation) { - MyTracksLocation myTracksLocation = (MyTracksLocation) location; - if (myTracksLocation.getSensorDataSet() != null) { - values.put(TrackPointsColumns.SENSOR, myTracksLocation.getSensorDataSet().toByteArray()); - } - } - return values; - } - - /** - * Fills a track point from a cursor. - * - * @param cursor the cursor pointing to a location. - * @param indexes the cached track points indexes - * @param location the track point - */ - private void fillTrackPoint(Cursor cursor, CachedTrackPointsIndexes indexes, Location location) { - location.reset(); - - if (!cursor.isNull(indexes.longitudeIndex)) { - location.setLongitude(((double) cursor.getInt(indexes.longitudeIndex)) / 1E6); - } - if (!cursor.isNull(indexes.latitudeIndex)) { - location.setLatitude(((double) cursor.getInt(indexes.latitudeIndex)) / 1E6); - } - if (!cursor.isNull(indexes.timeIndex)) { - location.setTime(cursor.getLong(indexes.timeIndex)); - } - if (!cursor.isNull(indexes.altitudeIndex)) { - location.setAltitude(cursor.getFloat(indexes.altitudeIndex)); - } - if (!cursor.isNull(indexes.accuracyIndex)) { - location.setAccuracy(cursor.getFloat(indexes.accuracyIndex)); - } - if (!cursor.isNull(indexes.speedIndex)) { - location.setSpeed(cursor.getFloat(indexes.speedIndex)); - } - if (!cursor.isNull(indexes.bearingIndex)) { - location.setBearing(cursor.getFloat(indexes.bearingIndex)); - } - if (location instanceof MyTracksLocation && !cursor.isNull(indexes.sensorIndex)) { - MyTracksLocation myTracksLocation = (MyTracksLocation) location; - try { - myTracksLocation.setSensorDataSet( - SensorDataSet.parseFrom(cursor.getBlob(indexes.sensorIndex))); - } catch (InvalidProtocolBufferException e) { - Log.w(TAG, "Failed to parse sensor data.", e); - } - } - } - - private Location findTrackPointBy(String selection, String[] selectionArgs) { - Cursor cursor = null; - try { - cursor = getTrackPointCursor(null, selection, selectionArgs, TrackPointsColumns._ID); - if (cursor != null && cursor.moveToNext()) { - return createTrackPoint(cursor); - } - } finally { - if (cursor != null) { - cursor.close(); - } - } - return null; - } - - /** - * Gets a track point cursor. - * - * @param projection the projection - * @param selection the selection - * @param selectionArgs the selection arguments - * @param sortOrder the sort order - */ - private Cursor getTrackPointCursor( - String[] projection, String selection, String[] selectionArgs, String sortOrder) { - return contentResolver.query( - TrackPointsColumns.CONTENT_URI, projection, selection, selectionArgs, sortOrder); - } - - /** - * A cache of track points indexes. - */ - private static class CachedTrackPointsIndexes { - public final int idIndex; - public final int longitudeIndex; - public final int latitudeIndex; - public final int timeIndex; - public final int altitudeIndex; - public final int accuracyIndex; - public final int speedIndex; - public final int bearingIndex; - public final int sensorIndex; - - public CachedTrackPointsIndexes(Cursor cursor) { - idIndex = cursor.getColumnIndex(TrackPointsColumns._ID); - longitudeIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.LONGITUDE); - latitudeIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.LATITUDE); - timeIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.TIME); - altitudeIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.ALTITUDE); - accuracyIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.ACCURACY); - speedIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.SPEED); - bearingIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.BEARING); - sensorIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.SENSOR); - } - } - - /** - * Sets the default cursor batch size. For testing purpose. - * - * @param defaultCursorBatchSize the default cursor batch size - */ - void setDefaultCursorBatchSize(int defaultCursorBatchSize) { - this.defaultCursorBatchSize = defaultCursorBatchSize; - } -} \ No newline at end of file diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/Sensor.java b/MyTracksLib/src/com/google/android/apps/mytracks/content/Sensor.java deleted file mode 100644 index f564c75f8..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/Sensor.java +++ /dev/null @@ -1,883 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: proto/sensor.proto - -package com.google.android.apps.mytracks.content; - -public final class Sensor { - private Sensor() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - public enum SensorState - implements com.google.protobuf.Internal.EnumLite { - NONE(0, 1), - CONNECTING(1, 2), - CONNECTED(2, 3), - DISCONNECTED(3, 4), - SENDING(4, 5), - ; - - - public final int getNumber() { return value; } - - public static SensorState valueOf(int value) { - switch (value) { - case 1: return NONE; - case 2: return CONNECTING; - case 3: return CONNECTED; - case 4: return DISCONNECTED; - case 5: return SENDING; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static com.google.protobuf.Internal.EnumLiteMap - internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public SensorState findValueByNumber(int number) { - return SensorState.valueOf(number) - ; } - }; - - private final int index; - private final int value; - private SensorState(int index, int value) { - this.index = index; - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:com.google.android.apps.mytracks.content.SensorState) - } - - public static final class SensorData extends - com.google.protobuf.GeneratedMessageLite { - // Use SensorData.newBuilder() to construct. - private SensorData() { - initFields(); - } - private SensorData(boolean noInit) {} - - private static final SensorData defaultInstance; - public static SensorData getDefaultInstance() { - return defaultInstance; - } - - public SensorData getDefaultInstanceForType() { - return defaultInstance; - } - - // required .com.google.android.apps.mytracks.content.SensorState state = 1 [default = NONE]; - public static final int STATE_FIELD_NUMBER = 1; - private boolean hasState; - private com.google.android.apps.mytracks.content.Sensor.SensorState state_; - public boolean hasState() { return hasState; } - public com.google.android.apps.mytracks.content.Sensor.SensorState getState() { return state_; } - - // optional int32 value = 2; - public static final int VALUE_FIELD_NUMBER = 2; - private boolean hasValue; - private int value_ = 0; - public boolean hasValue() { return hasValue; } - public int getValue() { return value_; } - - private void initFields() { - state_ = com.google.android.apps.mytracks.content.Sensor.SensorState.NONE; - } - public final boolean isInitialized() { - if (!hasState) return false; - return true; - } - - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getSerializedSize(); - if (hasState()) { - output.writeEnum(1, getState().getNumber()); - } - if (hasValue()) { - output.writeInt32(2, getValue()); - } - } - - private int memoizedSerializedSize = -1; - public int getSerializedSize() { - int size = memoizedSerializedSize; - if (size != -1) return size; - - size = 0; - if (hasState()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(1, getState().getNumber()); - } - if (hasValue()) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(2, getValue()); - } - memoizedSerializedSize = size; - return size; - } - - public static com.google.android.apps.mytracks.content.Sensor.SensorData parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return newBuilder().mergeFrom(data).buildParsed(); - } - public static com.google.android.apps.mytracks.content.Sensor.SensorData parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return newBuilder().mergeFrom(data, extensionRegistry) - .buildParsed(); - } - public static com.google.android.apps.mytracks.content.Sensor.SensorData parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return newBuilder().mergeFrom(data).buildParsed(); - } - public static com.google.android.apps.mytracks.content.Sensor.SensorData parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return newBuilder().mergeFrom(data, extensionRegistry) - .buildParsed(); - } - public static com.google.android.apps.mytracks.content.Sensor.SensorData parseFrom(java.io.InputStream input) - throws java.io.IOException { - return newBuilder().mergeFrom(input).buildParsed(); - } - public static com.google.android.apps.mytracks.content.Sensor.SensorData parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return newBuilder().mergeFrom(input, extensionRegistry) - .buildParsed(); - } - public static com.google.android.apps.mytracks.content.Sensor.SensorData parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - Builder builder = newBuilder(); - if (builder.mergeDelimitedFrom(input)) { - return builder.buildParsed(); - } else { - return null; - } - } - public static com.google.android.apps.mytracks.content.Sensor.SensorData parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - Builder builder = newBuilder(); - if (builder.mergeDelimitedFrom(input, extensionRegistry)) { - return builder.buildParsed(); - } else { - return null; - } - } - public static com.google.android.apps.mytracks.content.Sensor.SensorData parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return newBuilder().mergeFrom(input).buildParsed(); - } - public static com.google.android.apps.mytracks.content.Sensor.SensorData parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return newBuilder().mergeFrom(input, extensionRegistry) - .buildParsed(); - } - - public static Builder newBuilder() { return Builder.create(); } - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder(com.google.android.apps.mytracks.content.Sensor.SensorData prototype) { - return newBuilder().mergeFrom(prototype); - } - public Builder toBuilder() { return newBuilder(this); } - - public static final class Builder extends - com.google.protobuf.GeneratedMessageLite.Builder< - com.google.android.apps.mytracks.content.Sensor.SensorData, Builder> { - private com.google.android.apps.mytracks.content.Sensor.SensorData result; - - // Construct using com.google.android.apps.mytracks.content.Sensor.SensorData.newBuilder() - private Builder() {} - - private static Builder create() { - Builder builder = new Builder(); - builder.result = new com.google.android.apps.mytracks.content.Sensor.SensorData(); - return builder; - } - - protected com.google.android.apps.mytracks.content.Sensor.SensorData internalGetResult() { - return result; - } - - public Builder clear() { - if (result == null) { - throw new IllegalStateException( - "Cannot call clear() after build()."); - } - result = new com.google.android.apps.mytracks.content.Sensor.SensorData(); - return this; - } - - public Builder clone() { - return create().mergeFrom(result); - } - - public com.google.android.apps.mytracks.content.Sensor.SensorData getDefaultInstanceForType() { - return com.google.android.apps.mytracks.content.Sensor.SensorData.getDefaultInstance(); - } - - public boolean isInitialized() { - return result.isInitialized(); - } - public com.google.android.apps.mytracks.content.Sensor.SensorData build() { - if (result != null && !isInitialized()) { - throw newUninitializedMessageException(result); - } - return buildPartial(); - } - - private com.google.android.apps.mytracks.content.Sensor.SensorData buildParsed() - throws com.google.protobuf.InvalidProtocolBufferException { - if (!isInitialized()) { - throw newUninitializedMessageException( - result).asInvalidProtocolBufferException(); - } - return buildPartial(); - } - - public com.google.android.apps.mytracks.content.Sensor.SensorData buildPartial() { - if (result == null) { - throw new IllegalStateException( - "build() has already been called on this Builder."); - } - com.google.android.apps.mytracks.content.Sensor.SensorData returnMe = result; - result = null; - return returnMe; - } - - public Builder mergeFrom(com.google.android.apps.mytracks.content.Sensor.SensorData other) { - if (other == com.google.android.apps.mytracks.content.Sensor.SensorData.getDefaultInstance()) return this; - if (other.hasState()) { - setState(other.getState()); - } - if (other.hasValue()) { - setValue(other.getValue()); - } - return this; - } - - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - while (true) { - int tag = input.readTag(); - switch (tag) { - case 0: - return this; - default: { - if (!parseUnknownField(input, extensionRegistry, tag)) { - return this; - } - break; - } - case 8: { - int rawValue = input.readEnum(); - com.google.android.apps.mytracks.content.Sensor.SensorState value = com.google.android.apps.mytracks.content.Sensor.SensorState.valueOf(rawValue); - if (value != null) { - setState(value); - } - break; - } - case 16: { - setValue(input.readInt32()); - break; - } - } - } - } - - - // required .com.google.android.apps.mytracks.content.SensorState state = 1 [default = NONE]; - public boolean hasState() { - return result.hasState(); - } - public com.google.android.apps.mytracks.content.Sensor.SensorState getState() { - return result.getState(); - } - public Builder setState(com.google.android.apps.mytracks.content.Sensor.SensorState value) { - if (value == null) { - throw new NullPointerException(); - } - result.hasState = true; - result.state_ = value; - return this; - } - public Builder clearState() { - result.hasState = false; - result.state_ = com.google.android.apps.mytracks.content.Sensor.SensorState.NONE; - return this; - } - - // optional int32 value = 2; - public boolean hasValue() { - return result.hasValue(); - } - public int getValue() { - return result.getValue(); - } - public Builder setValue(int value) { - result.hasValue = true; - result.value_ = value; - return this; - } - public Builder clearValue() { - result.hasValue = false; - result.value_ = 0; - return this; - } - - // @@protoc_insertion_point(builder_scope:com.google.android.apps.mytracks.content.SensorData) - } - - static { - defaultInstance = new SensorData(true); - com.google.android.apps.mytracks.content.Sensor.internalForceInit(); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:com.google.android.apps.mytracks.content.SensorData) - } - - public static final class SensorDataSet extends - com.google.protobuf.GeneratedMessageLite { - // Use SensorDataSet.newBuilder() to construct. - private SensorDataSet() { - initFields(); - } - private SensorDataSet(boolean noInit) {} - - private static final SensorDataSet defaultInstance; - public static SensorDataSet getDefaultInstance() { - return defaultInstance; - } - - public SensorDataSet getDefaultInstanceForType() { - return defaultInstance; - } - - // optional uint64 creation_time = 1 [default = 0]; - public static final int CREATION_TIME_FIELD_NUMBER = 1; - private boolean hasCreationTime; - private long creationTime_ = 0L; - public boolean hasCreationTime() { return hasCreationTime; } - public long getCreationTime() { return creationTime_; } - - // optional .com.google.android.apps.mytracks.content.SensorData heart_rate = 2; - public static final int HEART_RATE_FIELD_NUMBER = 2; - private boolean hasHeartRate; - private com.google.android.apps.mytracks.content.Sensor.SensorData heartRate_; - public boolean hasHeartRate() { return hasHeartRate; } - public com.google.android.apps.mytracks.content.Sensor.SensorData getHeartRate() { return heartRate_; } - - // optional .com.google.android.apps.mytracks.content.SensorData cadence = 3; - public static final int CADENCE_FIELD_NUMBER = 3; - private boolean hasCadence; - private com.google.android.apps.mytracks.content.Sensor.SensorData cadence_; - public boolean hasCadence() { return hasCadence; } - public com.google.android.apps.mytracks.content.Sensor.SensorData getCadence() { return cadence_; } - - // optional .com.google.android.apps.mytracks.content.SensorData power = 4; - public static final int POWER_FIELD_NUMBER = 4; - private boolean hasPower; - private com.google.android.apps.mytracks.content.Sensor.SensorData power_; - public boolean hasPower() { return hasPower; } - public com.google.android.apps.mytracks.content.Sensor.SensorData getPower() { return power_; } - - // optional .com.google.android.apps.mytracks.content.SensorData battery_level = 5; - public static final int BATTERY_LEVEL_FIELD_NUMBER = 5; - private boolean hasBatteryLevel; - private com.google.android.apps.mytracks.content.Sensor.SensorData batteryLevel_; - public boolean hasBatteryLevel() { return hasBatteryLevel; } - public com.google.android.apps.mytracks.content.Sensor.SensorData getBatteryLevel() { return batteryLevel_; } - - private void initFields() { - heartRate_ = com.google.android.apps.mytracks.content.Sensor.SensorData.getDefaultInstance(); - cadence_ = com.google.android.apps.mytracks.content.Sensor.SensorData.getDefaultInstance(); - power_ = com.google.android.apps.mytracks.content.Sensor.SensorData.getDefaultInstance(); - batteryLevel_ = com.google.android.apps.mytracks.content.Sensor.SensorData.getDefaultInstance(); - } - public final boolean isInitialized() { - if (hasHeartRate()) { - if (!getHeartRate().isInitialized()) return false; - } - if (hasCadence()) { - if (!getCadence().isInitialized()) return false; - } - if (hasPower()) { - if (!getPower().isInitialized()) return false; - } - if (hasBatteryLevel()) { - if (!getBatteryLevel().isInitialized()) return false; - } - return true; - } - - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getSerializedSize(); - if (hasCreationTime()) { - output.writeUInt64(1, getCreationTime()); - } - if (hasHeartRate()) { - output.writeMessage(2, getHeartRate()); - } - if (hasCadence()) { - output.writeMessage(3, getCadence()); - } - if (hasPower()) { - output.writeMessage(4, getPower()); - } - if (hasBatteryLevel()) { - output.writeMessage(5, getBatteryLevel()); - } - } - - private int memoizedSerializedSize = -1; - public int getSerializedSize() { - int size = memoizedSerializedSize; - if (size != -1) return size; - - size = 0; - if (hasCreationTime()) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, getCreationTime()); - } - if (hasHeartRate()) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getHeartRate()); - } - if (hasCadence()) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, getCadence()); - } - if (hasPower()) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, getPower()); - } - if (hasBatteryLevel()) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, getBatteryLevel()); - } - memoizedSerializedSize = size; - return size; - } - - public static com.google.android.apps.mytracks.content.Sensor.SensorDataSet parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return newBuilder().mergeFrom(data).buildParsed(); - } - public static com.google.android.apps.mytracks.content.Sensor.SensorDataSet parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return newBuilder().mergeFrom(data, extensionRegistry) - .buildParsed(); - } - public static com.google.android.apps.mytracks.content.Sensor.SensorDataSet parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return newBuilder().mergeFrom(data).buildParsed(); - } - public static com.google.android.apps.mytracks.content.Sensor.SensorDataSet parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return newBuilder().mergeFrom(data, extensionRegistry) - .buildParsed(); - } - public static com.google.android.apps.mytracks.content.Sensor.SensorDataSet parseFrom(java.io.InputStream input) - throws java.io.IOException { - return newBuilder().mergeFrom(input).buildParsed(); - } - public static com.google.android.apps.mytracks.content.Sensor.SensorDataSet parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return newBuilder().mergeFrom(input, extensionRegistry) - .buildParsed(); - } - public static com.google.android.apps.mytracks.content.Sensor.SensorDataSet parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - Builder builder = newBuilder(); - if (builder.mergeDelimitedFrom(input)) { - return builder.buildParsed(); - } else { - return null; - } - } - public static com.google.android.apps.mytracks.content.Sensor.SensorDataSet parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - Builder builder = newBuilder(); - if (builder.mergeDelimitedFrom(input, extensionRegistry)) { - return builder.buildParsed(); - } else { - return null; - } - } - public static com.google.android.apps.mytracks.content.Sensor.SensorDataSet parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return newBuilder().mergeFrom(input).buildParsed(); - } - public static com.google.android.apps.mytracks.content.Sensor.SensorDataSet parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return newBuilder().mergeFrom(input, extensionRegistry) - .buildParsed(); - } - - public static Builder newBuilder() { return Builder.create(); } - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder(com.google.android.apps.mytracks.content.Sensor.SensorDataSet prototype) { - return newBuilder().mergeFrom(prototype); - } - public Builder toBuilder() { return newBuilder(this); } - - public static final class Builder extends - com.google.protobuf.GeneratedMessageLite.Builder< - com.google.android.apps.mytracks.content.Sensor.SensorDataSet, Builder> { - private com.google.android.apps.mytracks.content.Sensor.SensorDataSet result; - - // Construct using com.google.android.apps.mytracks.content.Sensor.SensorDataSet.newBuilder() - private Builder() {} - - private static Builder create() { - Builder builder = new Builder(); - builder.result = new com.google.android.apps.mytracks.content.Sensor.SensorDataSet(); - return builder; - } - - protected com.google.android.apps.mytracks.content.Sensor.SensorDataSet internalGetResult() { - return result; - } - - public Builder clear() { - if (result == null) { - throw new IllegalStateException( - "Cannot call clear() after build()."); - } - result = new com.google.android.apps.mytracks.content.Sensor.SensorDataSet(); - return this; - } - - public Builder clone() { - return create().mergeFrom(result); - } - - public com.google.android.apps.mytracks.content.Sensor.SensorDataSet getDefaultInstanceForType() { - return com.google.android.apps.mytracks.content.Sensor.SensorDataSet.getDefaultInstance(); - } - - public boolean isInitialized() { - return result.isInitialized(); - } - public com.google.android.apps.mytracks.content.Sensor.SensorDataSet build() { - if (result != null && !isInitialized()) { - throw newUninitializedMessageException(result); - } - return buildPartial(); - } - - private com.google.android.apps.mytracks.content.Sensor.SensorDataSet buildParsed() - throws com.google.protobuf.InvalidProtocolBufferException { - if (!isInitialized()) { - throw newUninitializedMessageException( - result).asInvalidProtocolBufferException(); - } - return buildPartial(); - } - - public com.google.android.apps.mytracks.content.Sensor.SensorDataSet buildPartial() { - if (result == null) { - throw new IllegalStateException( - "build() has already been called on this Builder."); - } - com.google.android.apps.mytracks.content.Sensor.SensorDataSet returnMe = result; - result = null; - return returnMe; - } - - public Builder mergeFrom(com.google.android.apps.mytracks.content.Sensor.SensorDataSet other) { - if (other == com.google.android.apps.mytracks.content.Sensor.SensorDataSet.getDefaultInstance()) return this; - if (other.hasCreationTime()) { - setCreationTime(other.getCreationTime()); - } - if (other.hasHeartRate()) { - mergeHeartRate(other.getHeartRate()); - } - if (other.hasCadence()) { - mergeCadence(other.getCadence()); - } - if (other.hasPower()) { - mergePower(other.getPower()); - } - if (other.hasBatteryLevel()) { - mergeBatteryLevel(other.getBatteryLevel()); - } - return this; - } - - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - while (true) { - int tag = input.readTag(); - switch (tag) { - case 0: - return this; - default: { - if (!parseUnknownField(input, extensionRegistry, tag)) { - return this; - } - break; - } - case 8: { - setCreationTime(input.readUInt64()); - break; - } - case 18: { - com.google.android.apps.mytracks.content.Sensor.SensorData.Builder subBuilder = com.google.android.apps.mytracks.content.Sensor.SensorData.newBuilder(); - if (hasHeartRate()) { - subBuilder.mergeFrom(getHeartRate()); - } - input.readMessage(subBuilder, extensionRegistry); - setHeartRate(subBuilder.buildPartial()); - break; - } - case 26: { - com.google.android.apps.mytracks.content.Sensor.SensorData.Builder subBuilder = com.google.android.apps.mytracks.content.Sensor.SensorData.newBuilder(); - if (hasCadence()) { - subBuilder.mergeFrom(getCadence()); - } - input.readMessage(subBuilder, extensionRegistry); - setCadence(subBuilder.buildPartial()); - break; - } - case 34: { - com.google.android.apps.mytracks.content.Sensor.SensorData.Builder subBuilder = com.google.android.apps.mytracks.content.Sensor.SensorData.newBuilder(); - if (hasPower()) { - subBuilder.mergeFrom(getPower()); - } - input.readMessage(subBuilder, extensionRegistry); - setPower(subBuilder.buildPartial()); - break; - } - case 42: { - com.google.android.apps.mytracks.content.Sensor.SensorData.Builder subBuilder = com.google.android.apps.mytracks.content.Sensor.SensorData.newBuilder(); - if (hasBatteryLevel()) { - subBuilder.mergeFrom(getBatteryLevel()); - } - input.readMessage(subBuilder, extensionRegistry); - setBatteryLevel(subBuilder.buildPartial()); - break; - } - } - } - } - - - // optional uint64 creation_time = 1 [default = 0]; - public boolean hasCreationTime() { - return result.hasCreationTime(); - } - public long getCreationTime() { - return result.getCreationTime(); - } - public Builder setCreationTime(long value) { - result.hasCreationTime = true; - result.creationTime_ = value; - return this; - } - public Builder clearCreationTime() { - result.hasCreationTime = false; - result.creationTime_ = 0L; - return this; - } - - // optional .com.google.android.apps.mytracks.content.SensorData heart_rate = 2; - public boolean hasHeartRate() { - return result.hasHeartRate(); - } - public com.google.android.apps.mytracks.content.Sensor.SensorData getHeartRate() { - return result.getHeartRate(); - } - public Builder setHeartRate(com.google.android.apps.mytracks.content.Sensor.SensorData value) { - if (value == null) { - throw new NullPointerException(); - } - result.hasHeartRate = true; - result.heartRate_ = value; - return this; - } - public Builder setHeartRate(com.google.android.apps.mytracks.content.Sensor.SensorData.Builder builderForValue) { - result.hasHeartRate = true; - result.heartRate_ = builderForValue.build(); - return this; - } - public Builder mergeHeartRate(com.google.android.apps.mytracks.content.Sensor.SensorData value) { - if (result.hasHeartRate() && - result.heartRate_ != com.google.android.apps.mytracks.content.Sensor.SensorData.getDefaultInstance()) { - result.heartRate_ = - com.google.android.apps.mytracks.content.Sensor.SensorData.newBuilder(result.heartRate_).mergeFrom(value).buildPartial(); - } else { - result.heartRate_ = value; - } - result.hasHeartRate = true; - return this; - } - public Builder clearHeartRate() { - result.hasHeartRate = false; - result.heartRate_ = com.google.android.apps.mytracks.content.Sensor.SensorData.getDefaultInstance(); - return this; - } - - // optional .com.google.android.apps.mytracks.content.SensorData cadence = 3; - public boolean hasCadence() { - return result.hasCadence(); - } - public com.google.android.apps.mytracks.content.Sensor.SensorData getCadence() { - return result.getCadence(); - } - public Builder setCadence(com.google.android.apps.mytracks.content.Sensor.SensorData value) { - if (value == null) { - throw new NullPointerException(); - } - result.hasCadence = true; - result.cadence_ = value; - return this; - } - public Builder setCadence(com.google.android.apps.mytracks.content.Sensor.SensorData.Builder builderForValue) { - result.hasCadence = true; - result.cadence_ = builderForValue.build(); - return this; - } - public Builder mergeCadence(com.google.android.apps.mytracks.content.Sensor.SensorData value) { - if (result.hasCadence() && - result.cadence_ != com.google.android.apps.mytracks.content.Sensor.SensorData.getDefaultInstance()) { - result.cadence_ = - com.google.android.apps.mytracks.content.Sensor.SensorData.newBuilder(result.cadence_).mergeFrom(value).buildPartial(); - } else { - result.cadence_ = value; - } - result.hasCadence = true; - return this; - } - public Builder clearCadence() { - result.hasCadence = false; - result.cadence_ = com.google.android.apps.mytracks.content.Sensor.SensorData.getDefaultInstance(); - return this; - } - - // optional .com.google.android.apps.mytracks.content.SensorData power = 4; - public boolean hasPower() { - return result.hasPower(); - } - public com.google.android.apps.mytracks.content.Sensor.SensorData getPower() { - return result.getPower(); - } - public Builder setPower(com.google.android.apps.mytracks.content.Sensor.SensorData value) { - if (value == null) { - throw new NullPointerException(); - } - result.hasPower = true; - result.power_ = value; - return this; - } - public Builder setPower(com.google.android.apps.mytracks.content.Sensor.SensorData.Builder builderForValue) { - result.hasPower = true; - result.power_ = builderForValue.build(); - return this; - } - public Builder mergePower(com.google.android.apps.mytracks.content.Sensor.SensorData value) { - if (result.hasPower() && - result.power_ != com.google.android.apps.mytracks.content.Sensor.SensorData.getDefaultInstance()) { - result.power_ = - com.google.android.apps.mytracks.content.Sensor.SensorData.newBuilder(result.power_).mergeFrom(value).buildPartial(); - } else { - result.power_ = value; - } - result.hasPower = true; - return this; - } - public Builder clearPower() { - result.hasPower = false; - result.power_ = com.google.android.apps.mytracks.content.Sensor.SensorData.getDefaultInstance(); - return this; - } - - // optional .com.google.android.apps.mytracks.content.SensorData battery_level = 5; - public boolean hasBatteryLevel() { - return result.hasBatteryLevel(); - } - public com.google.android.apps.mytracks.content.Sensor.SensorData getBatteryLevel() { - return result.getBatteryLevel(); - } - public Builder setBatteryLevel(com.google.android.apps.mytracks.content.Sensor.SensorData value) { - if (value == null) { - throw new NullPointerException(); - } - result.hasBatteryLevel = true; - result.batteryLevel_ = value; - return this; - } - public Builder setBatteryLevel(com.google.android.apps.mytracks.content.Sensor.SensorData.Builder builderForValue) { - result.hasBatteryLevel = true; - result.batteryLevel_ = builderForValue.build(); - return this; - } - public Builder mergeBatteryLevel(com.google.android.apps.mytracks.content.Sensor.SensorData value) { - if (result.hasBatteryLevel() && - result.batteryLevel_ != com.google.android.apps.mytracks.content.Sensor.SensorData.getDefaultInstance()) { - result.batteryLevel_ = - com.google.android.apps.mytracks.content.Sensor.SensorData.newBuilder(result.batteryLevel_).mergeFrom(value).buildPartial(); - } else { - result.batteryLevel_ = value; - } - result.hasBatteryLevel = true; - return this; - } - public Builder clearBatteryLevel() { - result.hasBatteryLevel = false; - result.batteryLevel_ = com.google.android.apps.mytracks.content.Sensor.SensorData.getDefaultInstance(); - return this; - } - - // @@protoc_insertion_point(builder_scope:com.google.android.apps.mytracks.content.SensorDataSet) - } - - static { - defaultInstance = new SensorDataSet(true); - com.google.android.apps.mytracks.content.Sensor.internalForceInit(); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:com.google.android.apps.mytracks.content.SensorDataSet) - } - - - static { - } - - public static void internalForceInit() {} - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/Track.java b/MyTracksLib/src/com/google/android/apps/mytracks/content/Track.java deleted file mode 100644 index 195d2f99d..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/Track.java +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Copyright 2008 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.google.android.apps.mytracks.content; - -import com.google.android.apps.mytracks.stats.TripStatistics; - -import android.location.Location; -import android.os.Parcel; -import android.os.Parcelable; - -import java.util.ArrayList; - -/** - * A track. - * - * @author Leif Hendrik Wilden - * @author Rodrigo Damazio - */ -public class Track implements Parcelable { - - private long id = -1L; - private String name = ""; - private String description = ""; - private String category = ""; - private long startId = -1L; - private long stopId = -1L; - - /* - * The number of location points (present even if the points themselves are - * not loaded) - */ - private int numberOfPoints = 0; - private String icon = ""; - private String driveId = ""; - private long modifiedTime = -1L; - private boolean sharedWithMe = false; - private String sharedOwner = ""; - - private TripStatistics tripStatistics = new TripStatistics(); - - // Location points (which may not have been loaded) - private ArrayList locations = new ArrayList(); - - public Track() {} - - private Track(Parcel in) { - id = in.readLong(); - name = in.readString(); - description = in.readString(); - category = in.readString(); - startId = in.readLong(); - stopId = in.readLong(); - numberOfPoints = in.readInt(); - icon = in.readString(); - driveId = in.readString(); - modifiedTime = in.readLong(); - sharedWithMe = in.readByte() == 1; - sharedOwner = in.readString(); - - ClassLoader classLoader = getClass().getClassLoader(); - tripStatistics = in.readParcelable(classLoader); - - for (int i = 0; i < numberOfPoints; ++i) { - Location location = in.readParcelable(classLoader); - locations.add(location); - } - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeLong(id); - dest.writeString(name); - dest.writeString(description); - dest.writeString(category); - dest.writeLong(startId); - dest.writeLong(stopId); - dest.writeInt(numberOfPoints); - dest.writeString(icon); - dest.writeString(driveId); - dest.writeLong(modifiedTime); - dest.writeByte((byte) (sharedWithMe ? 1 : 0)); - dest.writeString(sharedOwner); - - dest.writeParcelable(tripStatistics, 0); - for (int i = 0; i < numberOfPoints; ++i) { - dest.writeParcelable(locations.get(i), 0); - } - } - - public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { - @Override - public Track createFromParcel(Parcel in) { - return new Track(in); - } - - @Override - public Track[] newArray(int size) { - return new Track[size]; - } - }; - - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getCategory() { - return category; - } - - public void setCategory(String category) { - this.category = category; - } - - public long getStartId() { - return startId; - } - - public void setStartId(long startId) { - this.startId = startId; - } - - public long getStopId() { - return stopId; - } - - public void setStopId(long stopId) { - this.stopId = stopId; - } - - public int getNumberOfPoints() { - return numberOfPoints; - } - - public void setNumberOfPoints(int numberOfPoints) { - this.numberOfPoints = numberOfPoints; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public String getDriveId() { - return driveId; - } - - public void setDriveId(String driveId) { - this.driveId = driveId; - } - - public long getModifiedTime() { - return modifiedTime; - } - - public void setModifiedTime(long modifiedTime) { - this.modifiedTime = modifiedTime; - } - - public boolean isSharedWithMe() { - return sharedWithMe; - } - - public void setSharedWithMe(boolean sharedWithMe) { - this.sharedWithMe = sharedWithMe; - } - - public String getSharedOwner() { - return sharedOwner; - } - - public void setSharedOwner(String sharedOwner) { - this.sharedOwner = sharedOwner; - } - - public TripStatistics getTripStatistics() { - return tripStatistics; - } - - public void setTripStatistics(TripStatistics tripStatistics) { - this.tripStatistics = tripStatistics; - } - - public void addLocation(Location location) { - locations.add(location); - } - - public ArrayList getLocations() { - return locations; - } - - public void setLocations(ArrayList locations) { - this.locations = locations; - } -} diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/TrackPointsColumns.java b/MyTracksLib/src/com/google/android/apps/mytracks/content/TrackPointsColumns.java deleted file mode 100644 index bac0f62c4..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/TrackPointsColumns.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright 2008 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.google.android.apps.mytracks.content; - -import static com.google.android.apps.mytracks.content.ContentTypeIds.BLOB_TYPE_ID; -import static com.google.android.apps.mytracks.content.ContentTypeIds.FLOAT_TYPE_ID; -import static com.google.android.apps.mytracks.content.ContentTypeIds.INT_TYPE_ID; -import static com.google.android.apps.mytracks.content.ContentTypeIds.LONG_TYPE_ID; - -import android.net.Uri; -import android.provider.BaseColumns; - -/** - * Constants for the track points table. - * - * @author Leif Hendrik Wilden - */ -public interface TrackPointsColumns extends BaseColumns { - - public static final String TABLE_NAME = "trackpoints"; - public static final Uri CONTENT_URI = Uri.parse( - "content://com.google.android.maps.mytracks/trackpoints"); - public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.google.trackpoint"; - public static final String CONTENT_ITEMTYPE = "vnd.android.cursor.item/vnd.google.trackpoint"; - public static final String DEFAULT_SORT_ORDER = "_id"; - - // Columns - public static final String TRACKID = "trackid"; // track id - public static final String LONGITUDE = "longitude"; // longitude - public static final String LATITUDE = "latitude"; // latitude - public static final String TIME = "time"; // time - public static final String ALTITUDE = "elevation"; // altitude - public static final String ACCURACY = "accuracy"; // accuracy - public static final String SPEED = "speed"; // speed - public static final String BEARING = "bearing"; // bearing - public static final String SENSOR = "sensor"; // sensor - - public static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" - + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " - + TRACKID + " INTEGER, " - + LONGITUDE + " INTEGER, " - + LATITUDE + " INTEGER, " - + TIME + " INTEGER, " - + ALTITUDE + " FLOAT, " - + ACCURACY + " FLOAT, " - + SPEED + " FLOAT, " - + BEARING + " FLOAT, " - + SENSOR + " BLOB" - + ");"; - - public static final String[] COLUMNS = { - _ID, - TRACKID, - LONGITUDE, - LATITUDE, - TIME, - ALTITUDE, - ACCURACY, - SPEED, - BEARING, - SENSOR - }; - - public static final byte[] COLUMN_TYPES = { - LONG_TYPE_ID, // id - LONG_TYPE_ID, // track id - INT_TYPE_ID, // longitude - INT_TYPE_ID, // latitude - LONG_TYPE_ID, // time - FLOAT_TYPE_ID, // altitude - FLOAT_TYPE_ID, // accuracy - FLOAT_TYPE_ID, // speed - FLOAT_TYPE_ID, // bearing - BLOB_TYPE_ID // sensor - }; -} diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/TracksColumns.java b/MyTracksLib/src/com/google/android/apps/mytracks/content/TracksColumns.java deleted file mode 100644 index f2e50102a..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/TracksColumns.java +++ /dev/null @@ -1,195 +0,0 @@ -/* - * Copyright 2008 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.google.android.apps.mytracks.content; - -import android.net.Uri; -import android.provider.BaseColumns; - -/** - * Constants for the tracks table. - * - * @author Leif Hendrik Wilden - */ -public interface TracksColumns extends BaseColumns { - - public static final String TABLE_NAME = "tracks"; - - /** - * Tracks provider uri. - */ - public static final Uri CONTENT_URI = Uri.parse( - "content://com.google.android.maps.mytracks/tracks"); - - /** - * Track content type. - */ - public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.google.track"; - - /** - * Track id content type. - */ - public static final String CONTENT_ITEMTYPE = "vnd.android.cursor.item/vnd.google.track"; - - /** - * Tracks table default sort order. - */ - public static final String DEFAULT_SORT_ORDER = "_id"; - - // Columns - public static final String NAME = "name"; // track name - public static final String DESCRIPTION = "description"; // track description - public static final String CATEGORY = "category"; // track activity type - public static final String STARTID = "startid"; // first track point id - public static final String STOPID = "stopid"; // last track point id - public static final String STARTTIME = "starttime"; // track start time - public static final String STOPTIME = "stoptime"; // track stop time - public static final String NUMPOINTS = "numpoints"; // number of track points - public static final String TOTALDISTANCE = "totaldistance"; // total distance - public static final String TOTALTIME = "totaltime"; // total time - public static final String MOVINGTIME = "movingtime"; // moving time - public static final String MINLAT = "minlat"; // minimum latitude - public static final String MAXLAT = "maxlat"; // maximum latitude - public static final String MINLON = "minlon"; // minimum longitude - public static final String MAXLON = "maxlon"; // maximum longitude - public static final String AVGSPEED = "avgspeed"; // average speed - - // average moving speed - public static final String AVGMOVINGSPEED = "avgmovingspeed"; - public static final String MAXSPEED = "maxspeed"; // maximum speed - public static final String MINELEVATION = "minelevation"; // minimum elevation - public static final String MAXELEVATION = "maxelevation"; // maximum elevation - public static final String ELEVATIONGAIN = "elevationgain"; // elevation gain - public static final String MINGRADE = "mingrade"; // minimum grade - public static final String MAXGRADE = "maxgrade"; // maximum grade - public static final String MAPID = "mapid"; // Google Maps id - public static final String TABLEID = "tableid"; // Google Fusion Tables id - public static final String ICON = "icon"; // track activity type icon - public static final String DRIVEID = "driveid"; // Google Drive file id - - // Google drive file modified time - public static final String MODIFIEDTIME = "modifiedtime"; - - // 1 if the Google Drive file is from the "Shared with me" directory - public static final String SHAREDWITHME = "sharedwithme"; - - // The owner of the shared with me track - public static final String SHAREDOWNER = "sharedOwner"; - - // Calorie burned of the track - public static final String CALORIE = "calorie"; - - public static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" // table - + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " // id - + NAME + " STRING, " // name - + DESCRIPTION + " STRING, " // description - + CATEGORY + " STRING, " // category - + STARTID + " INTEGER, " // start id - + STOPID + " INTEGER, " // stop id - + STARTTIME + " INTEGER, " // start time - + STOPTIME + " INTEGER, " // stop time - + NUMPOINTS + " INTEGER, " // num points - + TOTALDISTANCE + " FLOAT, " // total distance - + TOTALTIME + " INTEGER, " // total time - + MOVINGTIME + " INTEGER, " // moving time - + MINLAT + " INTEGER, " // min latitude - + MAXLAT + " INTEGER, " // max latitude - + MINLON + " INTEGER, " // min longitude - + MAXLON + " INTEGER, " // max longitude - + AVGSPEED + " FLOAT, " // average speed - + AVGMOVINGSPEED + " FLOAT, " // average moving speed - + MAXSPEED + " FLOAT, " // max speed - + MINELEVATION + " FLOAT, " // min elevation - + MAXELEVATION + " FLOAT, " // max elevation - + ELEVATIONGAIN + " FLOAT, " // elevation gain - + MINGRADE + " FLOAT, " // min grade - + MAXGRADE + " FLOAT, " // max grade - + MAPID + " STRING, " // map id - + TABLEID + " STRING, " // table id - + ICON + " STRING, " // icon - + DRIVEID + " STRING, " // drive id - + MODIFIEDTIME + " INTEGER, " // modified time - + SHAREDWITHME + " INTEGER, " // shared with me - + SHAREDOWNER + " STRING, " // shared owner - + CALORIE + " FLOAT);"; // calorie - - public static final String[] COLUMNS = { _ID, // id - NAME, // name - DESCRIPTION, // description - CATEGORY, // category - STARTID, // start id - STOPID, // stop id - STARTTIME, // start time - STOPTIME, // stop time - NUMPOINTS, // num points - TOTALDISTANCE, // total distance - TOTALTIME, // total time - MOVINGTIME, // moving time - MINLAT, // min latitude - MAXLAT, // max latitude - MINLON, // min longitude - MAXLON, // max longitude - AVGSPEED, // average speed - AVGMOVINGSPEED, // average moving speed - MAXSPEED, // max speed - MINELEVATION, // min elevation - MAXELEVATION, // max elevation - ELEVATIONGAIN, // elevation gain - MINGRADE, // min grade - MAXGRADE, // max grade - MAPID, // map id - TABLEID, // table id - ICON, // icon - DRIVEID, // drive id - MODIFIEDTIME, // modified time - SHAREDWITHME, // shared with me - SHAREDOWNER,// shared owner - CALORIE }; // calorie - - public static final byte[] COLUMN_TYPES = { ContentTypeIds.LONG_TYPE_ID, // id - ContentTypeIds.STRING_TYPE_ID, // name - ContentTypeIds.STRING_TYPE_ID, // description - ContentTypeIds.STRING_TYPE_ID, // category - ContentTypeIds.LONG_TYPE_ID, // start id - ContentTypeIds.LONG_TYPE_ID, // stop id - ContentTypeIds.LONG_TYPE_ID, // start time - ContentTypeIds.LONG_TYPE_ID, // stop time - ContentTypeIds.INT_TYPE_ID, // num points - ContentTypeIds.FLOAT_TYPE_ID, // total distance - ContentTypeIds.LONG_TYPE_ID, // total time - ContentTypeIds.LONG_TYPE_ID, // moving time - ContentTypeIds.INT_TYPE_ID, // min latitude - ContentTypeIds.INT_TYPE_ID, // max latitude - ContentTypeIds.INT_TYPE_ID, // min longitude - ContentTypeIds.INT_TYPE_ID, // max longitude - ContentTypeIds.FLOAT_TYPE_ID, // average speed - ContentTypeIds.FLOAT_TYPE_ID, // average moving speed - ContentTypeIds.FLOAT_TYPE_ID, // max speed - ContentTypeIds.FLOAT_TYPE_ID, // min elevation - ContentTypeIds.FLOAT_TYPE_ID, // max elevation - ContentTypeIds.FLOAT_TYPE_ID, // elevation gain - ContentTypeIds.FLOAT_TYPE_ID, // min grade - ContentTypeIds.FLOAT_TYPE_ID, // max grade - ContentTypeIds.STRING_TYPE_ID, // map id - ContentTypeIds.STRING_TYPE_ID, // table id - ContentTypeIds.STRING_TYPE_ID, // icon - ContentTypeIds.STRING_TYPE_ID, // drive id - ContentTypeIds.LONG_TYPE_ID, // modified time - ContentTypeIds.BOOLEAN_TYPE_ID, // shared with me - ContentTypeIds.STRING_TYPE_ID, // shared owner - ContentTypeIds.FLOAT_TYPE_ID // calorie - }; -} diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/Waypoint.aidl b/MyTracksLib/src/com/google/android/apps/mytracks/content/Waypoint.aidl deleted file mode 100644 index fece6fd44..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/Waypoint.aidl +++ /dev/null @@ -1,2 +0,0 @@ -package com.google.android.apps.mytracks.content; -parcelable Waypoint; \ No newline at end of file diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/Waypoint.java b/MyTracksLib/src/com/google/android/apps/mytracks/content/Waypoint.java deleted file mode 100644 index dad2be246..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/Waypoint.java +++ /dev/null @@ -1,249 +0,0 @@ -/* - * Copyright 2009 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.google.android.apps.mytracks.content; - -import com.google.android.apps.mytracks.stats.TripStatistics; - -import android.location.Location; -import android.os.Parcel; -import android.os.Parcelable; - -/** - * A waypoint. - * - * @author Leif Hendrik Wilden - * @author Rodrigo Damazio - */ -public final class Waypoint implements Parcelable { - - public static enum WaypointType { - WAYPOINT, STATISTICS; - } - - private long id = -1L; - private String name = ""; - private String description = ""; - private String category = ""; - private String icon = ""; - private long trackId = -1L; - private WaypointType type = WaypointType.WAYPOINT; - private double length = 0.0; - private long duration = 0; - private long startId = -1L; - private long stopId = -1L; - private Location location = null; - private TripStatistics tripStatistics = null; - private String photoUrl = ""; - - public Waypoint() {} - - public Waypoint(String name, String description, String category, String icon, long trackId, - WaypointType type, double length, long duration, long startId, long stopId, Location location, - TripStatistics tripStatistics, String photoUrl) { - this.name = name; - this.description = description; - this.category = category; - this.icon = icon; - this.trackId = trackId; - this.type = type; - this.length = length; - this.duration = duration; - this.startId = startId; - this.stopId = stopId; - this.location = location; - this.tripStatistics = tripStatistics; - this.photoUrl = photoUrl; - } - - private Waypoint(Parcel source) { - id = source.readLong(); - name = source.readString(); - description = source.readString(); - category = source.readString(); - icon = source.readString(); - trackId = source.readLong(); - type = WaypointType.values()[source.readInt()]; - length = source.readDouble(); - duration = source.readLong(); - startId = source.readLong(); - stopId = source.readLong(); - - ClassLoader classLoader = getClass().getClassLoader(); - byte hasLocation = source.readByte(); - if (hasLocation > 0) { - location = source.readParcelable(classLoader); - } - byte hasStats = source.readByte(); - if (hasStats > 0) { - tripStatistics = source.readParcelable(classLoader); - } - photoUrl = source.readString(); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeLong(id); - dest.writeString(name); - dest.writeString(description); - dest.writeString(category); - dest.writeString(icon); - dest.writeLong(trackId); - dest.writeInt(type.ordinal()); - dest.writeDouble(length); - dest.writeLong(duration); - dest.writeLong(startId); - dest.writeLong(stopId); - dest.writeByte(location == null ? (byte) 0 : (byte) 1); - if (location != null) { - dest.writeParcelable(location, 0); - } - dest.writeByte(tripStatistics == null ? (byte) 0 : (byte) 1); - if (tripStatistics != null) { - dest.writeParcelable(tripStatistics, 0); - } - dest.writeString(photoUrl); - } - - public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { - @Override - public Waypoint createFromParcel(Parcel in) { - return new Waypoint(in); - } - - @Override - public Waypoint[] newArray(int size) { - return new Waypoint[size]; - } - }; - - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getCategory() { - return category; - } - - public void setCategory(String category) { - this.category = category; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public long getTrackId() { - return trackId; - } - - public void setTrackId(long trackId) { - this.trackId = trackId; - } - - public WaypointType getType() { - return type; - } - - public void setType(WaypointType type) { - this.type = type; - } - - public double getLength() { - return length; - } - - public void setLength(double length) { - this.length = length; - } - - public long getDuration() { - return duration; - } - - public void setDuration(long duration) { - this.duration = duration; - } - - public long getStartId() { - return startId; - } - - public void setStartId(long startId) { - this.startId = startId; - } - - public long getStopId() { - return stopId; - } - - public void setStopId(long stopId) { - this.stopId = stopId; - } - - public Location getLocation() { - return location; - } - - public void setLocation(Location location) { - this.location = location; - } - - public TripStatistics getTripStatistics() { - return tripStatistics; - } - - public void setTripStatistics(TripStatistics tripStatistics) { - this.tripStatistics = tripStatistics; - } - - public String getPhotoUrl() { - return photoUrl; - } - - public void setPhotoUrl(String photoUrl) { - this.photoUrl = photoUrl; - } -} diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/WaypointCreationRequest.aidl b/MyTracksLib/src/com/google/android/apps/mytracks/content/WaypointCreationRequest.aidl deleted file mode 100644 index c0d008f36..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/WaypointCreationRequest.aidl +++ /dev/null @@ -1,2 +0,0 @@ -package com.google.android.apps.mytracks.content; -parcelable WaypointCreationRequest; \ No newline at end of file diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/WaypointCreationRequest.java b/MyTracksLib/src/com/google/android/apps/mytracks/content/WaypointCreationRequest.java deleted file mode 100644 index caf88ff80..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/WaypointCreationRequest.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright 2010 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.content; - -import com.google.android.apps.mytracks.content.Waypoint.WaypointType; - -import android.os.Parcel; -import android.os.Parcelable; - -/** - * A request for the service to create a waypoint at the current location. - * - * @author Sandor Dornbush - */ -public class WaypointCreationRequest implements Parcelable { - - private WaypointType type; - // true if this marker contains the track statistics - private boolean isTrackStatistics; - private String name; - private String category; - private String description; - private String iconUrl; - private String photoUrl; - - public final static WaypointCreationRequest DEFAULT_WAYPOINT = new WaypointCreationRequest( - WaypointType.WAYPOINT, false); - public final static WaypointCreationRequest DEFAULT_STATISTICS = new WaypointCreationRequest( - WaypointType.STATISTICS, false); - public final static WaypointCreationRequest DEFAULT_START_TRACK = new WaypointCreationRequest( - WaypointType.STATISTICS, true); - - private WaypointCreationRequest(WaypointType type, boolean isTrackStatistics) { - this(type, isTrackStatistics, null, null, null, null, null); - } - - public WaypointCreationRequest(WaypointType type, boolean isTrackStatistics, String name, - String category, String description, String iconUrl, String photoUrl) { - this.type = type; - this.isTrackStatistics = isTrackStatistics; - this.name = name; - this.category = category; - this.description = description; - this.iconUrl = iconUrl; - this.photoUrl = photoUrl; - } - - public static class Creator implements Parcelable.Creator { - - @Override - public WaypointCreationRequest createFromParcel(Parcel source) { - WaypointCreationRequest request = new WaypointCreationRequest( - WaypointType.values()[source.readInt()], - source.readByte() == 1, - source.readString(), - source.readString(), - source.readString(), - source.readString(), - source.readString()); - return request; - } - - public WaypointCreationRequest[] newArray(int size) { - return new WaypointCreationRequest[size]; - } - } - - public static final Creator CREATOR = new Creator(); - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel parcel, int arg1) { - parcel.writeInt(type.ordinal()); - parcel.writeByte((byte) (isTrackStatistics ? 1 : 0)); - parcel.writeString(name); - parcel.writeString(category); - parcel.writeString(description); - parcel.writeString(iconUrl); - parcel.writeString(photoUrl); - } - - public WaypointType getType() { - return type; - } - - public boolean isTrackStatistics() { - return isTrackStatistics; - } - - public String getName() { - return name; - } - - public String getCategory() { - return category; - } - - public String getDescription() { - return description; - } - - public String getIconUrl() { - return iconUrl; - } - - public String getPhotoUrl() { - return photoUrl; - } -} \ No newline at end of file diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/WaypointsColumns.java b/MyTracksLib/src/com/google/android/apps/mytracks/content/WaypointsColumns.java deleted file mode 100644 index eb61b72a3..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/WaypointsColumns.java +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright 2009 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.google.android.apps.mytracks.content; - -import static com.google.android.apps.mytracks.content.ContentTypeIds.FLOAT_TYPE_ID; -import static com.google.android.apps.mytracks.content.ContentTypeIds.INT_TYPE_ID; -import static com.google.android.apps.mytracks.content.ContentTypeIds.LONG_TYPE_ID; -import static com.google.android.apps.mytracks.content.ContentTypeIds.STRING_TYPE_ID; - -import android.net.Uri; -import android.provider.BaseColumns; - -/** - * Constants for waypoints table. - * - * @author Leif Hendrik Wilden - */ -public interface WaypointsColumns extends BaseColumns { - - public static final String TABLE_NAME = "waypoints"; - public static final Uri CONTENT_URI = Uri.parse( - "content://com.google.android.maps.mytracks/waypoints"); - public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.google.waypoint"; - public static final String CONTENT_ITEMTYPE = "vnd.android.cursor.item/vnd.google.waypoint"; - public static final String DEFAULT_SORT_ORDER = "_id"; - - // Columns - public static final String NAME = "name"; // waypoint name - public static final String DESCRIPTION = "description"; // waypoint description - public static final String CATEGORY = "category"; // waypoint category - public static final String ICON = "icon"; // waypoint icon - public static final String TRACKID = "trackid"; // track id - public static final String TYPE = "type"; // type - public static final String LENGTH = "length"; // length of the track (without smoothing) - public static final String DURATION = "duration"; // total duration of the track (not from last waypoint) - public static final String STARTTIME = "starttime"; // start time of the trip statistics - public static final String STARTID = "startid"; // start track point id - public static final String STOPID = "stopid"; // stop track point id - - public static final String LONGITUDE = "longitude"; // longitude - public static final String LATITUDE = "latitude"; // latitude - public static final String TIME = "time"; // time - public static final String ALTITUDE = "elevation"; // altitude - public static final String ACCURACY = "accuracy"; // accuracy - public static final String SPEED = "speed"; // speed - public static final String BEARING = "bearing"; // bearing - - public static final String TOTALDISTANCE = "totaldistance"; // total distance - public static final String TOTALTIME = "totaltime"; // total time - public static final String MOVINGTIME = "movingtime"; // moving time - public static final String AVGSPEED = "avgspeed"; // average speed - public static final String AVGMOVINGSPEED = "avgmovingspeed"; // average moving speed - public static final String MAXSPEED = "maxspeed"; // max speed - public static final String MINELEVATION = "minelevation"; // min elevation - public static final String MAXELEVATION = "maxelevation"; // max elevation - public static final String ELEVATIONGAIN = "elevationgain"; // elevation gain - public static final String MINGRADE = "mingrade"; // min grade - public static final String MAXGRADE = "maxgrade"; // max grade - public static final String CALORIE = "calorie"; // calorie - - public static final String PHOTOURL = "photoUrl"; // url for the photo - - public static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" - + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " - + NAME + " STRING, " - + DESCRIPTION + " STRING, " - + CATEGORY + " STRING, " - + ICON + " STRING, " - + TRACKID + " INTEGER, " - + TYPE + " INTEGER, " - + LENGTH + " FLOAT, " - + DURATION + " INTEGER, " - + STARTTIME + " INTEGER, " - + STARTID + " INTEGER, " - + STOPID + " INTEGER, " - + LONGITUDE + " INTEGER, " - + LATITUDE + " INTEGER, " - + TIME + " INTEGER, " - + ALTITUDE + " FLOAT, " - + ACCURACY + " FLOAT, " - + SPEED + " FLOAT, " - + BEARING + " FLOAT, " - + TOTALDISTANCE + " FLOAT, " - + TOTALTIME + " INTEGER, " - + MOVINGTIME + " INTEGER, " - + AVGSPEED + " FLOAT, " - + AVGMOVINGSPEED + " FLOAT, " - + MAXSPEED + " FLOAT, " - + MINELEVATION + " FLOAT, " - + MAXELEVATION + " FLOAT, " - + ELEVATIONGAIN + " FLOAT, " - + MINGRADE + " FLOAT, " - + MAXGRADE + " FLOAT, " - + CALORIE + " FLOAT, " - + PHOTOURL + " STRING" - + ");"; - - public static final String[] COLUMNS = { - _ID, - NAME, - DESCRIPTION, - CATEGORY, - ICON, - TRACKID, - TYPE, - LENGTH, - DURATION, - STARTTIME, - STARTID, - STOPID, - LONGITUDE, - LATITUDE, - TIME, - ALTITUDE, - ACCURACY, - SPEED, - BEARING, - TOTALDISTANCE, - TOTALTIME, - MOVINGTIME, - AVGSPEED, - AVGMOVINGSPEED, - MAXSPEED, - MINELEVATION, - MAXELEVATION, - ELEVATIONGAIN, - MINGRADE, - MAXGRADE, - CALORIE, - PHOTOURL - }; - - public static final byte[] COLUMN_TYPES = { - LONG_TYPE_ID, // id - STRING_TYPE_ID, // name - STRING_TYPE_ID, // description - STRING_TYPE_ID, // category - STRING_TYPE_ID, // icon - LONG_TYPE_ID, // track id - INT_TYPE_ID, // type - FLOAT_TYPE_ID, // length - LONG_TYPE_ID, // duration - LONG_TYPE_ID, // start time - LONG_TYPE_ID, // start id - LONG_TYPE_ID, // stop id - INT_TYPE_ID, // longitude - INT_TYPE_ID, // latitude - LONG_TYPE_ID, // time - FLOAT_TYPE_ID, // altitude - FLOAT_TYPE_ID, // accuracy - FLOAT_TYPE_ID, // speed - FLOAT_TYPE_ID, // bearing - FLOAT_TYPE_ID, // total distance - LONG_TYPE_ID, // total time - LONG_TYPE_ID, // moving time - FLOAT_TYPE_ID, // average speed - FLOAT_TYPE_ID, // average moving speed - FLOAT_TYPE_ID, // max speed - FLOAT_TYPE_ID, // min elevation - FLOAT_TYPE_ID, // max elevation - FLOAT_TYPE_ID, // elevation gain - FLOAT_TYPE_ID, // min grade - FLOAT_TYPE_ID, // max grade - FLOAT_TYPE_ID, // calorie - STRING_TYPE_ID // photo url - }; -} diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/lib/MyTracksLibConstants.java b/MyTracksLib/src/com/google/android/apps/mytracks/lib/MyTracksLibConstants.java deleted file mode 100644 index 739cf79f1..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/lib/MyTracksLibConstants.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2010 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.lib; - -/** - * Constants for the My Tracks common library. - * These constants should ideally not be used by third-party applications. - * - * @author Rodrigo Damazio - */ -public class MyTracksLibConstants { - public static final String TAG = "MyTracksLib"; - - private MyTracksLibConstants() {} -} diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/services/ITrackRecordingService.aidl b/MyTracksLib/src/com/google/android/apps/mytracks/services/ITrackRecordingService.aidl deleted file mode 100644 index 0ef27b480..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/services/ITrackRecordingService.aidl +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright 2008 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.services; - -import com.google.android.apps.mytracks.content.WaypointCreationRequest; - -/** - * MyTracks service. - * This service is the process that actually records and manages tracks. - */ -interface ITrackRecordingService { - - /** - * Starts gps. - */ - void startGps(); - - /** - * Stops gps. - */ - void stopGps(); - - /** - * Starts recording a new track. - * - * @return the track ID of the new track. - */ - long startNewTrack(); - - /** - * Pauses the current recording track. - */ - void pauseCurrentTrack(); - - /** - * Resumes the current recording track. - */ - void resumeCurrentTrack(); - - /** - * Ends the current recording track. - */ - void endCurrentTrack(); - - /** - * Returns true if currently recording a track. - */ - boolean isRecording(); - - /** - * Returns true if the current recording track is paused. Returns true if not recording. - */ - boolean isPaused(); - - /** - * Gets the current recording track ID. Returns -1 if not recording. - */ - long getRecordingTrackId(); - - /** - * Gets the total time for the current recording track. Returns 0 if not recording. - */ - long getTotalTime(); - - /** - * Inserts a waypoint in the current recording track. - * - * @param request the details of the waypoint to be inserted - * @return the ID of the inserted waypoint - */ - long insertWaypoint(in WaypointCreationRequest request); - - /** - * Inserts a track point in the current recording track. - * - * When recording a track, GPS locations are automatically inserted. This is used for - * inserting special track points or for testing. - * - * @param location the track point to be inserted - */ - void insertTrackPoint(in Location location); - - /** - * Gets the current sensor data. Returns null if there is no data. - - * @return a byte array of the binary version of the Sensor.SensorDataSet object. - */ - byte[] getSensorData(); - - /** - * Gets the current sensor manager state. - * - * return a Sensor.SensorState enum value. - */ - int getSensorState(); - - /** - * Updates the calorie of current recording track. - */ - void updateCalorie(); -} diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/stats/ExtremityMonitor.java b/MyTracksLib/src/com/google/android/apps/mytracks/stats/ExtremityMonitor.java deleted file mode 100644 index 8a4618588..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/stats/ExtremityMonitor.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright 2009 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.google.android.apps.mytracks.stats; - -/** - * A helper class that tracks a minimum and a maximum of a variable. - * - * @author Sandor Dornbush - */ -public class ExtremityMonitor { - - // The smallest value seen so far. - private double min; - - // The largest value seen so far. - private double max; - - public ExtremityMonitor() { - reset(); - } - - /** - * Resets this object to it's initial state where the min and max are unknown. - */ - public void reset() { - min = Double.POSITIVE_INFINITY; - max = Double.NEGATIVE_INFINITY; - } - - /** - * Gets the minimum value seen. - */ - public double getMin() { - return min; - } - - /** - * Gets the maximum value seen. - */ - public double getMax() { - return max; - } - - /** - * Updates the min and the max with a new value. - * - * @param value the new value - * @return true if an extremity was found - */ - public boolean update(double value) { - boolean changed = false; - if (value < min) { - min = value; - changed = true; - } - if (value > max) { - max = value; - changed = true; - } - return changed; - } - - /** - * Sets the minimum and maximum values. - * - * @param min the minimum value - * @param max the maximum value - */ - public void set(double min, double max) { - this.min = min; - this.max = max; - } - - /** - * Sets the minimum value. - * - * @param min the minimum value - */ - public void setMin(double min) { - this.min = min; - } - - /** - * Sets the maximum value. - * - * @param max the maximum value - */ - public void setMax(double max) { - this.max = max; - } - - /** - * Returns true if has data. - */ - public boolean hasData() { - return min != Double.POSITIVE_INFINITY && max != Double.NEGATIVE_INFINITY; - } - - @Override - public String toString() { - return "Min: " + min + " Max: " + max; - } -} diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/stats/TripStatistics.aidl b/MyTracksLib/src/com/google/android/apps/mytracks/stats/TripStatistics.aidl deleted file mode 100644 index b411f6ccd..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/stats/TripStatistics.aidl +++ /dev/null @@ -1,2 +0,0 @@ -package com.google.android.apps.mytracks.stats; -parcelable TripStatistics; \ No newline at end of file diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/stats/TripStatistics.java b/MyTracksLib/src/com/google/android/apps/mytracks/stats/TripStatistics.java deleted file mode 100644 index 52c2dece6..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/stats/TripStatistics.java +++ /dev/null @@ -1,598 +0,0 @@ -/* - * Copyright 2010 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.google.android.apps.mytracks.stats; - -import android.os.Parcel; -import android.os.Parcelable; - -/** - * Statistical data about a trip. The data in this class should be filled out by - * TripStatisticsBuilder. - *

- * TODO: hashCode and equals - * - * @author Rodrigo Damazio - */ -public class TripStatistics implements Parcelable { - - // The trip start time. This is the system time, might not match the GPs time. - private long startTime = -1L; - - // The trip stop time. This is the system time, might not match the GPS time. - private long stopTime = -1L; - - // The total trip distance (meters). - private double totalDistance; - - // The total time (ms). Updated when new points are received, may be stale. - private long totalTime; - - // The total moving time (ms). Based on when we believe the user is traveling. - private long movingTime; - - // The min and max latitude seen in this trip. - private final ExtremityMonitor latitudeExtremities = new ExtremityMonitor(); - - // The min and max longitude seen in this trip. - private final ExtremityMonitor longitudeExtremities = new ExtremityMonitor(); - - // The maximum speed (meters/second) that we believe is valid. - private double maxSpeed; - - // The min and max elevation (meters) seen on this trip. - private final ExtremityMonitor elevationExtremities = new ExtremityMonitor(); - - // The total elevation gained (meters). - private double totalElevationGain; - - // The min and max grade seen on this trip. - private final ExtremityMonitor gradeExtremities = new ExtremityMonitor(); - - // The calorie of current track. - private double calorie = 0.0; - - /** - * Default constructor. - */ - public TripStatistics() {} - - /** - * Copy constructor. - * - * @param other another statistics data object to copy from - */ - public TripStatistics(TripStatistics other) { - startTime = other.startTime; - stopTime = other.stopTime; - totalDistance = other.totalDistance; - totalTime = other.totalTime; - movingTime = other.movingTime; - latitudeExtremities.set(other.latitudeExtremities.getMin(), other.latitudeExtremities.getMax()); - longitudeExtremities.set( - other.longitudeExtremities.getMin(), other.longitudeExtremities.getMax()); - maxSpeed = other.maxSpeed; - elevationExtremities.set( - other.elevationExtremities.getMin(), other.elevationExtremities.getMax()); - totalElevationGain = other.totalElevationGain; - gradeExtremities.set(other.gradeExtremities.getMin(), other.gradeExtremities.getMax()); - calorie = other.calorie; - } - - /** - * Combines these statistics with those from another object. This assumes that - * the time periods covered by each do not intersect. - * - * @param other another statistics data object - */ - public void merge(TripStatistics other) { - startTime = Math.min(startTime, other.startTime); - stopTime = Math.max(stopTime, other.stopTime); - totalDistance += other.totalDistance; - totalTime += other.totalTime; - movingTime += other.movingTime; - if (other.latitudeExtremities.hasData()) { - latitudeExtremities.update(other.latitudeExtremities.getMin()); - latitudeExtremities.update(other.latitudeExtremities.getMax()); - } - if (other.longitudeExtremities.hasData()) { - longitudeExtremities.update(other.longitudeExtremities.getMin()); - longitudeExtremities.update(other.longitudeExtremities.getMax()); - } - maxSpeed = Math.max(maxSpeed, other.maxSpeed); - if (other.elevationExtremities.hasData()) { - elevationExtremities.update(other.elevationExtremities.getMin()); - elevationExtremities.update(other.elevationExtremities.getMax()); - } - totalElevationGain += other.totalElevationGain; - if (other.gradeExtremities.hasData()) { - gradeExtremities.update(other.gradeExtremities.getMin()); - gradeExtremities.update(other.gradeExtremities.getMax()); - } - calorie += other.calorie; - } - - /** - * Gets the trip start time. The number of milliseconds since epoch. - */ - public long getStartTime() { - return startTime; - } - - /** - * Sets the trip start time. - * - * @param startTime the trip start time in milliseconds since the epoch - */ - public void setStartTime(long startTime) { - this.startTime = startTime; - } - - /** - * Gets the trip stop time. The number of milliseconds since epoch. - */ - public long getStopTime() { - return stopTime; - } - - /** - * Sets the trip stop time. - * - * @param stopTime the stop time in milliseconds since the epoch - */ - public void setStopTime(long stopTime) { - this.stopTime = stopTime; - } - - /** - * Gets the total distance the user traveled in meters. - */ - public double getTotalDistance() { - return totalDistance; - } - - /** - * Sets the total trip distance. - * - * @param totalDistance the trip distance in meters - */ - public void setTotalDistance(double totalDistance) { - this.totalDistance = totalDistance; - } - - /** - * Adds to the current total distance. - * - * @param distance the distance to add in meters - */ - public void addTotalDistance(double distance) { - totalDistance += distance; - } - - /** - * Gets the total time in milliseconds that this track has been active. This - * statistic is only updated when a new point is added to the statistics, so - * it may be off. If you need to calculate the proper total time, use - * {@link #getStartTime} with the current time. - */ - public long getTotalTime() { - return totalTime; - } - - /** - * Sets the trip total time. - * - * @param totalTime the trip total time in milliseconds - */ - public void setTotalTime(long totalTime) { - this.totalTime = totalTime; - } - - /** - * Gets the moving time in milliseconds. - */ - public long getMovingTime() { - return movingTime; - } - - /** - * Sets the trip total moving time. - * - * @param movingTime the trip total moving time in milliseconds - */ - public void setMovingTime(long movingTime) { - this.movingTime = movingTime; - } - - /** - * Adds to the trip total moving time. - * - * @param time the time in milliseconds - */ - public void addMovingTime(long time) { - movingTime += time; - } - - /** - * Gets the topmost position (highest latitude) of the track, in signed - * degrees. - */ - public double getTopDegrees() { - return latitudeExtremities.getMax(); - } - - /** - * Gets the topmost position (highest latitude) of the track, in signed - * millions of degrees. - */ - public int getTop() { - return (int) (latitudeExtremities.getMax() * 1E6); - } - - /** - * Gets the bottommost position (lowest latitude) of the track, in signed - * degrees. - */ - public double getBottomDegrees() { - return latitudeExtremities.getMin(); - } - - /** - * Gets the bottommost position (lowest latitude) of the track, in signed - * millions of degrees. - */ - public int getBottom() { - return (int) (latitudeExtremities.getMin() * 1E6); - } - - /** - * Gets the leftmost position (lowest longitude) of the track, in signed - * degrees. - */ - public double getLeftDegrees() { - return longitudeExtremities.getMin(); - } - - /** - * Gets the leftmost position (lowest longitude) of the track, in signed - * millions of degrees. - */ - public int getLeft() { - return (int) (longitudeExtremities.getMin() * 1E6); - } - - /** - * Gets the rightmost position (highest longitude) of the track, in signed - * degrees. - */ - public double getRightDegrees() { - return longitudeExtremities.getMax(); - } - - /** - * Gets the rightmost position (highest longitude) of the track, in signed - * millions of degrees. - */ - public int getRight() { - return (int) (longitudeExtremities.getMax() * 1E6); - } - - /** - * Gets the mean latitude position of the track, in signed degrees. - */ - public double getMeanLatitude() { - return (getBottomDegrees() + getTopDegrees()) / 2.0; - } - - /** - * Gets the mean longitude position of the track, in signed degrees. - */ - public double getMeanLongitude() { - return (getLeftDegrees() + getRightDegrees()) / 2.0; - } - - /** - * Sets the bounding box for this trip. The unit for all parameters is signed - * millions of degree (degrees * 1E6). - * - * @param leftE6 the leftmost longitude reached - * @param topE6 the topmost latitude reached - * @param rightE6 the rightmost longitude reached - * @param bottomE6 the bottommost latitude reached - */ - public void setBounds(int leftE6, int topE6, int rightE6, int bottomE6) { - latitudeExtremities.set(bottomE6 / 1E6, topE6 / 1E6); - longitudeExtremities.set(leftE6 / 1E6, rightE6 / 1E6); - } - - /** - * Updates a new latitude value. - * - * @param latitude the latitude value in signed decimal degrees - */ - public void updateLatitudeExtremities(double latitude) { - latitudeExtremities.update(latitude); - } - - /** - * Updates a new longitude value. - * - * @param longitude the longitude value in signed decimal degrees - */ - public void updateLongitudeExtremities(double longitude) { - longitudeExtremities.update(longitude); - } - - /** - * Gets the average speed in meters/second. This calculation only takes into - * account the displacement until the last point that was accounted for in - * statistics. - */ - public double getAverageSpeed() { - if (totalTime == 0L) { - return 0.0; - } - return totalDistance / ((double) totalTime / 1000.0); - } - - /** - * Gets the average moving speed in meters/second. - */ - public double getAverageMovingSpeed() { - if (movingTime == 0L) { - return 0.0; - } - return totalDistance / ((double) movingTime / 1000.0); - } - - /** - * Gets the maximum speed in meters/second. - */ - public double getMaxSpeed() { - return Math.max(maxSpeed, getAverageMovingSpeed()); - } - - /** - * Sets the maximum speed. - * - * @param maxSpeed the maximum speed in meters/second - */ - public void setMaxSpeed(double maxSpeed) { - this.maxSpeed = maxSpeed; - } - - /** - * Gets the minimum elevation. This is calculated from the smoothed elevation - * so this can actually be more than the current elevation. - */ - public double getMinElevation() { - return elevationExtremities.getMin(); - } - - /** - * Sets the minimum elevation. - * - * @param elevation the minimum elevation in meters - */ - public void setMinElevation(double elevation) { - elevationExtremities.setMin(elevation); - } - - /** - * Gets the maximum elevation. This is calculated from the smoothed elevation - * so this can actually be less than the current elevation. - */ - public double getMaxElevation() { - return elevationExtremities.getMax(); - } - - /** - * Sets the maximum elevation. - * - * @param elevation the maximum elevation in meters - */ - public void setMaxElevation(double elevation) { - elevationExtremities.setMax(elevation); - } - - /** - * Updates a new elevation. - * - * @param elevation the elevation value in meters - */ - public void updateElevationExtremities(double elevation) { - elevationExtremities.update(elevation); - } - - /** - * Gets the total elevation gain in meters. This is calculated as the sum of - * all positive differences in the smoothed elevation. - */ - public double getTotalElevationGain() { - return totalElevationGain; - } - - /** - * Sets the total elevation gain. - * - * @param totalElevationGain the elevation gain in meters - */ - public void setTotalElevationGain(double totalElevationGain) { - this.totalElevationGain = totalElevationGain; - } - - /** - * Adds to the total elevation gain. - * - * @param gain the elevation gain in meters - */ - public void addTotalElevationGain(double gain) { - totalElevationGain += gain; - } - - /** - * Gets the minimum grade for this trip. - */ - public double getMinGrade() { - return gradeExtremities.getMin(); - } - - /** - * Sets the maximum grade. - * - * @param grade the grade as a fraction (1.0 would mean vertical upwards) - */ - public void setMaxGrade(double grade) { - gradeExtremities.setMax(grade); - } - - /** - * Gets the maximum grade for this trip. - */ - public double getMaxGrade() { - return gradeExtremities.getMax(); - } - - /** - * Sets the minimum grade. - * - * @param grade the grade as a fraction (-1.0 would mean vertical downwards) - */ - public void setMinGrade(double grade) { - gradeExtremities.setMin(grade); - } - - /** - * Updates a new grade value. - * - * @param grade the grade value as a fraction - */ - public void updateGradeExtremities(double grade) { - gradeExtremities.update(grade); - } - - @Override - public String toString() { - return "TripStatistics { Start Time: " + getStartTime() + "; Stop Time: " + getStopTime() - + "; Total Distance: " + getTotalDistance() + "; Total Time: " + getTotalTime() - + "; Moving Time: " + getMovingTime() + "; Min Latitude: " + getBottomDegrees() - + "; Max Latitude: " + getTopDegrees() + "; Min Longitude: " + getLeftDegrees() - + "; Max Longitude: " + getRightDegrees() + "; Max Speed: " + getMaxSpeed() - + "; Min Elevation: " + getMinElevation() + "; Max Elevation: " + getMaxElevation() - + "; Elevation Gain: " + getTotalElevationGain() + "; Min Grade: " + getMinGrade() - + "; Max Grade: " + getMaxGrade() + "; Calorie: " + getCalorie() - + "}"; - } - - /** - * Creator of statistics data from parcels. - */ - public static class Creator implements Parcelable.Creator { - - @Override - public TripStatistics createFromParcel(Parcel source) { - TripStatistics data = new TripStatistics(); - - data.startTime = source.readLong(); - data.stopTime = source.readLong(); - data.totalDistance = source.readDouble(); - data.totalTime = source.readLong(); - data.movingTime = source.readLong(); - - double minLat = source.readDouble(); - double maxLat = source.readDouble(); - data.latitudeExtremities.set(minLat, maxLat); - - double minLong = source.readDouble(); - double maxLong = source.readDouble(); - data.longitudeExtremities.set(minLong, maxLong); - - data.maxSpeed = source.readDouble(); - - double minElev = source.readDouble(); - double maxElev = source.readDouble(); - data.elevationExtremities.set(minElev, maxElev); - data.totalElevationGain = source.readDouble(); - - double minGrade = source.readDouble(); - double maxGrade = source.readDouble(); - data.gradeExtremities.set(minGrade, maxGrade); - - data.calorie = source.readDouble(); - return data; - } - - @Override - public TripStatistics[] newArray(int size) { - return new TripStatistics[size]; - } - } - - /** - * Creator of {@link TripStatistics} from parcels. - */ - public static final Creator CREATOR = new Creator(); - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeLong(startTime); - dest.writeLong(stopTime); - dest.writeDouble(totalDistance); - dest.writeLong(totalTime); - dest.writeLong(movingTime); - dest.writeDouble(latitudeExtremities.getMin()); - dest.writeDouble(latitudeExtremities.getMax()); - dest.writeDouble(longitudeExtremities.getMin()); - dest.writeDouble(longitudeExtremities.getMax()); - dest.writeDouble(maxSpeed); - dest.writeDouble(elevationExtremities.getMin()); - dest.writeDouble(elevationExtremities.getMax()); - dest.writeDouble(totalElevationGain); - dest.writeDouble(gradeExtremities.getMin()); - dest.writeDouble(gradeExtremities.getMax()); - dest.writeDouble(calorie); - } - - /** - * Adds calorie value. - * - * @param calorieAdded add the value to the total calorie - */ - public void addCalorie(double calorieAdded) { - calorie += calorieAdded; - } - - /** - * Sets calorie value. - * - * @param calorie the new value of calorie - */ - public void setCalorie(double calorie) { - this.calorie = calorie; - } - - /** - * Gets calorie value. - */ - public double getCalorie() { - return calorie; - } -} \ No newline at end of file diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/util/FileUtils.java b/MyTracksLib/src/com/google/android/apps/mytracks/util/FileUtils.java deleted file mode 100644 index cd88d3d6c..000000000 --- a/MyTracksLib/src/com/google/android/apps/mytracks/util/FileUtils.java +++ /dev/null @@ -1,291 +0,0 @@ -/* - * Copyright 2010 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.util; - -import android.content.Context; -import android.content.Intent; -import android.net.Uri; -import android.os.Environment; - -import java.io.File; - -/** - * Utilities for dealing with files. - * - * @author Rodrigo Damazio - */ -public class FileUtils { - - private FileUtils() {} - - /** - * The backups directory under the My Tracks external storage directory. - */ - public static final String BACKUPS_DIR = "backups"; - - /** - * The My Tracks external storage directory. - */ - static final String SDCARD_TOP_DIR = "MyTracks"; - - /** - * The maximum FAT32 path length. See the FAT32 spec at - * http://msdn.microsoft.com/en-us/windows/hardware/gg463080 - */ - static final int MAX_FAT32_PATH_LENGTH = 260; - - /** - * The play tracks directory under the My Tracks cache directory. - */ - public static final String PLAY_TRACKS_DIR = "temp"; - - /** - * The temp files directory under the My Tracks cache directory. - */ - public static final String TEMP_FILES_DIR = "temp_files"; - - /** - * The pictures directory under the My Tracks external storage directory. - */ - private static final String PICTURES_DIR = "pictures"; - - /** - * Returns true if the external storage is available. - */ - public static boolean isExternalStorageAvailable() { - String state = Environment.getExternalStorageState(); - return Environment.MEDIA_MOUNTED.equals(state) - || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state); - } - - /** - * Returns true if the external storage is writable. - */ - public static boolean isExternalStorageWriteable() { - String state = Environment.getExternalStorageState(); - return Environment.MEDIA_MOUNTED.equals(state); - } - - /** - * Returns true if the directory exists. - * - * @param dir the directory - */ - public static boolean isDirectory(File dir) { - return dir.exists() && dir.isDirectory(); - } - - /** - * Ensures the directory exists by creating it and its parents if necessary. - * - * @return whether the directory exists (either already existed or was - * successfully created) - */ - public static boolean ensureDirectoryExists(File dir) { - if (isDirectory(dir)) { - return true; - } - return dir.mkdirs(); - } - - public static File getPhotoDir() { - return new File(getPath(PICTURES_DIR)); - } - - public static File getPhotoDir(long trackId) { - return new File(getPath(PICTURES_DIR, "MyTracks" + Long.toString(trackId))); - } - - /** - * Gets the display name for a path on the external storage. - * - * @param components the components - */ - public static String getPathDisplayName(String... components) { - StringBuilder dirNameBuilder = new StringBuilder(); - dirNameBuilder.append(File.separatorChar); - dirNameBuilder.append(SDCARD_TOP_DIR); - for (String component : components) { - dirNameBuilder.append(File.separatorChar); - dirNameBuilder.append(component); - } - return dirNameBuilder.toString(); - } - - /** - * Gets a path on the external storage. - * - * @param components the components - */ - public static String getPath(String... components) { - StringBuilder dirNameBuilder = new StringBuilder(); - dirNameBuilder.append(Environment.getExternalStorageDirectory()); - dirNameBuilder.append(getPathDisplayName(components)); - return dirNameBuilder.toString(); - } - - /** - * Builds a filename with the given base name (prefix) and the given - * extension, possibly adding a suffix to ensure the file doesn't exist. - * - * @param directory the directory the file will live in - * @param fileBaseName the prefix for the file name - * @param extension the file's extension - * @return the complete file name, without the directory - */ - public static synchronized String buildUniqueFileName( - File directory, String fileBaseName, String extension) { - return buildUniqueFileName(directory, fileBaseName, extension, 0); - } - - /** - * Gets the name from a file name, without the extension. - * - * @param fileName the file name - */ - public static String getName(String fileName) { - int index = fileName.lastIndexOf('.'); - if (index == -1) { - return fileName; - } - return fileName.substring(0, index); - } - - /** - * Gets the extension from a file name. Returns null if there is no extension. - * - * @param fileName the file name - */ - public static String getExtension(String fileName) { - int index = fileName.lastIndexOf('.'); - if (index == -1) { - return null; - } - return fileName.substring(index + 1); - } - - public static void updateMediaScanner(Context context, Uri uri) { - Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); - mediaScanIntent.setData(uri); - context.sendBroadcast(mediaScanIntent); - } - - /** - * Builds a filename with the given base and the given extension, possibly - * adding a suffix to ensure the file doesn't exist. - * - * @param directory the directory the filename will be located in - * @param base the base for the filename - * @param extension the extension for the filename - * @param suffix the first numeric suffix to try to use, or 0 for none - * @return the complete filename, without the directory - */ - private static String buildUniqueFileName( - File directory, String base, String extension, int suffix) { - String suffixName = ""; - if (suffix > 0) { - suffixName += "(" + Integer.toString(suffix) + ")"; - } - suffixName += "." + extension; - - String baseName = sanitizeFileName(base); - baseName = truncateFileName(directory, baseName, suffixName); - String fullName = baseName + suffixName; - - if (!new File(directory, fullName).exists()) { - return fullName; - } - return buildUniqueFileName(directory, base, extension, suffix + 1); - } - - /** - * Sanitizes the name as a valid fat32 filename. For simplicity, fat32 - * filename characters may be any combination of letters, digits, or - * characters with code point values greater than 127. Replaces the invalid - * characters with "_" and collapses multiple "_" together. - * - * @param name name - */ - static String sanitizeFileName(String name) { - StringBuffer buffer = new StringBuffer(name.length()); - for (int i = 0; i < name.length(); i++) { - int codePoint = name.codePointAt(i); - char character = name.charAt(i); - if (Character.isLetterOrDigit(character) || codePoint > 127 || isSpecialFat32(character)) { - buffer.appendCodePoint(codePoint); - } else { - buffer.append("_"); - } - } - String result = buffer.toString(); - return result.replaceAll("_+", "_"); - } - - /** - * Returns true if it is a special FAT32 character. - * - * @param character the character - */ - private static boolean isSpecialFat32(char character) { - switch (character) { - case '$': - case '%': - case '\'': - case '-': - case '_': - case '@': - case '~': - case '`': - case '!': - case '(': - case ')': - case '{': - case '}': - case '^': - case '#': - case '&': - case '+': - case ',': - case ';': - case '=': - case '[': - case ']': - case ' ': - return true; - default: - return false; - } - } - - /** - * Truncates the name if necessary so the filename path length (directory + - * name + suffix) meets the Fat32 path limit. - * - * @param directory directory - * @param name name - * @param suffix suffix - */ - static String truncateFileName(File directory, String name, String suffix) { - // 1 at the end accounts for the FAT32 filename trailing NUL character - int requiredLength = directory.getPath().length() + suffix.length() + 1; - if (name.length() + requiredLength > MAX_FAT32_PATH_LENGTH) { - int limit = MAX_FAT32_PATH_LENGTH - requiredLength; - return name.substring(0, limit); - } else { - return name; - } - } -} diff --git a/google-play-services_lib/.classpath b/google-play-services_lib/.classpath deleted file mode 100644 index 7bc01d9a9..000000000 --- a/google-play-services_lib/.classpath +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/google-play-services_lib/.project b/google-play-services_lib/.project deleted file mode 100644 index 06ae985ea..000000000 --- a/google-play-services_lib/.project +++ /dev/null @@ -1,33 +0,0 @@ - - - google-play-services_lib - - - - - - 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 - - diff --git a/google-play-services_lib/.settings/org.eclipse.jdt.core.prefs b/google-play-services_lib/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index b080d2ddc..000000000 --- a/google-play-services_lib/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 -org.eclipse.jdt.core.compiler.compliance=1.6 -org.eclipse.jdt.core.compiler.source=1.6 diff --git a/google-play-services_lib/AndroidManifest.xml b/google-play-services_lib/AndroidManifest.xml deleted file mode 100644 index 2e6aa673e..000000000 --- a/google-play-services_lib/AndroidManifest.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/google-play-services_lib/README.txt b/google-play-services_lib/README.txt deleted file mode 100644 index cf6f1859e..000000000 --- a/google-play-services_lib/README.txt +++ /dev/null @@ -1,14 +0,0 @@ -Library Project including Google Play services client jar. - -This can be used by an Android project to use the API's provided -by Google Play services. - -There is technically no source, but the src folder is necessary -to ensure that the build system works. The content is actually -located in the libs/ directory. - - -USAGE: - -Make sure you import this Android library project into your IDE -and set this project as a dependency. diff --git a/google-play-services_lib/libs/google-play-services.jar b/google-play-services_lib/libs/google-play-services.jar deleted file mode 100644 index 7839fe301..000000000 Binary files a/google-play-services_lib/libs/google-play-services.jar and /dev/null differ diff --git a/google-play-services_lib/libs/google-play-services.jar.properties b/google-play-services_lib/libs/google-play-services.jar.properties deleted file mode 100644 index 429687b79..000000000 --- a/google-play-services_lib/libs/google-play-services.jar.properties +++ /dev/null @@ -1 +0,0 @@ -doc=../../../docs/reference diff --git a/google-play-services_lib/project.properties b/google-play-services_lib/project.properties deleted file mode 100644 index db721fd89..000000000 --- a/google-play-services_lib/project.properties +++ /dev/null @@ -1,15 +0,0 @@ -# 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 edit -# "ant.properties", and override values to adapt the script to your -# project structure. -# -# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): -#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt - -# Project target. -target=android-8 -android.library=true diff --git a/google-play-services_lib/res/color/common_signin_btn_text_dark.xml b/google-play-services_lib/res/color/common_signin_btn_text_dark.xml deleted file mode 100644 index a615ba274..000000000 --- a/google-play-services_lib/res/color/common_signin_btn_text_dark.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - diff --git a/google-play-services_lib/res/color/common_signin_btn_text_light.xml b/google-play-services_lib/res/color/common_signin_btn_text_light.xml deleted file mode 100644 index 662066899..000000000 --- a/google-play-services_lib/res/color/common_signin_btn_text_light.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_dark.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_dark.9.png deleted file mode 100644 index 0f9e7917e..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_dark.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_dark.9.png deleted file mode 100644 index 570e43225..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_light.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_light.9.png deleted file mode 100644 index 570e43225..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_light.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_light.9.png deleted file mode 100644 index 0f9e7917e..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_focus_dark.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_focus_dark.9.png deleted file mode 100644 index f507b9f7d..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_focus_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_focus_light.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_focus_light.9.png deleted file mode 100644 index d5625e5fc..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_focus_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_normal_dark.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_normal_dark.9.png deleted file mode 100644 index aea3c0d16..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_normal_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_normal_light.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_normal_light.9.png deleted file mode 100644 index 849e89f3a..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_normal_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_pressed_dark.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_pressed_dark.9.png deleted file mode 100644 index f4ab2f2a5..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_pressed_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_pressed_light.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_pressed_light.9.png deleted file mode 100644 index 9fe611d68..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_pressed_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_dark.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_dark.9.png deleted file mode 100644 index bbcde39cf..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_focus_dark.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_focus_dark.9.png deleted file mode 100644 index 53957b698..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_focus_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_focus_light.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_focus_light.9.png deleted file mode 100644 index 53957b698..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_focus_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_light.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_light.9.png deleted file mode 100644 index bbcde39cf..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_focus_dark.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_focus_dark.9.png deleted file mode 100644 index 000d12e8e..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_focus_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_focus_light.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_focus_light.9.png deleted file mode 100644 index d9279405c..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_focus_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_normal_dark.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_normal_dark.9.png deleted file mode 100644 index 67f263c80..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_normal_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_normal_light.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_normal_light.9.png deleted file mode 100644 index 96324c52f..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_normal_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_pressed_dark.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_pressed_dark.9.png deleted file mode 100644 index e4503128f..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_pressed_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_pressed_light.9.png b/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_pressed_light.9.png deleted file mode 100644 index fb94b7761..000000000 Binary files a/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_pressed_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_dark.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_dark.9.png deleted file mode 100644 index dddcbebf1..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_dark.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_dark.9.png deleted file mode 100644 index 58b75bd7d..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_light.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_light.9.png deleted file mode 100644 index 58b75bd7d..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_light.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_light.9.png deleted file mode 100644 index dddcbebf1..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_focus_dark.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_focus_dark.9.png deleted file mode 100644 index 7d9ed7834..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_focus_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_focus_light.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_focus_light.9.png deleted file mode 100644 index 0ca401d37..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_focus_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_normal_dark.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_normal_dark.9.png deleted file mode 100644 index f2c3f5571..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_normal_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_normal_light.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_normal_light.9.png deleted file mode 100644 index 83b4fc9d6..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_normal_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_pressed_dark.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_pressed_dark.9.png deleted file mode 100644 index dd74fe876..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_pressed_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_pressed_light.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_pressed_light.9.png deleted file mode 100644 index b7dc7aac7..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_pressed_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_dark.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_dark.9.png deleted file mode 100644 index efdfe2e61..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_focus_dark.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_focus_dark.9.png deleted file mode 100644 index c7650b09e..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_focus_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_focus_light.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_focus_light.9.png deleted file mode 100644 index c7650b09e..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_focus_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_light.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_light.9.png deleted file mode 100644 index efdfe2e61..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_focus_dark.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_focus_dark.9.png deleted file mode 100644 index 8c76283e5..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_focus_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_focus_light.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_focus_light.9.png deleted file mode 100644 index abd26bcd4..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_focus_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_normal_dark.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_normal_dark.9.png deleted file mode 100644 index 28181c338..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_normal_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_normal_light.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_normal_light.9.png deleted file mode 100644 index 34957fad5..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_normal_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_pressed_dark.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_pressed_dark.9.png deleted file mode 100644 index e923ee9c7..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_pressed_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_pressed_light.9.png b/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_pressed_light.9.png deleted file mode 100644 index 34cf6bbad..000000000 Binary files a/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_pressed_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_dark.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_dark.9.png deleted file mode 100644 index 9044a118a..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_dark.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_dark.9.png deleted file mode 100644 index e94a49b0a..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_light.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_light.9.png deleted file mode 100644 index e94a49b0a..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_light.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_light.9.png deleted file mode 100644 index 9044a118a..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_focus_dark.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_focus_dark.9.png deleted file mode 100644 index bfe4f0463..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_focus_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_focus_light.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_focus_light.9.png deleted file mode 100644 index 876884fad..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_focus_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_normal_dark.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_normal_dark.9.png deleted file mode 100644 index b3e6dd5b4..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_normal_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_normal_light.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_normal_light.9.png deleted file mode 100644 index 5a888f28f..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_normal_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_pressed_dark.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_pressed_dark.9.png deleted file mode 100644 index d0f7b4cbf..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_pressed_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_pressed_light.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_pressed_light.9.png deleted file mode 100644 index 0db6b0645..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_pressed_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_dark.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_dark.9.png deleted file mode 100644 index d182b5e2c..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_dark.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_dark.9.png deleted file mode 100644 index 47e2aeaf3..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_light.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_light.9.png deleted file mode 100644 index 47e2aeaf3..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_light.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_light.9.png deleted file mode 100644 index d182b5e2c..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_focus_dark.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_focus_dark.9.png deleted file mode 100644 index 64e970687..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_focus_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_focus_light.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_focus_light.9.png deleted file mode 100644 index 0fd8cdda1..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_focus_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_normal_dark.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_normal_dark.9.png deleted file mode 100644 index 3427b4768..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_normal_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_normal_light.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_normal_light.9.png deleted file mode 100644 index 31e38c4c1..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_normal_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_pressed_dark.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_pressed_dark.9.png deleted file mode 100644 index e6a788073..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_pressed_dark.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_pressed_light.9.png b/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_pressed_light.9.png deleted file mode 100644 index 972962dcf..000000000 Binary files a/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_pressed_light.9.png and /dev/null differ diff --git a/google-play-services_lib/res/drawable/common_signin_btn_icon_dark.xml b/google-play-services_lib/res/drawable/common_signin_btn_icon_dark.xml deleted file mode 100644 index dd1cf679f..000000000 --- a/google-play-services_lib/res/drawable/common_signin_btn_icon_dark.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - diff --git a/google-play-services_lib/res/drawable/common_signin_btn_icon_light.xml b/google-play-services_lib/res/drawable/common_signin_btn_icon_light.xml deleted file mode 100644 index abf412bda..000000000 --- a/google-play-services_lib/res/drawable/common_signin_btn_icon_light.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - diff --git a/google-play-services_lib/res/drawable/common_signin_btn_text_dark.xml b/google-play-services_lib/res/drawable/common_signin_btn_text_dark.xml deleted file mode 100644 index 2d92217cd..000000000 --- a/google-play-services_lib/res/drawable/common_signin_btn_text_dark.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - diff --git a/google-play-services_lib/res/drawable/common_signin_btn_text_light.xml b/google-play-services_lib/res/drawable/common_signin_btn_text_light.xml deleted file mode 100644 index 810c02112..000000000 --- a/google-play-services_lib/res/drawable/common_signin_btn_text_light.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - diff --git a/google-play-services_lib/res/values-af/strings.xml b/google-play-services_lib/res/values-af/strings.xml deleted file mode 100644 index 451db371f..000000000 --- a/google-play-services_lib/res/values-af/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Kry Google Play-dienste" - "Hierdie program sal nie loop sonder Google Play-dienste nie, wat nie op jou foon is nie." - "Hierdie program sal nie loop sonder Google Play-dienste nie, wat nie op jou tablet is nie." - "Kry Google Play-dienste" - "Aktiveer Google Play-dienste" - "Hierdie program sal nie werk tensy jy Google Play-dienste aktiveer nie." - "Aktiveer Google Play-dienste" - "Dateer Google Play-dienste op" - "Hierdie program sal nie loop nie, tensy jy Google Play-dienste opdateer." - "Onbekende probleem met Google Play-dienste." - "Google Play-dienste" - "Google Play-dienste, waarop sommige van jou programme staatmaak, werk nie met jou toestel nie. Kontak asseblief die vervaardiger vir bystand." - "Dateer op" - "Meld aan" - "Meld aan met Google" - diff --git a/google-play-services_lib/res/values-am/strings.xml b/google-play-services_lib/res/values-am/strings.xml deleted file mode 100644 index 7386ef3e0..000000000 --- a/google-play-services_lib/res/values-am/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Google Play አገልግሎቶችን አግኝ" - "ይህ መተግበሪያ ያለ Google Play አገልግሎቶች አይሰራም፣ እነሱ ደግሞ ስልክዎ ላይ የሉም።" - "ይህ መተግበሪያ ያለ Google Play አገልግሎቶች አይሰራም፣ እነሱ ደግሞ ጡባዊዎ ላይ የሉም።" - "Google Play አገልግሎቶችን አግኝ" - "Google Play አገልግሎቶችን አንቃ" - "Google Play አገልግሎቶችን እስካላነቁ ድረስ ይህ መተግበሪያ አይሰራም።" - "Google Play አገልግሎቶችን አንቃ" - "Google Play አገልግሎቶችን ያዘምኑ" - "Google Play አገልግሎቶችን እስኪያዘምኑ ድረስ ይህ መተግበሪያ አይሰራም።" - "በGoogle Play አገልግሎቶች ላይ ያልታወቀ ችግር።" - "Google Play አገልግሎቶች" - "የGoogle Play አገልግሎቶች፣ አንዳንድ መተግበሪያዎችዎ በእሱ ላይ ጥገኛ የሆኑት፣ በመሣሪያዎ አይደገፍም። እባክዎ ለእርዳታ አምራቹን ያግኙ።" - "ያዘምኑ" - "ግባ" - "በGoogle ይግቡ" - diff --git a/google-play-services_lib/res/values-ar/strings.xml b/google-play-services_lib/res/values-ar/strings.xml deleted file mode 100644 index 97b83e732..000000000 --- a/google-play-services_lib/res/values-ar/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "الحصول على خدمات Google Play" - "لن يتم تشغيل هذا التطبيق بدون خدمات Google Play، والتي لا تتوفر في هاتفك." - "لن يتم تشغيل هذا التطبيق بدون خدمات Google Play، والتي لا تتوفر في جهازك اللوحي." - "الحصول على خدمات Google Play" - "تمكين خدمات Google Play" - "لن يعمل هذا التطبيق ما لم يتم تمكين خدمات Google Play." - "تمكين خدمات Google Play" - "تحديث خدمات Google Play" - "لن يتم تشغيل هذا التطبيق ما لم تحدِّث خدمات Google Play." - "حدثت مشكلة غير معروفة في خدمات Google Play." - "خدمات Google Play" - "خدمات Google Play التي تستجيب لها بعض تطبيقاتك لا تعمل على جهازك. يُرجى الاتصال بجهة التصنيع للحصول على المساعدة." - "تحديث" - "تسجيل الدخول" - "تسجيل الدخول باستخدام Google" - diff --git a/google-play-services_lib/res/values-be/strings.xml b/google-play-services_lib/res/values-be/strings.xml deleted file mode 100644 index 56cb75e20..000000000 --- a/google-play-services_lib/res/values-be/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Атрымаць службы Google Play" - "Гэта прыкладанне не будзе працаваць без службаў Google Play, якіх няма ў вашым тэлефоне." - "Гэта прыкладанне не будзе працаваць без службаў Google Play, якіх няма на вашым планшэце." - "Атрымаць службы Google Play" - "Уключыць службы Google Play" - "Гэта прыкладанне не будзе працаваць, пакуль вы не ўключыце службы Google Play." - "Уключыць службы Google Play" - "Абнаўленне службаў Google Play" - "Гэта прыкладанне не будзе працаваць падчас абнаўлення службаў Google Play." - "Невядомая праблема са службамі Google Play." - "Службы Google Play" - "Службы Google Play, да якiх прывязаны некаторыя прыкладаннi, не падтрымлiваюцца на вашай прыладзе. Па дапамогу звярнiцеся да вытворцы." - "Абнавіць" - "Увайсцi" - "Увайсці ў Google" - diff --git a/google-play-services_lib/res/values-bg/strings.xml b/google-play-services_lib/res/values-bg/strings.xml deleted file mode 100644 index 2fa9f0c3c..000000000 --- a/google-play-services_lib/res/values-bg/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Изтегляне на услугите за Google Play" - "Това приложение няма да се изпълнява без услугите за Google Play, които липсват в телефона ви." - "Това приложение няма да се изпълнява без услугите за Google Play, които липсват в таблета ви." - "Услуги за Google Play: Изтегл." - "Активиране на услугите за Google Play" - "Това приложение няма да работи, освен ако не активирате услугите за Google Play." - "Услуги за Google Play: Актив." - "Актуализиране на услугите за Google Play" - "Това приложение няма да се изпълнява, освен ако не актуализирате услугите за Google Play." - "Неизвестен проблем с услугите за Google Play." - "Услуги за Google Play" - "Услугите за Google Play, на които разчитат някои от приложенията ви, не се поддържат от устройството ви. Моля, свържете се с производителя за помощ." - "Актуализиране" - "Вход" - "Вход с Google" - diff --git a/google-play-services_lib/res/values-ca/strings.xml b/google-play-services_lib/res/values-ca/strings.xml deleted file mode 100644 index ce6536ea3..000000000 --- a/google-play-services_lib/res/values-ca/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Baixa els serveis de Google Play" - "Aquesta aplicació no s\'executarà si el telèfon no té instal·lats els serveis de Google Play." - "Aquesta aplicació no funcionarà si la tauleta no té instal·lats els serveis de Google Play." - "Baixa els serveis de Google Play" - "Activa els serveis de Google Play" - "Aquesta aplicació no funcionarà si no actives els serveis de Google Play." - "Activa els serveis de Google Play" - "Actualitza els serveis de Google Play" - "Aquesta aplicació no s\'executarà si no actualitzes els serveis de Google Play." - "Error desconegut relacionat amb els serveis de Google Play." - "Serveis de Google Play" - "El teu dispositiu no és compatible amb els serveis de Google Play, en què es basen les teves aplicacions. Per obtenir assistència, contacta amb el fabricant." - "Actualitza" - "Inicia sessió" - "Inicia sessió amb Google" - diff --git a/google-play-services_lib/res/values-cs/strings.xml b/google-play-services_lib/res/values-cs/strings.xml deleted file mode 100644 index 4d3ae366b..000000000 --- a/google-play-services_lib/res/values-cs/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Instalovat služby Google Play" - "Ke spuštění této aplikace jsou potřeba služby Google Play, které v telefonu nemáte." - "Ke spuštění této aplikace jsou potřeba služby Google Play, které v tabletu nemáte." - "Instalovat služby Google Play" - "Aktivovat služby Google Play" - "Ke spuštění této aplikace je třeba aktivovat služby Google Play." - "Aktivovat služby Google Play" - "Aktualizace služeb Google Play" - "Ke spuštění této aplikace je třeba aktualizovat služby Google Play." - "Nastal neznámý problém se službami Google Play." - "Služby Google Play" - "Některé vaše aplikace vyžadují služby Google Play, které ve vašem zařízení nejsou podporovány. S žádostí o pomoc se prosím obraťte na výrobce." - "Aktualizovat" - "Přihlásit se" - "Přihlásit se účtem Google" - diff --git a/google-play-services_lib/res/values-da/strings.xml b/google-play-services_lib/res/values-da/strings.xml deleted file mode 100644 index f6a802753..000000000 --- a/google-play-services_lib/res/values-da/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Hent Google Play-tjenester" - "Denne app kan ikke køre uden Google Play-tjenester, som mangler på din telefon." - "Denne app kan ikke køre uden Google Play-tjenester, som mangler på din tablet." - "Hent Google Play-tjenester" - "Aktivér Google Play-tjenester" - "Denne app virker ikke, medmindre du aktiverer Google Play-tjenester." - "Aktivér Google Play-tjenester" - "Opdater Google Play-tjenester" - "Denne app kan ikke køre, medmindre du opdaterer Google Play-tjenester." - "Ukendt problem med Google Play-tjenester." - "Google Play-tjenester" - "Google Play-tjenester, som nogle af dine applikationer er afhængige af, understøttes ikke af din enhed. Kontakt producenten for at få hjælp." - "Opdater" - "Log ind" - "Log ind med Google" - diff --git a/google-play-services_lib/res/values-de/strings.xml b/google-play-services_lib/res/values-de/strings.xml deleted file mode 100644 index 0185914fa..000000000 --- a/google-play-services_lib/res/values-de/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Google Play-Dienste installieren" - "Zur Nutzung dieser App sind Google Play-Dienste erforderlich, die auf Ihrem Telefon nicht installiert sind." - "Zur Nutzung dieser App sind Google Play-Dienste erforderlich, die auf Ihrem Tablet nicht installiert sind." - "Google Play-Dienste installieren" - "Google Play-Dienste aktivieren" - "Diese App funktioniert nur, wenn Sie die Google Play-Dienste aktivieren." - "Google Play-Dienste aktivieren" - "Google Play-Dienste aktualisieren" - "Diese App wird nur ausgeführt, wenn Sie die Google Play-Dienste aktualisieren." - "Unbekanntes Problem mit Google Play-Diensten" - "Google Play-Dienste" - "Google Play-Dienste, auf denen einige Ihrer Apps basieren, werden von diesem Gerät nicht unterstützt. Wenden Sie sich für weitere Informationen an den Hersteller." - "Aktualisieren" - "Anmelden" - "Über Google anmelden" - diff --git a/google-play-services_lib/res/values-el/strings.xml b/google-play-services_lib/res/values-el/strings.xml deleted file mode 100644 index bef88b3b7..000000000 --- a/google-play-services_lib/res/values-el/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Λήψη υπηρεσιών Google Play" - "Αυτή η εφαρμογή δεν θα εκτελεστεί χωρίς τις υπηρεσίες Google Play, οι οποίες λείπουν από το τηλέφωνό σας." - "Αυτή η εφαρμογή δεν θα εκτελεστεί χωρίς τις υπηρεσίες Google Play, οι οποίες λείπουν από το tablet σας." - "Λήψη υπηρεσιών Google Play" - "Ενεργοποίηση υπηρεσιών Google Play" - "Αυτή η εφαρμογή δεν θα λειτουργήσει εάν δεν έχετε ενεργοποιήσει τις υπηρεσίες Google Play." - "Ενεργοπ. υπηρεσιών Google Play" - "Ενημέρωση υπηρεσιών Google Play" - "Αυτή η εφαρμογή θα εκτελεστεί αφού ενημερώσετε τις υπηρεσίες Google Play." - "Άγνωστο πρόβλημα με τις υπηρεσίες Google Play." - "Υπηρεσίες Google Play" - "Οι υπηρεσίες Google Play, στις οποίες βασίζονται ορισμένες από τις εφαρμογές σας, δεν υποστηρίζονται στη συσκευή σας. Επικοινωνήστε με τον κατασκευαστή για υποστήριξη." - "Ενημέρωση" - "Σύνδεση" - "Συνδεθείτε στο Google" - diff --git a/google-play-services_lib/res/values-en-rGB/strings.xml b/google-play-services_lib/res/values-en-rGB/strings.xml deleted file mode 100644 index 055dab34c..000000000 --- a/google-play-services_lib/res/values-en-rGB/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Get Google Play services" - "This app won\'t run without Google Play services, which are missing from your phone." - "This app won\'t run without Google Play services, which are missing from your tablet." - "Get Google Play services" - "Enable Google Play services" - "This app won\'t work unless you enable Google Play services." - "Enable Google Play services" - "Update Google Play services" - "This app won\'t run unless you update Google Play services." - "Unknown issue with Google Play services." - "Google Play services" - "Google Play services, which some of your applications rely on, is not supported by your device. Please contact the manufacturer for assistance." - "Update" - "Sign in" - "Sign in with Google" - diff --git a/google-play-services_lib/res/values-es-rUS/strings.xml b/google-play-services_lib/res/values-es-rUS/strings.xml deleted file mode 100644 index 14f89f470..000000000 --- a/google-play-services_lib/res/values-es-rUS/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Obtener Google Play Services" - "Esta aplicación no se ejecutará si no instalasGoogle Play Services en tu dispositivo." - "Esta aplicación no se ejecutará si no instalas Google Play Services en tu tableta." - "Descargar Google Play Services" - "Activar Google Play Services" - "Esta aplicación no funcionará si no activas Google Play Services." - "Activar Google Play Services" - "Actualizar Google Play Services" - "Esta aplicación no se ejecutará si no actualizas Google Play Services." - "Error desconocido relacionado con Google Play Services" - "Google Play Services" - "Google Play Services, del cual dependen algunas de tus aplicaciones, no es compatible con tu dispositivo. Comunícate con el fabricante para obtener ayuda." - "Actualizar" - "Acceder" - "Acceder con Google" - diff --git a/google-play-services_lib/res/values-es/strings.xml b/google-play-services_lib/res/values-es/strings.xml deleted file mode 100644 index 96e7ee9ca..000000000 --- a/google-play-services_lib/res/values-es/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Descargar servicios de Google Play" - "Esta aplicación no se ejecutará si tu teléfono no tiene instalados los servicios de Google Play." - "Esta aplicación no se ejecutará si tu tablet no tiene instalados los servicios de Google Play." - "Descargar servicios de Google Play" - "Habilitar servicios de Google Play" - "Esta aplicación no funcionará si no habilitas los servicios de Google Play." - "Habilitar servicios de Google Play" - "Actualizar servicios de Google Play" - "Esta aplicación no se ejecutará si no actualizas los servicios de Google Play." - "Error desconocido relacionado con los servicios de Google Play" - "Servicios de Google Play" - "Tu dispositivo no es compatible con los servicios de Google Play, de los cuales dependen tus aplicaciones. Para obtener asistencia, ponte en contacto el fabricante." - "Actualizar" - "Iniciar sesión" - "Iniciar sesión con Google" - diff --git a/google-play-services_lib/res/values-et/strings.xml b/google-play-services_lib/res/values-et/strings.xml deleted file mode 100644 index e7043e6b3..000000000 --- a/google-play-services_lib/res/values-et/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Hankige Google Play teenused" - "Selle rakenduse käitamiseks on vaja Google Play teenuseid, mida teie telefonis pole." - "Selle rakenduse käitamiseks on vaja Google Play teenuseid, mida teie tahvelarvutis pole." - "Hankige Google Play teenused" - "Lubage Google Play teenused" - "See rakendus ei tööta, kui te ei luba Google Play teenuseid." - "Lubage Google Play teenused" - "Värskendage Google Play teenuseid" - "Seda rakendust ei saa käitada, kui te ei värskenda Google Play teenuseid." - "Google Play teenuste tundmatu probleem." - "Google Play teenused" - "Teie seade ei toeta Google Play teenuseid, millele mõni teie rakendustest toetub. Abi saamiseks võtke ühendust tootjaga." - "Värskenda" - "Logi sisse" - "Logi sisse Google\'iga" - diff --git a/google-play-services_lib/res/values-fa/strings.xml b/google-play-services_lib/res/values-fa/strings.xml deleted file mode 100644 index 6047bf36e..000000000 --- a/google-play-services_lib/res/values-fa/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "دریافت خدمات Google Play" - "این برنامه بدون خدمات Google Play اجرا نمی‌شود، این خدمات در تلفن شما وجود ندارد." - "این برنامه بدون خدمات Google Play اجرا نمی‌شود، این خدمات در رایانهٔ لوحی شما وجود ندارد." - "دریافت خدمات Google Play" - "فعال کردن خدمات Google Play" - "تا زمانی‌که خدمات Google Play را فعال نکنید این برنامه کار نمی‌کند." - "فعال کردن خدمات Google Play" - "به‌روزرسانی خدمات Google Play" - "تا زمانی‌که خدمات Google Play را به‌روز نکنید این برنامه کار نمی‌کند." - "مشکل نامشخص در خدمات Google Play." - "خدمات Google Play" - "خدمات Google Play، که برخی از برنامه‌های شما به آن وابسته است، توسط دستگاه شما پشتیبانی نمی‌شود. لطفاً برای دریافت کمک با سازنده تماس بگیرید." - "به‌روزرسانی" - "ورود به سیستم" - "ورود به سیستم با Google‎" - diff --git a/google-play-services_lib/res/values-fi/strings.xml b/google-play-services_lib/res/values-fi/strings.xml deleted file mode 100644 index 76cdbb78b..000000000 --- a/google-play-services_lib/res/values-fi/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Asenna Google Play -palvelut" - "Tämä sovellus ei toimi ilman Google Play -palveluita, jotka puuttuvat puhelimesta." - "Tämä sovellus ei toimi ilman Google Play -palveluita, jotka puuttuvat tablet-laitteesta." - "Asenna Google Play -palvelut" - "Ota Google Play -palvelut käyttöön" - "Tämä sovellus ei toimi, ellet ota Google Play -palveluita käyttöön." - "Ota Google Play -palv. käyttöön" - "Päivitä Google Play -palvelut" - "Tämä sovellus ei toimi, ellet päivitä Google Play -palveluita." - "Tuntematon ongelma käytettäessä Google Play -palveluita." - "Google Play -palvelut" - "Google Play -palveluita, joita osa sovelluksistasi käyttää, ei tueta laitteellasi. Pyydä ohjeita laitteen valmistajalta." - "Päivitä" - "Kirjaudu" - "Kirjaudu Google-tiliin" - diff --git a/google-play-services_lib/res/values-fr/strings.xml b/google-play-services_lib/res/values-fr/strings.xml deleted file mode 100644 index 9d93f55a6..000000000 --- a/google-play-services_lib/res/values-fr/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Installer les services Google Play" - "Cette application ne fonctionnera pas sans les services Google Play, qui ne sont pas installés sur votre téléphone." - "Cette application ne fonctionnera pas sans les services Google Play, qui ne sont pas installés sur votre tablette." - "Installer services Google Play" - "Activer les services Google Play" - "Cette application ne fonctionnera pas tant que vous n\'aurez pas activé les services Google Play." - "Activer services Google Play" - "Mettre à jour les services Google Play" - "Cette application ne fonctionnera pas tant que vous n\'aurez pas mis à jour les services Google Play." - "Problème inconnu avec les services Google Play." - "Services Google Play" - "Les services Google Play, dont dépendent certaines de vos applications, ne sont pas compatibles avec votre appareil. Veuillez contacter le fabricant pour obtenir de l\'aide." - "Mettre à jour" - "Connexion" - "Se connecter avec Google" - diff --git a/google-play-services_lib/res/values-hi/strings.xml b/google-play-services_lib/res/values-hi/strings.xml deleted file mode 100644 index 9bdad37d0..000000000 --- a/google-play-services_lib/res/values-hi/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Google Play सेवाएं पाएं" - "यह एप्लिकेशन Google Play सेवाओं के बिना नहीं चलेगा, जो आपके फ़ोन में नहीं हैं." - "यह एप्लिकेशन Google Play सेवाओं के बिना नहीं चलेगा, जो आपके टेबलेट में नहीं हैं." - "Google Play सेवाएं पाएं" - "Google Play सेवाएं सक्षम करें" - "जब तक आप Google Play सेवाएं सक्षम नहीं करते, तब तक यह एप्लिकेशन कार्य नहीं करेगा." - "Google Play सेवाएं सक्षम करें" - "Google Play सेवाएं अपडेट करें" - "जब तक आप Google Play सेवाओं को अपडेट नहीं करते, तब तक यह एप्लिकेशन नहीं चलेगा." - "Google Play सेवाओं के साथ अज्ञात समस्या." - "Google Play सेवाएं" - "Google Play सेवाएं, जिन पर आपके कुछ एप्लिकेशन निर्भर करते हैं, आपके उपकरण द्वारा समर्थित नहीं हैं. कृपया सहायता के लिए निर्माता से संपर्क करें." - "अपडेट करें" - "साइन इन करें" - "Google से साइन इन करें" - diff --git a/google-play-services_lib/res/values-hr/strings.xml b/google-play-services_lib/res/values-hr/strings.xml deleted file mode 100644 index beb0276dd..000000000 --- a/google-play-services_lib/res/values-hr/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Preuzmi usluge za Google Play" - "Ova aplikacija neće funkcionirati bez usluga za Google Play, koje nisu instalirane na vašem telefonu." - "Ova aplikacija neće funkcionirati bez usluga za Google Play, koje nisu instalirane na vašem tabletnom računalu." - "Preuzmi usluge za Google Play" - "Omogući usluge za Google Play" - "Ova aplikacija neće raditi ako ne omogućite usluge za Google Play." - "Omogući usluge za Google Play" - "Ažuriraj usluge za Google Play" - "Ova se aplikacija neće pokrenuti ako ne ažurirate usluge za Google Play." - "Nepoznata poteškoća s uslugama za Google Play." - "Usluge za Google Play" - "Usluge za Google Play, koje su potrebne za funkcioniranje nekih vaših aplikacija, nisu podržane na vašem uređaju. Pomoć potražite od proizvođača." - "Ažuriranje" - "Prijava" - "Prijava uslugom Google" - diff --git a/google-play-services_lib/res/values-hu/strings.xml b/google-play-services_lib/res/values-hu/strings.xml deleted file mode 100644 index b36848190..000000000 --- a/google-play-services_lib/res/values-hu/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Play Szolgáltatások telepítése" - "Az alkalmazás működéséhez a Google Play Szolgáltatások szükségesek, ezek nincsenek telepítve a telefonon." - "Az alkalmazás működéséhez a Google Play Szolgáltatások szükségesek, ezek nincsenek telepítve a táblagépen." - "Play Szolgáltatások telepítése" - "Google Play Szolgáltatások aktiválása" - "Az alkalmazás csak akkor fog működni, ha engedélyezi a Google Play Szolgáltatásokat." - "Play Szolgáltatások aktiválása" - "Play Szolgáltatások frissítése" - "Az alkalmazás csak akkor fog működni, ha frissíti a Google Play Szolgáltatásokat." - "Ismeretlen hiba a Google Play Szolgáltatásokban." - "Google Play Szolgáltatások" - "A Google Play Szolgáltatásokat, amelyre egyes alkalmazások támaszkodnak, nem támogatja az eszköz. Segítségért forduljon az eszköz gyártójához." - "Frissítés" - "Belépés" - "Google-bejelentkezés" - diff --git a/google-play-services_lib/res/values-in/strings.xml b/google-play-services_lib/res/values-in/strings.xml deleted file mode 100644 index d66d76cac..000000000 --- a/google-play-services_lib/res/values-in/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Dapatkan layanan Google Play" - "Aplikasi ini tidak akan berjalan tanpa layanan Google Play, yang tidak ada di ponsel Anda." - "Aplikasi ini tidak akan berjalan tanpa layanan Google Play, yang tidak ada di tablet Anda." - "Dapatkan layanan Google Play" - "Aktifkan layanan Google Play" - "Aplikasi ini tidak akan bekerja sampai Anda mengaktifkan layanan Google Play." - "Aktifkan layanan Google Play" - "Perbarui layanan Google Play" - "Aplikasi ini tidak akan berjalan sampai Anda memperbarui layanan Google Play." - "Masalah tidak diketahui pada layanan Google Play." - "Layanan Google Play" - "Layanan Google Play, yang diandalkan oleh beberapa aplikasi Anda, tidak didukung oleh perangkat Anda. Hubungi pabrikan untuk mendapatkan bantuan." - "Perbarui" - "Masuk" - "Masuk dengan Google" - diff --git a/google-play-services_lib/res/values-it/strings.xml b/google-play-services_lib/res/values-it/strings.xml deleted file mode 100644 index af7c7004d..000000000 --- a/google-play-services_lib/res/values-it/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Installa Google Play Services" - "L\'app non funzionerà senza Google Play Services, non presente sul tuo telefono." - "L\'app non funzionerà senza Google Play Services, non presente sul tuo tablet." - "Installa Google Play Services" - "Attiva Google Play Services" - "L\'app non funzionerà se non attivi Google Play Services." - "Attiva Google Play Services" - "Aggiorna Google Play Services" - "L\'app non funzionerà se non aggiorni Google Play Services." - "Problema sconosciuto con Google Play Services." - "Google Play Services" - "La piattaforma Google Play Services, su cui sono basate alcune delle tue applicazioni, non è supportata dal dispositivo in uso. Per assistenza, contatta il produttore." - "Aggiorna" - "Accedi" - "Accedi con Google" - diff --git a/google-play-services_lib/res/values-iw/strings.xml b/google-play-services_lib/res/values-iw/strings.xml deleted file mode 100644 index 8f273c123..000000000 --- a/google-play-services_lib/res/values-iw/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "קבל את שירותי Google Play" - "יישום זה לא יפעל ללא שירותי Google Play, החסרים בטלפון שלך." - "יישום זה לא יפעל ללא שירותי Google Play, החסרים בטאבלט שלך." - "קבל את שירותי Google Play" - "הפעלת שירותי Google Play" - "יישום זה לא יעבוד אם לא תפעיל את שירותי Google Play." - "הפעל את שירותי Google Play" - "עדכון שירותי Google Play" - "יישום זה לא יפעל אם לא תעדכן את שירותי Google Play." - "בעיה לא ידועה בשירותי Google Play." - "שירותי Google Play" - "שירותי Google Play, שחלק מהיישומים שלך מתבססים עליהם, אינם נתמכים על ידי המכשיר שברשותך. צור קשר עם היצרן לקבלת סיוע." - "עדכן" - "היכנס" - "היכנס באמצעות Google" - diff --git a/google-play-services_lib/res/values-ja/strings.xml b/google-play-services_lib/res/values-ja/strings.xml deleted file mode 100644 index 389be837f..000000000 --- a/google-play-services_lib/res/values-ja/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Play開発者サービスの入手" - "このアプリの実行にはGoogle Play開発者サービスが必要ですが、お使いの携帯端末にはインストールされていません。" - "このアプリの実行にはGoogle Play開発者サービスが必要ですが、お使いのタブレットにはインストールされていません。" - "Play開発者サービスの入手" - "Play開発者サービスの有効化" - "このアプリの実行には、Google Play開発者サービスの有効化が必要です。" - "Play開発者サービスの有効化" - "Play開発者サービスの更新" - "このアプリの実行には、Google Play開発者サービスの更新が必要です。" - "Google Play開発者サービスで原因不明の問題が発生しました。" - "Google Play開発者サービス" - "一部のアプリが使用しているGoogle Play開発者サービスは、お使いの端末ではサポートされていません。詳しくは、端末メーカーまでお問い合わせください。" - "更新" - "ログイン" - "Googleでログイン" - diff --git a/google-play-services_lib/res/values-ko/strings.xml b/google-play-services_lib/res/values-ko/strings.xml deleted file mode 100644 index 7f52c2777..000000000 --- a/google-play-services_lib/res/values-ko/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Google Play 서비스 설치" - "휴대전화에 Google Play 서비스가 설치되어 있어야 이 앱이 실행됩니다." - "태블릿에 Google Play 서비스가 설치되어 있어야 이 앱이 실행됩니다." - "Google Play 서비스 설치" - "Google Play 서비스 사용" - "Google Play 서비스를 사용하도록 설정해야 이 앱이 작동합니다." - "Google Play 서비스 사용" - "Google Play 서비스 업데이트" - "Google Play 서비스를 업데이트해야만 이 앱이 실행됩니다." - "Google Play 서비스에 알 수 없는 문제가 발생했습니다." - "Google Play 서비스" - "일부 사용자 애플리케이션에 필요한 Google Play 서비스가 사용자 기기에서 지원되지 않습니다. 기기 제조업체에 문의하시기 바랍니다." - "업데이트" - "로그인" - "Google 계정으로 로그인" - diff --git a/google-play-services_lib/res/values-lt/strings.xml b/google-play-services_lib/res/values-lt/strings.xml deleted file mode 100644 index 82f5a75cc..000000000 --- a/google-play-services_lib/res/values-lt/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Gauti „Google Play“ paslaugų" - "Ši programa neveiks be „Google Play“ paslaugų, kurios neįdiegtos telefone." - "Ši programa neveiks be „Google Play“ paslaugų, kurios neįdiegtos planšetiniame kompiuteryje." - "Gauti „Google Play“ paslaugų" - "Įgalinti „Google Play“ paslaugas" - "Ši programa neveiks, jei neįgalinsite „Google Play“ paslaugų." - "Įgal. „Google Play“ paslaugas" - "Atnaujinti „Google Play“ paslaugas" - "Ši programa neveiks, jei neatnaujinsite „Google Play“ paslaugų." - "Nežinoma „Google Play“ paslaugų problema." - "„Google Play“ paslaugos" - "Jūsų įrenginys nepalaiko „Google Play“ paslaugų, kuriomis remiasi kai kurios programos. Jei reikia pagalbos, susisiekite su gamintoju." - "Atnaujinti" - "Prisij." - "Prisij. naud. „Google“" - diff --git a/google-play-services_lib/res/values-lv/strings.xml b/google-play-services_lib/res/values-lv/strings.xml deleted file mode 100644 index 332b8265b..000000000 --- a/google-play-services_lib/res/values-lv/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Google Play pakalpojumu iegūšana" - "Lai šī lietotne darbotos, tālrunī ir jāinstalē Google Play pakalpojumi." - "Lai šī lietotne darbotos, planšetdatorā ir jāinstalē Google Play pakalpojumi." - "Iegūt Google Play pakalpojumus" - "Google Play pakalpojumu iespējošana" - "Lai šī lietotne darbotos, iespējojiet Google Play pakalpojumus." - "Iespējot Google Play pakalpojumus" - "Google Play pakalpojumu atjaunināšana" - "Lai šī lietotne darbotos, atjauniniet Google Play pakalpojumus." - "Nezināma problēma ar Google Play pakalpojumiem." - "Google Play pakalpojumi" - "Jūsu ierīce neatbalsta Google Play pakalpojumus, kuri nepieciešami dažu jūsu lietojumprogrammu darbībai. Lūdzu, sazinieties ar ražotāju, lai saņemtu palīdzību." - "Atjaunināt" - "Pierakst." - "Pierakstīties Google" - diff --git a/google-play-services_lib/res/values-ms/strings.xml b/google-play-services_lib/res/values-ms/strings.xml deleted file mode 100644 index 27c51f760..000000000 --- a/google-play-services_lib/res/values-ms/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Dapatkan perkhidmatan Google Play" - "Apl ini tidak akan berfungsi tanpa perkhidmatan Google Play dan apl ini tiada pada telefon anda." - "Apl ini tidak akan berfungsi tanpa perkhidmatan Google Play dan apl ini tiada pada tablet anda." - "Dapatkan perkhidmatan Google Play" - "Dayakan perkhidmatan Google Play" - "Apl ini tidak akan berfungsi kecuali anda mendayakan perkhidmatan Google Play." - "Dayakan perkhidmatan Google Play" - "Kemas kini perkhidmatan Google Play" - "Apl ini tidak akan berfungsi kecuali anda mengemas kini perkhidmatan Google Play." - "Isu tidak diketahui dengan perkhidmatan Google Play." - "Perkhidmatan Google Play" - "Peranti anda tidak menyokong perkhidmatan Google Play, sedangkan sesetengah aplikasi anda memerlukannya. Sila hubungi pengilang untuk bantuan." - "Kemas kini" - "Log masuk" - "Log masuk dengan Google" - diff --git a/google-play-services_lib/res/values-nb/strings.xml b/google-play-services_lib/res/values-nb/strings.xml deleted file mode 100644 index fc7c639b8..000000000 --- a/google-play-services_lib/res/values-nb/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Installer Google Play Tjenester" - "Denne appen kan ikke kjøres uten Google Play Tjenester, som ikke er installert på telefonen din." - "Denne appen kan ikke kjøres uten Google Play Tjenester, som ikke er installert på nettbrettet ditt." - "Installer Google Play Tjenester" - "Aktiver Google Play Tjenester" - "Denne appen fungerer ikke med mindre du aktiverer Google Play Tjenester." - "Aktiver Google Play Tjenester" - "Oppdater Google Play Tjenester" - "Denne appen kan ikke kjøres før du oppdaterer Google Play Tjenester." - "Det oppsto et ukjent problem med Google Play Tjenester." - "Google Play-tjenester" - "Google Play Tjenester, som noen av appene er avhengige av, støttes ikke av enheten. Ta kontakt med produsenten for å få hjelp." - "Oppdater" - "Logg på" - "Logg inn med Google" - diff --git a/google-play-services_lib/res/values-nl/strings.xml b/google-play-services_lib/res/values-nl/strings.xml deleted file mode 100644 index 8749c38fd..000000000 --- a/google-play-services_lib/res/values-nl/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Google Play-services ophalen" - "Deze app kan niet worden uitgevoerd zonder Google Play-services die ontbreken op uw telefoon." - "Deze app kan niet worden uitgevoerd zonder Google Play-services die ontbreken op uw tablet." - "Google Play-services ophalen" - "Google Play-services inschakelen" - "Deze app werkt niet, tenzij u Google Play-services inschakelt." - "Google Play-services inschak." - "Google Play-services bijwerken" - "Deze app kan niet worden uitgevoerd, tenzij u Google Play-services bijwerkt." - "Onbekend probleem met Google Play-services." - "Google Play-services" - "Google Play-services, dat vereist is voor een aantal van uw applicaties, wordt niet ondersteund door uw apparaat. Neem contact op met de fabrikant voor ondersteuning." - "Bijwerken" - "Inloggen" - "Inloggen met Google" - diff --git a/google-play-services_lib/res/values-pl/strings.xml b/google-play-services_lib/res/values-pl/strings.xml deleted file mode 100644 index 076e9b98f..000000000 --- a/google-play-services_lib/res/values-pl/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Pobierz Usługi Google Play" - "Ta aplikacja nie będzie działać bez Usług Google Play, których nie masz na telefonie." - "Ta aplikacja nie będzie działać bez Usług Google Play, których nie masz na tablecie." - "Pobierz Usługi Google Play" - "Włącz Usługi Google Play" - "Ta aplikacja nie będzie działać, jeśli nie włączysz Usług Google Play." - "Włącz Usługi Google Play" - "Aktualizuj Usługi Google Play" - "Ta aplikacja nie będzie działać, jeśli nie zaktualizujesz Usług Google Play." - "Nieznany problem z Usługami Google Play." - "Usługi Google Play" - "Usługi Google Play, od których zależy działanie niektórych aplikacji, nie są obsługiwane na Twoim urządzeniu. Skontaktuj się z producentem, by uzyskać pomoc." - "Aktualizuj" - "Zaloguj się" - "Zaloguj się przez Google" - diff --git a/google-play-services_lib/res/values-pt-rBR/strings.xml b/google-play-services_lib/res/values-pt-rBR/strings.xml deleted file mode 100644 index 82b0007fb..000000000 --- a/google-play-services_lib/res/values-pt-rBR/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Instale o Google Play Services" - "Este aplicativo não funciona sem o Google Play Services, que não está instalado em seu telefone." - "Este aplicativo não funciona sem o Google Play Services, que não está instalado em seu tablet." - "Instalar o Google Play Services" - "Ative o Google Play Services" - "Este aplicativo só funciona com o Google Play Services ativado." - "Ativar o Google Play Services" - "Atualize o Google Play Services" - "Este aplicativo só funciona com uma versão atualizada do Google Play Services." - "Problema desconhecido com o Google Play Services." - "Play Services" - "O Google Play Services, necessário para alguns dos aplicativos, não é compatível com seu dispositivo. Entre em contato com o fabricante para obter assistência." - "Atualizar" - "Login" - "Fazer login com o Google" - diff --git a/google-play-services_lib/res/values-pt-rPT/strings.xml b/google-play-services_lib/res/values-pt-rPT/strings.xml deleted file mode 100644 index 10e8c84a8..000000000 --- a/google-play-services_lib/res/values-pt-rPT/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Obter serviços do Google Play" - "Esta aplicação não será executada sem os serviços do Google Play, que estão em falta no seu telemóvel." - "Esta aplicação não será executada sem os serviços do Google Play, que estão em falta no seu tablet." - "Obter serviços do Google Play" - "Ativar serviços do Google Play" - "Esta aplicação não funcionará enquanto não ativar os serviços do Google Play." - "Ativar serviços do Google Play" - "Atualizar serviços do Google Play" - "Esta aplicação não será executada enquanto não atualizar os serviços do Google Play." - "Problema desconhecido nos serviços do Google Play." - "Serviços do Google Play" - "Os serviços do Google Play, dos quais dependem algumas das suas aplicações, não são suportados pelo seu dispositivo. Contacte o fabricante para obter assistência." - "Atualizar" - "Inic. ses." - "Inic. sessão com o Google" - diff --git a/google-play-services_lib/res/values-pt/strings.xml b/google-play-services_lib/res/values-pt/strings.xml deleted file mode 100644 index 82b0007fb..000000000 --- a/google-play-services_lib/res/values-pt/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Instale o Google Play Services" - "Este aplicativo não funciona sem o Google Play Services, que não está instalado em seu telefone." - "Este aplicativo não funciona sem o Google Play Services, que não está instalado em seu tablet." - "Instalar o Google Play Services" - "Ative o Google Play Services" - "Este aplicativo só funciona com o Google Play Services ativado." - "Ativar o Google Play Services" - "Atualize o Google Play Services" - "Este aplicativo só funciona com uma versão atualizada do Google Play Services." - "Problema desconhecido com o Google Play Services." - "Play Services" - "O Google Play Services, necessário para alguns dos aplicativos, não é compatível com seu dispositivo. Entre em contato com o fabricante para obter assistência." - "Atualizar" - "Login" - "Fazer login com o Google" - diff --git a/google-play-services_lib/res/values-ro/strings.xml b/google-play-services_lib/res/values-ro/strings.xml deleted file mode 100644 index 8d8260b8b..000000000 --- a/google-play-services_lib/res/values-ro/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Descărcaţi Servicii Google Play" - "Această aplicaţie nu poate rula fără Servicii Google Play, care lipsesc de pe telefon." - "Această aplicaţie nu poate rula fără Servicii Google Play, care lipsesc de pe tabletă." - "Obţineţi Servicii Google Play" - "Activaţi Servicii Google Play" - "Această aplicaţie nu va funcţiona decât dacă activaţi Servicii Google Play." - "Activaţi Servicii Google Play" - "Actualizaţi Servicii Google Play" - "Această aplicaţie nu poate rula decât dacă actualizaţi Servicii Google Play." - "Problemă necunoscută privind Servicii Google Play." - "Servicii Google Play" - "Gadgetul nu acceptă serviciile Google Play, pe care se bazează unele dintre aplicații. Pentru asistență, contactați producătorul gadgetului." - "Actualizaţi" - "Conectați" - "Conectați-vă cu Google" - diff --git a/google-play-services_lib/res/values-ru/strings.xml b/google-play-services_lib/res/values-ru/strings.xml deleted file mode 100644 index e1b4ce7f1..000000000 --- a/google-play-services_lib/res/values-ru/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Установите Сервисы Google Play" - "Для работы этого приложения требуется установить Сервисы Google Play." - "Для работы этого приложения требуется установить Сервисы Google Play." - "Установить" - "Включите Сервисы Google Play" - "Для работы этого приложения требуется включить Сервисы Google Play." - "Включить" - "Обновите Сервисы Google Play" - "Для работы этого приложения требуется обновить Сервисы Google Play." - "Неизвестная ошибка с Сервисами Google Play." - "Сервисы Google Play" - "Сервисы Google Play, необходимые для работы некоторых приложений, не поддерживаются на вашем устройстве. Обратитесь к производителю." - "Обновить" - "Войти" - "Войти в аккаунт Google" - diff --git a/google-play-services_lib/res/values-sk/strings.xml b/google-play-services_lib/res/values-sk/strings.xml deleted file mode 100644 index 2351ca73d..000000000 --- a/google-play-services_lib/res/values-sk/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Inštalovať služby Google Play" - "Na spustenie tejto aplikácie sa vyžadujú služby Google Play, ktoré v telefóne nemáte." - "Na spustenie tejto aplikácie sa vyžadujú služby Google Play, ktoré v tablete nemáte." - "Inštalovať služby Google Play" - "Povoliť služby Google Play" - "Táto aplikácia bude fungovať až po povolení služieb Google Play." - "Povoliť služby Google Play" - "Aktualizovať služby Google Play" - "Túto aplikáciu bude možné spustiť až po aktualizácii služieb Google Play." - "Neznámy problém so službami Google Play." - "Služby Google Play" - "Niektoré vaše aplikácie vyžadujú služby Google Play, ktoré vo vašom zariadení nie sú podporované. Ak potrebujete pomoc, kontaktujte výrobcu." - "Aktualizovať" - "Prihlásiť sa" - "Prihlásiť sa do účtu Google" - diff --git a/google-play-services_lib/res/values-sl/strings.xml b/google-play-services_lib/res/values-sl/strings.xml deleted file mode 100644 index d99cb8d14..000000000 --- a/google-play-services_lib/res/values-sl/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Namestite storitve Google Play" - "Ta aplikacija ne deluje brez storitev Google Play, ki jih ni v telefonu." - "Ta aplikacija ne deluje brez storitev Google Play, ki jih ni v tabličnem računalniku." - "Namestite storitve Google Play" - "Omogočite storitve Google Play" - "Aplikacija ne bo delovala, če ne omogočite storitev Google Play." - "Omogočite storitve Google Play" - "Posodobite storitve Google Play" - "Ta aplikacija ne deluje, če ne posodobite storitev Google Play." - "Neznana težava s storitvami Google Play." - "Storitve Google Play" - "Vaša naprava na podpira storitev Google Play, ki jih potrebujejo nekatere od vaših aplikacij. Za pomoč se obrnite na izdelovalca." - "Posodobi" - "Prijava" - "Prijavite se v Google" - diff --git a/google-play-services_lib/res/values-sr/strings.xml b/google-play-services_lib/res/values-sr/strings.xml deleted file mode 100644 index 1fa72cd26..000000000 --- a/google-play-services_lib/res/values-sr/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Преузимање Google Play услуга" - "Ова апликација не може да се покрене без Google Play услуга, које недостају на телефону." - "Ова апликација не може да се покрене без Google Play услуга, које недостају на таблету." - "Преузми Google Play услуге" - "Омогућавање Google Play услуга" - "Ова апликација неће функционисати ако не омогућите Google Play услуге." - "Омогући Google Play услуге" - "Ажурирање Google Play услуга" - "Ова апликација не може да се покрене ако не ажурирате Google Play услуге." - "Непознат проблем са Google Play услугама." - "Google Play услуге" - "Google Play услуге, које су потребне за функционисање неких од апликација, нису подржане на уређају. Контактирајте произвођача да бисте добили помоћ." - "Ажурирај" - "Пријави ме" - "Пријави ме преко Google-а" - diff --git a/google-play-services_lib/res/values-sv/strings.xml b/google-play-services_lib/res/values-sv/strings.xml deleted file mode 100644 index c30862a85..000000000 --- a/google-play-services_lib/res/values-sv/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Hämta Google Play Tjänster" - "Den här appen kan inte köras utan Google Play Tjänster, som saknas på mobilen." - "Den här appen kan inte köras utan Google Play Tjänster, som saknas på surfplattan." - "Hämta Google Play Tjänster" - "Aktivera Google Play Tjänster" - "Du måste aktivera Google Play Tjänster för att den här appen ska fungera." - "Aktivera Google Play Tjänster" - "Uppdatera Google Play Tjänster" - "Du måste uppdatera Google Play Tjänster innan du kan köra den här appen." - "Okänt problem med Google Play Tjänster" - "Google Play-tjänster" - "Några av dina appar använder Google Play-tjänster som inte stöds av din enhet. Kontakta tillverkaren om du vill ha hjälp." - "Uppdatera" - "Logga in" - "Logga in med Google" - diff --git a/google-play-services_lib/res/values-sw/strings.xml b/google-play-services_lib/res/values-sw/strings.xml deleted file mode 100644 index e6f84e986..000000000 --- a/google-play-services_lib/res/values-sw/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Pata huduma za Google Play" - "Programu hii haiwezi kuendeshwa bila huduma za Google Play, ambazo hazipo kwenye simu yako." - "Programu hii haiwezi kuendeshwa bila huduma za Google Play, ambazo hazipo kwenye kompyuta yako ndogo." - "Pata huduma za Google Play" - "Wezesha huduma za Google Play" - "Programu hii haitafanya kazi mpaka utakapowezesha huduma za Google Play." - "Wezesha huduma za Google Play" - "Sasisha huduma za Google Play" - "Programu hii haiwezi kuendeshwa mpaka utakaposasisha huduma za Google Play." - "Suala lisilojulikana na huduma za Google Play." - "Huduma za Google Play" - "Huduma za Google Play, ambazo baadhi ya programu zako zinategemea, si linganifu na kifaa chako. Tafadhali wasiliana na mtengenezaji kwa usaidizi." - "Sasisha" - "Ingia" - "Ingia ukitumia Google" - diff --git a/google-play-services_lib/res/values-th/strings.xml b/google-play-services_lib/res/values-th/strings.xml deleted file mode 100644 index 583b6f879..000000000 --- a/google-play-services_lib/res/values-th/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "รับบริการ Google Play" - "แอปพลิเคชันนี้จะไม่ทำงานหากไม่มีบริการ Google Play ซึ่งไม่มีในโทรศัพท์ของคุณ" - "แอปพลิเคชันนี้จะไม่ทำงานหากไม่มีบริการ Google Play ซึ่งไม่มีในแท็บเล็ตของคุณ" - "รับบริการ Google Play" - "เปิดใช้งานบริการ Google Play" - "แอปพลิเคชันนี้จะไม่ทำงานจนกว่าคุณจะเปิดใช้งานบริการ Google Play" - "เปิดใช้งานบริการ Google Play" - "อัปเดตบริการ Google Play" - "แอปพลิเคชันนี้จะไม่ทำงานจนกว่าคุณจะอัปเดตบริการ Google Play" - "ปัญหาที่ไม่รู้จักของบริการ Google Play" - "บริการ Google Play" - "บริการ Google Play ซึ่งใช้งานในบางแอปพลิเคชัน ไม่ได้รับการสนับสนุนโดยอุปกรณ์ของคุณ โปรดติดต่อผู้ผลิตเพื่อขอรับความช่วยเหลือ" - "อัปเดต" - "ลงชื่อใช้" - "ลงชื่อเข้าใช้ด้วย Google" - diff --git a/google-play-services_lib/res/values-tl/strings.xml b/google-play-services_lib/res/values-tl/strings.xml deleted file mode 100644 index e6ffbc9c5..000000000 --- a/google-play-services_lib/res/values-tl/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Kumuha ng mga serbisyo ng Google Play" - "Hindi tatakbo ang app na ito nang wala ang mga serbisyo ng Google Play, na wala sa iyong telepono." - "Hindi gagana ang app na ito nang wala ang mga serbisyo ng Google Play, na wala sa iyong tablet." - "Kumuha ng Google Play services" - "Paganahin ang Google Play services" - "Hindi gagana ang app na ito maliban kung papaganahin mo ang mga serbisyo ng Google Play." - "Enable Google Play services" - "I-update ang mga serbisyo ng Google Play" - "Hindi gagana ang app na ito maliban kung i-a-update mo ang mga serbisyo ng Google Play." - "May hindi alam na isyu sa mga serbisyo ng Google Play." - "Mga serbisyo ng Google Play" - "Ang mga serbisyo ng Google Play, kung saan nakadepende ang ilan sa iyong mga application, ay hindi sinusuportahan ng iyong device. Mangyaring makipag-ugnay sa manufacturer para sa tulong." - "I-update" - "Sign in" - "Mag-sign in sa Google" - diff --git a/google-play-services_lib/res/values-tr/strings.xml b/google-play-services_lib/res/values-tr/strings.xml deleted file mode 100644 index b550059a1..000000000 --- a/google-play-services_lib/res/values-tr/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Google Play hizmetlerini edinin" - "Google Play Hizmetleri telefonunuzda yok ve bu uygulama Google Play Hizmetleri olmadan çalışmaz." - "Google Play Hizmetleri tabletinizde yok ve bu uygulama Google Play Hizmetleri olmadan çalışmaz." - "Google Play hizmetlerini edin" - "Google Play hizmetlerini etkinleştir" - "Bu uygulama, Google Play Hizmetleri etkinleştirilmeden çalışmaz" - "Google Play hizmetlerini etkinleştir" - "Google Play hizmetlerini güncelle" - "Bu uygulama Google Play Hizmetleri güncellenmeden çalışmaz." - "Google Play hizmetleriyle ilgili bilinmeyen sorun." - "Google Play hizmetleri" - "Cihazınız, uygulamalarınızdan bazıları için gerekli olan Google Play hizmetlerini desteklemiyor. Lütfen yardım için üreticiyle iletişim kurun." - "Güncelle" - "Oturum aç" - "Google\'da oturum aç" - diff --git a/google-play-services_lib/res/values-uk/strings.xml b/google-play-services_lib/res/values-uk/strings.xml deleted file mode 100644 index a12060c09..000000000 --- a/google-play-services_lib/res/values-uk/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Установити Google Play Послуги" - "Ця програма не запуститься без Google Play Послуг, яких немає у вашому телефоні." - "Ця програма не запуститься без Google Play Послуг, яких немає на вашому планшетному ПК." - "Установити Google Play Послуги" - "Увімкнути Google Play Послуги" - "Ця програма не працюватиме, поки ви не ввімкнете Google Play Послуги." - "Увімкнути Google Play Послуги" - "Оновити Google Play Послуги" - "Ця програма не запуститься, поки ви не оновите Google Play Послуги." - "Google Play Послуги – невідома проблема." - "Сервіси Google Play" - "Ваш пристрій не підтримує Сервіси Google Play, від яких залежить робота деяких програм. Зверніться по допомогу до виробника." - "Оновити" - "Увійти" - "Увійти в обл.запис Google" - diff --git a/google-play-services_lib/res/values-vi/strings.xml b/google-play-services_lib/res/values-vi/strings.xml deleted file mode 100644 index bd9eaa5c2..000000000 --- a/google-play-services_lib/res/values-vi/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Cài đặt dịch vụ của Google Play" - "Ứng dụng này sẽ không chạy nếu không có dịch vụ của Google Play. Điện thoại của bạn bị thiếu dịch vụ này." - "Ứng dụng này sẽ không chạy nếu không có dịch vụ của Google Play. Máy tính bảng của bạn bị thiếu dịch vụ này." - "Cài đặt dịch vụ của Google Play" - "Bật dịch vụ của Google Play" - "Ứng dụng này sẽ không hoạt động trừ khi bạn bật dịch vụ của Google Play." - "Bật dịch vụ của Google Play" - "Cập nhật dịch vụ của Google Play" - "Ứng dụng này sẽ không chạy trừ khi bạn cập nhật dịch vụ của Google Play." - "Sự cố không xác định với dịch vụ của Google Play." - "Dịch vụ của Google Play" - "Các dịch vụ của Google Play mà một số ứng dụng của bạn dựa vào không được thiết bị của bạn hỗ trợ. Vui lòng liên hệ với nhà sản xuất để được hỗ trợ." - "Cập nhật" - "Đăng nhập" - "Đăng nhập bằng Google" - diff --git a/google-play-services_lib/res/values-zh-rCN/strings.xml b/google-play-services_lib/res/values-zh-rCN/strings.xml deleted file mode 100644 index 0f189e330..000000000 --- a/google-play-services_lib/res/values-zh-rCN/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "获取 Google Play 服务" - "您的手机中没有 Google Play 服务,您必须先安装该服务才能运行此应用。" - "您的平板电脑中没有 Google Play 服务,您必须先安装该服务才能运行此应用。" - "获取 Google Play 服务" - "启用 Google Play 服务" - "您必须先启用 Google Play 服务才能运行此应用。" - "启用 Google Play 服务" - "更新 Google Play 服务" - "您必须先更新 Google Play 服务才能运行此应用。" - "Google Play 服务出现未知问题。" - "Google Play 服务" - "您的设备不支持部分应用所依赖的 Google Play 服务。请与设备制造商联系,以寻求帮助。" - "更新" - "登录" - "使用 Google 帐户登录" - diff --git a/google-play-services_lib/res/values-zh-rTW/strings.xml b/google-play-services_lib/res/values-zh-rTW/strings.xml deleted file mode 100644 index 1bcbb0d98..000000000 --- a/google-play-services_lib/res/values-zh-rTW/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "取得 Google Play 服務" - "您的手機並未安裝 Google Play 服務,所以無法執行這個應用程式。" - "您的平板電腦並未安裝 Google Play 服務,所以無法執行這個應用程式。" - "取得 Google Play 服務" - "啟用 Google Play 服務" - "您必須啟用 Google Play 服務,這個應用程式才能運作。" - "啟用 Google Play 服務" - "更新 Google Play 服務" - "您必須更新 Google Play 服務,才能執行這個應用程式。" - "Google Play 服務發生不明問題。" - "Google Play 服務" - "您的裝置不支援部分應用程式所需的 Google Play 服務。如需協助,請與您的裝置製造商聯絡。" - "更新" - "登入" - "使用 Google 帳戶登入" - diff --git a/google-play-services_lib/res/values-zu/strings.xml b/google-play-services_lib/res/values-zu/strings.xml deleted file mode 100644 index 56137399e..000000000 --- a/google-play-services_lib/res/values-zu/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - "Thola amasevisi e-Google Play" - "Lolu hlelo lokusebenza ngeke lusebenze ngaphandle kwamasevisi e-Google Play, angekho efonini yakho." - "Lolu hlelo lokusebenza ngeke lusebenze ngaphandle kwamasevisi e-Google Play, angekho kuthebulethi yakho." - "Thola amasevisi e-Google Play" - "Nika amandla amasevisi e-Google Play" - "Lolu hlelo lokusebenza ngeke lusebenze ngaphandle nje kokuthi unike amandla amasevisi e-Google Play." - "Nika amandla amasevisi e-Google Play" - "Buyekeza amasevisi e-Google Play" - "Lolu hlelo lokusebenza ngeke lusebenze ngaphandle nje kokuthi ubuyekeze amasevisi e-Google Play." - "Indaba engaziwa yamasevisi we-Google Play" - "Amasevisi we-Google Play" - "Amasevisi we-Google Play, okungukuthi ezinye izinhlelo zakho zithembele kuwo, awasekelwe yidivayisi yakho. Sicela uxhumane nomkhiqizi ukuze uthole usizo." - "Isibuyekezo" - "Ngena ngemvume" - "Ngena ngemvume nge-Google" - diff --git a/google-play-services_lib/res/values/colors.xml b/google-play-services_lib/res/values/colors.xml deleted file mode 100644 index 6b2740a50..000000000 --- a/google-play-services_lib/res/values/colors.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - @android:color/white - @android:color/white - #FFAAAAAA - @android:color/white - #FF737373 - @android:color/white - #FFAAAAAA - #FF737373 - #FFDD4B39 - #d2d2d2 - \ No newline at end of file diff --git a/google-play-services_lib/res/values/maps_attrs.xml b/google-play-services_lib/res/values/maps_attrs.xml deleted file mode 100644 index aaf65c529..000000000 --- a/google-play-services_lib/res/values/maps_attrs.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/google-play-services_lib/res/values/strings.xml b/google-play-services_lib/res/values/strings.xml deleted file mode 100644 index 64f2bd049..000000000 --- a/google-play-services_lib/res/values/strings.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - Get Google Play services - - - This app won\'t run without Google Play services, which are missing from your phone. - - - This app won\'t run without Google Play services, which are missing from your tablet. - - - Get Google Play services - - - Enable Google Play services - - - This app won\'t work unless you enable Google Play services. - - - Enable Google Play services - - - Update Google Play services - - - This app won\'t run unless you update Google Play services. - - - Unknown issue with Google Play services. - - - Google Play services - - - Google Play services, which some of your applications rely on, is not supported by your device. Please contact the manufacturer for assistance. - - - Update - - - Sign in - - - Sign in with Google - - - - Install/Update/Enable Google Play services - - - Google Play services error - - - Requested by %1$s - - - - - - - - - AgeUnder13 - - AgeUnknown - - UnknownRestriction - - - - diff --git a/google-play-services_lib/src/android/UnusedStub.java b/google-play-services_lib/src/android/UnusedStub.java deleted file mode 100644 index d546b0ba9..000000000 --- a/google-play-services_lib/src/android/UnusedStub.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package android; - -// Stub java file to make inclusion into some IDE's work. -public final class UnusedStub { - private UnusedStub() { } -}