# HG changeset patch # User Brad Greco # Date 1536192455 14400 # Node ID fbccc77ea0e6b5d27a4b9e6b5dff35555093d24c # Parent 30f975176f8e8218ed993f90dd97266d6f45245a Convert to Android Studio project diff -r 30f975176f8e -r fbccc77ea0e6 .hgignore --- a/.hgignore Tue Jan 21 20:06:31 2014 -0600 +++ b/.hgignore Wed Sep 05 20:07:35 2018 -0400 @@ -1,4 +1,9 @@ -syntax: glob -.metadata -*/bin/* -*/gen/* +syntax: glob +*.iml +.gradle +.idea +local.properties +.DS_Store +app/build +captures +.externalNativeBuild diff -r 30f975176f8e -r fbccc77ea0e6 GMapZoomInvert/.classpath --- a/GMapZoomInvert/.classpath Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ - - - - - - - - - - diff -r 30f975176f8e -r fbccc77ea0e6 GMapZoomInvert/.project --- a/GMapZoomInvert/.project Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ - - - GMapZoomInvert - - - - - - 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 -r 30f975176f8e -r fbccc77ea0e6 GMapZoomInvert/.settings/org.eclipse.jdt.core.prefs --- a/GMapZoomInvert/.settings/org.eclipse.jdt.core.prefs Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 30f975176f8e -r fbccc77ea0e6 GMapZoomInvert/AndroidManifest.xml --- a/GMapZoomInvert/AndroidManifest.xml Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff -r 30f975176f8e -r fbccc77ea0e6 GMapZoomInvert/assets/xposed_init --- a/GMapZoomInvert/assets/xposed_init Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -net.bgreco.gmapzoominvert.GMapZoomInvert \ No newline at end of file diff -r 30f975176f8e -r fbccc77ea0e6 GMapZoomInvert/libs/android-support-v4.jar Binary file GMapZoomInvert/libs/android-support-v4.jar has changed diff -r 30f975176f8e -r fbccc77ea0e6 GMapZoomInvert/proguard-project.txt --- a/GMapZoomInvert/proguard-project.txt Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -# To enable ProGuard in your project, edit project.properties -# to define the proguard.config property as described in that file. -# -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in ${sdk.dir}/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the ProGuard -# include property in project.properties. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} diff -r 30f975176f8e -r fbccc77ea0e6 GMapZoomInvert/project.properties --- a/GMapZoomInvert/project.properties Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +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-17 diff -r 30f975176f8e -r fbccc77ea0e6 GMapZoomInvert/res/drawable-hdpi/ic_launcher.png Binary file GMapZoomInvert/res/drawable-hdpi/ic_launcher.png has changed diff -r 30f975176f8e -r fbccc77ea0e6 GMapZoomInvert/res/drawable-mdpi/ic_launcher.png Binary file GMapZoomInvert/res/drawable-mdpi/ic_launcher.png has changed diff -r 30f975176f8e -r fbccc77ea0e6 GMapZoomInvert/res/drawable-xhdpi/ic_launcher.png Binary file GMapZoomInvert/res/drawable-xhdpi/ic_launcher.png has changed diff -r 30f975176f8e -r fbccc77ea0e6 GMapZoomInvert/res/values-v11/styles.xml --- a/GMapZoomInvert/res/values-v11/styles.xml Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ - - - - - - diff -r 30f975176f8e -r fbccc77ea0e6 GMapZoomInvert/res/values-v14/styles.xml --- a/GMapZoomInvert/res/values-v14/styles.xml Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ - - - - - - diff -r 30f975176f8e -r fbccc77ea0e6 GMapZoomInvert/res/values/strings.xml --- a/GMapZoomInvert/res/values/strings.xml Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ - - - Map Zoom Invert - Invert the one-finger zoom gesture in Google Maps - - diff -r 30f975176f8e -r fbccc77ea0e6 GMapZoomInvert/res/values/styles.xml --- a/GMapZoomInvert/res/values/styles.xml Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ - - - - - - - - - diff -r 30f975176f8e -r fbccc77ea0e6 GMapZoomInvert/src/net/bgreco/gmapzoominvert/GMapZoomInvert.java --- a/GMapZoomInvert/src/net/bgreco/gmapzoominvert/GMapZoomInvert.java Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -/* Copyright (c) 2014 Brad Greco - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -package net.bgreco.gmapzoominvert; - -import static de.robv.android.xposed.XposedHelpers.findAndHookMethod; -import android.view.MotionEvent; -import de.robv.android.xposed.IXposedHookLoadPackage; -import de.robv.android.xposed.XC_MethodHook; -import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam; - -public class GMapZoomInvert implements IXposedHookLoadPackage { - - @Override - public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable { - if(!lpparam.packageName.equals("com.google.android.apps.maps")) - return; - - findAndHookMethod("com.google.android.apps.gmm.map.legacy.internal.vector.VectorMapViewImpl", lpparam.classLoader, "onTouchEvent", MotionEvent.class, new XC_MethodHook() { - - private float lastTapX; - private float lastTapY; - private long lastTapTime = 0; - private boolean doubleTap = false; - private boolean zooming = false; - - @Override - protected void beforeHookedMethod(MethodHookParam param) throws Throwable { - MotionEvent e = (MotionEvent) param.args[0]; - int action = e.getAction(); - // Detect double taps - if(action == MotionEvent.ACTION_DOWN) { - // Do our best to mimic the Google Maps double tap detection logic - if(e.getEventTime() < lastTapTime + 250) { - if(e.getX() - lastTapX > -150 && e.getX() - lastTapX < 100 && e.getY() - lastTapY > -150 && e.getY() - lastTapY < 100) { - doubleTap = true; - } - } - lastTapTime = e.getEventTime(); - lastTapX = e.getX(); - lastTapY = e.getY(); - } else if(action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_UP) { - // Also Invert the Y axis on release, otherwise the zoom will snap back - if(zooming) { - e.setLocation(e.getX(), lastTapY - (e.getY() - lastTapY)); - param.args[0] = e; - } - doubleTap = false; - zooming = false; - } else if(action == MotionEvent.ACTION_MOVE) { - // Invert the Y axis of the zoom gesture - if(e.getPointerCount() == 1) { - if(doubleTap) { - //Log.d("gmapzoominvert", "y offset: " + (lastTapY - e.getY())); - e.setLocation(e.getX(), lastTapY - (e.getY() - lastTapY)); - param.args[0] = e; - zooming = true; - } - } else { - // Another finger pressed cancels the zoom gesture - doubleTap = false; - zooming = false; - } - } - } - - }); - } - -} diff -r 30f975176f8e -r fbccc77ea0e6 XposedLibrary/.classpath --- a/XposedLibrary/.classpath Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ - - - - - - - - - diff -r 30f975176f8e -r fbccc77ea0e6 XposedLibrary/.project --- a/XposedLibrary/.project Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ - - - XposedLibrary - - - - - - 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 -r 30f975176f8e -r fbccc77ea0e6 XposedLibrary/.settings/org.eclipse.jdt.core.prefs --- a/XposedLibrary/.settings/org.eclipse.jdt.core.prefs Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,291 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.6 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -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_arguments_in_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=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_compact_if=16 -org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 -org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=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_parameters_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=0 -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_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=0 -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=false -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false -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=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.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.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=false -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=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=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_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=9999 -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.tabulation.char=tab -org.eclipse.jdt.core.formatter.tabulation.size=4 -org.eclipse.jdt.core.formatter.use_on_off_tags=false -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=true -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_outer_expressions_when_nested=true diff -r 30f975176f8e -r fbccc77ea0e6 XposedLibrary/.settings/org.eclipse.jdt.ui.prefs --- a/XposedLibrary/.settings/org.eclipse.jdt.ui.prefs Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -eclipse.preferences.version=1 -formatter_profile=_Xposed -formatter_settings_version=12 diff -r 30f975176f8e -r fbccc77ea0e6 XposedLibrary/AndroidManifest.xml --- a/XposedLibrary/AndroidManifest.xml Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ - - - \ No newline at end of file diff -r 30f975176f8e -r fbccc77ea0e6 XposedLibrary/XposedBridgeApi.jar Binary file XposedLibrary/XposedBridgeApi.jar has changed diff -r 30f975176f8e -r fbccc77ea0e6 XposedLibrary/lib/full_framework_15.jar Binary file XposedLibrary/lib/full_framework_15.jar has changed diff -r 30f975176f8e -r fbccc77ea0e6 XposedLibrary/project.properties --- a/XposedLibrary/project.properties Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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-17 -android.library=true diff -r 30f975176f8e -r fbccc77ea0e6 XposedLibrary/res/layout/preference_valueseekbar_extension.xml --- a/XposedLibrary/res/layout/preference_valueseekbar_extension.xml Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ - - - - - - - - \ No newline at end of file diff -r 30f975176f8e -r fbccc77ea0e6 XposedLibrary/src/de/robv/android/xposed/library/ui/IntegerListPreference.java --- a/XposedLibrary/src/de/robv/android/xposed/library/ui/IntegerListPreference.java Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -package de.robv.android.xposed.library.ui; - -import android.content.Context; -import android.content.SharedPreferences; -import android.preference.ListPreference; -import android.util.AttributeSet; - -public class IntegerListPreference extends ListPreference { - public IntegerListPreference(Context context) { - super(context); - } - - public IntegerListPreference(Context context, AttributeSet attrs) { - super(context, attrs); - } - - @Override - public void setValue(String value) { - super.setValue(value); - notifyChanged(); - } - - @Override - protected boolean persistString(String value) { - if (value == null) - return false; - - return persistInt(getIntValue(value)); - } - - @Override - protected String getPersistedString(String defaultReturnValue) { - SharedPreferences pref = getPreferenceManager().getSharedPreferences(); - String key = getKey(); - if (!shouldPersist() || !pref.contains(key)) - return defaultReturnValue; - - return String.valueOf(pref.getInt(key, 0)); - } - - @Override - public int findIndexOfValue(String value) { - CharSequence[] entryValues = getEntryValues(); - int intValue = getIntValue(value); - if (value != null && entryValues != null) { - for (int i = entryValues.length - 1; i >= 0; i--) { - if (getIntValue(entryValues[i].toString()) == intValue) { - return i; - } - } - } - return -1; - } - - public static int getIntValue(String value) { - if (value == null) - return 0; - - return (int)((value.startsWith("0x")) - ? Long.parseLong(value.substring(2), 16) - : Long.parseLong(value)); - } -} diff -r 30f975176f8e -r fbccc77ea0e6 XposedLibrary/src/de/robv/android/xposed/library/ui/ListPreferenceFixedSummary.java --- a/XposedLibrary/src/de/robv/android/xposed/library/ui/ListPreferenceFixedSummary.java Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -package de.robv.android.xposed.library.ui; - -import android.content.Context; -import android.preference.ListPreference; -import android.util.AttributeSet; - -public class ListPreferenceFixedSummary extends ListPreference { - public ListPreferenceFixedSummary(Context context) { - super(context); - } - - public ListPreferenceFixedSummary(Context context, AttributeSet attrs) { - super(context, attrs); - } - - @Override - public void setValue(String value) { - super.setValue(value); - notifyChanged(); - } -} diff -r 30f975176f8e -r fbccc77ea0e6 XposedLibrary/src/de/robv/android/xposed/library/ui/SeparatorPreference.java --- a/XposedLibrary/src/de/robv/android/xposed/library/ui/SeparatorPreference.java Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -package de.robv.android.xposed.library.ui; - -import android.content.Context; -import android.graphics.Color; -import android.preference.Preference; -import android.util.AttributeSet; -import android.view.View; -import android.view.ViewGroup; -import android.view.ViewGroup.LayoutParams; -import android.widget.AbsListView; -import android.widget.ImageView; - -public class SeparatorPreference extends Preference { - int color = Color.GRAY; - int height = 7; - - public SeparatorPreference(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - setSelectable(false); - - if (attrs != null) { - height = attrs.getAttributeIntValue(null, "height", height); - } - } - - public SeparatorPreference(Context context, AttributeSet attrs) { - this(context, attrs, android.R.attr.preferenceStyle); - } - - public SeparatorPreference(Context context) { - this(context, null); - } - - public void setColor(int color) { - this.color = color; - } - - public void setHeight(int height) { - this.height = height; - } - - @Override - protected View onCreateView(ViewGroup parent) { - ImageView iview = new ImageView(getContext()); - iview.setBackgroundColor(color); - iview.setLayoutParams(new AbsListView.LayoutParams(LayoutParams.MATCH_PARENT, height)); - return iview; - } -} \ No newline at end of file diff -r 30f975176f8e -r fbccc77ea0e6 XposedLibrary/src/de/robv/android/xposed/library/ui/TextViewPreference.java --- a/XposedLibrary/src/de/robv/android/xposed/library/ui/TextViewPreference.java Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -package de.robv.android.xposed.library.ui; - -import android.content.Context; -import android.graphics.Typeface; -import android.preference.Preference; -import android.util.AttributeSet; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -public class TextViewPreference extends Preference { - private TextView textView = null; - private int padding = 7; - private int textSize = -1; - private boolean bold = false; - private boolean italic = false; - - public TextViewPreference(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - - if (attrs != null) { - textSize = attrs.getAttributeIntValue(null, "textSize", textSize); - padding = attrs.getAttributeIntValue(null, "padding", padding); - bold = attrs.getAttributeBooleanValue(null, "bold", bold); - italic = attrs.getAttributeBooleanValue(null, "italic", italic); - } - } - - public TextViewPreference(Context context, AttributeSet attrs) { - this(context, attrs, android.R.attr.preferenceStyle); - } - - public TextViewPreference(Context context) { - this(context, null); - } - - @Override - protected View onCreateView(ViewGroup parent) { - return getTextView(); - } - - public TextView getTextView() { - if (textView == null) { - textView = new TextView(getContext()); - textView.setId(android.R.id.title); - textView.setPadding(padding,padding,padding,padding); - - if (textSize > 0) - textView.setTextSize(textSize); - - if (bold && italic) - textView.setTypeface(null, Typeface.BOLD_ITALIC); - else if (bold) - textView.setTypeface(null, Typeface.BOLD); - else if (italic) - textView.setTypeface(null, Typeface.ITALIC); - } - return textView; - } -} diff -r 30f975176f8e -r fbccc77ea0e6 XposedLibrary/src/de/robv/android/xposed/library/ui/ValueSeekBarPreference.java --- a/XposedLibrary/src/de/robv/android/xposed/library/ui/ValueSeekBarPreference.java Tue Jan 21 20:06:31 2014 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,273 +0,0 @@ -/* - * Copyright (C) 2011 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 de.robv.android.xposed.library.ui; - -import android.content.Context; -import android.content.res.TypedArray; -import android.os.Parcel; -import android.os.Parcelable; -import android.preference.Preference; -import android.util.AttributeSet; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.SeekBar; -import android.widget.SeekBar.OnSeekBarChangeListener; -import android.widget.TextView; -import de.robv.android.xposed.library.R; - -public class ValueSeekBarPreference extends Preference implements OnSeekBarChangeListener { - - private int mProgress; - private int mStep; - private int mMin; - private int mMax; - private String valueDisplayFormat; - private boolean mTrackingTouch; - private TextView tvValue; - - public ValueSeekBarPreference( - Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - - if (attrs != null) { - setStep(attrs.getAttributeIntValue(null, "step", 1)); - setMin(attrs.getAttributeIntValue(null, "min", 0)); - setMax(attrs.getAttributeIntValue(null, "max", 100)); - valueDisplayFormat = attrs.getAttributeValue(null, "displayFormat"); - if (valueDisplayFormat == null) - valueDisplayFormat = "%d"; - } - } - - public ValueSeekBarPreference(Context context, AttributeSet attrs) { - this(context, attrs, android.R.attr.preferenceStyle); - } - - public ValueSeekBarPreference(Context context) { - this(context, null); - } - - @Override - protected View onCreateView(ViewGroup parent) { - ViewGroup originalView = (ViewGroup) super.onCreateView(parent); - - final LayoutInflater layoutInflater = - (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); - - ViewGroup newlayout = (ViewGroup) layoutInflater.inflate(R.layout.preference_valueseekbar_extension, null); - newlayout.addView(originalView, 0); - - tvValue = (TextView) newlayout.findViewById(R.id.valueseekbar_preference_value); - - return newlayout; - } - - @Override - protected void onBindView(View view) { - super.onBindView(view); - SeekBar seekBar = (SeekBar) view.findViewById(R.id.valueseekbar_preference_seekbar); - seekBar.setOnSeekBarChangeListener(this); - seekBar.setMax((mMax - mMin) / mStep); - seekBar.setProgress((mProgress - mMin) / mStep); - tvValue.setText(String.format(valueDisplayFormat, mProgress)); - seekBar.setEnabled(isEnabled()); - } - - @Override - protected void onSetInitialValue(boolean restoreValue, Object defaultValue) { - setProgress(restoreValue ? getPersistedInt(mProgress) - : (Integer) defaultValue); - } - - @Override - protected Object onGetDefaultValue(TypedArray a, int index) { - return a.getInt(index, 0); - } - - public void setStep(int step) { - if (step != mStep) { - mStep = step; - notifyChanged(); - } - } - - public void setMin(int min) { - if (min != mMin) { - mMin = min; - notifyChanged(); - } - } - - public void setMax(int max) { - if (max != mMax) { - mMax = max; - notifyChanged(); - } - } - - public void setProgress(int progress) { - setProgress(progress, true); - } - - private void setProgress(int progress, boolean notifyChanged) { - if (progress > mMax) { - progress = mMax; - } - if (progress < mMin) { - progress = mMin; - } - if (progress != mProgress) { - mProgress = progress; - persistInt(progress); - if (notifyChanged) { - notifyChanged(); - } - } - } - - public int getProgress() { - return mProgress; - } - - /** - * Persist the seekBar's progress value if callChangeListener - * returns true, otherwise set the seekBar's progress to the stored value - */ - void syncProgress(SeekBar seekBar) { - int progress = seekBar.getProgress() * mStep + mMin; - if (progress != mProgress) { - if (callChangeListener(progress)) { - setProgress(progress, false); - } else { - seekBar.setProgress((mProgress - mMin) / mStep); - } - } - } - - @Override - public void onProgressChanged( - SeekBar seekBar, int progress, boolean fromUser) { - if (fromUser && !mTrackingTouch) { - syncProgress(seekBar); - } - tvValue.setText(String.format(valueDisplayFormat, progress * mStep + mMin)); - } - - @Override - public void onStartTrackingTouch(SeekBar seekBar) { - mTrackingTouch = true; - } - - @Override - public void onStopTrackingTouch(SeekBar seekBar) { - mTrackingTouch = false; - if (seekBar.getProgress() * mStep + mMin != mProgress) { - syncProgress(seekBar); - } - } - - @Override - protected Parcelable onSaveInstanceState() { - /* - * Suppose a client uses this preference type without persisting. We - * must save the instance state so it is able to, for example, survive - * orientation changes. - */ - - final Parcelable superState = super.onSaveInstanceState(); - if (isPersistent()) { - // No need to save instance state since it's persistent - return superState; - } - - // Save the instance state - final SavedState myState = new SavedState(superState); - myState.progress = mProgress; - myState.step = mStep; - myState.min = mMin; - myState.max = mMax; - return myState; - } - - @Override - protected void onRestoreInstanceState(Parcelable state) { - if (!state.getClass().equals(SavedState.class)) { - // Didn't save state for us in onSaveInstanceState - super.onRestoreInstanceState(state); - return; - } - - // Restore the instance state - SavedState myState = (SavedState) state; - super.onRestoreInstanceState(myState.getSuperState()); - mProgress = myState.progress; - mStep = myState.step; - mMin = myState.min; - mMax = myState.max; - notifyChanged(); - } - - /** - * SavedState, a subclass of {@link BaseSavedState}, will store the state - * of MyPreference, a subclass of Preference. - *

