diff --git a/actionscript/src/com/freshplanet/ane/AirGooglePlayGames/AirGooglePlayGames.as b/actionscript/src/com/freshplanet/ane/AirGooglePlayGames/AirGooglePlayGames.as index a0fa5a2..9ddbc37 100644 --- a/actionscript/src/com/freshplanet/ane/AirGooglePlayGames/AirGooglePlayGames.as +++ b/actionscript/src/com/freshplanet/ane/AirGooglePlayGames/AirGooglePlayGames.as @@ -18,6 +18,7 @@ package com.freshplanet.ane.AirGooglePlayGames { + import flash.events.Event; import flash.events.EventDispatcher; import flash.events.StatusEvent; import flash.external.ExtensionContext; @@ -120,6 +121,12 @@ package com.freshplanet.ane.AirGooglePlayGames return name; } + public function getLeaderboard( leaderboardId:String ):void + { + if (AirGooglePlayGames.isSupported) + _context.call("getLeaderboard", leaderboardId ); + } + // --------------------------------------------------------------------------------------// // // @@ -136,7 +143,7 @@ package com.freshplanet.ane.AirGooglePlayGames private function onStatus( event : StatusEvent ) : void { trace("[AirGooglePlayGames]", event); - var e:AirGooglePlayGamesEvent; + var e:Event; if (event.code == "ON_SIGN_IN_SUCCESS") { e = new AirGooglePlayGamesEvent(AirGooglePlayGamesEvent.ON_SIGN_IN_SUCCESS); @@ -146,10 +153,20 @@ package com.freshplanet.ane.AirGooglePlayGames } else if (event.code == "ON_SIGN_OUT_SUCCESS") { e = new AirGooglePlayGamesEvent(AirGooglePlayGamesEvent.ON_SIGN_OUT_SUCCESS); + } else if (event.code == "ON_LEADERBOARD_LOADED") + { + var jsonArray:Array = JSON.parse( event.level ) as Array; + if( jsonArray ) { + var leaderboard:GSLeaderboard = GSLeaderboard.fromJSONObject( jsonArray ); + if( leaderboard ) + e = new AirGooglePlayGamesLeaderboardEvent(AirGooglePlayGamesLeaderboardEvent.LEADERBOARD_LOADED, leaderboard); + } + } else if (event.code == "ON_LEADERBOARD_FAILED") + { + e = new Event(AirGooglePlayGamesLeaderboardEvent.LEADERBOARD_LOADING_FAILED ); } - if (e) - { + if (e) { this.dispatchEvent(e); } } diff --git a/actionscript/src/com/freshplanet/ane/AirGooglePlayGames/AirGooglePlayGamesLeaderboardEvent.as b/actionscript/src/com/freshplanet/ane/AirGooglePlayGames/AirGooglePlayGamesLeaderboardEvent.as new file mode 100644 index 0000000..809adfb --- /dev/null +++ b/actionscript/src/com/freshplanet/ane/AirGooglePlayGames/AirGooglePlayGamesLeaderboardEvent.as @@ -0,0 +1,23 @@ +package com.freshplanet.ane.AirGooglePlayGames +{ + import flash.events.Event; + + public class AirGooglePlayGamesLeaderboardEvent extends Event + { + + public static const LEADERBOARD_LOADED:String = "AirGooglePlayGamesLeaderboardEvent.leaderboard_loaded"; + public static const LEADERBOARD_LOADING_FAILED:String = "AirGooglePlayGamesLeaderboardEvent.leaderboard_loading_failed"; + + public var leaderboard:GSLeaderboard; + + public function AirGooglePlayGamesLeaderboardEvent( type:String, leaderboard:GSLeaderboard ) + { + + super( type ); + + this.leaderboard = leaderboard; + + } + + } +} \ No newline at end of file diff --git a/actionscript/src/com/freshplanet/ane/AirGooglePlayGames/GSLeaderboard.as b/actionscript/src/com/freshplanet/ane/AirGooglePlayGames/GSLeaderboard.as new file mode 100644 index 0000000..12af3e0 --- /dev/null +++ b/actionscript/src/com/freshplanet/ane/AirGooglePlayGames/GSLeaderboard.as @@ -0,0 +1,29 @@ +package com.freshplanet.ane.AirGooglePlayGames +{ + public class GSLeaderboard + { + + private var _scores:Vector.; + public function get scores():Vector. { return _scores.slice(); } + + public function GSLeaderboard() + { + + _scores = new []; + + } + + public static function fromJSONObject( jsonArray:Array ):GSLeaderboard { + + var leaderboard:GSLeaderboard = new GSLeaderboard(); + + for each ( var scoreObject:Object in jsonArray ) { + leaderboard._scores.push( GSScore.fromJSONObject( scoreObject ) ); + } + + return leaderboard; + + } + + } +} \ No newline at end of file diff --git a/actionscript/src/com/freshplanet/ane/AirGooglePlayGames/GSPlayer.as b/actionscript/src/com/freshplanet/ane/AirGooglePlayGames/GSPlayer.as new file mode 100644 index 0000000..b05bd65 --- /dev/null +++ b/actionscript/src/com/freshplanet/ane/AirGooglePlayGames/GSPlayer.as @@ -0,0 +1,31 @@ +package com.freshplanet.ane.AirGooglePlayGames +{ + public class GSPlayer + { + + private var _id:String; + public function get id():String { return _id; } + private var _displayName:String; + public function get displayName():String { return _displayName; } + private var _picture:String; + public function get picture():String { return _picture; } + + public function GSPlayer( id:String, displayName:String, picture:String = null ) + { + + _id = id; + _displayName = displayName; + _picture = picture; + + } + + public static function fromJSONObject( jsonObject:Object ):GSPlayer { + + if( jsonObject.id == null ) return null; + + return new GSPlayer( jsonObject.id, jsonObject.displayName, jsonObject.picture ); + + } + + } +} \ No newline at end of file diff --git a/actionscript/src/com/freshplanet/ane/AirGooglePlayGames/GSScore.as b/actionscript/src/com/freshplanet/ane/AirGooglePlayGames/GSScore.as new file mode 100644 index 0000000..f70d9da --- /dev/null +++ b/actionscript/src/com/freshplanet/ane/AirGooglePlayGames/GSScore.as @@ -0,0 +1,33 @@ +package com.freshplanet.ane.AirGooglePlayGames +{ + public class GSScore + { + + private var _value:int; + public function get value():int { return _value; } + private var _rank:int; + public function get rank():int { return _rank; } + private var _player:GSPlayer; + public function get player():GSPlayer { return _player; } + + public function GSScore( value:int, rank:int, player:GSPlayer ) + { + + _value = value; + _rank = rank; + _player = player; + + } + + public static function fromJSONObject( jsonObject:Object ):GSScore { + + var player:GSPlayer = GSPlayer.fromJSONObject( jsonObject.player ); + + if( player == null ) return null; + + return new GSScore( jsonObject.value, jsonObject.rank, player ); + + } + + } +} \ No newline at end of file diff --git a/android/google-play-services_lib/AndroidManifest.xml b/android/google-play-services_lib/AndroidManifest.xml new file mode 100644 index 0000000..1c1a589 --- /dev/null +++ b/android/google-play-services_lib/AndroidManifest.xml @@ -0,0 +1,9 @@ + + + + + + diff --git a/android/google-play-services_lib/README.txt b/android/google-play-services_lib/README.txt new file mode 100644 index 0000000..32f8d5e --- /dev/null +++ b/android/google-play-services_lib/README.txt @@ -0,0 +1,17 @@ +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. + +Note that if you use proguard, you will want to include the +options from proguard.txt in your configuration. \ No newline at end of file diff --git a/android/google-play-services_lib/bin/AndroidManifest.xml b/android/google-play-services_lib/bin/AndroidManifest.xml new file mode 100644 index 0000000..1c1a589 --- /dev/null +++ b/android/google-play-services_lib/bin/AndroidManifest.xml @@ -0,0 +1,9 @@ + + + + + + diff --git a/android/google-play-services_lib/bin/R.txt b/android/google-play-services_lib/bin/R.txt new file mode 100644 index 0000000..3909a79 --- /dev/null +++ b/android/google-play-services_lib/bin/R.txt @@ -0,0 +1,108 @@ +int attr adSize 0x7f010000 +int attr adSizes 0x7f010001 +int attr adUnitId 0x7f010002 +int attr cameraBearing 0x7f010004 +int attr cameraTargetLat 0x7f010005 +int attr cameraTargetLng 0x7f010006 +int attr cameraTilt 0x7f010007 +int attr cameraZoom 0x7f010008 +int attr mapType 0x7f010003 +int attr uiCompass 0x7f010009 +int attr uiRotateGestures 0x7f01000a +int attr uiScrollGestures 0x7f01000b +int attr uiTiltGestures 0x7f01000c +int attr uiZoomControls 0x7f01000d +int attr uiZoomGestures 0x7f01000e +int attr useViewLifecycle 0x7f01000f +int attr zOrderOnTop 0x7f010010 +int color common_action_bar_splitter 0x7f030009 +int color common_signin_btn_dark_text_default 0x7f030000 +int color common_signin_btn_dark_text_disabled 0x7f030002 +int color common_signin_btn_dark_text_focused 0x7f030003 +int color common_signin_btn_dark_text_pressed 0x7f030001 +int color common_signin_btn_default_background 0x7f030008 +int color common_signin_btn_light_text_default 0x7f030004 +int color common_signin_btn_light_text_disabled 0x7f030006 +int color common_signin_btn_light_text_focused 0x7f030007 +int color common_signin_btn_light_text_pressed 0x7f030005 +int color common_signin_btn_text_dark 0x7f03000a +int color common_signin_btn_text_light 0x7f03000b +int drawable common_signin_btn_icon_dark 0x7f020000 +int drawable common_signin_btn_icon_disabled_dark 0x7f020001 +int drawable common_signin_btn_icon_disabled_focus_dark 0x7f020002 +int drawable common_signin_btn_icon_disabled_focus_light 0x7f020003 +int drawable common_signin_btn_icon_disabled_light 0x7f020004 +int drawable common_signin_btn_icon_focus_dark 0x7f020005 +int drawable common_signin_btn_icon_focus_light 0x7f020006 +int drawable common_signin_btn_icon_light 0x7f020007 +int drawable common_signin_btn_icon_normal_dark 0x7f020008 +int drawable common_signin_btn_icon_normal_light 0x7f020009 +int drawable common_signin_btn_icon_pressed_dark 0x7f02000a +int drawable common_signin_btn_icon_pressed_light 0x7f02000b +int drawable common_signin_btn_text_dark 0x7f02000c +int drawable common_signin_btn_text_disabled_dark 0x7f02000d +int drawable common_signin_btn_text_disabled_focus_dark 0x7f02000e +int drawable common_signin_btn_text_disabled_focus_light 0x7f02000f +int drawable common_signin_btn_text_disabled_light 0x7f020010 +int drawable common_signin_btn_text_focus_dark 0x7f020011 +int drawable common_signin_btn_text_focus_light 0x7f020012 +int drawable common_signin_btn_text_light 0x7f020013 +int drawable common_signin_btn_text_normal_dark 0x7f020014 +int drawable common_signin_btn_text_normal_light 0x7f020015 +int drawable common_signin_btn_text_pressed_dark 0x7f020016 +int drawable common_signin_btn_text_pressed_light 0x7f020017 +int drawable ic_plusone_medium_off_client 0x7f020018 +int drawable ic_plusone_small_off_client 0x7f020019 +int drawable ic_plusone_standard_off_client 0x7f02001a +int drawable ic_plusone_tall_off_client 0x7f02001b +int id hybrid 0x7f040004 +int id none 0x7f040000 +int id normal 0x7f040001 +int id satellite 0x7f040002 +int id terrain 0x7f040003 +int integer google_play_services_version 0x7f060000 +int string auth_client_needs_enabling_title 0x7f050015 +int string auth_client_needs_installation_title 0x7f050016 +int string auth_client_needs_update_title 0x7f050017 +int string auth_client_play_services_err_notification_msg 0x7f050018 +int string auth_client_requested_by_msg 0x7f050019 +int string auth_client_using_bad_version_title 0x7f050014 +int string common_google_play_services_enable_button 0x7f050006 +int string common_google_play_services_enable_text 0x7f050005 +int string common_google_play_services_enable_title 0x7f050004 +int string common_google_play_services_install_button 0x7f050003 +int string common_google_play_services_install_text_phone 0x7f050001 +int string common_google_play_services_install_text_tablet 0x7f050002 +int string common_google_play_services_install_title 0x7f050000 +int string common_google_play_services_invalid_account_text 0x7f05000c +int string common_google_play_services_invalid_account_title 0x7f05000b +int string common_google_play_services_network_error_text 0x7f05000a +int string common_google_play_services_network_error_title 0x7f050009 +int string common_google_play_services_unknown_issue 0x7f05000d +int string common_google_play_services_unsupported_date_text 0x7f050010 +int string common_google_play_services_unsupported_text 0x7f05000f +int string common_google_play_services_unsupported_title 0x7f05000e +int string common_google_play_services_update_button 0x7f050011 +int string common_google_play_services_update_text 0x7f050008 +int string common_google_play_services_update_title 0x7f050007 +int string common_signin_button_text 0x7f050012 +int string common_signin_button_text_long 0x7f050013 +int[] styleable AdsAttrs { 0x7f010000, 0x7f010001, 0x7f010002 } +int styleable AdsAttrs_adSize 0 +int styleable AdsAttrs_adSizes 1 +int styleable AdsAttrs_adUnitId 2 +int[] styleable MapAttrs { 0x7f010003, 0x7f010004, 0x7f010005, 0x7f010006, 0x7f010007, 0x7f010008, 0x7f010009, 0x7f01000a, 0x7f01000b, 0x7f01000c, 0x7f01000d, 0x7f01000e, 0x7f01000f, 0x7f010010 } +int styleable MapAttrs_cameraBearing 1 +int styleable MapAttrs_cameraTargetLat 2 +int styleable MapAttrs_cameraTargetLng 3 +int styleable MapAttrs_cameraTilt 4 +int styleable MapAttrs_cameraZoom 5 +int styleable MapAttrs_mapType 0 +int styleable MapAttrs_uiCompass 6 +int styleable MapAttrs_uiRotateGestures 7 +int styleable MapAttrs_uiScrollGestures 8 +int styleable MapAttrs_uiTiltGestures 9 +int styleable MapAttrs_uiZoomControls 10 +int styleable MapAttrs_uiZoomGestures 11 +int styleable MapAttrs_useViewLifecycle 12 +int styleable MapAttrs_zOrderOnTop 13 diff --git a/android/google-play-services_lib/bin/classes/android/UnusedStub.class b/android/google-play-services_lib/bin/classes/android/UnusedStub.class new file mode 100644 index 0000000..833a7c3 Binary files /dev/null and b/android/google-play-services_lib/bin/classes/android/UnusedStub.class differ diff --git a/android/google-play-services_lib/bin/classes/com/google/android/gms/BuildConfig.class b/android/google-play-services_lib/bin/classes/com/google/android/gms/BuildConfig.class new file mode 100644 index 0000000..d575beb Binary files /dev/null and b/android/google-play-services_lib/bin/classes/com/google/android/gms/BuildConfig.class differ diff --git a/android/google-play-services_lib/bin/classes/com/google/android/gms/R$attr.class b/android/google-play-services_lib/bin/classes/com/google/android/gms/R$attr.class new file mode 100644 index 0000000..00274d0 Binary files /dev/null and b/android/google-play-services_lib/bin/classes/com/google/android/gms/R$attr.class differ diff --git a/android/google-play-services_lib/bin/classes/com/google/android/gms/R$color.class b/android/google-play-services_lib/bin/classes/com/google/android/gms/R$color.class new file mode 100644 index 0000000..8553e8d Binary files /dev/null and b/android/google-play-services_lib/bin/classes/com/google/android/gms/R$color.class differ diff --git a/android/google-play-services_lib/bin/classes/com/google/android/gms/R$drawable.class b/android/google-play-services_lib/bin/classes/com/google/android/gms/R$drawable.class new file mode 100644 index 0000000..c62abb8 Binary files /dev/null and b/android/google-play-services_lib/bin/classes/com/google/android/gms/R$drawable.class differ diff --git a/android/google-play-services_lib/bin/classes/com/google/android/gms/R$id.class b/android/google-play-services_lib/bin/classes/com/google/android/gms/R$id.class new file mode 100644 index 0000000..d963734 Binary files /dev/null and b/android/google-play-services_lib/bin/classes/com/google/android/gms/R$id.class differ diff --git a/android/google-play-services_lib/bin/classes/com/google/android/gms/R$integer.class b/android/google-play-services_lib/bin/classes/com/google/android/gms/R$integer.class new file mode 100644 index 0000000..e9e4d10 Binary files /dev/null and b/android/google-play-services_lib/bin/classes/com/google/android/gms/R$integer.class differ diff --git a/android/google-play-services_lib/bin/classes/com/google/android/gms/R$string.class b/android/google-play-services_lib/bin/classes/com/google/android/gms/R$string.class new file mode 100644 index 0000000..fe80cd0 Binary files /dev/null and b/android/google-play-services_lib/bin/classes/com/google/android/gms/R$string.class differ diff --git a/android/google-play-services_lib/bin/classes/com/google/android/gms/R$styleable.class b/android/google-play-services_lib/bin/classes/com/google/android/gms/R$styleable.class new file mode 100644 index 0000000..52d84f2 Binary files /dev/null and b/android/google-play-services_lib/bin/classes/com/google/android/gms/R$styleable.class differ diff --git a/android/google-play-services_lib/bin/classes/com/google/android/gms/R.class b/android/google-play-services_lib/bin/classes/com/google/android/gms/R.class new file mode 100644 index 0000000..3f56532 Binary files /dev/null and b/android/google-play-services_lib/bin/classes/com/google/android/gms/R.class differ diff --git a/android/google-play-services_lib/bin/google-play-services_lib.jar b/android/google-play-services_lib/bin/google-play-services_lib.jar new file mode 100644 index 0000000..8268710 Binary files /dev/null and b/android/google-play-services_lib/bin/google-play-services_lib.jar differ diff --git a/android/google-play-services_lib/bin/jarlist.cache b/android/google-play-services_lib/bin/jarlist.cache new file mode 100644 index 0000000..0565465 --- /dev/null +++ b/android/google-play-services_lib/bin/jarlist.cache @@ -0,0 +1,3 @@ +# cache for current jar dependency. DO NOT EDIT. +# format is +# Encoding is UTF-8 diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_disabled_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_disabled_dark.9.png new file mode 100644 index 0000000..4d94eb9 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_disabled_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_disabled_focus_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_disabled_focus_dark.9.png new file mode 100644 index 0000000..0a11676 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_disabled_focus_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_disabled_focus_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_disabled_focus_light.9.png new file mode 100644 index 0000000..0a11676 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_disabled_focus_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_disabled_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_disabled_light.9.png new file mode 100644 index 0000000..4d94eb9 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_disabled_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_focus_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_focus_dark.9.png new file mode 100644 index 0000000..c1e535a Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_focus_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_focus_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_focus_light.9.png new file mode 100644 index 0000000..f1e358a Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_focus_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_normal_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_normal_dark.9.png new file mode 100644 index 0000000..56150d2 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_normal_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_normal_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_normal_light.9.png new file mode 100644 index 0000000..789d54d Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_normal_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_pressed_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_pressed_dark.9.png new file mode 100644 index 0000000..e5b9841 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_pressed_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_pressed_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_pressed_light.9.png new file mode 100644 index 0000000..3b3bd43 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_icon_pressed_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_disabled_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_disabled_dark.9.png new file mode 100644 index 0000000..561695f Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_disabled_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_disabled_focus_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_disabled_focus_dark.9.png new file mode 100644 index 0000000..1d64ba4 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_disabled_focus_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_disabled_focus_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_disabled_focus_light.9.png new file mode 100644 index 0000000..1d64ba4 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_disabled_focus_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_disabled_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_disabled_light.9.png new file mode 100644 index 0000000..561695f Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_disabled_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_focus_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_focus_dark.9.png new file mode 100644 index 0000000..e18296e Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_focus_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_focus_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_focus_light.9.png new file mode 100644 index 0000000..9f317f4 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_focus_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_normal_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_normal_dark.9.png new file mode 100644 index 0000000..b69d270 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_normal_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_normal_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_normal_light.9.png new file mode 100644 index 0000000..55478e4 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_normal_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_pressed_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_pressed_dark.9.png new file mode 100644 index 0000000..4739edb Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_pressed_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_pressed_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_pressed_light.9.png new file mode 100644 index 0000000..aaa5986 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/common_signin_btn_text_pressed_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/ic_plusone_medium_off_client.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/ic_plusone_medium_off_client.png new file mode 100644 index 0000000..b7f985a Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/ic_plusone_medium_off_client.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/ic_plusone_small_off_client.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/ic_plusone_small_off_client.png new file mode 100644 index 0000000..b67c08f Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/ic_plusone_small_off_client.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/ic_plusone_standard_off_client.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/ic_plusone_standard_off_client.png new file mode 100644 index 0000000..699e8dc Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/ic_plusone_standard_off_client.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/ic_plusone_tall_off_client.png b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/ic_plusone_tall_off_client.png new file mode 100644 index 0000000..5ee6159 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-hdpi/ic_plusone_tall_off_client.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_disabled_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_disabled_dark.9.png new file mode 100644 index 0000000..b8892df Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_disabled_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_disabled_focus_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_disabled_focus_dark.9.png new file mode 100644 index 0000000..48adc65 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_disabled_focus_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_disabled_focus_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_disabled_focus_light.9.png new file mode 100644 index 0000000..48adc65 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_disabled_focus_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_disabled_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_disabled_light.9.png new file mode 100644 index 0000000..b8892df Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_disabled_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_focus_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_focus_dark.9.png new file mode 100644 index 0000000..7ba6d69 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_focus_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_focus_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_focus_light.9.png new file mode 100644 index 0000000..1d44fab Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_focus_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_normal_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_normal_dark.9.png new file mode 100644 index 0000000..65ee1c8 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_normal_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_normal_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_normal_light.9.png new file mode 100644 index 0000000..d3b1788 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_normal_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_pressed_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_pressed_dark.9.png new file mode 100644 index 0000000..b9018cc Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_pressed_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_pressed_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_pressed_light.9.png new file mode 100644 index 0000000..dc632ca Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_icon_pressed_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_disabled_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_disabled_dark.9.png new file mode 100644 index 0000000..b888e4c Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_disabled_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_disabled_focus_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_disabled_focus_dark.9.png new file mode 100644 index 0000000..6f33a89 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_disabled_focus_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_disabled_focus_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_disabled_focus_light.9.png new file mode 100644 index 0000000..6f33a89 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_disabled_focus_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_disabled_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_disabled_light.9.png new file mode 100644 index 0000000..b888e4c Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_disabled_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_focus_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_focus_dark.9.png new file mode 100644 index 0000000..b1246a7 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_focus_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_focus_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_focus_light.9.png new file mode 100644 index 0000000..391bbbc Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_focus_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_normal_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_normal_dark.9.png new file mode 100644 index 0000000..ac83d67 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_normal_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_normal_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_normal_light.9.png new file mode 100644 index 0000000..fb7f296 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_normal_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_pressed_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_pressed_dark.9.png new file mode 100644 index 0000000..e3d44bc Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_pressed_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_pressed_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_pressed_light.9.png new file mode 100644 index 0000000..f8637b7 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/common_signin_btn_text_pressed_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/ic_plusone_medium_off_client.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/ic_plusone_medium_off_client.png new file mode 100644 index 0000000..ecf5271 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/ic_plusone_medium_off_client.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/ic_plusone_small_off_client.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/ic_plusone_small_off_client.png new file mode 100644 index 0000000..de31e6e Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/ic_plusone_small_off_client.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/ic_plusone_standard_off_client.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/ic_plusone_standard_off_client.png new file mode 100644 index 0000000..c73e509 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/ic_plusone_standard_off_client.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/ic_plusone_tall_off_client.png b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/ic_plusone_tall_off_client.png new file mode 100644 index 0000000..03beb43 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-mdpi/ic_plusone_tall_off_client.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_disabled_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_disabled_dark.9.png new file mode 100644 index 0000000..e6d34ac Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_disabled_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_disabled_focus_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_disabled_focus_dark.9.png new file mode 100644 index 0000000..9420fa0 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_disabled_focus_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_disabled_focus_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_disabled_focus_light.9.png new file mode 100644 index 0000000..9420fa0 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_disabled_focus_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_disabled_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_disabled_light.9.png new file mode 100644 index 0000000..e6d34ac Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_disabled_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_focus_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_focus_dark.9.png new file mode 100644 index 0000000..6ac6170 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_focus_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_focus_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_focus_light.9.png new file mode 100644 index 0000000..8b99c0a Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_focus_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_normal_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_normal_dark.9.png new file mode 100644 index 0000000..1155dba Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_normal_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_normal_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_normal_light.9.png new file mode 100644 index 0000000..092edb7 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_normal_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_pressed_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_pressed_dark.9.png new file mode 100644 index 0000000..0959f2e Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_pressed_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_pressed_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_pressed_light.9.png new file mode 100644 index 0000000..f19c951 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_icon_pressed_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_disabled_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_disabled_dark.9.png new file mode 100644 index 0000000..36c6514 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_disabled_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_disabled_focus_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_disabled_focus_dark.9.png new file mode 100644 index 0000000..736cb2b Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_disabled_focus_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_disabled_focus_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_disabled_focus_light.9.png new file mode 100644 index 0000000..736cb2b Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_disabled_focus_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_disabled_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_disabled_light.9.png new file mode 100644 index 0000000..36c6514 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_disabled_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_focus_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_focus_dark.9.png new file mode 100644 index 0000000..ba71f79 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_focus_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_focus_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_focus_light.9.png new file mode 100644 index 0000000..9c111fe Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_focus_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_normal_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_normal_dark.9.png new file mode 100644 index 0000000..fd2bbf9 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_normal_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_normal_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_normal_light.9.png new file mode 100644 index 0000000..900c884 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_normal_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_pressed_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_pressed_dark.9.png new file mode 100644 index 0000000..8fa9b6b Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_pressed_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_pressed_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_pressed_light.9.png new file mode 100644 index 0000000..d720253 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/common_signin_btn_text_pressed_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/ic_plusone_medium_off_client.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/ic_plusone_medium_off_client.png new file mode 100644 index 0000000..827d749 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/ic_plusone_medium_off_client.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/ic_plusone_small_off_client.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/ic_plusone_small_off_client.png new file mode 100644 index 0000000..c0b1c44 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/ic_plusone_small_off_client.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/ic_plusone_standard_off_client.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/ic_plusone_standard_off_client.png new file mode 100644 index 0000000..baf0171 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/ic_plusone_standard_off_client.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/ic_plusone_tall_off_client.png b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/ic_plusone_tall_off_client.png new file mode 100644 index 0000000..4a54022 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xhdpi/ic_plusone_tall_off_client.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_disabled_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_disabled_dark.9.png new file mode 100644 index 0000000..e6d34ac Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_disabled_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_dark.9.png new file mode 100644 index 0000000..9420fa0 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_light.9.png new file mode 100644 index 0000000..9420fa0 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_disabled_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_disabled_light.9.png new file mode 100644 index 0000000..e6d34ac Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_disabled_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_focus_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_focus_dark.9.png new file mode 100644 index 0000000..6ac6170 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_focus_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_focus_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_focus_light.9.png new file mode 100644 index 0000000..8b99c0a Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_focus_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_normal_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_normal_dark.9.png new file mode 100644 index 0000000..1155dba Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_normal_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_normal_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_normal_light.9.png new file mode 100644 index 0000000..092edb7 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_normal_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_pressed_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_pressed_dark.9.png new file mode 100644 index 0000000..0959f2e Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_pressed_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_pressed_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_pressed_light.9.png new file mode 100644 index 0000000..f19c951 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_icon_pressed_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_disabled_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_disabled_dark.9.png new file mode 100644 index 0000000..36c6514 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_disabled_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_disabled_focus_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_disabled_focus_dark.9.png new file mode 100644 index 0000000..736cb2b Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_disabled_focus_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_disabled_focus_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_disabled_focus_light.9.png new file mode 100644 index 0000000..736cb2b Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_disabled_focus_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_disabled_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_disabled_light.9.png new file mode 100644 index 0000000..36c6514 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_disabled_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_focus_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_focus_dark.9.png new file mode 100644 index 0000000..ba71f79 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_focus_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_focus_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_focus_light.9.png new file mode 100644 index 0000000..9c111fe Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_focus_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_normal_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_normal_dark.9.png new file mode 100644 index 0000000..fd2bbf9 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_normal_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_normal_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_normal_light.9.png new file mode 100644 index 0000000..900c884 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_normal_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_pressed_dark.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_pressed_dark.9.png new file mode 100644 index 0000000..8fa9b6b Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_pressed_dark.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_pressed_light.9.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_pressed_light.9.png new file mode 100644 index 0000000..d720253 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/common_signin_btn_text_pressed_light.9.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/ic_plusone_medium_off_client.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/ic_plusone_medium_off_client.png new file mode 100644 index 0000000..4045bac Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/ic_plusone_medium_off_client.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/ic_plusone_small_off_client.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/ic_plusone_small_off_client.png new file mode 100644 index 0000000..940d8d9 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/ic_plusone_small_off_client.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/ic_plusone_standard_off_client.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/ic_plusone_standard_off_client.png new file mode 100644 index 0000000..0a39f75 Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/ic_plusone_standard_off_client.png differ diff --git a/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/ic_plusone_tall_off_client.png b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/ic_plusone_tall_off_client.png new file mode 100644 index 0000000..d02005a Binary files /dev/null and b/android/google-play-services_lib/bin/res/crunch/drawable-xxhdpi/ic_plusone_tall_off_client.png differ diff --git a/android/google-play-services_lib/gen/com/google/android/gms/BuildConfig.java b/android/google-play-services_lib/gen/com/google/android/gms/BuildConfig.java new file mode 100644 index 0000000..36f320b --- /dev/null +++ b/android/google-play-services_lib/gen/com/google/android/gms/BuildConfig.java @@ -0,0 +1,6 @@ +/** Automatically generated file. DO NOT MODIFY */ +package com.google.android.gms; + +public final class BuildConfig { + public final static boolean DEBUG = true; +} \ No newline at end of file diff --git a/android/google-play-services_lib/gen/com/google/android/gms/R.java b/android/google-play-services_lib/gen/com/google/android/gms/R.java new file mode 100644 index 0000000..339c91e --- /dev/null +++ b/android/google-play-services_lib/gen/com/google/android/gms/R.java @@ -0,0 +1,639 @@ +/* AUTO-GENERATED FILE. DO NOT MODIFY. + * + * This class was automatically generated by the + * aapt tool from the resource data it found. It + * should not be modified by hand. + */ + +package com.google.android.gms; + +public final class R { + public static final class attr { + /** + The size of the ad. It must be one of BANNER, FULL_BANNER, LEADERBOARD, + MEDIUM_RECTANGLE, SMART_BANNER, WIDE_SKYSCRAPER, or + <width>x<height>. + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static int adSize=0x7f010000; + /** + A comma-separated list of the supported ad sizes. The sizes must be one of + BANNER, FULL_BANNER, LEADERBOARD, MEDIUM_RECTANGLE, SMART_BANNER, + WIDE_SKYSCRAPER, or <width>x<height>. + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static int adSizes=0x7f010001; + /** The ad unit ID. +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static int adUnitId=0x7f010002; + /**

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static int cameraBearing=0x7f010004; + /**

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static int cameraTargetLat=0x7f010005; + /**

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static int cameraTargetLng=0x7f010006; + /**

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static int cameraTilt=0x7f010007; + /**

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static int cameraZoom=0x7f010008; + /**

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
none0
normal1
satellite2
terrain3
hybrid4
+ */ + public static int mapType=0x7f010003; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static int uiCompass=0x7f010009; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static int uiRotateGestures=0x7f01000a; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static int uiScrollGestures=0x7f01000b; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static int uiTiltGestures=0x7f01000c; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static int uiZoomControls=0x7f01000d; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static int uiZoomGestures=0x7f01000e; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static int useViewLifecycle=0x7f01000f; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static int zOrderOnTop=0x7f010010; + } + public static final class color { + public static int common_action_bar_splitter=0x7f030009; + /** Sign-in Button Colors + */ + public static int common_signin_btn_dark_text_default=0x7f030000; + public static int common_signin_btn_dark_text_disabled=0x7f030002; + public static int common_signin_btn_dark_text_focused=0x7f030003; + public static int common_signin_btn_dark_text_pressed=0x7f030001; + public static int common_signin_btn_default_background=0x7f030008; + public static int common_signin_btn_light_text_default=0x7f030004; + public static int common_signin_btn_light_text_disabled=0x7f030006; + public static int common_signin_btn_light_text_focused=0x7f030007; + public static int common_signin_btn_light_text_pressed=0x7f030005; + public static int common_signin_btn_text_dark=0x7f03000a; + public static int common_signin_btn_text_light=0x7f03000b; + } + public static final class drawable { + public static int common_signin_btn_icon_dark=0x7f020000; + public static int common_signin_btn_icon_disabled_dark=0x7f020001; + public static int common_signin_btn_icon_disabled_focus_dark=0x7f020002; + public static int common_signin_btn_icon_disabled_focus_light=0x7f020003; + public static int common_signin_btn_icon_disabled_light=0x7f020004; + public static int common_signin_btn_icon_focus_dark=0x7f020005; + public static int common_signin_btn_icon_focus_light=0x7f020006; + public static int common_signin_btn_icon_light=0x7f020007; + public static int common_signin_btn_icon_normal_dark=0x7f020008; + public static int common_signin_btn_icon_normal_light=0x7f020009; + public static int common_signin_btn_icon_pressed_dark=0x7f02000a; + public static int common_signin_btn_icon_pressed_light=0x7f02000b; + public static int common_signin_btn_text_dark=0x7f02000c; + public static int common_signin_btn_text_disabled_dark=0x7f02000d; + public static int common_signin_btn_text_disabled_focus_dark=0x7f02000e; + public static int common_signin_btn_text_disabled_focus_light=0x7f02000f; + public static int common_signin_btn_text_disabled_light=0x7f020010; + public static int common_signin_btn_text_focus_dark=0x7f020011; + public static int common_signin_btn_text_focus_light=0x7f020012; + public static int common_signin_btn_text_light=0x7f020013; + public static int common_signin_btn_text_normal_dark=0x7f020014; + public static int common_signin_btn_text_normal_light=0x7f020015; + public static int common_signin_btn_text_pressed_dark=0x7f020016; + public static int common_signin_btn_text_pressed_light=0x7f020017; + public static int ic_plusone_medium_off_client=0x7f020018; + public static int ic_plusone_small_off_client=0x7f020019; + public static int ic_plusone_standard_off_client=0x7f02001a; + public static int ic_plusone_tall_off_client=0x7f02001b; + } + public static final class id { + public static int hybrid=0x7f040004; + public static int none=0x7f040000; + public static int normal=0x7f040001; + public static int satellite=0x7f040002; + public static int terrain=0x7f040003; + } + public static final class integer { + public static int google_play_services_version=0x7f060000; + } + public static final class string { + /** Title for notification shown when GooglePlayServices needs to be + enabled for a application to work. [CHAR LIMIT=70] + */ + public static int auth_client_needs_enabling_title=0x7f050015; + /** Title for notification shown when GooglePlayServices needs to be + installed for a application to work. [CHAR LIMIT=70] + */ + public static int auth_client_needs_installation_title=0x7f050016; + /** Title for notification shown when GooglePlayServices needs to be + udpated for a application to work. [CHAR LIMIT=70] + */ + public static int auth_client_needs_update_title=0x7f050017; + /** Title for notification shown when GooglePlayServices is unavailable [CHAR LIMIT=42] + */ + public static int auth_client_play_services_err_notification_msg=0x7f050018; + /** Requested by string saying which app requested the notification. [CHAR LIMIT=42] + */ + public static int auth_client_requested_by_msg=0x7f050019; + /** Title for notification shown when a bad version of GooglePlayServices + has been installed and needs correction for an application to work. + [CHAR LIMIT=70] + */ + public static int auth_client_using_bad_version_title=0x7f050014; + /** Button in confirmation dialog to enable Google Play services. Clicking it + will direct user to application settings of Google Play services where they + can enable it [CHAR LIMIT=40] + */ + public static int common_google_play_services_enable_button=0x7f050006; + /** Message in confirmation dialog informing user they need to enable + Google Play services in application settings [CHAR LIMIT=NONE] + */ + public static int common_google_play_services_enable_text=0x7f050005; + /** Title of confirmation dialog informing user they need to enable + Google Play services in application settings [CHAR LIMIT=40] + */ + public static int common_google_play_services_enable_title=0x7f050004; + /** Button in confirmation dialog for installing Google Play services [CHAR LIMIT=40] + */ + public static int common_google_play_services_install_button=0x7f050003; + /** (For phones) Message in confirmation dialog informing user that + they need to install Google Play services (from Play Store) [CHAR LIMIT=NONE] + */ + public static int common_google_play_services_install_text_phone=0x7f050001; + /** (For tablets) Message in confirmation dialog informing user that + they need to install Google Play services (from Play Store) [CHAR LIMIT=NONE] + */ + public static int common_google_play_services_install_text_tablet=0x7f050002; + /** Title of confirmation dialog informing user that they need to install + Google Play services (from Play Store) [CHAR LIMIT=40] + */ + public static int common_google_play_services_install_title=0x7f050000; + /** Message in confirmation dialog informing the user that they provided an invalid account. [CHAR LIMIT=NONE] + */ + public static int common_google_play_services_invalid_account_text=0x7f05000c; + /** Title of confirmation dialog informing the user that they provided an invalid account. [CHAR LIMIT=40] + */ + public static int common_google_play_services_invalid_account_title=0x7f05000b; + /** Message in confirmation dialog informing the user that a network error occurred. [CHAR LIMIT=NONE] + */ + public static int common_google_play_services_network_error_text=0x7f05000a; + /** Title of confirmation dialog informing the user that a network error occurred. [CHAR LIMIT=40] + */ + public static int common_google_play_services_network_error_title=0x7f050009; + /** Message in confirmation dialog informing user there is an unknown issue in Google Play + services [CHAR LIMIT=NONE] + */ + public static int common_google_play_services_unknown_issue=0x7f05000d; + /** Message in confirmation dialog informing user that date on the device is not correct, + causing certificate checks to fail. [CHAR LIMIT=NONE] + */ + public static int common_google_play_services_unsupported_date_text=0x7f050010; + /** Message in confirmation dialog informing user that Google Play services is not supported on their device [CHAR LIMIT=NONE] + */ + public static int common_google_play_services_unsupported_text=0x7f05000f; + /** Title of confirmation dialog informing user that Google Play services is not supported on their device [CHAR LIMIT=40] + */ + public static int common_google_play_services_unsupported_title=0x7f05000e; + /** Button in confirmation dialog for updating Google Play services [CHAR LIMIT=40] + */ + public static int common_google_play_services_update_button=0x7f050011; + /** Message in confirmation dialog informing user that they need to update + Google Play services (from Play Store) [CHAR LIMIT=NONE] + */ + public static int common_google_play_services_update_text=0x7f050008; + /** Title of confirmation dialog informing user that they need to update + Google Play services (from Play Store) [CHAR LIMIT=40] + */ + public static int common_google_play_services_update_title=0x7f050007; + /** Sign-in button text [CHAR LIMIT=15] + */ + public static int common_signin_button_text=0x7f050012; + /** Long form sign-in button text [CHAR LIMIT=30] + */ + public static int common_signin_button_text_long=0x7f050013; + } + public static final class styleable { + /** Attributes that can be used with a AdsAttrs. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #AdsAttrs_adSize com.google.android.gms:adSize} + The size of the ad.
{@link #AdsAttrs_adSizes com.google.android.gms:adSizes} + A comma-separated list of the supported ad sizes.
{@link #AdsAttrs_adUnitId com.google.android.gms:adUnitId} The ad unit ID.
+ @see #AdsAttrs_adSize + @see #AdsAttrs_adSizes + @see #AdsAttrs_adUnitId + */ + public static final int[] AdsAttrs = { + 0x7f010000, 0x7f010001, 0x7f010002 + }; + /** +

+ @attr description + + The size of the ad. It must be one of BANNER, FULL_BANNER, LEADERBOARD, + MEDIUM_RECTANGLE, SMART_BANNER, WIDE_SKYSCRAPER, or + <width>x<height>. + + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. +

This is a private symbol. + @attr name com.google.android.gms:adSize + */ + public static final int AdsAttrs_adSize = 0; + /** +

+ @attr description + + A comma-separated list of the supported ad sizes. The sizes must be one of + BANNER, FULL_BANNER, LEADERBOARD, MEDIUM_RECTANGLE, SMART_BANNER, + WIDE_SKYSCRAPER, or <width>x<height>. + + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. +

This is a private symbol. + @attr name com.google.android.gms:adSizes + */ + public static final int AdsAttrs_adSizes = 1; + /** +

+ @attr description + The ad unit ID. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. +

This is a private symbol. + @attr name com.google.android.gms:adUnitId + */ + public static final int AdsAttrs_adUnitId = 2; + /** Attributes that can be used with a MapAttrs. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #MapAttrs_cameraBearing com.google.android.gms:cameraBearing}
{@link #MapAttrs_cameraTargetLat com.google.android.gms:cameraTargetLat}
{@link #MapAttrs_cameraTargetLng com.google.android.gms:cameraTargetLng}
{@link #MapAttrs_cameraTilt com.google.android.gms:cameraTilt}
{@link #MapAttrs_cameraZoom com.google.android.gms:cameraZoom}
{@link #MapAttrs_mapType com.google.android.gms:mapType}
{@link #MapAttrs_uiCompass com.google.android.gms:uiCompass}
{@link #MapAttrs_uiRotateGestures com.google.android.gms:uiRotateGestures}
{@link #MapAttrs_uiScrollGestures com.google.android.gms:uiScrollGestures}
{@link #MapAttrs_uiTiltGestures com.google.android.gms:uiTiltGestures}
{@link #MapAttrs_uiZoomControls com.google.android.gms:uiZoomControls}
{@link #MapAttrs_uiZoomGestures com.google.android.gms:uiZoomGestures}
{@link #MapAttrs_useViewLifecycle com.google.android.gms:useViewLifecycle}
{@link #MapAttrs_zOrderOnTop com.google.android.gms:zOrderOnTop}
+ @see #MapAttrs_cameraBearing + @see #MapAttrs_cameraTargetLat + @see #MapAttrs_cameraTargetLng + @see #MapAttrs_cameraTilt + @see #MapAttrs_cameraZoom + @see #MapAttrs_mapType + @see #MapAttrs_uiCompass + @see #MapAttrs_uiRotateGestures + @see #MapAttrs_uiScrollGestures + @see #MapAttrs_uiTiltGestures + @see #MapAttrs_uiZoomControls + @see #MapAttrs_uiZoomGestures + @see #MapAttrs_useViewLifecycle + @see #MapAttrs_zOrderOnTop + */ + public static final int[] MapAttrs = { + 0x7f010003, 0x7f010004, 0x7f010005, 0x7f010006, + 0x7f010007, 0x7f010008, 0x7f010009, 0x7f01000a, + 0x7f01000b, 0x7f01000c, 0x7f01000d, 0x7f01000e, + 0x7f01000f, 0x7f010010 + }; + /** +

This symbol is the offset where the {@link com.google.android.gms.R.attr#cameraBearing} + attribute's value can be found in the {@link #MapAttrs} array. + + +

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name com.google.android.gms:cameraBearing + */ + public static final int MapAttrs_cameraBearing = 1; + /** +

This symbol is the offset where the {@link com.google.android.gms.R.attr#cameraTargetLat} + attribute's value can be found in the {@link #MapAttrs} array. + + +

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name com.google.android.gms:cameraTargetLat + */ + public static final int MapAttrs_cameraTargetLat = 2; + /** +

This symbol is the offset where the {@link com.google.android.gms.R.attr#cameraTargetLng} + attribute's value can be found in the {@link #MapAttrs} array. + + +

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name com.google.android.gms:cameraTargetLng + */ + public static final int MapAttrs_cameraTargetLng = 3; + /** +

This symbol is the offset where the {@link com.google.android.gms.R.attr#cameraTilt} + attribute's value can be found in the {@link #MapAttrs} array. + + +

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name com.google.android.gms:cameraTilt + */ + public static final int MapAttrs_cameraTilt = 4; + /** +

This symbol is the offset where the {@link com.google.android.gms.R.attr#cameraZoom} + attribute's value can be found in the {@link #MapAttrs} array. + + +

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name com.google.android.gms:cameraZoom + */ + public static final int MapAttrs_cameraZoom = 5; + /** +

This symbol is the offset where the {@link com.google.android.gms.R.attr#mapType} + attribute's value can be found in the {@link #MapAttrs} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
none0
normal1
satellite2
terrain3
hybrid4
+ @attr name com.google.android.gms:mapType + */ + public static final int MapAttrs_mapType = 0; + /** +

This symbol is the offset where the {@link com.google.android.gms.R.attr#uiCompass} + attribute's value can be found in the {@link #MapAttrs} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name com.google.android.gms:uiCompass + */ + public static final int MapAttrs_uiCompass = 6; + /** +

This symbol is the offset where the {@link com.google.android.gms.R.attr#uiRotateGestures} + attribute's value can be found in the {@link #MapAttrs} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name com.google.android.gms:uiRotateGestures + */ + public static final int MapAttrs_uiRotateGestures = 7; + /** +

This symbol is the offset where the {@link com.google.android.gms.R.attr#uiScrollGestures} + attribute's value can be found in the {@link #MapAttrs} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name com.google.android.gms:uiScrollGestures + */ + public static final int MapAttrs_uiScrollGestures = 8; + /** +

This symbol is the offset where the {@link com.google.android.gms.R.attr#uiTiltGestures} + attribute's value can be found in the {@link #MapAttrs} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name com.google.android.gms:uiTiltGestures + */ + public static final int MapAttrs_uiTiltGestures = 9; + /** +

This symbol is the offset where the {@link com.google.android.gms.R.attr#uiZoomControls} + attribute's value can be found in the {@link #MapAttrs} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name com.google.android.gms:uiZoomControls + */ + public static final int MapAttrs_uiZoomControls = 10; + /** +

This symbol is the offset where the {@link com.google.android.gms.R.attr#uiZoomGestures} + attribute's value can be found in the {@link #MapAttrs} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name com.google.android.gms:uiZoomGestures + */ + public static final int MapAttrs_uiZoomGestures = 11; + /** +

This symbol is the offset where the {@link com.google.android.gms.R.attr#useViewLifecycle} + attribute's value can be found in the {@link #MapAttrs} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name com.google.android.gms:useViewLifecycle + */ + public static final int MapAttrs_useViewLifecycle = 12; + /** +

This symbol is the offset where the {@link com.google.android.gms.R.attr#zOrderOnTop} + attribute's value can be found in the {@link #MapAttrs} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name com.google.android.gms:zOrderOnTop + */ + public static final int MapAttrs_zOrderOnTop = 13; + }; +} diff --git a/android/google-play-services_lib/libs/google-play-services.jar b/android/google-play-services_lib/libs/google-play-services.jar new file mode 100644 index 0000000..c62821d Binary files /dev/null and b/android/google-play-services_lib/libs/google-play-services.jar differ diff --git a/android/google-play-services_lib/libs/google-play-services.jar.properties b/android/google-play-services_lib/libs/google-play-services.jar.properties new file mode 100644 index 0000000..429687b --- /dev/null +++ b/android/google-play-services_lib/libs/google-play-services.jar.properties @@ -0,0 +1 @@ +doc=../../../docs/reference diff --git a/android/google-play-services_lib/proguard.txt b/android/google-play-services_lib/proguard.txt new file mode 100644 index 0000000..0c9693a --- /dev/null +++ b/android/google-play-services_lib/proguard.txt @@ -0,0 +1,20 @@ +-keep class * extends java.util.ListResourceBundle { + protected Object[][] getContents(); +} + +# Keep SafeParcelable value, needed for reflection. This is required to support backwards +# compatibility of some classes. +-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { + public static final *** NULL; +} + +# Keep the names of classes/members we need for client functionality. +-keepnames @com.google.android.gms.common.annotation.KeepName class * +-keepclassmembernames class * { + @com.google.android.gms.common.annotation.KeepName *; +} + +# Needed for Parcelable/SafeParcelable Creators to not get stripped +-keepnames class * implements android.os.Parcelable { + public static final ** CREATOR; +} \ No newline at end of file diff --git a/android/google-play-services_lib/res/color/common_signin_btn_text_dark.xml b/android/google-play-services_lib/res/color/common_signin_btn_text_dark.xml new file mode 100644 index 0000000..a615ba2 --- /dev/null +++ b/android/google-play-services_lib/res/color/common_signin_btn_text_dark.xml @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/android/google-play-services_lib/res/color/common_signin_btn_text_light.xml b/android/google-play-services_lib/res/color/common_signin_btn_text_light.xml new file mode 100644 index 0000000..6620668 --- /dev/null +++ b/android/google-play-services_lib/res/color/common_signin_btn_text_light.xml @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_dark.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_dark.9.png new file mode 100644 index 0000000..0f9e791 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_dark.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_dark.9.png new file mode 100644 index 0000000..570e432 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_light.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_light.9.png new file mode 100644 index 0000000..570e432 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_light.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_light.9.png new file mode 100644 index 0000000..0f9e791 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_focus_dark.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_focus_dark.9.png new file mode 100644 index 0000000..f507b9f Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_focus_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_focus_light.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_focus_light.9.png new file mode 100644 index 0000000..d5625e5 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_focus_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_normal_dark.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_normal_dark.9.png new file mode 100644 index 0000000..aea3c0d Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_normal_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_normal_light.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_normal_light.9.png new file mode 100644 index 0000000..849e89f Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_normal_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_pressed_dark.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_pressed_dark.9.png new file mode 100644 index 0000000..f4ab2f2 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_pressed_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_pressed_light.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_pressed_light.9.png new file mode 100644 index 0000000..9fe611d Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_pressed_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_dark.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_dark.9.png new file mode 100644 index 0000000..bbcde39 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_focus_dark.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_focus_dark.9.png new file mode 100644 index 0000000..53957b6 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_focus_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_focus_light.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_focus_light.9.png new file mode 100644 index 0000000..53957b6 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_focus_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_light.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_light.9.png new file mode 100644 index 0000000..bbcde39 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_focus_dark.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_focus_dark.9.png new file mode 100644 index 0000000..000d12e Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_focus_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_focus_light.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_focus_light.9.png new file mode 100644 index 0000000..d927940 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_focus_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_normal_dark.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_normal_dark.9.png new file mode 100644 index 0000000..67f263c Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_normal_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_normal_light.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_normal_light.9.png new file mode 100644 index 0000000..96324c5 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_normal_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_pressed_dark.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_pressed_dark.9.png new file mode 100644 index 0000000..e450312 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_pressed_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_pressed_light.9.png b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_pressed_light.9.png new file mode 100644 index 0000000..fb94b77 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_pressed_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_medium_off_client.png b/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_medium_off_client.png new file mode 100644 index 0000000..894f1b9 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_medium_off_client.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_small_off_client.png b/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_small_off_client.png new file mode 100644 index 0000000..ac77761 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_small_off_client.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_standard_off_client.png b/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_standard_off_client.png new file mode 100644 index 0000000..f1c32d3 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_standard_off_client.png differ diff --git a/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_tall_off_client.png b/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_tall_off_client.png new file mode 100644 index 0000000..08a4670 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_tall_off_client.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_dark.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_dark.9.png new file mode 100644 index 0000000..dddcbeb Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_dark.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_dark.9.png new file mode 100644 index 0000000..58b75bd Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_light.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_light.9.png new file mode 100644 index 0000000..58b75bd Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_light.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_light.9.png new file mode 100644 index 0000000..dddcbeb Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_focus_dark.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_focus_dark.9.png new file mode 100644 index 0000000..7d9ed78 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_focus_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_focus_light.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_focus_light.9.png new file mode 100644 index 0000000..0ca401d Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_focus_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_normal_dark.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_normal_dark.9.png new file mode 100644 index 0000000..f2c3f55 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_normal_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_normal_light.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_normal_light.9.png new file mode 100644 index 0000000..83b4fc9 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_normal_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_pressed_dark.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_pressed_dark.9.png new file mode 100644 index 0000000..dd74fe8 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_pressed_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_pressed_light.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_pressed_light.9.png new file mode 100644 index 0000000..b7dc7aa Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_pressed_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_dark.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_dark.9.png new file mode 100644 index 0000000..efdfe2e Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_focus_dark.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_focus_dark.9.png new file mode 100644 index 0000000..c7650b0 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_focus_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_focus_light.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_focus_light.9.png new file mode 100644 index 0000000..c7650b0 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_focus_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_light.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_light.9.png new file mode 100644 index 0000000..efdfe2e Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_focus_dark.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_focus_dark.9.png new file mode 100644 index 0000000..8c76283 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_focus_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_focus_light.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_focus_light.9.png new file mode 100644 index 0000000..abd26bc Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_focus_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_normal_dark.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_normal_dark.9.png new file mode 100644 index 0000000..28181c3 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_normal_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_normal_light.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_normal_light.9.png new file mode 100644 index 0000000..34957fa Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_normal_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_pressed_dark.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_pressed_dark.9.png new file mode 100644 index 0000000..e923ee9 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_pressed_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_pressed_light.9.png b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_pressed_light.9.png new file mode 100644 index 0000000..34cf6bb Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_pressed_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_medium_off_client.png b/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_medium_off_client.png new file mode 100644 index 0000000..d7e5777 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_medium_off_client.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_small_off_client.png b/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_small_off_client.png new file mode 100644 index 0000000..af301c2 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_small_off_client.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_standard_off_client.png b/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_standard_off_client.png new file mode 100644 index 0000000..f43e965 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_standard_off_client.png differ diff --git a/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_tall_off_client.png b/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_tall_off_client.png new file mode 100644 index 0000000..0b2b5c9 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_tall_off_client.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_dark.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_dark.9.png new file mode 100644 index 0000000..9044a11 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_dark.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_dark.9.png new file mode 100644 index 0000000..e94a49b Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_light.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_light.9.png new file mode 100644 index 0000000..e94a49b Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_light.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_light.9.png new file mode 100644 index 0000000..9044a11 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_focus_dark.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_focus_dark.9.png new file mode 100644 index 0000000..bfe4f04 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_focus_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_focus_light.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_focus_light.9.png new file mode 100644 index 0000000..876884f Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_focus_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_normal_dark.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_normal_dark.9.png new file mode 100644 index 0000000..b3e6dd5 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_normal_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_normal_light.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_normal_light.9.png new file mode 100644 index 0000000..5a888f2 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_normal_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_pressed_dark.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_pressed_dark.9.png new file mode 100644 index 0000000..d0f7b4c Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_pressed_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_pressed_light.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_pressed_light.9.png new file mode 100644 index 0000000..0db6b06 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_pressed_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_dark.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_dark.9.png new file mode 100644 index 0000000..d182b5e Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_dark.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_dark.9.png new file mode 100644 index 0000000..47e2aea Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_light.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_light.9.png new file mode 100644 index 0000000..47e2aea Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_light.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_light.9.png new file mode 100644 index 0000000..d182b5e Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_focus_dark.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_focus_dark.9.png new file mode 100644 index 0000000..64e9706 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_focus_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_focus_light.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_focus_light.9.png new file mode 100644 index 0000000..0fd8cdd Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_focus_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_normal_dark.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_normal_dark.9.png new file mode 100644 index 0000000..3427b47 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_normal_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_normal_light.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_normal_light.9.png new file mode 100644 index 0000000..31e38c4 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_normal_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_pressed_dark.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_pressed_dark.9.png new file mode 100644 index 0000000..e6a7880 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_pressed_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_pressed_light.9.png b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_pressed_light.9.png new file mode 100644 index 0000000..972962d Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_pressed_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_medium_off_client.png b/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_medium_off_client.png new file mode 100644 index 0000000..bb93309 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_medium_off_client.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_small_off_client.png b/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_small_off_client.png new file mode 100644 index 0000000..6174fcd Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_small_off_client.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_standard_off_client.png b/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_standard_off_client.png new file mode 100644 index 0000000..6a4c298 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_standard_off_client.png differ diff --git a/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_tall_off_client.png b/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_tall_off_client.png new file mode 100644 index 0000000..f68e913 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_tall_off_client.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_dark.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_dark.9.png new file mode 100644 index 0000000..9044a11 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_dark.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_dark.9.png new file mode 100644 index 0000000..e94a49b Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_light.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_light.9.png new file mode 100644 index 0000000..e94a49b Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_light.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_light.9.png new file mode 100644 index 0000000..9044a11 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_focus_dark.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_focus_dark.9.png new file mode 100644 index 0000000..bfe4f04 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_focus_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_focus_light.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_focus_light.9.png new file mode 100644 index 0000000..876884f Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_focus_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_normal_dark.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_normal_dark.9.png new file mode 100644 index 0000000..b3e6dd5 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_normal_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_normal_light.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_normal_light.9.png new file mode 100644 index 0000000..5a888f2 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_normal_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_pressed_dark.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_pressed_dark.9.png new file mode 100644 index 0000000..d0f7b4c Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_pressed_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_pressed_light.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_pressed_light.9.png new file mode 100644 index 0000000..0db6b06 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_pressed_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_dark.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_dark.9.png new file mode 100644 index 0000000..d182b5e Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_focus_dark.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_focus_dark.9.png new file mode 100644 index 0000000..47e2aea Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_focus_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_focus_light.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_focus_light.9.png new file mode 100644 index 0000000..47e2aea Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_focus_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_light.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_light.9.png new file mode 100644 index 0000000..d182b5e Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_focus_dark.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_focus_dark.9.png new file mode 100644 index 0000000..64e9706 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_focus_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_focus_light.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_focus_light.9.png new file mode 100644 index 0000000..0fd8cdd Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_focus_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_normal_dark.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_normal_dark.9.png new file mode 100644 index 0000000..3427b47 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_normal_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_normal_light.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_normal_light.9.png new file mode 100644 index 0000000..31e38c4 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_normal_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_pressed_dark.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_pressed_dark.9.png new file mode 100644 index 0000000..e6a7880 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_pressed_dark.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_pressed_light.9.png b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_pressed_light.9.png new file mode 100644 index 0000000..972962d Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_pressed_light.9.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_medium_off_client.png b/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_medium_off_client.png new file mode 100644 index 0000000..4f23739 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_medium_off_client.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_small_off_client.png b/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_small_off_client.png new file mode 100644 index 0000000..8ffa1d7 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_small_off_client.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_standard_off_client.png b/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_standard_off_client.png new file mode 100644 index 0000000..4d81cf4 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_standard_off_client.png differ diff --git a/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_tall_off_client.png b/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_tall_off_client.png new file mode 100644 index 0000000..fab5a79 Binary files /dev/null and b/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_tall_off_client.png differ diff --git a/android/google-play-services_lib/res/drawable/common_signin_btn_icon_dark.xml b/android/google-play-services_lib/res/drawable/common_signin_btn_icon_dark.xml new file mode 100644 index 0000000..dd1cf67 --- /dev/null +++ b/android/google-play-services_lib/res/drawable/common_signin_btn_icon_dark.xml @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/android/google-play-services_lib/res/drawable/common_signin_btn_icon_light.xml b/android/google-play-services_lib/res/drawable/common_signin_btn_icon_light.xml new file mode 100644 index 0000000..abf412b --- /dev/null +++ b/android/google-play-services_lib/res/drawable/common_signin_btn_icon_light.xml @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/android/google-play-services_lib/res/drawable/common_signin_btn_text_dark.xml b/android/google-play-services_lib/res/drawable/common_signin_btn_text_dark.xml new file mode 100644 index 0000000..2d92217 --- /dev/null +++ b/android/google-play-services_lib/res/drawable/common_signin_btn_text_dark.xml @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/android/google-play-services_lib/res/drawable/common_signin_btn_text_light.xml b/android/google-play-services_lib/res/drawable/common_signin_btn_text_light.xml new file mode 100644 index 0000000..810c021 --- /dev/null +++ b/android/google-play-services_lib/res/drawable/common_signin_btn_text_light.xml @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/android/google-play-services_lib/res/values-af/strings.xml b/android/google-play-services_lib/res/values-af/strings.xml new file mode 100644 index 0000000..1b211f5 --- /dev/null +++ b/android/google-play-services_lib/res/values-af/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Netwerkfout" + "\'n Dataverbinding is nodig om aan Google Play-dienste te koppel." + "Ongeldige rekening" + "Die gespesifiseerde rekening bestaan nie op hierdie toestel nie. Kies asseblief \'n ander rekening." + "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." + "Dit lyk of die datum op die toestel verkeerd is. Gaan asseblief die datum op die toestel na." + "Dateer op" + "Meld aan" + "Meld aan met Google" + + "\'n Program het probeer om \'n slegte weergawe van Google Play-dienste te gebruik." + "\'n Program vereis dat Google Play-dienste geaktiveer word." + "\'n Program vereis dat Google Play-dienste geïnstalleer word." + "\'n Program vereis \'n opdatering vir Google Play-dienste." + "Google Play-dienstefout" + "Versoek deur %1$s" + diff --git a/android/google-play-services_lib/res/values-am/strings.xml b/android/google-play-services_lib/res/values-am/strings.xml new file mode 100644 index 0000000..2585210 --- /dev/null +++ b/android/google-play-services_lib/res/values-am/strings.xml @@ -0,0 +1,31 @@ + + + "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 Play አገልግሎቶች፣ አንዳንድ መተግበሪያዎችዎ በእሱ ላይ ጥገኛ የሆኑት፣ በመሣሪያዎ አይደገፍም። እባክዎ ለእርዳታ አምራቹን ያግኙ።" + "በመሣሪያው ላይ ያለው ቀን ትክክል አይመስልም። እባክዎ በመሣሪያው ላይ ያለውን ቀን ያረጋግጡ።" + "ያዘምኑ" + "ግባ" + "በGoogle ይግቡ" + + "መተግበሪያው የGoogle Play አገልግሎቶችን መጥፎ ስሪት ለመጠቀም ሞክሯል።" + "መተግበሪያው Google Play አገልግሎቶች እንዲነቁ ይፈልጋል።" + "መተግበሪያው Google Play አገልግሎቶች እንዲጫኑ ይፈልጋል።" + "መተግበሪያው Google Play አገልግሎቶች እንዲዘምን ይፈልጋል።" + "የGoogle Play አገልግሎቶች ስህተት" + "በ%1$s የተጠየቀ" + diff --git a/android/google-play-services_lib/res/values-ar/strings.xml b/android/google-play-services_lib/res/values-ar/strings.xml new file mode 100644 index 0000000..9451b37 --- /dev/null +++ b/android/google-play-services_lib/res/values-ar/strings.xml @@ -0,0 +1,31 @@ + + + "‏الحصول على خدمات 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 Play التي تستجيب لها بعض تطبيقاتك لا تعمل على جهازك. يُرجى الاتصال بجهة التصنيع للحصول على المساعدة." + "يبدو أن التاريخ على الجهاز غير صحيح. الرجاء التحقق من التاريخ على الجهاز." + "تحديث" + "تسجيل الدخول" + "‏تسجيل الدخول باستخدام Google" + + "‏يحاول أحد التطبيقات استخدام إصدار غير صالح من خدمات Google Play." + "‏يتطلب أحد التطبيقات تمكين خدمات Google Play." + "‏يتطلب أحد التطبيقات تثبيت خدمات Google Play." + "‏يتطلب أحد التطبيقات تحديث خدمات Google Play." + "‏خطأ في خدمات Google Play" + "تم الطلب عن طريق %1$s" + diff --git a/android/google-play-services_lib/res/values-bg/strings.xml b/android/google-play-services_lib/res/values-bg/strings.xml new file mode 100644 index 0000000..bb8da3c --- /dev/null +++ b/android/google-play-services_lib/res/values-bg/strings.xml @@ -0,0 +1,31 @@ + + + "Изтегляне на услугите за 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 Play, на които разчитат някои от приложенията ви, не се поддържат от устройството ви. Моля, свържете се с производителя за помощ." + "Изглежда, че датата на устройството е неправилна. Моля, проверете я." + "Актуализиране" + "Вход" + "Вход с Google" + + "Приложение опита да ползва неправилна версия на услуг. за Google Play." + "Приложение изисква активирането на услугите за Google Play." + "Приложение изисква инсталирането на услугите за Google Play." + "Приложение изисква актуализирането на услугите за Google Play." + "Грешка в услугите за Google Play" + "Заявено от %1$s" + diff --git a/android/google-play-services_lib/res/values-ca/strings.xml b/android/google-play-services_lib/res/values-ca/strings.xml new file mode 100644 index 0000000..5b63e86 --- /dev/null +++ b/android/google-play-services_lib/res/values-ca/strings.xml @@ -0,0 +1,31 @@ + + + "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 de xarxa" + "Es requereix una connexió de dades per connectar amb els serveis de Google Play." + "Compte no vàlid" + "El compte especificat no existeix en aquest dispositiu. Tria un compte diferent." + "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." + "Sembla que la data del dispositiu no és correcta. Comprova-la." + "Actualitza" + "Inicia sessió" + "Inicia sessió amb Google" + + "Una aplic. ha intentat utilitzar una versió errònia de serveis de Play." + "Una aplicació requereix que s\'activin els serveis de Google Play." + "Una aplicació requereix que s\'instal·lin els serveis de Google Play." + "Una aplicació requereix que s\'actualitzin els serveis de Google Play." + "Error dels serveis de Google Play" + "Sol·licitada per %1$s" + diff --git a/android/google-play-services_lib/res/values-cs/strings.xml b/android/google-play-services_lib/res/values-cs/strings.xml new file mode 100644 index 0000000..1b5423b --- /dev/null +++ b/android/google-play-services_lib/res/values-cs/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Chyba sítě" + "Připojení ke službám Google Play vyžaduje datové připojení." + "Neplatný účet" + "Zadaný účet v tomto zařízení neexistuje. Zvolte prosím jiný účet." + "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." + "Datum v zařízení není správně nastaveno. Zkontrolujte prosím datum." + "Aktualizovat" + "Přihlásit se" + "Přihlásit se účtem Google" + + "Aplikace se pokusila použít nesprávnou verzi Služeb Google Play." + "Aplikace vyžaduje aktivované Služby Google Play." + "Aplikace vyžaduje instalaci Služeb Google Play." + "Aplikace vyžaduje aktualizaci Služeb Google Play." + "Chyba služeb Google Play" + "Požadováno aplikací %1$s" + diff --git a/android/google-play-services_lib/res/values-da/strings.xml b/android/google-play-services_lib/res/values-da/strings.xml new file mode 100644 index 0000000..daa2160 --- /dev/null +++ b/android/google-play-services_lib/res/values-da/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Netværksfejl" + "Der kræves en dataforbindelse for at oprette forbindelse til Google Play-tjenester." + "Ugyldig konto" + "Den angivne konto findes ikke på denne enhed. Vælg en anden konto." + "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." + "Datoen på enheden ser ud til at være forkert. Husk at kontrollere datoen på enheden." + "Opdater" + "Log ind" + "Log ind med Google" + + "En applikation forsøgte at bruge en defekt version af Google Play." + "En applikation kræver, at Google Play er aktiveret." + "En applikation kræver, at Google Play er installeret." + "En applikation kræver en opdatering af Google Play." + "Fejl i Google Play-tjenester" + "Anmodning fra %1$s" + diff --git a/android/google-play-services_lib/res/values-de/strings.xml b/android/google-play-services_lib/res/values-de/strings.xml new file mode 100644 index 0000000..df8e88e --- /dev/null +++ b/android/google-play-services_lib/res/values-de/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Netzwerkfehler" + "Um eine Verbindung zu den Google Play-Diensten herzustellen, ist eine Datenverbindung erforderlich." + "Ungültiges Konto" + "Das angegebene Konto ist auf diesem Gerät nicht vorhanden. Bitte wählen Sie ein anderes Konto aus." + "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." + "Das Datum auf dem Gerät scheint falsch zu sein. Bitte überprüfen Sie das Datum auf dem Gerät." + "Aktualisieren" + "Anmelden" + "Über Google anmelden" + + "App versuchte, defekte Google Play-Dienste-Version zu verwenden" + "App erfordert aktivierte Google Play-Dienste" + "App erfordert die Installation von Google Play-Diensten" + "App erfordert ein Update für Google Play-Dienste" + "Fehler bei Google Play-Diensten" + "Angefordert von %1$s" + diff --git a/android/google-play-services_lib/res/values-el/strings.xml b/android/google-play-services_lib/res/values-el/strings.xml new file mode 100644 index 0000000..13a5dc5 --- /dev/null +++ b/android/google-play-services_lib/res/values-el/strings.xml @@ -0,0 +1,31 @@ + + + "Λήψη υπηρεσιών 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 Play, στις οποίες βασίζονται ορισμένες από τις εφαρμογές σας, δεν υποστηρίζονται στη συσκευή σας. Επικοινωνήστε με τον κατασκευαστή για υποστήριξη." + "Η ημερομηνία στη συσκευή φαίνεται λανθασμένη. Ελέγξτε την ημερομηνία στη συσκευή." + "Ενημέρωση" + "Σύνδεση" + "Συνδεθείτε στο Google" + + "Απόπειρα χρήσης ακατάλληλης έκδοσης Υπηρεσιών Google Play από εφαρμογή" + "Μια εφαρμογή απαιτεί τις Υπηρεσίες Google Play για ενεργοποίηση." + "Μια εφαρμογή απαιτεί την εγκατάσταση των Υπηρεσιών Google Play." + "Μια εφαρμογή απαιτεί μια ενημέρωση για τις Υπηρεσίες Google Play." + "Σφάλμα υπηρεσιών Google Play" + "Υποβλήθηκε αίτημα από την εφαρμογή %1$s" + diff --git a/android/google-play-services_lib/res/values-en-rGB/strings.xml b/android/google-play-services_lib/res/values-en-rGB/strings.xml new file mode 100644 index 0000000..106d390 --- /dev/null +++ b/android/google-play-services_lib/res/values-en-rGB/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Network Error" + "A data connection is required to connect to Google Play services." + "Invalid Account" + "The specified account does not exist on this device. Please choose a different account." + "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." + "The date on the device appears to be incorrect. Please check the date on the device." + "Update" + "Sign in" + "Sign in with Google" + + "An application attempted to use a bad version of Google Play Services." + "An application requires Google Play Services to be enabled." + "An application requires installation of Google Play Services." + "An application requires an update for Google Play Services." + "Google Play services error" + "Requested by %1$s" + diff --git a/android/google-play-services_lib/res/values-en-rIN/strings.xml b/android/google-play-services_lib/res/values-en-rIN/strings.xml new file mode 100644 index 0000000..106d390 --- /dev/null +++ b/android/google-play-services_lib/res/values-en-rIN/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Network Error" + "A data connection is required to connect to Google Play services." + "Invalid Account" + "The specified account does not exist on this device. Please choose a different account." + "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." + "The date on the device appears to be incorrect. Please check the date on the device." + "Update" + "Sign in" + "Sign in with Google" + + "An application attempted to use a bad version of Google Play Services." + "An application requires Google Play Services to be enabled." + "An application requires installation of Google Play Services." + "An application requires an update for Google Play Services." + "Google Play services error" + "Requested by %1$s" + diff --git a/android/google-play-services_lib/res/values-es-rUS/strings.xml b/android/google-play-services_lib/res/values-es-rUS/strings.xml new file mode 100644 index 0000000..6be9059 --- /dev/null +++ b/android/google-play-services_lib/res/values-es-rUS/strings.xml @@ -0,0 +1,31 @@ + + + "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 tablet." + "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 de red" + "Se necesita una conexión de datos para establecer conexión con Google Play Services." + "Cuenta no válida" + "La cuenta especificada no existe en este dispositivo. Elige otra cuenta." + "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." + "Parece que la fecha del dispositivo es incorrecta. ¿Puedes revisarla?" + "Actualizar" + "Acceder" + "Acceder con Google" + + "Una aplic. intentó usar una versión no válida de Google Play Services" + "Una aplicación requiere que se active Google Play Services" + "Una aplicación requiere que se instale Google Play Services" + "Una aplicación requiere que se actualice Google Play Services" + "Error de Google Play Services" + "Solicitada por %1$s" + diff --git a/android/google-play-services_lib/res/values-es/strings.xml b/android/google-play-services_lib/res/values-es/strings.xml new file mode 100644 index 0000000..ed32995 --- /dev/null +++ b/android/google-play-services_lib/res/values-es/strings.xml @@ -0,0 +1,31 @@ + + + "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 de red" + "Se necesita una conexión de datos para establecer conexión con los servicios de Google Play." + "Cuenta no válida" + "La cuenta especificada no existe en este dispositivo. Selecciona otra cuenta." + "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." + "Parece que la fecha del dispositivo es incorrecta. Compruébala." + "Actualizar" + "Iniciar sesión" + "Iniciar sesión con Google" + + "Una aplicación intentó usar versión incorrecta de servicios de Google Play." + "Una aplicación requiere que se habiliten los servicios de Play." + "Una aplicación requiere que se instalen los servicios de Google Play." + "Una aplicación requiere que se actualicen los servicios de Google Play." + "Error de los servicios de Google Play" + "Solicitada por %1$s" + diff --git a/android/google-play-services_lib/res/values-et-rEE/strings.xml b/android/google-play-services_lib/res/values-et-rEE/strings.xml new file mode 100644 index 0000000..281caff --- /dev/null +++ b/android/google-play-services_lib/res/values-et-rEE/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Võrgu viga" + "Google Play teenustega ühenduse loomiseks on vajalik andmesideühendus." + "Vale konto" + "Määratud kontot pole selles seadmes olemas. Valige muu konto." + "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." + "Seadme kuupäev paistab olevat vale. Kontrollige seadme kuupäeva." + "Värskenda" + "Logi sisse" + "Logi sisse Google\'iga" + + "Rakendus püüdis kasutada Google Play teenuste sobimatut versiooni." + "Rakenduse kasutamiseks peavad olema lubatud Google Play teenused." + "Rakenduse kasutamiseks peavad olema installitud Google Play teenused." + "Rakenduse kasutamiseks tuleb värskendada Google Play teenuseid." + "Viga Google Play teenustes" + "Päringu esitas: %1$s" + diff --git a/android/google-play-services_lib/res/values-fa/strings.xml b/android/google-play-services_lib/res/values-fa/strings.xml new file mode 100644 index 0000000..87e10d1 --- /dev/null +++ b/android/google-play-services_lib/res/values-fa/strings.xml @@ -0,0 +1,31 @@ + + + "‏دریافت خدمات 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 Play، که برخی از برنامه‌های شما به آن وابسته است، توسط دستگاه شما پشتیبانی نمی‌شود. لطفاً برای دریافت کمک با سازنده تماس بگیرید." + "تاریخ روی دستگاه ظاهراً اشتباه است. لطفاً تاریخ روی دستگاه را بررسی کنید." + "به‌روزرسانی" + "ورود به سیستم" + "‏ورود به سیستم با Google‎" + + "‏برنامه‌ای تلاش کرد از نسخه نادرستی از خدمات Google Play استفاده کند." + "‏برنامه‌ای به فعال کردن خدمات Google Play نیاز دارد." + "‏برنامه‌ای به نصب خدمات Google Play نیاز دارد." + "‏برنامه‌ای به به‌روزرسانی خدمات Google Play نیاز دارد." + "‏خطا در خدمات Google Play" + "درخواست توسط %1$s" + diff --git a/android/google-play-services_lib/res/values-fi/strings.xml b/android/google-play-services_lib/res/values-fi/strings.xml new file mode 100644 index 0000000..00d3ceb --- /dev/null +++ b/android/google-play-services_lib/res/values-fi/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Verkkovirhe" + "Google Play -palveluiden käyttöön tarvitaan tietoliikenneyhteys." + "Tili ei kelpaa" + "Kyseistä tiliä ei ole tällä laitteella. Valitse toinen tili." + "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." + "Laitteen päivämäärä vaikuttaa virheelliseltä. Tarkista laitteen päivämäärä." + "Päivitä" + "Kirjaudu" + "Kirjaudu Google-tiliin" + + "Sovellus yritti käyttää virheellistä Google Play -palveluiden versiota" + "Ota käyttöön Google Play -palvelut, jotta sovellus toimii." + "Asenna Google Play -palvelut, jotta sovellus toimii." + "Päivitä Google Play -palvelut, jotta sovellus toimii." + "Virhe Google Play -palveluissa" + "Pyynnön teki %1$s" + diff --git a/android/google-play-services_lib/res/values-fr-rCA/strings.xml b/android/google-play-services_lib/res/values-fr-rCA/strings.xml new file mode 100644 index 0000000..e915fe4 --- /dev/null +++ b/android/google-play-services_lib/res/values-fr-rCA/strings.xml @@ -0,0 +1,31 @@ + + + "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 les 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 les 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." + "Erreur réseau" + "Vous devez disposer d\'une connexion de données pour utiliser les services Google Play." + "Compte erroné" + "Le compte indiqué n\'existe pas sur cet appareil. Veuillez sélectionner un autre compte." + "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." + "La date sur l\'appareil semble incorrecte. Veuillez la vérifier." + "Mettre à jour" + "Connexion" + "Se connecter via Google" + + "Une application requiert une version valide des services Google Play" + "Une application requiert l\'activation des services Google Play" + "Une application requiert l\'installation des services Google Play" + "Une application requiert la mise à jour des services Google Play" + "Erreur liée aux services Google Play" + "Demandée par %1$s" + diff --git a/android/google-play-services_lib/res/values-fr/strings.xml b/android/google-play-services_lib/res/values-fr/strings.xml new file mode 100644 index 0000000..321b283 --- /dev/null +++ b/android/google-play-services_lib/res/values-fr/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Erreur réseau" + "Vous devez disposer d\'une connexion de données pour utiliser les services Google Play." + "Compte erroné" + "Le compte indiqué n\'existe pas sur cet appareil. Veuillez sélectionner un autre compte." + "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." + "La date sur l\'appareil semble incorrecte. Veuillez la vérifier." + "Mettre à jour" + "Connexion" + "Se connecter avec Google" + + "Une application requiert une version valide des services Google Play" + "Une application requiert l\'activation des services Google Play" + "Une application requiert l\'installation des services Google Play" + "Une application requiert la mise à jour des services Google Play" + "Erreur liée aux services Google Play" + "Demandée par %1$s" + diff --git a/android/google-play-services_lib/res/values-hi/strings.xml b/android/google-play-services_lib/res/values-hi/strings.xml new file mode 100644 index 0000000..b36feb0 --- /dev/null +++ b/android/google-play-services_lib/res/values-hi/strings.xml @@ -0,0 +1,31 @@ + + + "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 Play सेवाएं, जिन पर आपके कुछ ऐप्स निर्भर करते हैं, आपके उपकरण द्वारा समर्थित नहीं हैं. कृपया सहायता के लिए निर्माता से संपर्क करें." + "उपकरण का दिनांक गलत प्रतीत हो रहा है. कृपया उपकरण का दिनांक जांचें." + "नई जानकारी पाएं" + "प्रवेश करें" + "Google से प्रवेश करें" + + "ऐप्स ने Google Play सेवाओं के खराब संस्करण के उपयोग का प्रयास किया." + "ऐप्स के लिए Google Play सेवाओं को सक्षम किए जाने की आवश्यकता है." + "ऐप्स के लिए Google Play सेवाओं के इंस्टॉलेशन की आवश्यकता है." + "ऐप्स के लिए Google Play सेवाओं में Google Play से नई जानकारी की आवश्यकता है." + "Google Play सेवाएं त्रुटि" + "%1$s द्वारा अनुरोधित" + diff --git a/android/google-play-services_lib/res/values-hr/strings.xml b/android/google-play-services_lib/res/values-hr/strings.xml new file mode 100644 index 0000000..b7d462d --- /dev/null +++ b/android/google-play-services_lib/res/values-hr/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Mrežna pogreška" + "Potrebna je podatkovna veza za povezivanje s uslugama Google Play." + "Nevažeći račun" + "Navedeni račun ne postoji na ovom uređaju. Odaberite neki drugi račun." + "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." + "Čini se da datum na uređaju nije točan. Provjerite datum na uređaju." + "Ažuriranje" + "Prijava" + "Prijava uslugom Google" + + "Aplikacija je pokušala upotrijebiti lošu verziju Usluga za Google Play." + "Aplikacija zahtijeva omogućavanje Usluga za Google Play." + "Aplikacija zahtijeva instaliranje Usluga za Google Play." + "Aplikacija zahtijeva ažuriranje Usluga za Google Play." + "Pogreška usluga za Google Play" + "Zahtijeva aplikacija %1$s" + diff --git a/android/google-play-services_lib/res/values-hu/strings.xml b/android/google-play-services_lib/res/values-hu/strings.xml new file mode 100644 index 0000000..cd15ad3 --- /dev/null +++ b/android/google-play-services_lib/res/values-hu/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Hálózati hiba" + "A Google Play Szolgáltatásokhoz történő kapcsolódáshoz adatkapcsolat szükséges." + "Érvénytelen fiók" + "A megadott fiók nem létezik ezen az eszközön. Kérjük, válasszon másik fiókot." + "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." + "Az eszközön beállított dátum helytelen. Kérjük, ellenőrizze azt." + "Frissítés" + "Belépés" + "Google-bejelentkezés" + + "Egy alkalmazás a Play Szolgáltatások rossz verzióját akarta használni." + "Egy alkalmazás kéri a Google Play Szolgáltatások engedélyezését." + "Egy alkalmazás kéri a Google Play Szolgáltatások telepítését." + "Egy alkalmazás kéri a Google Play Szolgáltatások frissítését." + "Google Play szolgáltatási hiba" + "Igénylő: %1$s" + diff --git a/android/google-play-services_lib/res/values-hy-rAM/strings.xml b/android/google-play-services_lib/res/values-hy-rAM/strings.xml new file mode 100644 index 0000000..d89be9b --- /dev/null +++ b/android/google-play-services_lib/res/values-hy-rAM/strings.xml @@ -0,0 +1,31 @@ + + + "Տեղադրեք 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 Play ծառայությունները, որոնց ապավինում են ձեր ծրագրերից որոշները, չեն աջակցվում ձեր սարքի կողմից: Խնդրում ենք կապվել արտադրողի հետ օգնության համար:" + "Սարքի ամսաթիվը կարծես սխալ է: Ստուգեք սարքի ամսաթիվը:" + "Նորացնել" + "Մուտք գործել" + "Մուտք գործեք Google-ով" + + "Հավելվածը փորձել է կիրառել Google Play ծառայությունների վատ տարբերակը:" + "Հավելվածը պահանջում է միացնել Google Play ծառայությունները:" + "Հավելվածը պահանջում է տեղադրել Google Play ծառայությունները:" + "Հավելվածը պահանջում է թարմացնել Google Play ծառայությունները:" + "Google Play ծառայությունների սխալ" + "%1$s-ի հարցմամբ" + diff --git a/android/google-play-services_lib/res/values-in/strings.xml b/android/google-play-services_lib/res/values-in/strings.xml new file mode 100644 index 0000000..526b84a --- /dev/null +++ b/android/google-play-services_lib/res/values-in/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Kesalahan Jaringan" + "Sambungan data diperlukan untuk tersambung ke layanan Google Play." + "Akun Tidak Valid" + "Akun yang ditentukan tidak ada di perangkat ini. Pilih akun lain." + "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." + "Tampaknya tanggal di perangkat salah. Periksa tanggal di perangkat." + "Perbarui" + "Masuk" + "Masuk dengan Google" + + "Aplikasi mencoba menggunakan versi Layanan Google Play yang rusak." + "Aplikasi membutuhkan Layanan Google Play untuk dapat diaktifkan." + "Aplikasi membutuhkan pemasangan Layanan Google Play." + "Aplikasi membutuhkan pembaruan untuk Layanan Google Play." + "Kesalahan layanan Google Play" + "Diminta oleh %1$s" + diff --git a/android/google-play-services_lib/res/values-it/strings.xml b/android/google-play-services_lib/res/values-it/strings.xml new file mode 100644 index 0000000..f3c9f1f --- /dev/null +++ b/android/google-play-services_lib/res/values-it/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Errore di rete" + "È necessaria una connessione dati per connettersi a Google Play Services." + "Account non valido" + "L\'account specificato non esiste su questo dispositivo. Scegli un altro account." + "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." + "La data sul dispositivo sembra sbagliata. Controllala." + "Aggiorna" + "Accedi" + "Accedi con Google" + + "Un\'app ha tentato di usare una versione non valida di Play Services." + "Un\'applicazione richiede l\'attivazione di Google Play Services." + "Un\'applicazione richiede l\'installazione di Google Play Services." + "Un\'applicazione richiede un aggiornamento di Google Play Services." + "Errore Google Play Services" + "Richiesta da %1$s" + diff --git a/android/google-play-services_lib/res/values-iw/strings.xml b/android/google-play-services_lib/res/values-iw/strings.xml new file mode 100644 index 0000000..7474e53 --- /dev/null +++ b/android/google-play-services_lib/res/values-iw/strings.xml @@ -0,0 +1,31 @@ + + + "‏קבל את שירותי 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 Play, שחלק מהאפליקציות שלך מתבססות עליהם, אינם נתמכים על ידי המכשיר שברשותך. צור קשר עם היצרן לקבלת סיוע." + "נראה שהתאריך במכשיר שגוי. בדוק את התאריך במכשיר." + "עדכן" + "היכנס" + "‏היכנס באמצעות Google" + + "‏יש אפליקציה שניסתה להשתמש בגרסה שגויה של שירותי Google Play." + "‏יש אפליקציה המחייבת הפעלה של שירותי Google Play." + "‏יש אפליקציה המחייבת התקנה של שירותי Google Play." + "‏יש אפליקציה המחייבת עדכון של שירותי Google Play." + "‏שגיאה בשירותי Google Play" + "התבקשה על ידי %1$s" + diff --git a/android/google-play-services_lib/res/values-ja/strings.xml b/android/google-play-services_lib/res/values-ja/strings.xml new file mode 100644 index 0000000..0d8b606 --- /dev/null +++ b/android/google-play-services_lib/res/values-ja/strings.xml @@ -0,0 +1,31 @@ + + + "Play開発者サービスの入手" + "このアプリの実行にはGoogle Play開発者サービスが必要ですが、お使いの携帯端末にはインストールされていません。" + "このアプリの実行にはGoogle Play開発者サービスが必要ですが、お使いのタブレットにはインストールされていません。" + "Play開発者サービスの入手" + "Play開発者サービスの有効化" + "このアプリの実行には、Google Play開発者サービスの有効化が必要です。" + "Play開発者サービスの有効化" + "Play開発者サービスの更新" + "このアプリの実行には、Google Play開発者サービスの更新が必要です。" + "ネットワークエラー" + "Google Play開発者サービスに接続するには、データ接続が必要です。" + "無効なアカウント" + "指定したアカウントはこの端末上に存在しません。別のアカウントを選択してください。" + "Google Play開発者サービスで原因不明の問題が発生しました。" + "Google Play開発者サービス" + "一部のアプリが使用しているGoogle Play開発者サービスは、お使いの端末ではサポートされていません。詳しくは、端末メーカーまでお問い合わせください。" + "端末上の日付が正しくないようです。端末上の日付をご確認ください。" + "更新" + "ログイン" + "Googleでログイン" + + "アプリはGoogle Play開発者サービスの不適切なバージョンを使用しようとしました。" + "アプリではGoogle Play開発者サービスを有効にする必要があります。" + "アプリではGoogle Play開発者サービスをインストールする必要があります。" + "アプリではGoogle Play開発者サービスをアップデートする必要があります。" + "Google Play開発者サービスのエラー" + "%1$sによるリクエスト" + diff --git a/android/google-play-services_lib/res/values-ka-rGE/strings.xml b/android/google-play-services_lib/res/values-ka-rGE/strings.xml new file mode 100644 index 0000000..8a2c74a --- /dev/null +++ b/android/google-play-services_lib/res/values-ka-rGE/strings.xml @@ -0,0 +1,31 @@ + + + "Google Play სერვისების მიღება" + "ეს აპი ვერ გაეშვება Google Play სერვისების გარეშე, რაც თქვენს ტელეფონზე ვერ იძებნება." + "ეს აპი ვერ გაეშვება Google Play სერვისების გარეშე, რაც თქვენს ტელეფონზე ვერ იძებნება." + "Google Play სერვისების მიღება" + "Google Play სერვისების გააქტიურება" + "ეს აპი არ იმუშავებს, თუ არ გაააქტიურებთ Google Play სერვისებს." + "Google Play სერვისების გააქტიურება" + "Google Play სერვისების განახლება" + "ეს აპი ვერ გაეშვება, თუ Google Play სერვისებს არ განაახლებთ." + "ქსელის შეცდომა" + "Google Play Services-თან დასაკავშირებლად მონაცემთა გადაცემა აუცილებელია." + "ანგარიში არასწორია" + "მითითებული ანგარიში ამ მოწყობილობაზე არ არსებობს. გთხოვთ, აირჩიოთ სხვა ანგარიში." + "Google Play სერვისებთან დაკავშირებით უცნობი შეფერხება წარმოიშვა." + "Google Play სერვისები" + "Google Play სერვისები, რაც თქვენს ზოგიერთ აპს ჭირდება, თქვენს მოწყობილობაზე მხარდაჭერილი არ არის. გთხოვთ, დაუკავშირდეთ მწარმოებელს დახმარებისათვის." + "როგორც ჩანს, მოწყობილობის თარიღი არასწორია. გთხოვთ, შეამოწმოთ მოწყობილობის თარიღი." + "განახლება" + "შესვლა" + "Google-ით შესვლა" + + "აპლიკაცია შეეცადა გამოეყენებინა Google Play სერვისების არასწორი ვერსია." + "აპლიკაცია საჭიროებს გააქტიურებულ Google Play Services." + "აპლიკაცია საჭიროებს Google Play Services-ის ინსტალაციას." + "აპლიკაცია საჭიროებს Google Play Services-ის განახლებას." + "Google Play სერვისების შეცდომა" + "მომთხოვნი: %1$s" + diff --git a/android/google-play-services_lib/res/values-km-rKH/strings.xml b/android/google-play-services_lib/res/values-km-rKH/strings.xml new file mode 100644 index 0000000..afebf30 --- /dev/null +++ b/android/google-play-services_lib/res/values-km-rKH/strings.xml @@ -0,0 +1,31 @@ + + + "ទទួល​សេវាកម្ម​កម្សាន្ត Google" + "កម្មវិធី​នេះ​នឹង​មិន​ដំណើរការ​​ទេ​បើ​គ្មាន​​សេវាកម្ម​កម្សាន្ត​ Google ដែល​ទូរស័ព្ទ​របស់​​អ្នក​មិន​មាន។" + "​​កម្មវិធី​នេះ​នឹង​មិន​ដំណើរការ​​ទេ​បើ​គ្មាន​​សេវាកម្ម​កម្សាន្ត​ Google ដែល​​កុំព្យូទ័រ​បន្ទះ​របស់​អ្នក​មិន​មាន។" + "ទទួល​សេវាកម្ម​កម្សាន្ត Google" + "បើក​សេវាកម្ម​កម្សាន្ត Google" + "កម្ម​វិធី​នេះ​នឹង​មិន​ដំណើរការ​ទេ​ លុះត្រាតែ​អ្នក​បើក​សេវាកម្ម​​កម្សាន្ត​ Google ។" + "បើក​សេវាកម្ម​កម្សាន្ត Google" + "ធ្វើ​បច្ចុប្បន្នភាព​សេវាកម្ម​កម្សាន្ត Google" + "កម្មវិធី​នេះ​នឹង​មិន​ដំណើរការ​ទេ​ លុះត្រាតែ​អ្នក​ធ្វើ​បច្ចុប្បន្នភាព​សេវាកម្ម​កម្សាន្ត Google ។" + "កំហុស​​បណ្ដាញ" + "បាន​ទាមទារ​ការ​តភ្ជាប់​ទិន្នន័យ ដើម្បី​ភ្ជាប់​សេវាកម្ម​ឃ្លាំង​កម្មវិធី។" + "គណនី​មិន​ត្រឹមត្រូវ" + "គណនី​ដែល​បាន​បញ្ជាក់​មិន​មាន​នៅ​លើ​ឧបករណ៍​នេះ​ទេ។ សូម​ជ្រើស​គណនី​ផ្សេង​។" + "មិន​ស្គាល់​បញ្ហា​ជាមួយ​សេវាកម្ម​កម្សាន្ត Google ។" + "សេវាកម្ម​កម្សាន្ត​ Google" + "សេវាកម្ម​កម្សាន្ត Google អាស្រ័យ​លើ​កម្មវិធី​របស់​អ្នក មិន​ត្រូវ​បាន​គាំទ្រ​ដោយ​ឧបករណ៍​របស់​អ្នក។ សូម​ទាក់ទង​ក្រុមហ៊ុន​ផលិត​សម្រាប់​ជំនួយ។" + "កាលបរិច្ឆេទ​លើ​ឧបករណ៍​បង្ហាញ​ថា​មិន​ត្រឹមត្រូវ។ សូម​ពិនិត្យ​កាលបរិច្ឆេទ​លើ​ឧបករណ៍។" + "ធ្វើ​បច្ចុប្បន្នភាព" + "ចូល" + "ចូល​ដោយ​ប្រើ​ Google" + + "កម្មវិធី​​​ព្យាយាម​ប្រើ​កំណែ​មិនល្អ​របស់​សេវា​កម្ម​ឃ្លាំ​កម្មវិធី។" + "កម្មវិធី​ទាមទារ​​បើក​សេវាកម្ម​ឃ្លាំង​កម្មវិធី។" + "កម្មវិធី​ទាមទារ​ការ​ដំឡើង​សេវាកម្ម​ឃ្លាំង​កម្មវិធី។" + "កម្មវិធី​ទាមទារ​​ធ្វើ​បច្ចុប្បន្នភាព​សេវាកម្ម​ឃ្លាំង​កម្មវិធី។" + "កំហុស​សេវា​កម្ម​កម្សាន្ត Google" + "បាន​ស្នើ​ដោយ %1$s" + diff --git a/android/google-play-services_lib/res/values-ko/strings.xml b/android/google-play-services_lib/res/values-ko/strings.xml new file mode 100644 index 0000000..e37f1fd --- /dev/null +++ b/android/google-play-services_lib/res/values-ko/strings.xml @@ -0,0 +1,31 @@ + + + "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 Play 서비스가 사용자 기기에서 지원되지 않습니다. 기기 제조업체에 문의하시기 바랍니다." + "기기의 날짜가 잘못된 것 같습니다. 기기의 날짜를 확인해 주세요." + "업데이트" + "로그인" + "Google 계정으로 로그인" + + "애플리케이션에서 잘못된 버전의 Google Play 서비스를 사용하려고 했습니다." + "Google Play 서비스를 사용하도록 설정해야 하는 애플리케이션입니다." + "Google Play 서비스를 설치해야 하는 애플리케이션입니다." + "Google Play 서비스를 업데이트해야 하는 애플리케이션입니다." + "Google Play 서비스 오류" + "%1$s에서 요청" + diff --git a/android/google-play-services_lib/res/values-lo-rLA/strings.xml b/android/google-play-services_lib/res/values-lo-rLA/strings.xml new file mode 100644 index 0000000..32bcb0b --- /dev/null +++ b/android/google-play-services_lib/res/values-lo-rLA/strings.xml @@ -0,0 +1,31 @@ + + + "ຕິດຕັ້ງບໍລິການ Google Play" + "ແອັບຯນີ້ຈະບໍ່ສາມາດເຮັດວຽກໄດ້ໂດຍທີ່ບໍ່ມີບໍລິການ Google Play ເຊິ່ງຂາດຫາຍໄປໃນໂທລະສັບຂອງທ່ານ." + "ແອັບຯນີ້ຈະບໍ່ສາມາດເຮັດວຽກໄດ້ໂດຍທີ່ບໍ່ມີບໍລິການ Google Play ເຊິ່ງຂາດຫາຍໄປໃນແທັບເລັດຂອງທ່ານ." + "ຕິດຕັ້ງບໍລິການ Google Play" + "ເປີດໃຊ້ບໍລິການ Google Play" + "ແອັບຯນີ້ຈະບໍ່ສາມາດເຮັດວຽກໄດ້ຈົນກວ່າທ່ານຈະເປີດໃຊ້ບໍລິການ Google Play" + "ເປີດໃຊ້ບໍລິການ Google Play" + "ອັບເດດບໍລິການ Google Play" + "ແອັບຯນີ້ຈະບໍ່ສາມາດເຮັດວຽກໄດ້ຈົນກວ່າທ່ານຈະອັບເດດບໍລິການ Google Play." + "ເຄືອຂ່າຍຜິດພາດ" + "ຕ້ອງໃຊ້ການເຊື່ອມຕໍ່ອິນເຕີເນັດເພື່ອໃຊ້ Google Play Services." + "ບັນຊີບໍ່ຖືກຕ້ອງ" + "ບັນຊີທີ່ເລືອກບໍ່ມີໃນອຸປະກອນນີ້. ກະລຸນາເລືອກບັນຊີອື່ນ." + "ມີປັນຫາທີ່ບໍ່ຄາດຄິດໃນບໍລິການ Google Play." + "ບໍລິການ Google Play" + "ບໍລິການ Google Play ທີ່ບາງແອັບພລິເຄຊັນຂອງທ່ານຕ້ອງອາໄສນັ້ນ ບໍ່ຖືກຮອງຮັບໃນອຸປະກອນຂອງທ່ານ. ກະລຸນາຕິດຕໍ່ຜູ້ຜະລິດສຳລັບການແນະນຳ." + "ວັນທີຂອງອຸປະກອນບໍ່ຖືກຕ້ອງ. ກະລຸນາກວດສອບວັນທີຂອງອຸປະກອນຂອງທ່ານ." + "ອັບເດດ" + "ເຂົ້າສູ່ລະບົບ" + "ເຂົ້າສູ່ລະບົບດ້ວຍ Google" + + "ແອັບພລິເຄຊັນໄດ້ພະຍາຍາມໃຊ້ Google Play Services ເວີຊັນທີ່ບໍ່ສາມາດໃຊ້ໄດ້." + "ແອັບພລິເຄຊັນຕ້ອງການເປີດນຳໃຊ້ Google Play Services." + "ແອັບພລິເຄຊັນຕ້ອງການໃຫ້ຕິດຕັ້ງ Google Play Services." + "ແອັບພລິເຄຊັນຕ້ອງການອັບເດດ Google Play Services." + "ບໍລິການ Google Play ຜິດພາດ" + "ຮ້ອງຂໍໂດຍ %1$s" + diff --git a/android/google-play-services_lib/res/values-lt/strings.xml b/android/google-play-services_lib/res/values-lt/strings.xml new file mode 100644 index 0000000..73de5fa --- /dev/null +++ b/android/google-play-services_lib/res/values-lt/strings.xml @@ -0,0 +1,31 @@ + + + "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ų." + "Tinklo klaida" + "Norint prisijungti prie „Google Play“ paslaugų reikia duomenų ryšio." + "Netinkama paskyra" + "Nurodytos paskyros šiame įrenginyje nėra. Pasirinkite kitą paskyrą." + "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." + "Įrenginyje nurodyta data neteisinga. Patikrinkite įrenginyje nurodytą datą." + "Atnaujinti" + "Prisij." + "Prisij. naud. „Google“" + + "Programa bandė naudotis netinkama „Google Play“ paslaugų versija." + "Norint naudoti programą būtina įgalinti „Google Play“ paslaugas." + "Norint naudoti programą būtina įdiegti „Google Play“ paslaugas." + "Norint naudoti programą būtina atnaujinti „Google Play“ paslaugas." + "„Google Play“ paslaugų klaida" + "Užklausą pateikė „%1$s“" + diff --git a/android/google-play-services_lib/res/values-lv/strings.xml b/android/google-play-services_lib/res/values-lv/strings.xml new file mode 100644 index 0000000..9e4b6ee --- /dev/null +++ b/android/google-play-services_lib/res/values-lv/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Tīkla kļūda" + "Lai izveidotu savienojumu ar Google Play pakalpojumiem, ir nepieciešams datu savienojums." + "Nederīgs konts" + "Norādītais konts šajā ierīcē nepastāv. Lūdzu, izvēlieties citu kontu." + "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." + "Šķiet, ka ierīcē ir iestatīts nepareizs datums. Lūdzu, pārbaudiet ierīces datumu." + "Atjaunināt" + "Pierakst." + "Pierakstīties Google" + + "Lietojumpr. mēģināja izmantot nederīgu Google Play pakalp. versiju." + "Lai lietojumprogramma darbotos, ir jāiespējo Google Play pakalpojumi." + "Lai lietojumprogramma darbotos, ir jāinstalē Google Play pakalpojumi." + "Lai lietojumprogramma darbotos, jāatjaunina Google Play pakalpojumi." + "Google Play pakalpojumu kļūda" + "Pieprasījums no lietotnes %1$s" + diff --git a/android/google-play-services_lib/res/values-mn-rMN/strings.xml b/android/google-play-services_lib/res/values-mn-rMN/strings.xml new file mode 100644 index 0000000..1743256 --- /dev/null +++ b/android/google-play-services_lib/res/values-mn-rMN/strings.xml @@ -0,0 +1,31 @@ + + + "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 Play үйлчилгээ таны төхөөрөмжид дэмжигдэхгүй байна. Тусламж авахын тулд үйлдвэрлэгчтэй холбоо барина уу." + "Төхөөрөмжийн огноо буруу байгаа бололтой. Төхөөрөмжийн огноог шалгана уу." + "Шинэчлэх" + "Нэвтрэх" + "Google-р нэвтрэх:" + + "Аппликешн Google Play Үйлчилгээний муу хувилбарыг ашиглахыг оролдлоо." + "Аппликешн Google Play Үйлчилгээг идэвхжүүлсэн байхыг шаардана." + "Аппликешн Google Play Үйлчилгээг суулгахыг шаардана." + "Аппликешн Google Play Үйлчилгээг шинэчлэхийг шаардана." + "Google Play үйлчилгээний алдаа" + "Хүсэлт гаргасан %1$s" + diff --git a/android/google-play-services_lib/res/values-ms-rMY/strings.xml b/android/google-play-services_lib/res/values-ms-rMY/strings.xml new file mode 100644 index 0000000..8e8a4b9 --- /dev/null +++ b/android/google-play-services_lib/res/values-ms-rMY/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Ralat Rangkaian" + "Sambungan data diperlukan untuk menyambung ke perkhidmatan Google Play." + "Akaun Tidak Sah" + "Akaun yang dinyatakan tidak wujud pada peranti ini. Sila pilih akaun yang lain." + "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." + "Tarikh pada peranti kelihatan tidak betul. Sila semak tarikh pada peranti." + "Kemas kini" + "Log masuk" + "Log masuk dengan Google" + + "Aplikasi cuba menggunakan versi Perkhidmatan Google Play yang rosak." + "Perkhidmatan Google Play perlu didayakan untuk menggunakan aplikasi." + "Perkhidmatan Google Play perlu dipasang untuk mengguankan aplikasi." + "Perkhidmatan Google Play perlu dikemas kini untuk menggunakan aplikasi." + "Ralat perkhidmatan Google Play" + "Diminta oleh %1$s" + diff --git a/android/google-play-services_lib/res/values-nb/strings.xml b/android/google-play-services_lib/res/values-nb/strings.xml new file mode 100644 index 0000000..1e16bbb --- /dev/null +++ b/android/google-play-services_lib/res/values-nb/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Nettverksfeil" + "Du må ha datatilkobling for å koble deg til Google Play-tjenester." + "Ugyldig konto" + "Den angitte kontoen finnes ikke på enheten. Velg en annen konto." + "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." + "Datoen på enheten ser ut til å være feil. Sjekk datoen på enheten." + "Oppdater" + "Logg på" + "Logg inn med Google" + + "En app prøvde å bruke en skadet versjon av Google Play Tjenester." + "En app krever Google Play Tjenester for å aktiveres." + "En app krever at Google Play Tjenester installeres." + "En app krever at Google Play Tjenester oppdateres." + "Google Play Tjenester-feil" + "Forespurt av %1$s" + diff --git a/android/google-play-services_lib/res/values-nl/strings.xml b/android/google-play-services_lib/res/values-nl/strings.xml new file mode 100644 index 0000000..f38db5f --- /dev/null +++ b/android/google-play-services_lib/res/values-nl/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Netwerkfout" + "Er is een gegevensverbinding nodig om verbinding te kunnen maken met Google Play-services." + "Ongeldig account" + "Het gespecificeerde account bestaat niet op dit apparaat. Kies een ander account." + "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." + "De datum op het apparaat lijkt onjuist. Controleer de datum op het apparaat." + "Bijwerken" + "Inloggen" + "Inloggen met Google" + + "Onjuiste versie van Google Play-services wordt gebruikt." + "Google Play-services moet zijn ingeschakeld voor een applicatie." + "Google Play-services moet zijn geïnstalleerd voor een applicatie." + "Google Play-services moet worden geüpdatet voor een applicatie." + "Fout met Google Play-services" + "Aangevraagd door %1$s" + diff --git a/android/google-play-services_lib/res/values-pl/strings.xml b/android/google-play-services_lib/res/values-pl/strings.xml new file mode 100644 index 0000000..5eba15f --- /dev/null +++ b/android/google-play-services_lib/res/values-pl/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Błąd sieci" + "Korzystanie z usług Google Play wymaga połączenia z internetem." + "Nieprawidłowe konto" + "Podanego konta nie ma na tym urządzeniu. Wybierz inne konto." + "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." + "Data ustawiona na urządzeniu wydaje się nieprawidłowa. Sprawdź datę ustawioną na urządzeniu." + "Aktualizuj" + "Zaloguj się" + "Zaloguj się przez Google" + + "Aplikacja próbowała skorzystać z nieprawidłowej wersji Usług Google Play." + "Aplikacja wymaga włączenia Usług Google Play." + "Aplikacja wymaga zainstalowania Usług Google Play." + "Aplikacja wymaga aktualizacji Usług Google Play." + "Błąd usług Google Play" + "Żądanie z aplikacji %1$s" + diff --git a/android/google-play-services_lib/res/values-pt-rBR/strings.xml b/android/google-play-services_lib/res/values-pt-rBR/strings.xml new file mode 100644 index 0000000..6db462d --- /dev/null +++ b/android/google-play-services_lib/res/values-pt-rBR/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Erro na rede" + "É necessária uma conexão de dados para conectar ao Google Play Services." + "Conta inválida" + "A conta especificada não existe no dispositivo. Escolha outra conta." + "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." + "A data no dispositivo parece incorreta. Verifique a data no dispositivo." + "Atualizar" + "Login" + "Fazer login com o Google" + + "Um aplicativo tentou usar uma versão errada do Google Play Services." + "Um aplicativo requer a ativação do Google Play Services." + "Um aplicativo requer a instalação do Google Play Services." + "Um aplicativo requer a atualização do Google Play Services." + "Ocorreu um erro no Google Play Services" + "Solicitado por %1$s" + diff --git a/android/google-play-services_lib/res/values-pt-rPT/strings.xml b/android/google-play-services_lib/res/values-pt-rPT/strings.xml new file mode 100644 index 0000000..0ceafcb --- /dev/null +++ b/android/google-play-services_lib/res/values-pt-rPT/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Erro de Rede" + "É necessária uma ligação de dados para se ligar aos Serviços do Google Play." + "Conta Inválida" + "A conta especificada não existe neste dispositivo. Escolha uma conta diferente." + "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." + "A data no dispositivo parece estar incorreta. Verifique a data no dispositivo." + "Atualizar" + "Inic. ses." + "Inic. sessão com o Google" + + "Aplicação tentou utiliz. versão incorreta dos Serviços do Google Play." + "Uma aplicação necessita da ativação dos Serviços do Google Play." + "Uma aplicação necessita da instalação dos Serviços do Google Play." + "Uma aplicação necessita da atualização dos Serviços do Google Play." + "Erro dos serviços do Google Play" + "Solicitado por %1$s" + diff --git a/android/google-play-services_lib/res/values-pt/strings.xml b/android/google-play-services_lib/res/values-pt/strings.xml new file mode 100644 index 0000000..6db462d --- /dev/null +++ b/android/google-play-services_lib/res/values-pt/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Erro na rede" + "É necessária uma conexão de dados para conectar ao Google Play Services." + "Conta inválida" + "A conta especificada não existe no dispositivo. Escolha outra conta." + "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." + "A data no dispositivo parece incorreta. Verifique a data no dispositivo." + "Atualizar" + "Login" + "Fazer login com o Google" + + "Um aplicativo tentou usar uma versão errada do Google Play Services." + "Um aplicativo requer a ativação do Google Play Services." + "Um aplicativo requer a instalação do Google Play Services." + "Um aplicativo requer a atualização do Google Play Services." + "Ocorreu um erro no Google Play Services" + "Solicitado por %1$s" + diff --git a/android/google-play-services_lib/res/values-ro/strings.xml b/android/google-play-services_lib/res/values-ro/strings.xml new file mode 100644 index 0000000..eb42896 --- /dev/null +++ b/android/google-play-services_lib/res/values-ro/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Eroare de reţea" + "Este necesară o conexiune de date pentru a vă conecta la serviciile Google Play." + "Cont nevalid" + "Contul menționat nu există pe acest dispozitiv. Alegeți alt cont." + "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." + "Data de pe dispozitiv pare să fie incorectă. Verificați data de pe dispozitiv." + "Actualizaţi" + "Conectați" + "Conectați-vă cu Google" + + "Aplicația a încercat să utilizeze o vers. Servicii Google Play greșită" + "O aplicație necesită activarea Serviciilor Google Play." + "O aplicație necesită instalarea Serviciilor Google Play." + "O aplicație necesită o actualizare pentru Servicii Google Play." + "Eroare Servicii Google Play" + "Solicitată de %1$s" + diff --git a/android/google-play-services_lib/res/values-ru/strings.xml b/android/google-play-services_lib/res/values-ru/strings.xml new file mode 100644 index 0000000..c784aae --- /dev/null +++ b/android/google-play-services_lib/res/values-ru/strings.xml @@ -0,0 +1,31 @@ + + + "Установите Сервисы Google Play" + "Для работы этого приложения требуется установить Сервисы Google Play." + "Для работы этого приложения требуется установить Сервисы Google Play." + "Установить" + "Включите Сервисы Google Play" + "Для работы этого приложения требуется включить Сервисы Google Play." + "Включить" + "Обновите Сервисы Google Play" + "Для работы этого приложения требуется обновить Сервисы Google Play." + "Ошибка сети" + "Для работы с Google Play требуется подключение к сети." + "Недействительный аккаунт" + "Этого аккаунта нет на устройстве. Выберите другой." + "Неизвестная ошибка с Сервисами Google Play." + "Сервисы Google Play" + "Сервисы Google Play, необходимые для работы некоторых приложений, не поддерживаются на вашем устройстве. Обратитесь к производителю." + "Проверьте правильность даты, указанной на устройстве." + "Обновить" + "Войти" + "Войти в аккаунт Google" + + "Версия сервисов Google Play неисправна" + "Для работы приложения требуется включить сервисы Google Play" + "Для работы приложения требуется установить сервисы Google Play" + "Для работы приложения требуется обновить сервисы Google Play" + "Ошибка сервисов Google Play" + "Запрос от приложения \"%1$s\"" + diff --git a/android/google-play-services_lib/res/values-sk/strings.xml b/android/google-play-services_lib/res/values-sk/strings.xml new file mode 100644 index 0000000..125d87f --- /dev/null +++ b/android/google-play-services_lib/res/values-sk/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Chyba siete" + "Pripojenie k službám Google Play si vyžaduje dátové pripojenie." + "Neplatný účet" + "Zadaný účet v tomto zariadení neexistuje. Vyberte iný účet." + "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." + "Dátum nastavený v zariadení sa zdá byť nesprávny. Skontrolujte ho." + "Aktualizovať" + "Prihlásiť sa" + "Prihlásiť sa do účtu Google" + + "Aplikácia sa pokúsila použiť nesprávnu verziu služieb Google Play." + "Aplikácia vyžaduje povolenie služieb Google Play." + "Aplikácia vyžaduje inštaláciu služieb Google Play." + "Aplikácia vyžaduje aktualizáciu služieb Google Play." + "Chyba služieb Google Play" + "Vyžiadané aplikáciou %1$s" + diff --git a/android/google-play-services_lib/res/values-sl/strings.xml b/android/google-play-services_lib/res/values-sl/strings.xml new file mode 100644 index 0000000..df5821f --- /dev/null +++ b/android/google-play-services_lib/res/values-sl/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Omrežna napaka" + "Za povezavo s storitvami Google Play potrebujete internetno povezavo." + "Neveljaven račun" + "V tej napravi ne obstaja navedeni račun. Izberite drugega." + "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." + "Videti je, da je datum v napravi napačen. Preverite ga." + "Posodobi" + "Prijava" + "Prijavite se v Google" + + "Aplikacija je poskusila uporabiti napačno različico Storitev Google Play." + "Za delovanje aplikacije morate omogočiti Storitve Google Play." + "Za delovanje aplikacije morate namestiti Storitve Google Play." + "Za delovanje aplikacije morate posodobiti Storitve Google Play." + "Napaka storitev Google Play" + "Zahtevala aplikacija %1$s" + diff --git a/android/google-play-services_lib/res/values-sr/strings.xml b/android/google-play-services_lib/res/values-sr/strings.xml new file mode 100644 index 0000000..ad0b549 --- /dev/null +++ b/android/google-play-services_lib/res/values-sr/strings.xml @@ -0,0 +1,31 @@ + + + "Преузимање 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 Play услуге, које су потребне за функционисање неких од апликација, нису подржане на уређају. Контактирајте произвођача да бисте добили помоћ." + "Изгледа да су подаци на уређају нетачни. Проверите датум на уређају." + "Ажурирај" + "Пријави ме" + "Пријави ме преко Google-а" + + "Апликација је покушала да користи лошу верзију Google Play услуга." + "Апликација захтева да Google Play услуге буду омогућене." + "Апликација захтева инсталирање Google Play услуга." + "Апликација захтева ажурирање Google Play услуга." + "Грешка Google Play услуга" + "Захтева %1$s" + diff --git a/android/google-play-services_lib/res/values-sv/strings.xml b/android/google-play-services_lib/res/values-sv/strings.xml new file mode 100644 index 0000000..6a10395 --- /dev/null +++ b/android/google-play-services_lib/res/values-sv/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Nätverksfel" + "En dataanslutning krävs för att ansluta till Google Plays tjänster." + "Ogiltigt konto" + "Det angivna kontot finns inte på den här enheten. Välj ett annat konto." + "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." + "Datumet på enheten verkar inte vara rätt. Kontrollera datumet på enheten." + "Uppdatera" + "Logga in" + "Logga in med Google" + + "En olämplig version av Google Play Tjänster anropades av en app." + "Google Play Tjänster måste aktiveras för en att app ska fungera." + "Google Play Tjänster måste installeras för att en app ska fungera." + "Google Play Tjänster måste uppdateras för en app ska fungera." + "Fel på Google Play Tjänster" + "Begärdes av %1$s" + diff --git a/android/google-play-services_lib/res/values-sw/strings.xml b/android/google-play-services_lib/res/values-sw/strings.xml new file mode 100644 index 0000000..7f29bf5 --- /dev/null +++ b/android/google-play-services_lib/res/values-sw/strings.xml @@ -0,0 +1,31 @@ + + + "Pata huduma za Google Play" + "Programu hii haiwezi kuendeshwa bila huduma za Google Play, ambazo hazipo kwenye simu yako." + "Programu hii haiwezi kufanya kazi bila huduma za Google Play, ambazo hazipatikani kwenye kompyuta kibao yako." + "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." + "Hitilafu ya Mtandao" + "Muunganisho wa data unahitajika ili kuunganisha kwenye huduma za Google Play." + "Akaunti Batili" + "Akaunti iliyobainishwa haipo kwenye kifaa hiki. Tafadhali chagua akaunti tofauti." + "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." + "Inaeonekana tarehe ya kifaa sio sahihi. Tafadhali angalia tarehe ya kifaa." + "Sasisha" + "Ingia" + "Ingia ukitumia Google" + + "Programu ilijaribu kutumia toleo baya la Huduma za Google Play." + "Programu inahitaji Huduma za Google Play ili kuwashwa." + "Programu inahitaji usakinishaji wa Huduma za Google Play." + "Programu inahitaji sasisho la Huduma za Google Play." + "Hitilafu kwenye Huduma za Google Play" + "Imeombwa na %1$s" + diff --git a/android/google-play-services_lib/res/values-th/strings.xml b/android/google-play-services_lib/res/values-th/strings.xml new file mode 100644 index 0000000..6f098fe --- /dev/null +++ b/android/google-play-services_lib/res/values-th/strings.xml @@ -0,0 +1,31 @@ + + + "รับบริการ 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 Play ซึ่งใช้งานในบางแอปพลิเคชัน ไม่ได้รับการสนับสนุนโดยอุปกรณ์ของคุณ โปรดติดต่อผู้ผลิตเพื่อขอรับความช่วยเหลือ" + "วันที่บนอุปกรณ์ไม่ถูกต้อง โปรดตรวจสอบวันที่บนอุปกรณ์" + "อัปเดต" + "ลงชื่อใช้" + "ลงชื่อเข้าใช้ด้วย Google" + + "แอปพลิเคชันหนึ่งพยายามใช้เวอร์ชันที่ไม่เหมาะสมของบริการ Google Play" + "แอปพลิเคชันหนึ่งจำเป็นต้องมีบริการ Google Play เพื่อเปิดใช้งาน" + "แอปพลิเคชันหนึ่งจำเป็นต้องมีการติดตั้งบริการ Google Play" + "แอปพลิเคชันหนึ่งจำเป็นต้องมีการอัปเดตสำหรับบริการ Google Play" + "ข้อผิดพลาดของบริการ Google Play" + "ขอโดย %1$s" + diff --git a/android/google-play-services_lib/res/values-tl/strings.xml b/android/google-play-services_lib/res/values-tl/strings.xml new file mode 100644 index 0000000..337f73c --- /dev/null +++ b/android/google-play-services_lib/res/values-tl/strings.xml @@ -0,0 +1,31 @@ + + + "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 Error sa Network" + "Kailangan ng koneksyon ng data upang makakonekta sa mga serbisyo ng Google Play." + "Di-wasto ang Account" + "Hindi umiiral ang tinukoy na account sa device na ito. Mangyaring pumili ng ibang account." + "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." + "Mukhang hindi tama ang petsa sa device. Pakisuri ang petsa sa device." + "I-update" + "Sign in" + "Mag-sign in sa Google" + + "May app na sumubok ng maling bersyon ng Mga Serbisyo ng Google Play." + "Kailangan ng application na na-enable ang Mga Serbisyo ng Google Play." + "Kailangan ng application na ma-install ang Serbisyo ng Google Play." + "Kailangan ng application na i-update ang Mga Serbisyo ng Google Play." + "Error sa mga serbisyo ng Google Play" + "Hiniling ng %1$s" + diff --git a/android/google-play-services_lib/res/values-tr/strings.xml b/android/google-play-services_lib/res/values-tr/strings.xml new file mode 100644 index 0000000..17e61e5 --- /dev/null +++ b/android/google-play-services_lib/res/values-tr/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Ağ Hatası" + "Google Play hizmetlerine bağlanmak için bir veri bağlantısı gerekiyor." + "Geçersiz Hesap" + "Belirtilen hesap bu cihazda mevcut değil. Lütfen farklı bir hesap seçin." + "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." + "Cihazdaki tarih doğru görünmüyor. Lütfen cihazda ayarlı tarihi kontrol edin." + "Güncelle" + "Oturum aç" + "Google\'da oturum aç" + + "Bir uygulama, Google Play Hizmetleri\'nin bozuk bir sürümünü kullanmayı denedi." + "Bir uygulama, Google Play Hizmetleri\'nin etkin olmasını gerektiriyor." + "Bir uygulama, Google Play Hizmetleri\'nin yüklenmesini gerektiriyor." + "Bir uygulama, Google Play Hizmetleri için bir güncelleme gerektiriyor." + "Google Play hizmetleri hatası" + "İstekte bulunan: %1$s" + diff --git a/android/google-play-services_lib/res/values-uk/strings.xml b/android/google-play-services_lib/res/values-uk/strings.xml new file mode 100644 index 0000000..d657aea --- /dev/null +++ b/android/google-play-services_lib/res/values-uk/strings.xml @@ -0,0 +1,31 @@ + + + "Установити 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 Play, від яких залежить робота деяких програм. Зверніться по допомогу до виробника." + "Схоже, на пристрої вказано неправильну дату. Перевірте її." + "Оновити" + "Увійти" + "Увійти в обл.запис Google" + + "Програма спробувала застосувати хибну версію Сервісів Google Play." + "Щоб програма працювала, потрібно ввімкнути Сервіси Google Play." + "Щоб програма працювала, потрібно встановити Сервіси Google Play." + "Щоб програма працювала, потрібно оновити Сервіси Google Play." + "Помилка Сервісів Google Play" + "Запит від програми %1$s" + diff --git a/android/google-play-services_lib/res/values-vi/strings.xml b/android/google-play-services_lib/res/values-vi/strings.xml new file mode 100644 index 0000000..a0434a0 --- /dev/null +++ b/android/google-play-services_lib/res/values-vi/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Lỗi mạng" + "Cần có kết nối dữ liệu để kết nối với các dịch vụ của Google Play." + "Tài khoản không hợp lệ" + "Tài khoản đã chỉ định không tồn tại trên thiết bị này. Vui lòng chọn một tài khoản khác." + "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ợ." + "Ngày trên thiết bị có vẻ không chính xác. Vui lòng kiểm tra ngày trên thiết bị." + "Cập nhật" + "Đăng nhập" + "Đăng nhập bằng Google" + + "Ứng dụng đã cố sử dụng phiên bản không đúng của Dịch vụ của Google Play." + "Ứng dụng yêu cầu Dịch vụ của Google Play phải được bật." + "Ứng dụng yêu cầu cài đặt Dịch vụ của Google Play." + "Ứng dụng yêu cầu cập nhật dành cho Dịch vụ Google Play." + "Lỗi dịch vụ của Google Play" + "Được yêu cầu bởi %1$s" + diff --git a/android/google-play-services_lib/res/values-zh-rCN/strings.xml b/android/google-play-services_lib/res/values-zh-rCN/strings.xml new file mode 100644 index 0000000..4339e3e --- /dev/null +++ b/android/google-play-services_lib/res/values-zh-rCN/strings.xml @@ -0,0 +1,31 @@ + + + "获取 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 Play 服务。请与设备制造商联系,以寻求帮助。" + "设备上的日期似乎不正确,请在设备上检查日期。" + "更新" + "登录" + "使用 Google 帐户登录" + + "某个应用尝试使用的 Google Play 服务版本有误。" + "某个应用要求启用 Google Play 服务。" + "某个应用要求安装 Google Play 服务。" + "某个应用要求更新 Google Play 服务。" + "Google Play 服务出错" + "由“%1$s”发出" + diff --git a/android/google-play-services_lib/res/values-zh-rHK/strings.xml b/android/google-play-services_lib/res/values-zh-rHK/strings.xml new file mode 100644 index 0000000..abe6cf1 --- /dev/null +++ b/android/google-play-services_lib/res/values-zh-rHK/strings.xml @@ -0,0 +1,31 @@ + + + "取得 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 Play 服務。如需協助,請與您的裝置製造商聯絡。" + "裝置上的日期看來不正確,請檢查裝置上的日期。" + "更新" + "登入" + "登入 Google" + + "應用程式嘗試使用錯誤版本的「Google Play 服務」。" + "必須啟用「Google Play 服務」,才能使用應用程式。" + "必須安裝「Google Play 服務」,才能使用應用程式。" + "必須更新「Google Play 服務」,才能使用應用程式。" + "Google Play 服務錯誤" + "「%1$s」提出要求" + diff --git a/android/google-play-services_lib/res/values-zh-rTW/strings.xml b/android/google-play-services_lib/res/values-zh-rTW/strings.xml new file mode 100644 index 0000000..a66018a --- /dev/null +++ b/android/google-play-services_lib/res/values-zh-rTW/strings.xml @@ -0,0 +1,31 @@ + + + "取得 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 Play 服務。如需協助,請與您的裝置製造商聯絡。" + "裝置上的日期似乎不正確,請檢查裝置上的日期。" + "更新" + "登入" + "使用 Google 帳戶登入" + + "應用程式嘗試使用的 Google Play 服務版本有誤。" + "應用程式需要啟用 Google Play 服務。" + "應用程式需要安裝 Google Play 服務。" + "應用程式需要更新 Google Play 服務。" + "Google Play 服務錯誤" + "提出要求的應用程式:%1$s" + diff --git a/android/google-play-services_lib/res/values-zu/strings.xml b/android/google-play-services_lib/res/values-zu/strings.xml new file mode 100644 index 0000000..572d9a5 --- /dev/null +++ b/android/google-play-services_lib/res/values-zu/strings.xml @@ -0,0 +1,31 @@ + + + "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." + "Iphutha lenethiwekhi" + "Kudingeka ukuxhumeka kwedatha ukuze kuxhunyekwe kumasevisi we-Google Play." + "I-Akhawunti engavumelekile" + "I-Akhawunti ecacisiwe ayikho kule divayisi. Sicela ukhethe i-akhawunti ehlukile." + "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." + "Idethi kudivayisi ibonakala ingalungile. Sicela uhlole idethi kudivayisi." + "Isibuyekezo" + "Ngena ngemvume" + "Ngena ngemvume nge-Google" + + "Uhlelo lokusebenza luzame ukusebenzisa inguqulo embi yamasevisi we-Google Play." + "Uhlelo lokusebenza ludinga amasevisi we-Google Play ukuze anikwe amandla." + "Uhlelo lokusebenza ludinga ukufakwa kwamasevisi we-Google Play." + "Uhlelo lokusebenza ludinga isibuyekezo samasevisi we-Google Play." + "Iphutha lamasevisi we-Google Play" + "Kucelwe yi-%1$s" + diff --git a/android/google-play-services_lib/res/values/ads_attrs.xml b/android/google-play-services_lib/res/values/ads_attrs.xml new file mode 100644 index 0000000..4e97a73 --- /dev/null +++ b/android/google-play-services_lib/res/values/ads_attrs.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + diff --git a/android/google-play-services_lib/res/values/colors.xml b/android/google-play-services_lib/res/values/colors.xml new file mode 100644 index 0000000..6b2740a --- /dev/null +++ b/android/google-play-services_lib/res/values/colors.xml @@ -0,0 +1,14 @@ + + + + @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/android/google-play-services_lib/res/values/maps_attrs.xml b/android/google-play-services_lib/res/values/maps_attrs.xml new file mode 100644 index 0000000..aaf65c5 --- /dev/null +++ b/android/google-play-services_lib/res/values/maps_attrs.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/google-play-services_lib/res/values/strings.xml b/android/google-play-services_lib/res/values/strings.xml new file mode 100644 index 0000000..24bd58b --- /dev/null +++ b/android/google-play-services_lib/res/values/strings.xml @@ -0,0 +1,111 @@ + + + + + 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. + + + Network Error + + + A data connection is required to connect to Google Play services. + + + Invalid Account + + + The specified account does not exist on this device. Please choose a different account. + + + 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. + + + The date on the device appears to be incorrect. Please check the date on the device. + + + Update + + + Sign in + + + Sign in with Google + + + + + + An application attempted to use a bad version of Google Play Services. + + + + An application requires Google Play Services to be enabled. + + + + An application requires installation of Google Play Services. + + + + An application requires an update for Google Play Services. + + + + Google Play services error + + + Requested by %1$s + + + + + + + + diff --git a/android/google-play-services_lib/res/values/version.xml b/android/google-play-services_lib/res/values/version.xml new file mode 100644 index 0000000..2693d3a --- /dev/null +++ b/android/google-play-services_lib/res/values/version.xml @@ -0,0 +1,4 @@ + + + 4242000 + diff --git a/android/google-play-services_lib/src/android/UnusedStub.java b/android/google-play-services_lib/src/android/UnusedStub.java new file mode 100644 index 0000000..d546b0b --- /dev/null +++ b/android/google-play-services_lib/src/android/UnusedStub.java @@ -0,0 +1,21 @@ +/* + * 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() { } +} diff --git a/android/libs/google-play-services.jar b/android/libs/google-play-services.jar new file mode 100644 index 0000000..c62821d Binary files /dev/null and b/android/libs/google-play-services.jar differ diff --git a/android/src/com/freshplanet/googleplaygames/AchievementsLoadListener.java b/android/src/com/freshplanet/googleplaygames/AchievementsLoadListener.java index 232ba30..9f5ed52 100644 --- a/android/src/com/freshplanet/googleplaygames/AchievementsLoadListener.java +++ b/android/src/com/freshplanet/googleplaygames/AchievementsLoadListener.java @@ -25,7 +25,7 @@ public void incrementAchievementWhenDataIsLoaded(Achievement achievement){ if(percent <= 0) return; - Extension.context.getGamesClient().incrementAchievement(achievementId,percent); +// Extension.context.getGamesClient().incrementAchievement(achievementId,percent); } @Override diff --git a/android/src/com/freshplanet/googleplaygames/ExtensionContext.java b/android/src/com/freshplanet/googleplaygames/ExtensionContext.java index 25ce1bd..6fd7cb7 100644 --- a/android/src/com/freshplanet/googleplaygames/ExtensionContext.java +++ b/android/src/com/freshplanet/googleplaygames/ExtensionContext.java @@ -18,24 +18,34 @@ package com.freshplanet.googleplaygames; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import android.app.Activity; import android.util.Log; import com.adobe.fre.FREContext; import com.adobe.fre.FREFunction; import com.freshplanet.googleplaygames.functions.AirGooglePlayGamesGetActivePlayerName; +import com.freshplanet.googleplaygames.functions.AirGooglePlayGamesGetLeaderboardFunction; import com.freshplanet.googleplaygames.functions.AirGooglePlayGamesReportAchievementFunction; import com.freshplanet.googleplaygames.functions.AirGooglePlayGamesReportScoreFunction; import com.freshplanet.googleplaygames.functions.AirGooglePlayGamesShowAchievementsFunction; import com.freshplanet.googleplaygames.functions.AirGooglePlayGamesSignInFunction; import com.freshplanet.googleplaygames.functions.AirGooglePlayGamesSignOutFunction; import com.freshplanet.googleplaygames.functions.AirGooglePlayStartAtLaunch; -import com.google.android.gms.games.GamesClient; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.games.Games; +import com.google.android.gms.games.Player; +import com.google.android.gms.games.leaderboard.LeaderboardScore; +import com.google.android.gms.games.leaderboard.LeaderboardScoreBuffer; +import com.google.android.gms.games.leaderboard.LeaderboardVariant; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class ExtensionContext extends FREContext implements GameHelper.GameHelperListener { @@ -59,7 +69,8 @@ public Map getFunctions() functionMap.put("reportScore", new AirGooglePlayGamesReportScoreFunction()); functionMap.put("showStandardAchievements", new AirGooglePlayGamesShowAchievementsFunction()); functionMap.put("getActivePlayerName", new AirGooglePlayGamesGetActivePlayerName()); - return functionMap; + functionMap.put("getLeaderboard", new AirGooglePlayGamesGetLeaderboardFunction()); + return functionMap; } public void dispatchEvent(String eventName) @@ -88,9 +99,9 @@ public GameHelper createHelperIfNeeded(Activity activity) if (mHelper == null) { logEvent("create helper"); - mHelper = new GameHelper(activity); + mHelper = new GameHelper(activity, GameHelper.CLIENT_GAMES | GameHelper.CLIENT_PLUS); logEvent("setup"); - mHelper.setup(this, GameHelper.CLIENT_GAMES); + mHelper.setup(this); } return mHelper; } @@ -120,8 +131,8 @@ public Boolean isSignedIn() return mHelper.isSignedIn(); } - public GamesClient getGamesClient() { - return mHelper.getGamesClient(); + public GoogleApiClient getApiClient() { + return mHelper.getApiClient(); } @@ -130,7 +141,7 @@ public void reportAchivements(String achievementId) if (!isSignedIn()) { return; } - getGamesClient().unlockAchievement(achievementId); + Games.Achievements.unlock(getApiClient(), achievementId); } @@ -138,15 +149,57 @@ public void reportAchivements(String achievementId, double percentDouble) { if (percentDouble > 0 && percentDouble <= 1){ int percent = (int) (percentDouble * 100); - getGamesClient().loadAchievements(new AchievementsLoadListener(achievementId, percent)); + Games.Achievements.increment(getApiClient(), achievementId, percent); } } public void reportScore(String leaderboardId, int highScore) { - getGamesClient().submitScore(leaderboardId, highScore); + Games.Leaderboards.submitScore(getApiClient(), leaderboardId, highScore); } + public void getLeaderboard( String leaderboardId ) { + + Games.Leaderboards.loadTopScores( + getApiClient(), + leaderboardId, + LeaderboardVariant.TIME_SPAN_ALL_TIME, + LeaderboardVariant.COLLECTION_SOCIAL, + 25, + true + ).setResultCallback(new ScoresLoadedListener()); + } + + public void onLeaderboardLoaded( LeaderboardScoreBuffer scores ) { + dispatchEvent( "ON_LEADERBOARD_LOADED", scoresToJsonString(scores) ); + } + private String scoresToJsonString( LeaderboardScoreBuffer scores ) { + + int scoresNb = scores.getCount(); + JSONArray jsonScores = new JSONArray(); + for ( int i = 0; i < scoresNb; ++i ) { + LeaderboardScore score = scores.get(i); + JSONObject jsonScore = new JSONObject(); + try { + jsonScore.put("value", score.getRawScore()); + jsonScore.put("rank", score.getRank()); + + Player player = score.getScoreHolder(); + JSONObject jsonPlayer = new JSONObject(); + jsonPlayer.put("id", player.getPlayerId()); + jsonPlayer.put("displayName", player.getDisplayName()); + jsonPlayer.put("picture", player.getIconImageUri()); + + jsonScore.put("player", jsonPlayer); + + jsonScores.put( jsonScore ); + + } catch( JSONException e ) {} + } + return jsonScores.toString(); + + } + @Override public void onSignInFailed() { logEvent("onSignInFailed"); diff --git a/android/src/com/freshplanet/googleplaygames/GameHelper.java b/android/src/com/freshplanet/googleplaygames/GameHelper.java index 17fd9f6..20b3c90 100644 --- a/android/src/com/freshplanet/googleplaygames/GameHelper.java +++ b/android/src/com/freshplanet/googleplaygames/GameHelper.java @@ -16,71 +16,76 @@ package com.freshplanet.googleplaygames; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.Vector; - import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.Intent; import android.content.IntentSender.SendIntentException; -import android.content.pm.PackageManager; -import android.content.pm.Signature; -import android.content.res.Resources; +import android.content.SharedPreferences; import android.os.Bundle; +import android.os.Handler; import android.util.Log; -import android.view.Gravity; -import com.google.android.gms.appstate.AppStateClient; +import com.google.android.gms.appstate.AppStateManager; import com.google.android.gms.common.ConnectionResult; -import com.google.android.gms.common.GooglePlayServicesClient; import com.google.android.gms.common.GooglePlayServicesUtil; -import com.google.android.gms.common.Scopes; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.games.Games; +import com.google.android.gms.games.Games.GamesOptions; import com.google.android.gms.games.GamesActivityResultCodes; -import com.google.android.gms.games.GamesClient; import com.google.android.gms.games.multiplayer.Invitation; -import com.google.android.gms.plus.PlusClient; +import com.google.android.gms.games.multiplayer.Multiplayer; +import com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch; +import com.google.android.gms.plus.Plus; +import com.google.android.gms.plus.Plus.PlusOptions; + +public class GameHelper implements GoogleApiClient.ConnectionCallbacks, + GoogleApiClient.OnConnectionFailedListener { -public class GameHelper implements GooglePlayServicesClient.ConnectionCallbacks, - GooglePlayServicesClient.OnConnectionFailedListener { + static final String TAG = "GameHelper"; /** Listener for sign-in success or failure events. */ public interface GameHelperListener { /** * Called when sign-in fails. As a result, a "Sign-In" button can be * shown to the user; when that button is clicked, call - * @link{GamesHelper#beginUserInitiatedSignIn}. Note that not all calls to this - * method mean an error; it may be a result of the fact that automatic - * sign-in could not proceed because user interaction was required - * (consent dialogs). So implementations of this method should NOT - * display an error message unless a call to @link{GamesHelper#hasSignInError} - * indicates that an error indeed occurred. + * + * @link{GamesHelper#beginUserInitiatedSignIn . Note that not all calls + * to this method mean an + * error; it may be a result + * of the fact that automatic + * sign-in could not proceed + * because user interaction + * was required (consent + * dialogs). So + * implementations of this + * method should NOT display + * an error message unless a + * call to @link{GamesHelper# + * hasSignInError} indicates + * that an error indeed + * occurred. */ void onSignInFailed(); /** Called when sign-in succeeds. */ void onSignInSucceeded(); } + + // configuration done? + private boolean mSetupDone = false; - // States we can be in - public static final int STATE_UNCONFIGURED = 0; - public static final int STATE_DISCONNECTED = 1; - public static final int STATE_CONNECTING = 2; - public static final int STATE_CONNECTED = 3; - - // State names (for debug logging, etc) - public static final String[] STATE_NAMES = { - "UNCONFIGURED", "DISCONNECTED", "CONNECTING", "CONNECTED" - }; - - // State we are in right now - int mState = STATE_UNCONFIGURED; + // are we currently connecting? + private boolean mConnecting = false; // Are we expecting the result of a resolution flow? boolean mExpectingResolution = false; + // was the sign-in flow cancelled when we tried it? + // if true, we know not to try again automatically. + boolean mSignInCancelled = false; + /** * The Activity we are bound to. We need to keep a reference to the Activity * because some games methods require an Activity (a Context won't do). We @@ -88,8 +93,8 @@ public interface GameHelperListener { */ Activity mActivity = null; - // OAuth scopes required for the clients. Initialized in setup(). - String mScopes[]; + // app context + Context mAppContext = null; // Request code we use when invoking other Activities to complete the // sign-in flow. @@ -98,29 +103,32 @@ public interface GameHelperListener { // Request code when invoking Activities whose result we don't care about. final static int RC_UNUSED = 9002; - // Client objects we manage. If a given client is not enabled, it is null. - GamesClient mGamesClient = null; - PlusClient mPlusClient = null; - AppStateClient mAppStateClient = null; + // the Google API client builder we will use to create GoogleApiClient + GoogleApiClient.Builder mGoogleApiClientBuilder = null; - // What clients we manage (OR-able values, can be combined as flags) + // Api options to use when adding each API, null for none + GamesOptions mGamesApiOptions = GamesOptions.builder().build(); + PlusOptions mPlusApiOptions = null; + + // Google API client object we manage. + GoogleApiClient mGoogleApiClient = null; + + // Client request flags public final static int CLIENT_NONE = 0x00; public final static int CLIENT_GAMES = 0x01; public final static int CLIENT_PLUS = 0x02; public final static int CLIENT_APPSTATE = 0x04; - public final static int CLIENT_ALL = CLIENT_GAMES | CLIENT_PLUS | CLIENT_APPSTATE; + public final static int CLIENT_SNAPSHOT = 0x08; + public final static int CLIENT_ALL = CLIENT_GAMES | CLIENT_PLUS + | CLIENT_APPSTATE | CLIENT_SNAPSHOT; // What clients were requested? (bit flags) int mRequestedClients = CLIENT_NONE; - // What clients are currently connected? (bit flags) - int mConnectedClients = CLIENT_NONE; - - // What client are we currently connecting? - int mClientCurrentlyConnecting = CLIENT_NONE; - - // Whether to automatically try to sign in on onStart(). - boolean mAutoSignIn = true; + // Whether to automatically try to sign in on onStart(). We only set this + // to true when the sign-in process fails or the user explicitly signs out. + // We set it back to false when the user initiates the sign in process. + boolean mConnectOnStart = true; /* * Whether user has specifically requested that the sign-in process begin. @@ -136,198 +144,187 @@ public interface GameHelperListener { // The error that happened during sign-in. SignInFailureReason mSignInFailureReason = null; + // Should we show error dialog boxes? + boolean mShowErrorDialogs = true; + // Print debug logs? boolean mDebugLog = true; - String mDebugTag = "GameHelper"; + + Handler mHandler; + + /* + * If we got an invitation when we connected to the games client, it's here. + * Otherwise, it's null. + */ + Invitation mInvitation; /* - * If we got an invitation id when we connected to the games client, it's + * If we got turn-based match when we connected to the games client, it's * here. Otherwise, it's null. */ - String mInvitationId; + TurnBasedMatch mTurnBasedMatch; // Listener GameHelperListener mListener = null; + // Should we start the flow to sign the user in automatically on startup? If + // so, up to + // how many times in the life of the application? + static final int DEFAULT_MAX_SIGN_IN_ATTEMPTS = 3; + int mMaxAutoSignInAttempts = DEFAULT_MAX_SIGN_IN_ATTEMPTS; + /** * Construct a GameHelper object, initially tied to the given Activity. * After constructing this object, call @link{setup} from the onCreate() * method of your Activity. + * + * @param clientsToUse + * the API clients to use (a combination of the CLIENT_* flags, + * or CLIENT_ALL to mean all clients). */ - public GameHelper(Activity activity) { + public GameHelper(Activity activity, int clientsToUse) { mActivity = activity; + mAppContext = activity.getApplicationContext(); + mRequestedClients = clientsToUse; + mHandler = new Handler(); } - static private final int TYPE_DEVELOPER_ERROR = 1001; - static private final int TYPE_GAMEHELPER_BUG = 1002; - boolean checkState(int type, String operation, String warning, int... expectedStates) { - for (int expectedState : expectedStates) { - if (mState == expectedState) { - return true; - } - } - StringBuilder sb = new StringBuilder(); - if (type == TYPE_DEVELOPER_ERROR) { - sb.append("GameHelper: you attempted an operation at an invalid. "); - } else { - sb.append("GameHelper: bug detected. Please report it at our bug tracker "); - sb.append("https://github.com/playgameservices/android-samples/issues. "); - sb.append("Please include the last couple hundred lines of logcat output "); - sb.append("and describe the operation that caused this. "); - } - sb.append("Explanation: ").append(warning); - sb.append("Operation: ").append(operation).append(". "); - sb.append("State: ").append(STATE_NAMES[mState]).append(". "); - if (expectedStates.length == 1) { - sb.append("Expected state: ").append(STATE_NAMES[expectedStates[0]]).append("."); - } else { - sb.append("Expected states:"); - for (int expectedState : expectedStates) { - sb.append(" " ).append(STATE_NAMES[expectedState]); - } - sb.append("."); - } - - logWarn(sb.toString()); - return false; + /** + * Sets the maximum number of automatic sign-in attempts to be made on + * application startup. This maximum is over the lifetime of the application + * (it is stored in a SharedPreferences file). So, for example, if you + * specify 2, then it means that the user will be prompted to sign in on app + * startup the first time and, if they cancel, a second time the next time + * the app starts, and, if they cancel that one, never again. Set to 0 if + * you do not want the user to be prompted to sign in on application + * startup. + */ + public void setMaxAutoSignInAttempts(int max) { + mMaxAutoSignInAttempts = max; } void assertConfigured(String operation) { - if (mState == STATE_UNCONFIGURED) { - String error = "GameHelper error: Operation attempted without setup: " + operation + - ". The setup() method must be called before attempting any other operation."; + if (!mSetupDone) { + String error = "GameHelper error: Operation attempted without setup: " + + operation + + ". The setup() method must be called before attempting any other operation."; + logError(error); + throw new IllegalStateException(error); + } + } + + private void doApiOptionsPreCheck() { + if (mGoogleApiClientBuilder != null) { + String error = "GameHelper: you cannot call set*ApiOptions after the client " + + "builder has been created. Call it before calling createApiClientBuilder() " + + "or setup()."; logError(error); throw new IllegalStateException(error); } } /** - * Same as calling @link{setup(GameHelperListener, int)} requesting only the - * CLIENT_GAMES client. + * Sets the options to pass when setting up the Games API. Call before + * setup(). */ - public void setup(GameHelperListener listener) { - setup(listener, CLIENT_GAMES); + public void setGamesApiOptions(GamesOptions options) { + doApiOptionsPreCheck(); + mGamesApiOptions = options; } /** - * Performs setup on this GameHelper object. Call this from the onCreate() - * method of your Activity. This will create the clients and do a few other - * initialization tasks. Next, call @link{#onStart} from the onStart() - * method of your Activity. - * - * @param listener The listener to be notified of sign-in events. - * @param clientsToUse The clients to use. Use a combination of - * CLIENT_GAMES, CLIENT_PLUS and CLIENT_APPSTATE, or CLIENT_ALL - * to request all clients. - * @param additionalScopes Any scopes to be used that are outside of the ones defined - * in the Scopes class. - * I.E. for YouTube uploads one would add - * "https://www.googleapis.com/auth/youtube.upload" + * Sets the options to pass when setting up the Plus API. Call before + * setup(). + */ + public void setPlusApiOptions(PlusOptions options) { + doApiOptionsPreCheck(); + mPlusApiOptions = options; + } + + /** + * Creates a GoogleApiClient.Builder for use with @link{#setup}. Normally, + * you do not have to do this; use this method only if you need to make + * nonstandard setup (e.g. adding extra scopes for other APIs) on the + * GoogleApiClient.Builder before calling @link{#setup}. */ - public void setup(GameHelperListener listener, int clientsToUse, String ... additionalScopes) { - if (mState != STATE_UNCONFIGURED) { - String error = "GameHelper: you called GameHelper.setup() twice. You can only call " + - "it once."; + public GoogleApiClient.Builder createApiClientBuilder() { + if (mSetupDone) { + String error = "GameHelper: you called GameHelper.createApiClientBuilder() after " + + "calling setup. You can only get a client builder BEFORE performing setup."; logError(error); throw new IllegalStateException(error); } - mListener = listener; - mRequestedClients = clientsToUse; - - debugLog("Setup: requested clients: " + mRequestedClients); - - Vector scopesVector = new Vector(); - if (0 != (clientsToUse & CLIENT_GAMES)) { - scopesVector.add(Scopes.GAMES); - } - if (0 != (clientsToUse & CLIENT_PLUS)) { - scopesVector.add(Scopes.PLUS_LOGIN); - } - if (0 != (clientsToUse & CLIENT_APPSTATE)) { - scopesVector.add(Scopes.APP_STATE); - } - - if (null != additionalScopes) { - for (String scope : additionalScopes) { - scopesVector.add(scope); - } - } - - mScopes = new String[scopesVector.size()]; - scopesVector.copyInto(mScopes); - debugLog("setup: scopes:"); - for (String scope : mScopes) { - debugLog(" - " + scope); - } + GoogleApiClient.Builder builder = new GoogleApiClient.Builder( + mActivity, this, this); - if (0 != (clientsToUse & CLIENT_GAMES)) { - debugLog("setup: creating GamesClient"); - mGamesClient = new GamesClient.Builder(getContext(), this, this) - .setGravityForPopups(Gravity.TOP | Gravity.CENTER_HORIZONTAL) - .setScopes(mScopes) - .create(); + if (0 != (mRequestedClients & CLIENT_GAMES)) { + builder.addApi(Games.API, mGamesApiOptions); + builder.addScope(Games.SCOPE_GAMES); } - if (0 != (clientsToUse & CLIENT_PLUS)) { - debugLog("setup: creating GamesPlusClient"); - mPlusClient = new PlusClient.Builder(getContext(), this, this) - .setScopes(mScopes) - .build(); + if (0 != (mRequestedClients & CLIENT_PLUS)) { + builder.addApi(Plus.API); + builder.addScope(Plus.SCOPE_PLUS_LOGIN); } - if (0 != (clientsToUse & CLIENT_APPSTATE)) { - debugLog("setup: creating AppStateClient"); - mAppStateClient = new AppStateClient.Builder(getContext(), this, this) - .setScopes(mScopes) - .create(); + if (0 != (mRequestedClients & CLIENT_APPSTATE)) { + builder.addApi(AppStateManager.API); + builder.addScope(AppStateManager.SCOPE_APP_STATE); } - setState(STATE_DISCONNECTED); - } - void setState(int newState) { - String oldStateName = STATE_NAMES[mState]; - String newStateName = STATE_NAMES[newState]; - mState = newState; - debugLog("State change " + oldStateName + " -> " + newStateName); + mGoogleApiClientBuilder = builder; + return builder; } /** - * Returns the GamesClient object. In order to call this method, you must have - * called @link{setup} with a set of clients that includes CLIENT_GAMES. + * Performs setup on this GameHelper object. Call this from the onCreate() + * method of your Activity. This will create the clients and do a few other + * initialization tasks. Next, call @link{#onStart} from the onStart() + * method of your Activity. + * + * @param listener + * The listener to be notified of sign-in events. */ - public GamesClient getGamesClient() { - if (mGamesClient == null) { - throw new IllegalStateException("No GamesClient. Did you request it at setup?"); + public void setup(GameHelperListener listener) { + if (mSetupDone) { + String error = "GameHelper: you cannot call GameHelper.setup() more than once!"; + logError(error); + throw new IllegalStateException(error); } - return mGamesClient; - } + mListener = listener; + debugLog("Setup: requested clients: " + mRequestedClients); - /** - * Returns the AppStateClient object. In order to call this method, you must have - * called @link{#setup} with a set of clients that includes CLIENT_APPSTATE. - */ - public AppStateClient getAppStateClient() { - if (mAppStateClient == null) { - throw new IllegalStateException("No AppStateClient. Did you request it at setup?"); + if (mGoogleApiClientBuilder == null) { + // we don't have a builder yet, so create one + createApiClientBuilder(); } - return mAppStateClient; + + mGoogleApiClient = mGoogleApiClientBuilder.build(); + mGoogleApiClientBuilder = null; + mSetupDone = true; } /** - * Returns the PlusClient object. In order to call this method, you must have - * called @link{#setup} with a set of clients that includes CLIENT_PLUS. + * Returns the GoogleApiClient object. In order to call this method, you + * must have called @link{setup}. */ - public PlusClient getPlusClient() { - if (mPlusClient == null) { - throw new IllegalStateException("No PlusClient. Did you request it at setup?"); + public GoogleApiClient getApiClient() { + if (mGoogleApiClient == null) { + throw new IllegalStateException( + "No GoogleApiClient. Did you call setup()?"); } - return mPlusClient; + return mGoogleApiClient; } /** Returns whether or not the user is signed in. */ public boolean isSignedIn() { - return mState == STATE_CONNECTED; + return mGoogleApiClient != null && mGoogleApiClient.isConnected(); + } + + /** Returns whether or not we are currently connecting */ + public boolean isConnecting() { + return mConnecting; } /** @@ -346,203 +343,173 @@ public SignInFailureReason getSignInError() { return mSignInFailureReason; } - public void onStart(Activity act, boolean tryAutoSignIn) { - mAutoSignIn = tryAutoSignIn; - onStart(act); + // Set whether to show error dialogs or not. + public void setShowErrorDialogs(boolean show) { + mShowErrorDialogs = show; } /** Call this method from your Activity's onStart(). */ - public void onStart(Activity act) { + public void onStart(Activity act, boolean connectOnStart) { mActivity = act; + mAppContext = act.getApplicationContext(); - debugLog("onStart, state = " + STATE_NAMES[mState]); + mConnectOnStart = connectOnStart; + + debugLog("onStart"); assertConfigured("onStart"); - switch (mState) { - case STATE_DISCONNECTED: - // we are not connected, so attempt to connect - if (mAutoSignIn) { - debugLog("onStart: Now connecting clients."); - startConnections(); - } else { - debugLog("onStart: Not connecting (user specifically signed out)."); - } - break; - case STATE_CONNECTING: - // connection process is in progress; no action required - debugLog("onStart: connection process in progress, no action taken."); - break; - case STATE_CONNECTED: - // already connected (for some strange reason). No complaints :-) - debugLog("onStart: already connected (unusual, but ok)."); - break; - default: - String msg = "onStart: BUG: unexpected state " + STATE_NAMES[mState]; - logError(msg); - throw new IllegalStateException(msg); + if (mConnectOnStart) { + if (mGoogleApiClient.isConnected()) { + Log.w(TAG, + "GameHelper: client was already connected on onStart()"); + } else { + debugLog("Connecting client."); + mConnecting = true; + mGoogleApiClient.connect(); + } + } else { + debugLog("Not attempting to connect becase mConnectOnStart=false"); + debugLog("Instead, reporting a sign-in failure."); +// mHandler.postDelayed( () -> { notifyListener(false);}, 1000 ); } } /** Call this method from your Activity's onStop(). */ public void onStop() { - debugLog("onStop, state = " + STATE_NAMES[mState]); + debugLog("onStop"); assertConfigured("onStop"); - switch (mState) { - case STATE_CONNECTED: - case STATE_CONNECTING: - // kill connections - debugLog("onStop: Killing connections"); - killConnections(); - break; - case STATE_DISCONNECTED: - debugLog("onStop: not connected, so no action taken."); - break; - default: - String msg = "onStop: BUG: unexpected state " + STATE_NAMES[mState]; - logError(msg); - throw new IllegalStateException(msg); + if (mGoogleApiClient.isConnected()) { + debugLog("Disconnecting client due to onStop"); + mGoogleApiClient.disconnect(); + } else { + debugLog("Client already disconnected when we got onStop."); } + mConnecting = false; + mExpectingResolution = false; // let go of the Activity reference mActivity = null; } - /** Convenience method to show an alert dialog. */ - public void showAlert(String title, String message) { - (new AlertDialog.Builder(getContext())).setTitle(title).setMessage(message) - .setNeutralButton(android.R.string.ok, null).create().show(); - } - - /** Convenience method to show an alert dialog. */ - public void showAlert(String message) { - (new AlertDialog.Builder(getContext())).setMessage(message) - .setNeutralButton(android.R.string.ok, null).create().show(); - } - /** * Returns the invitation ID received through an invitation notification. * This should be called from your GameHelperListener's * - * @link{GameHelperListener#onSignInSucceeded} method, to check if there's an - * invitation available. In that case, accept the invitation. + * @link{GameHelperListener#onSignInSucceeded method, to check if there's an + * invitation available. In that + * case, accept the invitation. * @return The id of the invitation, or null if none was received. */ public String getInvitationId() { - if (!checkState(TYPE_DEVELOPER_ERROR, "getInvitationId", - "Invitation ID is only available when connected " + - "(after getting the onSignInSucceeded callback).", STATE_CONNECTED)) { - return null; - } - return mInvitationId; - } - - /** Enables debug logging */ - public void enableDebugLog(boolean enabled, String tag) { - mDebugLog = enabled; - mDebugTag = tag; - if (enabled) { - debugLog("Debug log enabled, tag: " + tag); + if (!mGoogleApiClient.isConnected()) { + Log.w(TAG, + "Warning: getInvitationId() should only be called when signed in, " + + "that is, after getting onSignInSuceeded()"); } + return mInvitation == null ? null : mInvitation.getInvitationId(); } /** - * Returns the current requested scopes. This is not valid until setup() has - * been called. + * Returns the invitation received through an invitation notification. This + * should be called from your GameHelperListener's * - * @return the requested scopes, including the oauth2: prefix + * @link{GameHelperListener#onSignInSucceeded method, to check if there's an + * invitation available. In that + * case, accept the invitation. + * @return The invitation, or null if none was received. */ - public String getScopes() { - StringBuilder scopeStringBuilder = new StringBuilder(); - if (null != mScopes) { - for (String scope: mScopes) { - addToScope(scopeStringBuilder, scope); - } + public Invitation getInvitation() { + if (!mGoogleApiClient.isConnected()) { + Log.w(TAG, + "Warning: getInvitation() should only be called when signed in, " + + "that is, after getting onSignInSuceeded()"); } - return scopeStringBuilder.toString(); + return mInvitation; + } + + public boolean hasInvitation() { + return mInvitation != null; + } + + public boolean hasTurnBasedMatch() { + return mTurnBasedMatch != null; + } + + public boolean hasRequests() { + return false; + } + + public void clearInvitation() { + mInvitation = null; + } + + public void clearTurnBasedMatch() { + mTurnBasedMatch = null; + } + + public void clearRequests() { } /** - * Returns an array of the current requested scopes. This is not valid until - * setup() has been called + * Returns the tbmp match received through an invitation notification. This + * should be called from your GameHelperListener's * - * @return the requested scopes, including the oauth2: prefix + * @link{GameHelperListener#onSignInSucceeded method, to check if there's a + * match available. + * @return The match, or null if none was received. */ - public String[] getScopesArray() { - return mScopes; + public TurnBasedMatch getTurnBasedMatch() { + if (!mGoogleApiClient.isConnected()) { + Log.w(TAG, + "Warning: getTurnBasedMatch() should only be called when signed in, " + + "that is, after getting onSignInSuceeded()"); + } + return mTurnBasedMatch; + } + + /** Enables debug logging */ + public void enableDebugLog(boolean enabled) { + mDebugLog = enabled; + if (enabled) { + debugLog("Debug log enabled."); + } + } + + @Deprecated + public void enableDebugLog(boolean enabled, String tag) { + Log.w(TAG, "GameHelper.enableDebugLog(boolean,String) is deprecated. " + + "Use GameHelper.enableDebugLog(boolean)"); + enableDebugLog(enabled); } /** Sign out and disconnect from the APIs. */ public void signOut() { - if (mState == STATE_DISCONNECTED) { + if (!mGoogleApiClient.isConnected()) { // nothing to do - debugLog("signOut: state was already DISCONNECTED, ignoring."); + debugLog("signOut: was already disconnected, ignoring."); return; } - // for the PlusClient, "signing out" means clearing the default account and + // for Plus, "signing out" means clearing the default account and // then disconnecting - if (mPlusClient != null && mPlusClient.isConnected()) { + if (0 != (mRequestedClients & CLIENT_PLUS)) { debugLog("Clearing default account on PlusClient."); - mPlusClient.clearDefaultAccount(); + Plus.AccountApi.clearDefaultAccount(mGoogleApiClient); } - // For the games client, signing out means calling signOut and disconnecting - if (mGamesClient != null && mGamesClient.isConnected()) { - debugLog("Signing out from GamesClient."); - mGamesClient.signOut(); + // For the games client, signing out means calling signOut and + // disconnecting + if (0 != (mRequestedClients & CLIENT_GAMES)) { + debugLog("Signing out from the Google API Client."); + Games.signOut(mGoogleApiClient); } // Ready to disconnect - debugLog("Proceeding with disconnection."); - killConnections(); - } - - void killConnections() { - if (!checkState(TYPE_GAMEHELPER_BUG, "killConnections", "killConnections() should only " + - "get called while connected or connecting.", STATE_CONNECTED, STATE_CONNECTING)) { - return; - } - debugLog("killConnections: killing connections."); - - mConnectionResult = null; - mSignInFailureReason = null; - - if (mGamesClient != null && mGamesClient.isConnected()) { - debugLog("Disconnecting GamesClient."); - mGamesClient.disconnect(); - } - if (mPlusClient != null && mPlusClient.isConnected()) { - debugLog("Disconnecting PlusClient."); - mPlusClient.disconnect(); - } - if (mAppStateClient != null && mAppStateClient.isConnected()) { - debugLog("Disconnecting AppStateClient."); - mAppStateClient.disconnect(); - } - mConnectedClients = CLIENT_NONE; - debugLog("killConnections: all clients disconnected."); - setState(STATE_DISCONNECTED); - } - - static String activityResponseCodeToString(int respCode) { - switch (respCode) { - case Activity.RESULT_OK: - return "RESULT_OK"; - case Activity.RESULT_CANCELED: - return "RESULT_CANCELED"; - case GamesActivityResultCodes.RESULT_APP_MISCONFIGURED: - return "RESULT_APP_MISCONFIGURED"; - case GamesActivityResultCodes.RESULT_LEFT_ROOM: - return "RESULT_LEFT_ROOM"; - case GamesActivityResultCodes.RESULT_LICENSE_FAILED: - return "RESULT_LICENSE_FAILED"; - case GamesActivityResultCodes.RESULT_RECONNECT_REQUIRED: - return "RESULT_RECONNECT_REQUIRED"; - case GamesActivityResultCodes.RESULT_SIGN_IN_FAILED: - return "SIGN_IN_FAILED"; - default: - return String.valueOf(respCode); - } + debugLog("Disconnecting client."); + mConnectOnStart = false; + mConnecting = false; + mConnectionResult = null; + mGoogleApiClient.disconnect(); } /** @@ -550,10 +517,12 @@ static String activityResponseCodeToString(int respCode) { * onActivityResult callback. If the activity result pertains to the sign-in * process, processes it appropriately. */ - public void onActivityResult(int requestCode, int responseCode, Intent intent) { - debugLog("onActivityResult: req=" + (requestCode == RC_RESOLVE ? "RC_RESOLVE" : - String.valueOf(requestCode)) + ", resp=" + - activityResponseCodeToString(responseCode)); + public void onActivityResult(int requestCode, int responseCode, + Intent intent) { + debugLog("onActivityResult: req=" + + (requestCode == RC_RESOLVE ? "RC_RESOLVE" : String + .valueOf(requestCode)) + ", resp=" + + GameHelperUtils.activityResponseCodeToString(responseCode)); if (requestCode != RC_RESOLVE) { debugLog("onActivityResult: request code not meant for us. Ignoring."); return; @@ -562,9 +531,8 @@ public void onActivityResult(int requestCode, int responseCode, Intent intent) { // no longer expecting a resolution mExpectingResolution = false; - if (mState != STATE_CONNECTING) { - debugLog("onActivityResult: ignoring because state isn't STATE_CONNECTING (" + - "it's " + STATE_NAMES[mState] + ")"); + if (!mConnecting) { + debugLog("onActivityResult: ignoring because we are not connecting."); return; } @@ -573,30 +541,44 @@ public void onActivityResult(int requestCode, int responseCode, Intent intent) { if (responseCode == Activity.RESULT_OK) { // Ready to try to connect again. debugLog("onAR: Resolution was RESULT_OK, so connecting current client again."); - connectCurrentClient(); + connect(); } else if (responseCode == GamesActivityResultCodes.RESULT_RECONNECT_REQUIRED) { debugLog("onAR: Resolution was RECONNECT_REQUIRED, so reconnecting."); - connectCurrentClient(); + connect(); } else if (responseCode == Activity.RESULT_CANCELED) { // User cancelled. debugLog("onAR: Got a cancellation result, so disconnecting."); - mAutoSignIn = false; + mSignInCancelled = true; + mConnectOnStart = false; mUserInitiatedSignIn = false; mSignInFailureReason = null; // cancelling is not a failure! - killConnections(); + mConnecting = false; + mGoogleApiClient.disconnect(); + + // increment # of cancellations + int prevCancellations = getSignInCancellations(); + int newCancellations = incrementSignInCancellations(); + debugLog("onAR: # of cancellations " + prevCancellations + " --> " + + newCancellations + ", max " + mMaxAutoSignInAttempts); + notifyListener(false); } else { // Whatever the problem we were trying to solve, it was not // solved. So give up and show an error message. - debugLog("onAR: responseCode=" + activityResponseCodeToString(responseCode) + - ", so giving up."); - giveUp(new SignInFailureReason(mConnectionResult.getErrorCode(), responseCode)); + debugLog("onAR: responseCode=" + + GameHelperUtils + .activityResponseCodeToString(responseCode) + + ", so giving up."); + giveUp(new SignInFailureReason(mConnectionResult.getErrorCode(), + responseCode)); } } void notifyListener(boolean success) { - debugLog("Notifying LISTENER of sign-in " + (success ? "SUCCESS" : - mSignInFailureReason != null ? "FAILURE (error)" : "FAILURE (no error)")); + debugLog("Notifying LISTENER of sign-in " + + (success ? "SUCCESS" + : mSignInFailureReason != null ? "FAILURE ("+ mSignInFailureReason.toString() +")" + : "FAILURE (no error)")); if (mListener != null) { if (success) { mListener.onSignInSucceeded(); @@ -613,40 +595,32 @@ void notifyListener(boolean success) { * onSignInSucceeded() or onSignInFailed() methods will be called. */ public void beginUserInitiatedSignIn() { - if (mState == STATE_CONNECTED) { + debugLog("beginUserInitiatedSignIn: resetting attempt count."); + resetSignInCancellations(); + mSignInCancelled = false; + mConnectOnStart = true; + + if (mGoogleApiClient.isConnected()) { // nothing to do - logWarn("beginUserInitiatedSignIn() called when already connected. " + - "Calling listener directly to notify of success."); + logWarn("beginUserInitiatedSignIn() called when already connected. " + + "Calling listener directly to notify of success."); notifyListener(true); return; - } else if (mState == STATE_CONNECTING) { - logWarn("beginUserInitiatedSignIn() called when already connecting. " + - "Be patient! You can only call this method after you get an " + - "onSignInSucceeded() or onSignInFailed() callback. Suggestion: disable " + - "the sign-in button on startup and also when it's clicked, and re-enable " + - "when you get the callback."); - // ignore call (listener will get a callback when the connection process finishes) + } else if (mConnecting) { + logWarn("beginUserInitiatedSignIn() called when already connecting. " + + "Be patient! You can only call this method after you get an " + + "onSignInSucceeded() or onSignInFailed() callback. Suggestion: disable " + + "the sign-in button on startup and also when it's clicked, and re-enable " + + "when you get the callback."); + // ignore call (listener will get a callback when the connection + // process finishes) return; } debugLog("Starting USER-INITIATED sign-in flow."); - // sign in automatically on onStart() - mAutoSignIn = true; - - // Is Google Play services available? - int result = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getContext()); - debugLog("isGooglePlayServicesAvailable returned " + result); - if (result != ConnectionResult.SUCCESS) { - // Google Play services is not available. - debugLog("Google Play services not available. Show error dialog."); - mSignInFailureReason = new SignInFailureReason(result, 0); - showFailureDialog(); - notifyListener(false); - return; - } - - // indicate that user is actively trying to sign in (so we know to resolve + // indicate that user is actively trying to sign in (so we know to + // resolve // connection problems by showing dialogs) mUserInitiatedSignIn = true; @@ -654,192 +628,111 @@ public void beginUserInitiatedSignIn() { // We have a pending connection result from a previous failure, so // start with that. debugLog("beginUserInitiatedSignIn: continuing pending sign-in flow."); - setState(STATE_CONNECTING); + mConnecting = true; resolveConnectionResult(); } else { // We don't have a pending connection result, so start anew. debugLog("beginUserInitiatedSignIn: starting new sign-in flow."); - startConnections(); + mConnecting = true; + connect(); } } - Context getContext() { - return mActivity; - } - - void addToScope(StringBuilder scopeStringBuilder, String scope) { - if (scopeStringBuilder.length() == 0) { - scopeStringBuilder.append("oauth2:"); - } else { - scopeStringBuilder.append(" "); - } - scopeStringBuilder.append(scope); - } - - void startConnections() { - if (!checkState(TYPE_GAMEHELPER_BUG, "startConnections", "startConnections should " + - "only get called when disconnected.", STATE_DISCONNECTED)) { + void connect() { + if (mGoogleApiClient.isConnected()) { + debugLog("Already connected."); return; } - debugLog("Starting connections."); - setState(STATE_CONNECTING); - mInvitationId = null; - connectNextClient(); - } - - void connectNextClient() { - // do we already have all the clients we need? - debugLog("connectNextClient: requested clients: " + mRequestedClients + - ", connected clients: " + mConnectedClients); - - // failsafe, in case we somehow lost track of what clients are connected or not. - if (mGamesClient != null && mGamesClient.isConnected() && - (0 == (mConnectedClients & CLIENT_GAMES))) { - logWarn("GamesClient was already connected. Fixing."); - mConnectedClients |= CLIENT_GAMES; - } - if (mPlusClient != null && mPlusClient.isConnected() && - (0 == (mConnectedClients & CLIENT_PLUS))) { - logWarn("PlusClient was already connected. Fixing."); - mConnectedClients |= CLIENT_PLUS; - } - if (mAppStateClient != null && mAppStateClient.isConnected() && - (0 == (mConnectedClients & CLIENT_APPSTATE))) { - logWarn("AppStateClient was already connected. Fixing"); - mConnectedClients |= CLIENT_APPSTATE; - } - - int pendingClients = mRequestedClients & ~mConnectedClients; - debugLog("Pending clients: " + pendingClients); - - if (pendingClients == 0) { - debugLog("All clients now connected. Sign-in successful!"); - succeedSignIn(); - return; - } - - // which client should be the next one to connect? - if (mGamesClient != null && (0 != (pendingClients & CLIENT_GAMES))) { - debugLog("Connecting GamesClient."); - mClientCurrentlyConnecting = CLIENT_GAMES; - } else if (mPlusClient != null && (0 != (pendingClients & CLIENT_PLUS))) { - debugLog("Connecting PlusClient."); - mClientCurrentlyConnecting = CLIENT_PLUS; - } else if (mAppStateClient != null && (0 != (pendingClients & CLIENT_APPSTATE))) { - debugLog("Connecting AppStateClient."); - mClientCurrentlyConnecting = CLIENT_APPSTATE; - } else { - // hmmm, getting here would be a bug. - throw new AssertionError("Not all clients connected, yet no one is next. R=" - + mRequestedClients + ", C=" + mConnectedClients); - } - - connectCurrentClient(); - } - - void connectCurrentClient() { - if (mState == STATE_DISCONNECTED) { - // we got disconnected during the connection process, so abort - logWarn("GameHelper got disconnected during connection process. Aborting."); - return; - } - if (!checkState(TYPE_GAMEHELPER_BUG, "connectCurrentClient", "connectCurrentClient " + - "should only get called when connecting.", STATE_CONNECTING)) { - return; - } - - switch (mClientCurrentlyConnecting) { - case CLIENT_GAMES: - mGamesClient.connect(); - break; - case CLIENT_APPSTATE: - mAppStateClient.connect(); - break; - case CLIENT_PLUS: - mPlusClient.connect(); - break; - } + debugLog("Starting connection."); + mConnectionResult = null; + mConnecting = true; + mInvitation = null; + mTurnBasedMatch = null; + mGoogleApiClient.connect(); } /** - * Disconnects the indicated clients, then connects them again. - * @param whatClients Indicates which clients to reconnect. + * Disconnects the API client, then connects again. */ - public void reconnectClients(int whatClients) { - checkState(TYPE_DEVELOPER_ERROR, "reconnectClients", "reconnectClients should " + - "only be called when connected. Proceeding anyway.", STATE_CONNECTED); - boolean actuallyReconnecting = false; - - if ((whatClients & CLIENT_GAMES) != 0 && mGamesClient != null - && mGamesClient.isConnected()) { - debugLog("Reconnecting GamesClient."); - actuallyReconnecting = true; - mConnectedClients &= ~CLIENT_GAMES; - mGamesClient.reconnect(); - } - if ((whatClients & CLIENT_APPSTATE) != 0 && mAppStateClient != null - && mAppStateClient.isConnected()) { - debugLog("Reconnecting AppStateClient."); - actuallyReconnecting = true; - mConnectedClients &= ~CLIENT_APPSTATE; - mAppStateClient.reconnect(); - } - if ((whatClients & CLIENT_PLUS) != 0 && mPlusClient != null - && mPlusClient.isConnected()) { - // PlusClient doesn't need reconnections. - logWarn("GameHelper is ignoring your request to reconnect " + - "PlusClient because this is unnecessary."); - } - - if (actuallyReconnecting) { - setState(STATE_CONNECTING); + public void reconnectClient() { + if (!mGoogleApiClient.isConnected()) { + Log.w(TAG, "reconnectClient() called when client is not connected."); + // interpret it as a request to connect + connect(); } else { - // No reconnections are to take place, so for consistency we call the listener - // as if sign in had just succeeded. - debugLog("No reconnections needed, so behaving as if sign in just succeeded"); - notifyListener(true); + debugLog("Reconnecting client."); + mGoogleApiClient.reconnect(); } } /** Called when we successfully obtain a connection to a client. */ @Override public void onConnected(Bundle connectionHint) { - debugLog("onConnected: connected! client=" + mClientCurrentlyConnecting); - - // Mark the current client as connected - mConnectedClients |= mClientCurrentlyConnecting; - debugLog("Connected clients updated to: " + mConnectedClients); + debugLog("onConnected: connected!"); - // If this was the games client and it came with an invite, store it for - // later retrieval. - if (mClientCurrentlyConnecting == CLIENT_GAMES && connectionHint != null) { + if (connectionHint != null) { debugLog("onConnected: connection hint provided. Checking for invite."); - Invitation inv = connectionHint.getParcelable(GamesClient.EXTRA_INVITATION); + Invitation inv = connectionHint + .getParcelable(Multiplayer.EXTRA_INVITATION); if (inv != null && inv.getInvitationId() != null) { - // accept invitation + // retrieve and cache the invitation ID debugLog("onConnected: connection hint has a room invite!"); - mInvitationId = inv.getInvitationId(); - debugLog("Invitation ID: " + mInvitationId); + mInvitation = inv; + debugLog("Invitation ID: " + mInvitation.getInvitationId()); } + + debugLog("onConnected: connection hint provided. Checking for TBMP game."); + mTurnBasedMatch = connectionHint + .getParcelable(Multiplayer.EXTRA_TURN_BASED_MATCH); } - // connect the next client in line, if any. - connectNextClient(); + // we're good to go + succeedSignIn(); } void succeedSignIn() { - checkState(TYPE_GAMEHELPER_BUG, "succeedSignIn", "succeedSignIn should only " + - "get called in the connecting or connected state. Proceeding anyway.", - STATE_CONNECTING, STATE_CONNECTED); - debugLog("All requested clients connected. Sign-in succeeded!"); - setState(STATE_CONNECTED); + debugLog("succeedSignIn"); mSignInFailureReason = null; - mAutoSignIn = true; + mConnectOnStart = true; mUserInitiatedSignIn = false; - notifyListener(true); + mConnecting = false; + mConnectionResult = null; + notifyListener(true); + } + + private final String GAMEHELPER_SHARED_PREFS = "GAMEHELPER_SHARED_PREFS"; + private final String KEY_SIGN_IN_CANCELLATIONS = "KEY_SIGN_IN_CANCELLATIONS"; + + // Return the number of times the user has cancelled the sign-in flow in the + // life of the app + int getSignInCancellations() { + SharedPreferences sp = mAppContext.getSharedPreferences( + GAMEHELPER_SHARED_PREFS, Context.MODE_PRIVATE); + return sp.getInt(KEY_SIGN_IN_CANCELLATIONS, 0); } - /** Handles a connection failure reported by a client. */ + // Increments the counter that indicates how many times the user has + // cancelled the sign in + // flow in the life of the application + int incrementSignInCancellations() { + int cancellations = getSignInCancellations(); + SharedPreferences.Editor editor = mAppContext.getSharedPreferences( + GAMEHELPER_SHARED_PREFS, Context.MODE_PRIVATE).edit(); + editor.putInt(KEY_SIGN_IN_CANCELLATIONS, cancellations + 1); + editor.commit(); + return cancellations + 1; + } + + // Reset the counter of how many times the user has cancelled the sign-in + // flow. + void resetSignInCancellations() { + SharedPreferences.Editor editor = mAppContext.getSharedPreferences( + GAMEHELPER_SHARED_PREFS, Context.MODE_PRIVATE).edit(); + editor.putInt(KEY_SIGN_IN_CANCELLATIONS, 0); + editor.commit(); + } + + /** Handles a connection failure. */ @Override public void onConnectionFailed(ConnectionResult result) { // save connection result for later reference @@ -847,26 +740,47 @@ public void onConnectionFailed(ConnectionResult result) { mConnectionResult = result; debugLog("Connection failure:"); - debugLog(" - code: " + errorCodeToString(mConnectionResult.getErrorCode())); + debugLog(" - code: " + + GameHelperUtils.errorCodeToString(mConnectionResult + .getErrorCode())); debugLog(" - resolvable: " + mConnectionResult.hasResolution()); debugLog(" - details: " + mConnectionResult.toString()); - if (!mUserInitiatedSignIn) { - // If the user didn't initiate the sign-in, we don't try to resolve - // the connection problem automatically -- instead, we fail and wait - // for the user to want to sign in. That way, they won't get an - // authentication (or other) popup unless they are actively trying - // to - // sign in. - debugLog("onConnectionFailed: since user didn't initiate sign-in, failing now."); + int cancellations = getSignInCancellations(); + boolean shouldResolve = false; + + if (mUserInitiatedSignIn) { + debugLog("onConnectionFailed: WILL resolve because user initiated sign-in."); + shouldResolve = true; + } else if (mSignInCancelled) { + debugLog("onConnectionFailed WILL NOT resolve (user already cancelled once)."); + shouldResolve = false; + } else if (cancellations < mMaxAutoSignInAttempts) { + debugLog("onConnectionFailed: WILL resolve because we have below the max# of " + + "attempts, " + + cancellations + + " < " + + mMaxAutoSignInAttempts); + shouldResolve = true; + } else { + shouldResolve = false; + debugLog("onConnectionFailed: Will NOT resolve; not user-initiated and max attempts " + + "reached: " + + cancellations + + " >= " + + mMaxAutoSignInAttempts); + } + + if (!shouldResolve) { + // Fail and wait for the user to want to sign in. + debugLog("onConnectionFailed: since we won't resolve, failing now."); mConnectionResult = result; - //mAutoSignIn = false; - setState(STATE_DISCONNECTED); + mConnecting = false; notifyListener(false); return; } - debugLog("onConnectionFailed: since user initiated sign-in, resolving problem."); + debugLog("onConnectionFailed: resolving problem..."); // Resolve the connection result. This usually means showing a dialog or // starting an Activity that will allow the user to give the appropriate @@ -881,16 +795,13 @@ public void onConnectionFailed(ConnectionResult result) { */ void resolveConnectionResult() { // Try to resolve the problem - checkState(TYPE_GAMEHELPER_BUG, "resolveConnectionResult", - "resolveConnectionResult should only be called when connecting. Proceeding anyway.", - STATE_CONNECTING); - if (mExpectingResolution) { debugLog("We're already expecting the result of a previous resolution."); return; } - debugLog("resolveConnectionResult: trying to resolve result: " + mConnectionResult); + debugLog("resolveConnectionResult: trying to resolve result: " + + mConnectionResult); if (mConnectionResult.hasResolution()) { // This problem can be fixed. So let's try to fix it. debugLog("Result has resolution. Starting it."); @@ -898,11 +809,12 @@ void resolveConnectionResult() { // launch appropriate UI flow (which might, for example, be the // sign-in flow) mExpectingResolution = true; - mConnectionResult.startResolutionForResult(mActivity, RC_RESOLVE); + mConnectionResult.startResolutionForResult(mActivity, + RC_RESOLVE); } catch (SendIntentException e) { // Try connecting again debugLog("SendIntentException, so connecting again."); - connectCurrentClient(); + connect(); } } else { // It's not a problem what we can solve, so give up and show an @@ -912,6 +824,16 @@ void resolveConnectionResult() { } } + public void disconnect() { + if (mGoogleApiClient.isConnected()) { + debugLog("Disconnecting client."); + mGoogleApiClient.disconnect(); + } else { + Log.w(TAG, + "disconnect() called when client was already disconnected."); + } + } + /** * Give up on signing in due to an error. Shows the appropriate error * message to the user, using a standard error dialog as appropriate to the @@ -920,128 +842,128 @@ void resolveConnectionResult() { * new version, etc). */ void giveUp(SignInFailureReason reason) { - checkState(TYPE_GAMEHELPER_BUG, "giveUp", "giveUp should only be called when " + - "connecting. Proceeding anyway.", STATE_CONNECTING); - mAutoSignIn = false; - killConnections(); + mConnectOnStart = false; + disconnect(); mSignInFailureReason = reason; + + if (reason.mActivityResultCode == GamesActivityResultCodes.RESULT_APP_MISCONFIGURED) { + // print debug info for the developer + GameHelperUtils.printMisconfiguredDebugInfo(mAppContext); + } + showFailureDialog(); + mConnecting = false; notifyListener(false); } - /** Called when we are disconnected from a client. */ + /** Called when we are disconnected from the Google API client. */ @Override - public void onDisconnected() { - debugLog("onDisconnected."); - if (mState == STATE_DISCONNECTED) { - // This is expected. - debugLog("onDisconnected is expected, so no action taken."); - return; - } - - // Unexpected disconnect (rare!) - logWarn("Unexpectedly disconnected. Severing remaining connections."); - - // kill the other connections too, and revert to DISCONNECTED state. - killConnections(); + public void onConnectionSuspended(int cause) { + debugLog("onConnectionSuspended, cause=" + cause); + disconnect(); mSignInFailureReason = null; - - // call the sign in failure callback debugLog("Making extraordinary call to onSignInFailed callback"); + mConnecting = false; notifyListener(false); } + public void showFailureDialog() { + if (mSignInFailureReason != null) { + int errorCode = mSignInFailureReason.getServiceErrorCode(); + int actResp = mSignInFailureReason.getActivityResultCode(); + + if (mShowErrorDialogs) { + showFailureDialog(mActivity, actResp, errorCode); + } else { + debugLog("Not showing error dialog because mShowErrorDialogs==false. " + + "" + "Error was: " + mSignInFailureReason); + } + } + } + /** Shows an error dialog that's appropriate for the failure reason. */ - void showFailureDialog() { - Context ctx = getContext(); - if (ctx == null) { - debugLog("*** No context. Can't show failure dialog."); + public static void showFailureDialog(Activity activity, int actResp, + int errorCode) { + if (activity == null) { + Log.e("GameHelper", "*** No Activity. Can't show failure dialog!"); return; } - debugLog("Making error dialog for failure: " + mSignInFailureReason); Dialog errorDialog = null; - int errorCode = mSignInFailureReason.getServiceErrorCode(); - int actResp = mSignInFailureReason.getActivityResultCode(); - -// switch (actResp) { -// case GamesActivityResultCodes.RESULT_APP_MISCONFIGURED: -// errorDialog = makeSimpleDialog(ctx.getString( -// R.string.gamehelper_app_misconfigured)); -// printMisconfiguredDebugInfo(); -// break; -// case GamesActivityResultCodes.RESULT_SIGN_IN_FAILED: -// errorDialog = makeSimpleDialog(ctx.getString( -// R.string.gamehelper_sign_in_failed)); -// break; -// case GamesActivityResultCodes.RESULT_LICENSE_FAILED: -// errorDialog = makeSimpleDialog(ctx.getString( -// R.string.gamehelper_license_failed)); -// break; -// default: -// // No meaningful Activity response code, so generate default Google -// // Play services dialog -// errorDialog = GooglePlayServicesUtil.getErrorDialog(errorCode, mActivity, -// RC_UNUSED, null); -// if (errorDialog == null) { -// // get fallback dialog -// debugLog("No standard error dialog available. Making fallback dialog."); -// errorDialog = makeSimpleDialog(ctx.getString(R.string.gamehelper_unknown_error) -// + " " + errorCodeToString(errorCode)); -// } -// } - - debugLog("Showing error dialog."); + + switch (actResp) { + case GamesActivityResultCodes.RESULT_APP_MISCONFIGURED: + errorDialog = makeSimpleDialog(activity, GameHelperUtils.getString( + activity, GameHelperUtils.R_APP_MISCONFIGURED)); + break; + case GamesActivityResultCodes.RESULT_SIGN_IN_FAILED: + errorDialog = makeSimpleDialog(activity, GameHelperUtils.getString( + activity, GameHelperUtils.R_SIGN_IN_FAILED)); + break; + case GamesActivityResultCodes.RESULT_LICENSE_FAILED: + errorDialog = makeSimpleDialog(activity, GameHelperUtils.getString( + activity, GameHelperUtils.R_LICENSE_FAILED)); + break; + default: + // No meaningful Activity response code, so generate default Google + // Play services dialog + errorDialog = GooglePlayServicesUtil.getErrorDialog(errorCode, + activity, RC_UNUSED, null); + if (errorDialog == null) { + // get fallback dialog + Log.e("GameHelper", + "No standard error dialog available. Making fallback dialog."); + errorDialog = makeSimpleDialog( + activity, + GameHelperUtils.getString(activity, + GameHelperUtils.R_UNKNOWN_ERROR) + + " " + + GameHelperUtils.errorCodeToString(errorCode)); + } + } + errorDialog.show(); } - Dialog makeSimpleDialog(String text) { - return (new AlertDialog.Builder(getContext())).setMessage(text) + static Dialog makeSimpleDialog(Activity activity, String text) { + return (new AlertDialog.Builder(activity)).setMessage(text) .setNeutralButton(android.R.string.ok, null).create(); } + static Dialog + makeSimpleDialog(Activity activity, String title, String text) { + return (new AlertDialog.Builder(activity)).setMessage(text) + .setTitle(title).setNeutralButton(android.R.string.ok, null) + .create(); + } + + public Dialog makeSimpleDialog(String text) { + if (mActivity == null) { + logError("*** makeSimpleDialog failed: no current Activity!"); + return null; + } + return makeSimpleDialog(mActivity, text); + } + + public Dialog makeSimpleDialog(String title, String text) { + if (mActivity == null) { + logError("*** makeSimpleDialog failed: no current Activity!"); + return null; + } + return makeSimpleDialog(mActivity, title, text); + } + void debugLog(String message) { if (mDebugLog) { - Log.d(mDebugTag, "GameHelper: " + message); + Log.d(TAG, "GameHelper: " + message); } } void logWarn(String message) { - Log.w(mDebugTag, "!!! GameHelper WARNING: " + message); + Log.w(TAG, "!!! GameHelper WARNING: " + message); } void logError(String message) { - Log.e(mDebugTag, "*** GameHelper ERROR: " + message); - } - - static String errorCodeToString(int errorCode) { - switch (errorCode) { - case ConnectionResult.DEVELOPER_ERROR: - return "DEVELOPER_ERROR(" + errorCode + ")"; - case ConnectionResult.INTERNAL_ERROR: - return "INTERNAL_ERROR(" + errorCode + ")"; - case ConnectionResult.INVALID_ACCOUNT: - return "INVALID_ACCOUNT(" + errorCode + ")"; - case ConnectionResult.LICENSE_CHECK_FAILED: - return "LICENSE_CHECK_FAILED(" + errorCode + ")"; - case ConnectionResult.NETWORK_ERROR: - return "NETWORK_ERROR(" + errorCode + ")"; - case ConnectionResult.RESOLUTION_REQUIRED: - return "RESOLUTION_REQUIRED(" + errorCode + ")"; - case ConnectionResult.SERVICE_DISABLED: - return "SERVICE_DISABLED(" + errorCode + ")"; - case ConnectionResult.SERVICE_INVALID: - return "SERVICE_INVALID(" + errorCode + ")"; - case ConnectionResult.SERVICE_MISSING: - return "SERVICE_MISSING(" + errorCode + ")"; - case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED: - return "SERVICE_VERSION_UPDATE_REQUIRED(" + errorCode + ")"; - case ConnectionResult.SIGN_IN_REQUIRED: - return "SIGN_IN_REQUIRED(" + errorCode + ")"; - case ConnectionResult.SUCCESS: - return "SUCCESS(" + errorCode + ")"; - default: - return "Unknown error code " + errorCode; - } + Log.e(TAG, "*** GameHelper ERROR: " + message); } // Represents the reason for a sign-in failure @@ -1049,107 +971,42 @@ public static class SignInFailureReason { public static final int NO_ACTIVITY_RESULT_CODE = -100; int mServiceErrorCode = 0; int mActivityResultCode = NO_ACTIVITY_RESULT_CODE; + public int getServiceErrorCode() { return mServiceErrorCode; } + public int getActivityResultCode() { return mActivityResultCode; } + public SignInFailureReason(int serviceErrorCode, int activityResultCode) { mServiceErrorCode = serviceErrorCode; mActivityResultCode = activityResultCode; } + public SignInFailureReason(int serviceErrorCode) { this(serviceErrorCode, NO_ACTIVITY_RESULT_CODE); } + @Override public String toString() { - return "SignInFailureReason(serviceErrorCode:" + - errorCodeToString(mServiceErrorCode) + - ((mActivityResultCode == NO_ACTIVITY_RESULT_CODE) ? ")" : - (",activityResultCode:" + - activityResponseCodeToString(mActivityResultCode) + ")")); + return "SignInFailureReason(serviceErrorCode:" + + GameHelperUtils.errorCodeToString(mServiceErrorCode) + + ((mActivityResultCode == NO_ACTIVITY_RESULT_CODE) ? ")" + : (",activityResultCode:" + + GameHelperUtils + .activityResponseCodeToString(mActivityResultCode) + ")")); } } - void printMisconfiguredDebugInfo() { - debugLog("****"); - debugLog("****"); - debugLog("**** APP NOT CORRECTLY CONFIGURED TO USE GOOGLE PLAY GAME SERVICES"); - debugLog("**** This is usually caused by one of these reasons:"); - debugLog("**** (1) Your package name and certificate fingerprint do not match"); - debugLog("**** the client ID you registered in Developer Console."); - debugLog("**** (2) Your App ID was incorrectly entered."); - debugLog("**** (3) Your game settings have not been published and you are "); - debugLog("**** trying to log in with an account that is not listed as"); - debugLog("**** a test account."); - debugLog("****"); - Context ctx = getContext(); - if (ctx == null) { - debugLog("*** (no Context, so can't print more debug info)"); - return; - } - - debugLog("**** To help you debug, here is the information about this app"); - debugLog("**** Package name : " + getContext().getPackageName()); - debugLog("**** Cert SHA1 fingerprint: " + getSHA1CertFingerprint()); - debugLog("**** App ID from : " + getAppIdFromResource()); - debugLog("****"); - debugLog("**** Check that the above information matches your setup in "); - debugLog("**** Developer Console. Also, check that you're logging in with the"); - debugLog("**** right account (it should be listed in the Testers section if"); - debugLog("**** your project is not yet published)."); - debugLog("****"); - debugLog("**** For more information, refer to the troubleshooting guide:"); - debugLog("**** http://developers.google.com/games/services/android/troubleshooting"); - } - - String getAppIdFromResource() { - try { - Resources res = getContext().getResources(); - String pkgName = getContext().getPackageName(); - int res_id = res.getIdentifier("app_id", "string", pkgName); - return res.getString(res_id); - } catch (Exception ex) { - ex.printStackTrace(); - return "??? (failed to retrieve APP ID)"; - } - } - - String getSHA1CertFingerprint() { - try { - Signature[] sigs = getContext().getPackageManager().getPackageInfo( - getContext().getPackageName(), PackageManager.GET_SIGNATURES).signatures; - if (sigs.length == 0) { - return "ERROR: NO SIGNATURE."; - } else if (sigs.length > 1) { - return "ERROR: MULTIPLE SIGNATURES"; - } - byte[] digest = MessageDigest.getInstance("SHA1").digest(sigs[0].toByteArray()); - StringBuilder hexString = new StringBuilder(); - for (int i = 0; i < digest.length; ++i) { - if (i > 0) { - hexString.append(":"); - } - byteToString(hexString, digest[i]); - } - return hexString.toString(); - - } catch (PackageManager.NameNotFoundException ex) { - ex.printStackTrace(); - return "(ERROR: package not found)"; - } catch (NoSuchAlgorithmException ex) { - ex.printStackTrace(); - return "(ERROR: SHA1 algorithm not found)"; - } - } - - void byteToString(StringBuilder sb, byte b) { - int unsigned_byte = b < 0 ? b + 256 : b; - int hi = unsigned_byte / 16; - int lo = unsigned_byte % 16; - sb.append("0123456789ABCDEF".substring(hi, hi + 1)); - sb.append("0123456789ABCDEF".substring(lo, lo + 1)); + // Not recommended for general use. This method forces the + // "connect on start" flag + // to a given state. This may be useful when using GameHelper in a + // non-standard + // sign-in flow. + public void setConnectOnStart(boolean connectOnStart) { + debugLog("Forcing mConnectOnStart=" + connectOnStart); + mConnectOnStart = connectOnStart; } - -} +} \ No newline at end of file diff --git a/android/src/com/freshplanet/googleplaygames/GameHelperUtils.java b/android/src/com/freshplanet/googleplaygames/GameHelperUtils.java new file mode 100644 index 0000000..9ef34dd --- /dev/null +++ b/android/src/com/freshplanet/googleplaygames/GameHelperUtils.java @@ -0,0 +1,184 @@ +package com.freshplanet.googleplaygames; + +import android.R; +import android.app.Activity; +import android.content.Context; +import android.content.pm.PackageManager; +import android.content.pm.Signature; +import android.content.res.Resources; +import android.util.Log; + +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.games.GamesActivityResultCodes; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +/** + * Created by btco on 2/10/14. + */ +class GameHelperUtils { + public static final int R_UNKNOWN_ERROR = 0; + public static final int R_SIGN_IN_FAILED = 1; + public static final int R_APP_MISCONFIGURED = 2; + public static final int R_LICENSE_FAILED = 3; + + private final static String[] FALLBACK_STRINGS = { + "*Unknown error.", + "*Failed to sign in. Please check your network connection and try again.", + "*The application is incorrectly configured. Check that the package name and signing certificate match the client ID created in Developer Console. Also, if the application is not yet published, check that the account you are trying to sign in with is listed as a tester account. See logs for more information.", + "*License check failed." + }; + + private final static int[] RES_IDS = { + 0,1,2,3 +// R.string.gamehelper_unknown_error, R.string.gamehelper_sign_in_failed, +// R.string.gamehelper_app_misconfigured, R.string.gamehelper_license_failed + }; + + static String activityResponseCodeToString(int respCode) { + switch (respCode) { + case Activity.RESULT_OK: + return "RESULT_OK"; + case Activity.RESULT_CANCELED: + return "RESULT_CANCELED"; + case GamesActivityResultCodes.RESULT_APP_MISCONFIGURED: + return "RESULT_APP_MISCONFIGURED"; + case GamesActivityResultCodes.RESULT_LEFT_ROOM: + return "RESULT_LEFT_ROOM"; + case GamesActivityResultCodes.RESULT_LICENSE_FAILED: + return "RESULT_LICENSE_FAILED"; + case GamesActivityResultCodes.RESULT_RECONNECT_REQUIRED: + return "RESULT_RECONNECT_REQUIRED"; + case GamesActivityResultCodes.RESULT_SIGN_IN_FAILED: + return "SIGN_IN_FAILED"; + default: + return String.valueOf(respCode); + } + } + + static String errorCodeToString(int errorCode) { + switch (errorCode) { + case ConnectionResult.DEVELOPER_ERROR: + return "DEVELOPER_ERROR(" + errorCode + ")"; + case ConnectionResult.INTERNAL_ERROR: + return "INTERNAL_ERROR(" + errorCode + ")"; + case ConnectionResult.INVALID_ACCOUNT: + return "INVALID_ACCOUNT(" + errorCode + ")"; + case ConnectionResult.LICENSE_CHECK_FAILED: + return "LICENSE_CHECK_FAILED(" + errorCode + ")"; + case ConnectionResult.NETWORK_ERROR: + return "NETWORK_ERROR(" + errorCode + ")"; + case ConnectionResult.RESOLUTION_REQUIRED: + return "RESOLUTION_REQUIRED(" + errorCode + ")"; + case ConnectionResult.SERVICE_DISABLED: + return "SERVICE_DISABLED(" + errorCode + ")"; + case ConnectionResult.SERVICE_INVALID: + return "SERVICE_INVALID(" + errorCode + ")"; + case ConnectionResult.SERVICE_MISSING: + return "SERVICE_MISSING(" + errorCode + ")"; + case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED: + return "SERVICE_VERSION_UPDATE_REQUIRED(" + errorCode + ")"; + case ConnectionResult.SIGN_IN_REQUIRED: + return "SIGN_IN_REQUIRED(" + errorCode + ")"; + case ConnectionResult.SUCCESS: + return "SUCCESS(" + errorCode + ")"; + default: + return "Unknown error code " + errorCode; + } + } + + static void printMisconfiguredDebugInfo(Context ctx) { + Log.w("GameHelper", "****"); + Log.w("GameHelper", "****"); + Log.w("GameHelper", "**** APP NOT CORRECTLY CONFIGURED TO USE GOOGLE PLAY GAME SERVICES"); + Log.w("GameHelper", "**** This is usually caused by one of these reasons:"); + Log.w("GameHelper", "**** (1) Your package name and certificate fingerprint do not match"); + Log.w("GameHelper", "**** the client ID you registered in Developer Console."); + Log.w("GameHelper", "**** (2) Your App ID was incorrectly entered."); + Log.w("GameHelper", "**** (3) Your game settings have not been published and you are "); + Log.w("GameHelper", "**** trying to log in with an account that is not listed as"); + Log.w("GameHelper", "**** a test account."); + Log.w("GameHelper", "****"); + if (ctx == null) { + Log.w("GameHelper", "*** (no Context, so can't print more debug info)"); + return; + } + + Log.w("GameHelper", "**** To help you debug, here is the information about this app"); + Log.w("GameHelper", "**** Package name : " + ctx.getPackageName()); + Log.w("GameHelper", "**** Cert SHA1 fingerprint: " + getSHA1CertFingerprint(ctx)); + Log.w("GameHelper", "**** App ID from : " + getAppIdFromResource(ctx)); + Log.w("GameHelper", "****"); + Log.w("GameHelper", "**** Check that the above information matches your setup in "); + Log.w("GameHelper", "**** Developer Console. Also, check that you're logging in with the"); + Log.w("GameHelper", "**** right account (it should be listed in the Testers section if"); + Log.w("GameHelper", "**** your project is not yet published)."); + Log.w("GameHelper", "****"); + Log.w("GameHelper", "**** For more information, refer to the troubleshooting guide:"); + Log.w("GameHelper", "**** http://developers.google.com/games/services/android/troubleshooting"); + } + + static String getAppIdFromResource(Context ctx) { + try { + Resources res = ctx.getResources(); + String pkgName = ctx.getPackageName(); + int res_id = res.getIdentifier("app_id", "string", pkgName); + return res.getString(res_id); + } catch (Exception ex) { + ex.printStackTrace(); + return "??? (failed to retrieve APP ID)"; + } + } + + static String getSHA1CertFingerprint(Context ctx) { + try { + Signature[] sigs = ctx.getPackageManager().getPackageInfo( + ctx.getPackageName(), PackageManager.GET_SIGNATURES).signatures; + if (sigs.length == 0) { + return "ERROR: NO SIGNATURE."; + } else if (sigs.length > 1) { + return "ERROR: MULTIPLE SIGNATURES"; + } + byte[] digest = MessageDigest.getInstance("SHA1").digest(sigs[0].toByteArray()); + StringBuilder hexString = new StringBuilder(); + for (int i = 0; i < digest.length; ++i) { + if (i > 0) { + hexString.append(":"); + } + byteToString(hexString, digest[i]); + } + return hexString.toString(); + + } catch (PackageManager.NameNotFoundException ex) { + ex.printStackTrace(); + return "(ERROR: package not found)"; + } catch (NoSuchAlgorithmException ex) { + ex.printStackTrace(); + return "(ERROR: SHA1 algorithm not found)"; + } + } + + static void byteToString(StringBuilder sb, byte b) { + int unsigned_byte = b < 0 ? b + 256 : b; + int hi = unsigned_byte / 16; + int lo = unsigned_byte % 16; + sb.append("0123456789ABCDEF".substring(hi, hi + 1)); + sb.append("0123456789ABCDEF".substring(lo, lo + 1)); + } + + static String getString(Context ctx, int whichString) { + whichString = whichString >= 0 && whichString < RES_IDS.length ? whichString : 0; + int resId = RES_IDS[whichString]; + try { + return ctx.getString(resId); + } catch (Exception ex) { + ex.printStackTrace(); + Log.w(GameHelper.TAG, "*** GameHelper could not found resource id #" + resId + ". " + + "This probably happened because you included it as a stand-alone JAR. " + + "BaseGameUtils should be compiled as a LIBRARY PROJECT, so that it can access " + + "its resources. Using a fallback string."); + return FALLBACK_STRINGS[whichString]; + } + } +} \ No newline at end of file diff --git a/android/src/com/freshplanet/googleplaygames/ScoresLoadedListener.java b/android/src/com/freshplanet/googleplaygames/ScoresLoadedListener.java new file mode 100644 index 0000000..e755618 --- /dev/null +++ b/android/src/com/freshplanet/googleplaygames/ScoresLoadedListener.java @@ -0,0 +1,33 @@ +package com.freshplanet.googleplaygames; + +import com.google.android.gms.common.api.ResultCallback; +import com.google.android.gms.games.Games; +import com.google.android.gms.games.PageDirection; +import com.google.android.gms.games.leaderboard.LeaderboardScoreBuffer; +import com.google.android.gms.games.leaderboard.Leaderboards; + +/** + * Created by renaud on 09/09/2014. + */ +class ScoresLoadedListener implements ResultCallback { + + private int currentBufferSize = 0; + + public void ScoresLoadedListener() {} + + public void onResult( Leaderboards.LoadScoresResult scoresResult ) { + + + LeaderboardScoreBuffer scores = scoresResult.getScores(); + + if( scores.getCount() == currentBufferSize ) { + Extension.context.onLeaderboardLoaded(scores); + } + else { + currentBufferSize = scores.getCount(); + Games.Leaderboards.loadMoreScores( Extension.context.getApiClient(), scores, 25, PageDirection.NEXT ).setResultCallback( this ); + } + + } + +} \ No newline at end of file diff --git a/android/src/com/freshplanet/googleplaygames/functions/AirGooglePlayGamesGetActivePlayerName.java b/android/src/com/freshplanet/googleplaygames/functions/AirGooglePlayGamesGetActivePlayerName.java index ba4de27..245761a 100644 --- a/android/src/com/freshplanet/googleplaygames/functions/AirGooglePlayGamesGetActivePlayerName.java +++ b/android/src/com/freshplanet/googleplaygames/functions/AirGooglePlayGamesGetActivePlayerName.java @@ -5,6 +5,7 @@ import com.adobe.fre.FREObject; import com.adobe.fre.FREWrongThreadException; import com.freshplanet.googleplaygames.Extension; +import com.google.android.gms.games.Games; import com.google.android.gms.games.Player; public class AirGooglePlayGamesGetActivePlayerName implements FREFunction { @@ -13,7 +14,7 @@ public class AirGooglePlayGamesGetActivePlayerName implements FREFunction { public FREObject call(FREContext arg0, FREObject[] arg1) { Extension.context.createHelperIfNeeded(arg0.getActivity()); - Player player = Extension.context.getGamesClient().getCurrentPlayer(); + Player player = Games.Players.getCurrentPlayer(Extension.context.getApiClient()); FREObject playerName = null; if (player != null) diff --git a/android/src/com/freshplanet/googleplaygames/functions/AirGooglePlayGamesGetLeaderboardFunction.java b/android/src/com/freshplanet/googleplaygames/functions/AirGooglePlayGamesGetLeaderboardFunction.java new file mode 100644 index 0000000..e5b372a --- /dev/null +++ b/android/src/com/freshplanet/googleplaygames/functions/AirGooglePlayGamesGetLeaderboardFunction.java @@ -0,0 +1,37 @@ +package com.freshplanet.googleplaygames.functions; + +import com.adobe.fre.FREContext; +import com.adobe.fre.FREFunction; +import com.adobe.fre.FREObject; +import com.freshplanet.googleplaygames.Extension; + +/** + * Created by renaud on 09/09/2014. + */ +public class AirGooglePlayGamesGetLeaderboardFunction implements FREFunction { + + @Override + public FREObject call(FREContext arg0, FREObject[] arg1) { + + Extension.context.createHelperIfNeeded(arg0.getActivity()); + + // Retrieve alert parameters + String leaderboardId = null; + try + { + leaderboardId = arg1[0].getAsString(); + } + catch (Exception e) + { + e.printStackTrace(); + return null; + } + + if( leaderboardId != null ) + Extension.context.getLeaderboard( leaderboardId ); + + return null; + + } + +} \ No newline at end of file diff --git a/android/src/com/freshplanet/googleplaygames/functions/AirGooglePlayGamesReportAchievementFunction.java b/android/src/com/freshplanet/googleplaygames/functions/AirGooglePlayGamesReportAchievementFunction.java index 379c711..1618a34 100644 --- a/android/src/com/freshplanet/googleplaygames/functions/AirGooglePlayGamesReportAchievementFunction.java +++ b/android/src/com/freshplanet/googleplaygames/functions/AirGooglePlayGamesReportAchievementFunction.java @@ -35,8 +35,6 @@ public FREObject call(FREContext arg0, FREObject[] arg1) { Extension.context.reportAchivements(achievementId, percent); } - - return null; } diff --git a/android/src/com/freshplanet/googleplaygames/functions/AirGooglePlayGamesShowAchievementsFunction.java b/android/src/com/freshplanet/googleplaygames/functions/AirGooglePlayGamesShowAchievementsFunction.java index b342791..0d6c9de 100644 --- a/android/src/com/freshplanet/googleplaygames/functions/AirGooglePlayGamesShowAchievementsFunction.java +++ b/android/src/com/freshplanet/googleplaygames/functions/AirGooglePlayGamesShowAchievementsFunction.java @@ -4,6 +4,7 @@ import com.adobe.fre.FREFunction; import com.adobe.fre.FREObject; import com.freshplanet.googleplaygames.Extension; +import com.google.android.gms.games.Games; public class AirGooglePlayGamesShowAchievementsFunction implements FREFunction { @@ -18,7 +19,7 @@ public FREObject call(FREContext arg0, FREObject[] arg1) { Extension.context.createHelperIfNeeded(arg0.getActivity()); if (Extension.context.isSignedIn()) { - arg0.getActivity().startActivityForResult(Extension.context.getGamesClient().getAchievementsIntent(), RC_UNUSED); + arg0.getActivity().startActivityForResult(Games.Achievements.getAchievementsIntent(Extension.context.getApiClient()), RC_UNUSED); } return null; diff --git a/bin/AirGooglePlayGamesService.ane b/bin/AirGooglePlayGamesService.ane index 470cfe2..06cf8ac 100644 Binary files a/bin/AirGooglePlayGamesService.ane and b/bin/AirGooglePlayGamesService.ane differ diff --git a/build/build.xml b/build/build.xml index 9ffc828..ce878e8 100644 --- a/build/build.xml +++ b/build/build.xml @@ -12,25 +12,28 @@ - + + + - + + - - + - + @@ -51,6 +54,7 @@ +