- * It is important to always call through to super methods. - */ - private static class SavedState extends BaseSavedState { - int progress; - int step; - int min; - int max; - - public SavedState(Parcel source) { - super(source); - - // Restore the click counter - progress = source.readInt(); - step = source.readInt(); - min = source.readInt(); - max = source.readInt(); - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - super.writeToParcel(dest, flags); - - dest.writeInt(progress); - dest.writeInt(step); - dest.writeInt(min); - dest.writeInt(max); - } - - public SavedState(Parcelable superState) { - super(superState); - } - - @SuppressWarnings("unused") - public static final Parcelable.Creator CREATOR = - new Parcelable.Creator() { - public SavedState createFromParcel(Parcel in) { - return new SavedState(in); - } - - public SavedState[] newArray(int size) { - return new SavedState[size]; - } - }; - } -} diff -r 30f975176f8e -r fbccc77ea0e6 app/build.gradle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/build.gradle Wed Sep 05 20:07:35 2018 -0400 @@ -0,0 +1,32 @@ +apply plugin: 'com.android.application' + +repositories { + jcenter(); +} + +android { + compileSdkVersion 27 + defaultConfig { + applicationId "net.bgreco.gmapzoominvert" + minSdkVersion 15 + targetSdkVersion 27 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'com.android.support:appcompat-v7:27.1.1' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'com.android.support.test:runner:1.0.2' + androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' + compileOnly 'de.robv.android.xposed:api:82' +} diff -r 30f975176f8e -r fbccc77ea0e6 app/proguard-rules.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/proguard-rules.pro Wed Sep 05 20:07:35 2018 -0400 @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff -r 30f975176f8e -r fbccc77ea0e6 app/src/main/AndroidManifest.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/src/main/AndroidManifest.xml Wed Sep 05 20:07:35 2018 -0400 @@ -0,0 +1,21 @@ + + + + + + + + + + + + \ No newline at end of file diff -r 30f975176f8e -r fbccc77ea0e6 app/src/main/assets/xposed_init --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/src/main/assets/xposed_init Wed Sep 05 20:07:35 2018 -0400 @@ -0,0 +1,1 @@ +net.bgreco.gmapzoominvert.GMapZoomInvert \ No newline at end of file diff -r 30f975176f8e -r fbccc77ea0e6 app/src/main/java/net/bgreco/gmapzoominvert/GMapZoomInvert.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/src/main/java/net/bgreco/gmapzoominvert/GMapZoomInvert.java Wed Sep 05 20:07:35 2018 -0400 @@ -0,0 +1,88 @@ +/* Copyright (c) 2014 Brad Greco + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +package net.bgreco.gmapzoominvert; + +import static de.robv.android.xposed.XposedHelpers.findAndHookMethod; +import android.view.MotionEvent; +import de.robv.android.xposed.IXposedHookLoadPackage; +import de.robv.android.xposed.XC_MethodHook; +import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam; + +public class GMapZoomInvert implements IXposedHookLoadPackage { + + @Override + public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable { + if(!lpparam.packageName.equals("com.google.android.apps.maps")) + return; + + findAndHookMethod("com.google.android.apps.gmm.map.legacy.internal.vector.VectorMapViewImpl", lpparam.classLoader, "onTouchEvent", MotionEvent.class, new XC_MethodHook() { + + private float lastTapX; + private float lastTapY; + private long lastTapTime = 0; + private boolean doubleTap = false; + private boolean zooming = false; + + @Override + protected void beforeHookedMethod(MethodHookParam param) throws Throwable { + MotionEvent e = (MotionEvent) param.args[0]; + int action = e.getAction(); + // Detect double taps + if(action == MotionEvent.ACTION_DOWN) { + // Do our best to mimic the Google Maps double tap detection logic + if(e.getEventTime() < lastTapTime + 250) { + if(e.getX() - lastTapX > -150 && e.getX() - lastTapX < 100 && e.getY() - lastTapY > -150 && e.getY() - lastTapY < 100) { + doubleTap = true; + } + } + lastTapTime = e.getEventTime(); + lastTapX = e.getX(); + lastTapY = e.getY(); + } else if(action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_UP) { + // Also Invert the Y axis on release, otherwise the zoom will snap back + if(zooming) { + e.setLocation(e.getX(), lastTapY - (e.getY() - lastTapY)); + param.args[0] = e; + } + doubleTap = false; + zooming = false; + } else if(action == MotionEvent.ACTION_MOVE) { + // Invert the Y axis of the zoom gesture + if(e.getPointerCount() == 1) { + if(doubleTap) { + //Log.d("gmapzoominvert", "y offset: " + (lastTapY - e.getY())); + e.setLocation(e.getX(), lastTapY - (e.getY() - lastTapY)); + param.args[0] = e; + zooming = true; + } + } else { + // Another finger pressed cancels the zoom gesture + doubleTap = false; + zooming = false; + } + } + } + + }); + } + +} diff -r 30f975176f8e -r fbccc77ea0e6 app/src/main/res/drawable-hdpi/ic_launcher.png Binary file app/src/main/res/drawable-hdpi/ic_launcher.png has changed diff -r 30f975176f8e -r fbccc77ea0e6 app/src/main/res/drawable-mdpi/ic_launcher.png Binary file app/src/main/res/drawable-mdpi/ic_launcher.png has changed diff -r 30f975176f8e -r fbccc77ea0e6 app/src/main/res/drawable-xhdpi/ic_launcher.png Binary file app/src/main/res/drawable-xhdpi/ic_launcher.png has changed diff -r 30f975176f8e -r fbccc77ea0e6 app/src/main/res/values/strings.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/src/main/res/values/strings.xml Wed Sep 05 20:07:35 2018 -0400 @@ -0,0 +1,6 @@ + + + Map Zoom Invert + Invert the one-finger zoom gesture in Google Maps + + diff -r 30f975176f8e -r fbccc77ea0e6 app/src/main/res/values/styles.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/src/main/res/values/styles.xml Wed Sep 05 20:07:35 2018 -0400 @@ -0,0 +1,20 @@ + + + + + + + + + diff -r 30f975176f8e -r fbccc77ea0e6 build.gradle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/build.gradle Wed Sep 05 20:07:35 2018 -0400 @@ -0,0 +1,27 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + + repositories { + google() + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.1.4' + + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + google() + jcenter() + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff -r 30f975176f8e -r fbccc77ea0e6 gradle.properties --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gradle.properties Wed Sep 05 20:07:35 2018 -0400 @@ -0,0 +1,13 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true diff -r 30f975176f8e -r fbccc77ea0e6 gradle/wrapper/gradle-wrapper.jar Binary file gradle/wrapper/gradle-wrapper.jar has changed diff -r 30f975176f8e -r fbccc77ea0e6 gradle/wrapper/gradle-wrapper.properties --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gradle/wrapper/gradle-wrapper.properties Wed Sep 05 20:07:35 2018 -0400 @@ -0,0 +1,6 @@ +#Wed Aug 22 20:35:35 CDT 2018 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip diff -r 30f975176f8e -r fbccc77ea0e6 gradlew --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gradlew Wed Sep 05 20:07:35 2018 -0400 @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff -r 30f975176f8e -r fbccc77ea0e6 gradlew.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gradlew.bat Wed Sep 05 20:07:35 2018 -0400 @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff -r 30f975176f8e -r fbccc77ea0e6 settings.gradle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/settings.gradle Wed Sep 05 20:07:35 2018 -0400 @@ -0,0 +1,1 @@ +include ':app'