From 40ca65bbf48c20d99417fcc88ce34892db89272b Mon Sep 17 00:00:00 2001 From: mar-v-in Date: Sat, 3 Oct 2015 22:47:05 +0200 Subject: [PATCH] Huge Update - Update Location APIs, fixes #37 - Update version number, fixes #38 - Enable long press input on WebView during login, fixes #34 - Extended log output and auto-repair for GCM connection, related to #29 and #31 - New icons - Small quirks in Auth handling (required for Login to some applications) --- .travis.yml | 4 +- extern/GmsApi | 2 +- extern/UnifiedNlp | 2 +- play-services-core/build.gradle | 10 +- play-services-core/ic_microg_settings.svg | 275 ++++++++++++++++++ .../src/main/AndroidManifest.xml | 273 ++++++++--------- .../google/android/gms/ads/AdActivity.java | 2 +- .../android/gms/ads/AdManagerCreatorImpl.java | 2 +- .../analytics/service/AnalyticsService.java | 2 +- .../com/google/android/gms/auth/GetToken.java | 2 +- .../android/gms/auth/TokenActivity.java | 2 +- .../security/ProviderInstallerImpl.java | 2 +- .../common/ui/SignInButtonCreatorImpl.java | 2 +- .../gms/gcm/http/GoogleHttpService.java | 2 +- .../gms/maps/internal/CreatorImpl.java | 2 +- .../plusone/PlusOneButtonCreatorImpl.java | 2 +- .../android/gms/recovery/RecoveryService.java | 2 +- .../dynamite/WalletDynamiteCreatorImpl.java | 2 +- .../microg/gms/AbstractGmsServiceBroker.java | 2 +- .../main/java/org/microg/gms/BaseService.java | 3 +- .../java/org/microg/gms/DummyService.java | 2 +- .../java/org/microg/gms/ads/GService.java | 2 +- .../gms/auth/AskPermissionActivity.java | 2 +- .../java/org/microg/gms/auth/AuthManager.java | 2 +- .../gms/auth/AuthManagerServiceImpl.java | 9 +- .../java/org/microg/gms/auth/AuthRequest.java | 2 +- .../org/microg/gms/auth/AuthResponse.java | 2 +- .../gms/auth/login/AssistantActivity.java | 2 +- .../microg/gms/auth/login/LoginActivity.java | 9 +- .../loginservice/AccountAuthenticator.java | 2 +- .../auth/loginservice/GoogleLoginService.java | 2 +- .../java/org/microg/gms/car/CarService.java | 2 +- .../org/microg/gms/checkin/CheckinClient.java | 2 +- .../microg/gms/checkin/CheckinManager.java | 2 +- .../microg/gms/checkin/CheckinService.java | 2 +- .../microg/gms/checkin/LastCheckinInfo.java | 2 +- .../microg/gms/checkin/TriggerReceiver.java | 2 +- .../java/org/microg/gms/common/Build.java | 2 +- .../gms/common/DeviceConfiguration.java | 2 +- .../microg/gms/common/DeviceIdentifier.java | 2 +- .../org/microg/gms/common/HttpFormClient.java | 2 +- .../org/microg/gms/common/NonCancelToken.java | 2 +- .../org/microg/gms/common/PackageUtils.java | 2 +- .../java/org/microg/gms/common/PhoneInfo.java | 2 +- .../java/org/microg/gms/common/Utils.java | 2 +- .../gms/droidguard/DroidGuardService.java | 2 +- .../microg/gms/feedback/FeedbackService.java | 2 +- .../gms/feeds/SubscribedFeedsProvider.java | 2 +- .../java/org/microg/gms/gcm/Constants.java | 2 +- .../org/microg/gms/gcm/McsInputStream.java | 2 +- .../org/microg/gms/gcm/McsOutputStream.java | 2 +- .../java/org/microg/gms/gcm/McsService.java | 23 +- .../microg/gms/gcm/PushRegisterService.java | 2 +- .../org/microg/gms/gcm/RegisterRequest.java | 2 +- .../org/microg/gms/gcm/RegisterResponse.java | 2 +- .../org/microg/gms/gcm/TriggerReceiver.java | 33 ++- .../microg/gms/gservices/DatabaseHelper.java | 2 +- .../org/microg/gms/gservices/GServices.java | 2 +- .../gms/gservices/GServicesProvider.java | 2 +- .../microg/gms/icing/AppDataSearchImpl.java | 2 +- .../gms/icing/GlobalSearchAdminImpl.java | 2 +- .../org/microg/gms/icing/IndexService.java | 2 +- .../icing/LightweightAppDataSearchImpl.java | 2 +- .../gms/icing/LightweightIndexService.java | 2 +- .../microg/gms/icing/SearchCorporaImpl.java | 2 +- .../microg/gms/icing/SearchQueriesImpl.java | 2 +- .../gms/location/GoogleLocationManager.java | 62 ++-- .../GoogleLocationManagerService.java | 4 +- .../GoogleLocationManagerServiceImpl.java | 111 +++++-- .../gms/location/LocationChangeListener.java | 2 +- .../gms/location/LocationRequestHelper.java | 80 ++++- .../gms/location/MockLocationProvider.java | 2 +- .../gms/location/RealLocationProvider.java | 2 +- .../gms/location/ReportingAndroidService.java | 2 +- .../gms/location/ReportingServiceImpl.java | 30 +- .../microg/gms/mdm/NetworkQualityService.java | 2 +- .../org/microg/gms/people/DatabaseHelper.java | 2 +- .../org/microg/gms/people/PeopleManager.java | 2 +- .../org/microg/gms/people/PeopleService.java | 2 +- .../microg/gms/people/PeopleServiceImpl.java | 2 +- .../microg/gms/playlog/PlayLogService.java | 2 +- .../gms/playlog/PlayLogServiceImpl.java | 2 +- .../microg/gms/plus/PlusOneButtonImpl.java | 2 +- .../gms/settings/GoogleSettingsProvider.java | 2 +- .../org/microg/gms/ui/SettingsActivity.java | 2 +- .../wearable/ConfigurationDatabaseHelper.java | 2 +- .../microg/gms/wearable/DataItemInternal.java | 2 +- .../microg/gms/wearable/DataItemRecord.java | 2 +- .../gms/wearable/NodeDatabaseHelper.java | 2 +- .../microg/gms/wearable/WearableService.java | 2 +- .../gms/wearable/WearableServiceImpl.java | 2 +- .../microg/tools/AccountPickerActivity.java | 2 +- .../main/res/drawable-hdpi/ic_microg_app.png | Bin 3293 -> 0 bytes .../main/res/drawable-mdpi/ic_microg_app.png | Bin 2287 -> 0 bytes .../main/res/drawable-xhdpi/ic_microg_app.png | Bin 4460 -> 0 bytes .../res/drawable-xxhdpi/ic_microg_app.png | Bin 6809 -> 0 bytes .../res/drawable-xxxhdpi/ic_microg_app.png | Bin 9594 -> 0 bytes .../res/drawable/circle_shape_background.xml | 2 +- .../main/res/drawable/ic_plusone_medium.xml | 2 +- .../main/res/drawable/ic_plusone_small.xml | 2 +- .../main/res/drawable/ic_plusone_standard.xml | 2 +- .../src/main/res/drawable/ic_plusone_tall.xml | 2 +- .../src/main/res/layout/ask_permission.xml | 4 +- .../res/layout/ask_permission_list_entry.xml | 2 +- .../src/main/res/layout/login_assistant.xml | 2 +- .../res/layout/login_assistant_loading.xml | 2 +- .../res/mipmap-hdpi/ic_core_service_app.png | Bin 0 -> 2453 bytes .../res/mipmap-hdpi/ic_microg_settings.png | Bin 0 -> 4450 bytes .../res/mipmap-mdpi/ic_core_service_app.png | Bin 0 -> 1664 bytes .../res/mipmap-mdpi/ic_microg_settings.png | Bin 0 -> 2714 bytes .../res/mipmap-xhdpi/ic_core_service_app.png | Bin 0 -> 3269 bytes .../res/mipmap-xhdpi/ic_microg_settings.png | Bin 0 -> 6283 bytes .../res/mipmap-xxhdpi/ic_core_service_app.png | Bin 0 -> 5004 bytes .../res/mipmap-xxhdpi/ic_microg_settings.png | Bin 0 -> 10669 bytes .../mipmap-xxxhdpi/ic_core_service_app.png | Bin 0 -> 7404 bytes .../res/mipmap-xxxhdpi/ic_microg_settings.png | Bin 0 -> 15642 bytes .../src/main/res/values-sr/strings.xml | 9 +- .../src/main/res/values/colors.xml | 2 +- .../src/main/res/values/dimens.xml | 2 +- .../src/main/res/values/permissions.xml | 2 +- .../src/main/res/values/signature.xml | 2 +- .../src/main/res/values/strings.xml | 13 +- .../src/main/res/values/themes.xml | 2 +- .../src/main/res/xml/account_preferences.xml | 2 +- .../src/main/res/xml/authenticator.xml | 2 +- .../src/main/res/xml/gms_preferences.xml | 2 +- 126 files changed, 807 insertions(+), 333 deletions(-) create mode 100644 play-services-core/ic_microg_settings.svg delete mode 100644 play-services-core/src/main/res/drawable-hdpi/ic_microg_app.png delete mode 100644 play-services-core/src/main/res/drawable-mdpi/ic_microg_app.png delete mode 100644 play-services-core/src/main/res/drawable-xhdpi/ic_microg_app.png delete mode 100644 play-services-core/src/main/res/drawable-xxhdpi/ic_microg_app.png delete mode 100644 play-services-core/src/main/res/drawable-xxxhdpi/ic_microg_app.png create mode 100644 play-services-core/src/main/res/mipmap-hdpi/ic_core_service_app.png create mode 100644 play-services-core/src/main/res/mipmap-hdpi/ic_microg_settings.png create mode 100644 play-services-core/src/main/res/mipmap-mdpi/ic_core_service_app.png create mode 100644 play-services-core/src/main/res/mipmap-mdpi/ic_microg_settings.png create mode 100644 play-services-core/src/main/res/mipmap-xhdpi/ic_core_service_app.png create mode 100644 play-services-core/src/main/res/mipmap-xhdpi/ic_microg_settings.png create mode 100644 play-services-core/src/main/res/mipmap-xxhdpi/ic_core_service_app.png create mode 100644 play-services-core/src/main/res/mipmap-xxhdpi/ic_microg_settings.png create mode 100644 play-services-core/src/main/res/mipmap-xxxhdpi/ic_core_service_app.png create mode 100644 play-services-core/src/main/res/mipmap-xxxhdpi/ic_microg_settings.png diff --git a/.travis.yml b/.travis.yml index 9e200d52..1b3be818 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ script: android: components: - extra-android-m2repository - - build-tools-22.0.1 - - android-22 + - build-tools-23.0.1 + - android-23 diff --git a/extern/GmsApi b/extern/GmsApi index 28ff7f36..cb0458f1 160000 --- a/extern/GmsApi +++ b/extern/GmsApi @@ -1 +1 @@ -Subproject commit 28ff7f36f2b75a29cead8efc25fc0418065db601 +Subproject commit cb0458f17e55e713b10fe5611890887d0c8b910e diff --git a/extern/UnifiedNlp b/extern/UnifiedNlp index 643bd7dd..5f22b0a5 160000 --- a/extern/UnifiedNlp +++ b/extern/UnifiedNlp @@ -1 +1 @@ -Subproject commit 643bd7dd22681dc5b1f1e0e3074033cb1b84ec75 +Subproject commit 5f22b0a56f4676cd44a0e69ed5a1913d4d84ab41 diff --git a/play-services-core/build.gradle b/play-services-core/build.gradle index a8b848c2..823a1d96 100644 --- a/play-services-core/build.gradle +++ b/play-services-core/build.gradle @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,8 +33,8 @@ repositories { } dependencies { - compile 'com.android.support:support-v4:22.2.1' - compile 'com.android.support:appcompat-v7:22.2.1' + compile 'com.android.support:support-v4:23.0.1' + compile 'com.android.support:appcompat-v7:23.0.1' compile 'de.hdodenhof:circleimageview:1.2.1' compile 'com.squareup.wire:wire-runtime:1.6.1' compile project(':play-services-api') @@ -53,8 +53,8 @@ dependencies { } android { - compileSdkVersion 22 - buildToolsVersion "22.0.1" + compileSdkVersion 23 + buildToolsVersion "23.0.1" sourceSets { main { diff --git a/play-services-core/ic_microg_settings.svg b/play-services-core/ic_microg_settings.svg new file mode 100644 index 00000000..bbb6cf9a --- /dev/null +++ b/play-services-core/ic_microg_settings.svg @@ -0,0 +1,275 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/play-services-core/src/main/AndroidManifest.xml b/play-services-core/src/main/AndroidManifest.xml index 046e4b0c..9bc9ddeb 100644 --- a/play-services-core/src/main/AndroidManifest.xml +++ b/play-services-core/src/main/AndroidManifest.xml @@ -1,5 +1,6 @@ - - + + xmlns:android="http://schemas.android.com/apk/res/android" + android:versionCode="8115238" + android:versionName="8.1.15 (microG v0.01)"> + android:targetSdkVersion="23"/> + android:protectionLevel="dangerous"/> + android:protectionLevel="dangerous"/> + android:icon="@drawable/proprietary_auth_ic_scope_icon_default"/> + android:protectionLevel="dangerous"/> + android:protectionLevel="dangerous"/> - + android:protectionLevel="dangerous"/> + android:protectionLevel="normal"/> - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + android:value="@string/fake_signature"/> @@ -86,16 +93,15 @@ android:name="org.microg.gms.location.GoogleLocationManagerService" android:exported="true"> - + - - - + + - + @@ -104,44 +110,42 @@ - + android:exported="true"/> - + android:exported="true"/> + android:writePermission="android.permission.SUBSCRIBED_FEEDS_WRITE"/> - + - + - + - + - + + android:scheme="android_secret_code"/> @@ -151,49 +155,56 @@ android:exported="true" android:permission="com.google.android.c2dm.permission.RECEIVE"> - + - + - + - + - + android:exported="true"/> - + - + - + - + + android:scheme="android_secret_code"/> + + + + - + - + @@ -203,9 +214,9 @@ android:name="org.microg.gms.car.CarService" android:exported="true"> - + - + @@ -215,9 +226,9 @@ android:name="org.microg.gms.people.PeopleService" android:exported="true"> - + - + @@ -227,7 +238,7 @@ android:name="org.microg.gms.wearable.WearableService" android:exported="true"> - + @@ -237,18 +248,18 @@ android:name="org.microg.gms.auth.loginservice.GoogleLoginService" android:exported="true"> - + - + + android:resource="@xml/authenticator"/> + android:value="1"/> - + - + - - + - + - + android:theme="@style/Theme.AppCompat.Light.Dialog"/> + android:exported="true"/> + android:exported="true"/> @@ -294,51 +303,59 @@ android:name="org.microg.gms.mdm.NetworkQualityService" android:exported="true"> - + - + - + - + - + - + + android:exported="true"/> - - + + + + + + + + + + @@ -346,62 +363,58 @@ android:name="org.microg.gms.ads.GService" android:exported="true"> - + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - diff --git a/play-services-core/src/main/java/com/google/android/gms/ads/AdActivity.java b/play-services-core/src/main/java/com/google/android/gms/ads/AdActivity.java index 5bb1354d..2d39c1ae 100644 --- a/play-services-core/src/main/java/com/google/android/gms/ads/AdActivity.java +++ b/play-services-core/src/main/java/com/google/android/gms/ads/AdActivity.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/com/google/android/gms/ads/AdManagerCreatorImpl.java b/play-services-core/src/main/java/com/google/android/gms/ads/AdManagerCreatorImpl.java index 43d8d2d5..88dd652e 100644 --- a/play-services-core/src/main/java/com/google/android/gms/ads/AdManagerCreatorImpl.java +++ b/play-services-core/src/main/java/com/google/android/gms/ads/AdManagerCreatorImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/com/google/android/gms/analytics/service/AnalyticsService.java b/play-services-core/src/main/java/com/google/android/gms/analytics/service/AnalyticsService.java index 2f456e5c..417b981a 100644 --- a/play-services-core/src/main/java/com/google/android/gms/analytics/service/AnalyticsService.java +++ b/play-services-core/src/main/java/com/google/android/gms/analytics/service/AnalyticsService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/com/google/android/gms/auth/GetToken.java b/play-services-core/src/main/java/com/google/android/gms/auth/GetToken.java index b5155bcf..d042e25b 100644 --- a/play-services-core/src/main/java/com/google/android/gms/auth/GetToken.java +++ b/play-services-core/src/main/java/com/google/android/gms/auth/GetToken.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/com/google/android/gms/auth/TokenActivity.java b/play-services-core/src/main/java/com/google/android/gms/auth/TokenActivity.java index 027a8952..fd9df758 100644 --- a/play-services-core/src/main/java/com/google/android/gms/auth/TokenActivity.java +++ b/play-services-core/src/main/java/com/google/android/gms/auth/TokenActivity.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/com/google/android/gms/common/security/ProviderInstallerImpl.java b/play-services-core/src/main/java/com/google/android/gms/common/security/ProviderInstallerImpl.java index ab60e418..e855153c 100644 --- a/play-services-core/src/main/java/com/google/android/gms/common/security/ProviderInstallerImpl.java +++ b/play-services-core/src/main/java/com/google/android/gms/common/security/ProviderInstallerImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/com/google/android/gms/common/ui/SignInButtonCreatorImpl.java b/play-services-core/src/main/java/com/google/android/gms/common/ui/SignInButtonCreatorImpl.java index 2b157414..855d34a4 100644 --- a/play-services-core/src/main/java/com/google/android/gms/common/ui/SignInButtonCreatorImpl.java +++ b/play-services-core/src/main/java/com/google/android/gms/common/ui/SignInButtonCreatorImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/com/google/android/gms/gcm/http/GoogleHttpService.java b/play-services-core/src/main/java/com/google/android/gms/gcm/http/GoogleHttpService.java index 7ce36e02..78bc93eb 100644 --- a/play-services-core/src/main/java/com/google/android/gms/gcm/http/GoogleHttpService.java +++ b/play-services-core/src/main/java/com/google/android/gms/gcm/http/GoogleHttpService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/com/google/android/gms/maps/internal/CreatorImpl.java b/play-services-core/src/main/java/com/google/android/gms/maps/internal/CreatorImpl.java index 47feb8e0..7b1ec2d6 100644 --- a/play-services-core/src/main/java/com/google/android/gms/maps/internal/CreatorImpl.java +++ b/play-services-core/src/main/java/com/google/android/gms/maps/internal/CreatorImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/com/google/android/gms/plus/plusone/PlusOneButtonCreatorImpl.java b/play-services-core/src/main/java/com/google/android/gms/plus/plusone/PlusOneButtonCreatorImpl.java index eb136706..47ff33d9 100644 --- a/play-services-core/src/main/java/com/google/android/gms/plus/plusone/PlusOneButtonCreatorImpl.java +++ b/play-services-core/src/main/java/com/google/android/gms/plus/plusone/PlusOneButtonCreatorImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/com/google/android/gms/recovery/RecoveryService.java b/play-services-core/src/main/java/com/google/android/gms/recovery/RecoveryService.java index a7e2ccdd..d7f4d003 100644 --- a/play-services-core/src/main/java/com/google/android/gms/recovery/RecoveryService.java +++ b/play-services-core/src/main/java/com/google/android/gms/recovery/RecoveryService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/com/google/android/gms/wallet/dynamite/WalletDynamiteCreatorImpl.java b/play-services-core/src/main/java/com/google/android/gms/wallet/dynamite/WalletDynamiteCreatorImpl.java index 4329e19b..85ab12d6 100644 --- a/play-services-core/src/main/java/com/google/android/gms/wallet/dynamite/WalletDynamiteCreatorImpl.java +++ b/play-services-core/src/main/java/com/google/android/gms/wallet/dynamite/WalletDynamiteCreatorImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/AbstractGmsServiceBroker.java b/play-services-core/src/main/java/org/microg/gms/AbstractGmsServiceBroker.java index 02813376..cffdda84 100644 --- a/play-services-core/src/main/java/org/microg/gms/AbstractGmsServiceBroker.java +++ b/play-services-core/src/main/java/org/microg/gms/AbstractGmsServiceBroker.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/BaseService.java b/play-services-core/src/main/java/org/microg/gms/BaseService.java index badd41b6..fe5578c7 100644 --- a/play-services-core/src/main/java/org/microg/gms/BaseService.java +++ b/play-services-core/src/main/java/org/microg/gms/BaseService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,6 +35,7 @@ public abstract class BaseService extends Service { broker = new AbstractGmsServiceBroker(supportedServiceId, supportedServiceIds) { @Override public void handleServiceRequest(IGmsCallbacks callback, GetServiceRequest request) throws RemoteException { + request.extras.keySet(); // call to unparcel() Log.d(TAG, "bound by: " + request); BaseService.this.handleServiceRequest(callback, request); } diff --git a/play-services-core/src/main/java/org/microg/gms/DummyService.java b/play-services-core/src/main/java/org/microg/gms/DummyService.java index d7526429..7bec8072 100644 --- a/play-services-core/src/main/java/org/microg/gms/DummyService.java +++ b/play-services-core/src/main/java/org/microg/gms/DummyService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/ads/GService.java b/play-services-core/src/main/java/org/microg/gms/ads/GService.java index b86bc78c..2655e0de 100644 --- a/play-services-core/src/main/java/org/microg/gms/ads/GService.java +++ b/play-services-core/src/main/java/org/microg/gms/ads/GService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/auth/AskPermissionActivity.java b/play-services-core/src/main/java/org/microg/gms/auth/AskPermissionActivity.java index abba8709..672b9c9e 100644 --- a/play-services-core/src/main/java/org/microg/gms/auth/AskPermissionActivity.java +++ b/play-services-core/src/main/java/org/microg/gms/auth/AskPermissionActivity.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/auth/AuthManager.java b/play-services-core/src/main/java/org/microg/gms/auth/AuthManager.java index 6402ae47..b8e102e1 100644 --- a/play-services-core/src/main/java/org/microg/gms/auth/AuthManager.java +++ b/play-services-core/src/main/java/org/microg/gms/auth/AuthManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/auth/AuthManagerServiceImpl.java b/play-services-core/src/main/java/org/microg/gms/auth/AuthManagerServiceImpl.java index add16c40..93fb0468 100644 --- a/play-services-core/src/main/java/org/microg/gms/auth/AuthManagerServiceImpl.java +++ b/play-services-core/src/main/java/org/microg/gms/auth/AuthManagerServiceImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -70,6 +70,13 @@ public class AuthManagerServiceImpl extends IAuthManagerService.Stub { boolean notify = extras.getBoolean(KEY_HANDLE_NOTIFICATION, false); Log.d(TAG, "getToken: account:" + accountName + " scope:" + scope + " extras:" + extras + ", notify: " + notify); + + /* + * TODO: This scope seems to be invalid (according to https://developers.google.com/oauthplayground/), + * but is used in some applications anyway. Removing it is unlikely a good solution, but works for now. + */ + scope = scope.replace("https://www.googleapis.com/auth/identity.plus.page.impersonation ", ""); + AuthManager authManager = new AuthManager(context, accountName, packageName, scope); try { AuthResponse res = authManager.requestAuth(false); diff --git a/play-services-core/src/main/java/org/microg/gms/auth/AuthRequest.java b/play-services-core/src/main/java/org/microg/gms/auth/AuthRequest.java index ec1b17b8..a3e1e9da 100644 --- a/play-services-core/src/main/java/org/microg/gms/auth/AuthRequest.java +++ b/play-services-core/src/main/java/org/microg/gms/auth/AuthRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/auth/AuthResponse.java b/play-services-core/src/main/java/org/microg/gms/auth/AuthResponse.java index b953e89f..24fb4c64 100644 --- a/play-services-core/src/main/java/org/microg/gms/auth/AuthResponse.java +++ b/play-services-core/src/main/java/org/microg/gms/auth/AuthResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/auth/login/AssistantActivity.java b/play-services-core/src/main/java/org/microg/gms/auth/login/AssistantActivity.java index 44857006..f126918e 100644 --- a/play-services-core/src/main/java/org/microg/gms/auth/login/AssistantActivity.java +++ b/play-services-core/src/main/java/org/microg/gms/auth/login/AssistantActivity.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/auth/login/LoginActivity.java b/play-services-core/src/main/java/org/microg/gms/auth/login/LoginActivity.java index 62aef071..6ae43052 100644 --- a/play-services-core/src/main/java/org/microg/gms/auth/login/LoginActivity.java +++ b/play-services-core/src/main/java/org/microg/gms/auth/login/LoginActivity.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,6 +27,7 @@ import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; +import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; @@ -134,12 +135,6 @@ public class LoginActivity extends AssistantActivity { webView.setLayoutParams(new RelativeLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); webView.setBackgroundColor(Color.TRANSPARENT); - webView.setOnLongClickListener(new View.OnLongClickListener() { - @Override - public boolean onLongClick(View v) { - return true; - } - }); prepareWebViewSettings(webView.getSettings()); return webView; } diff --git a/play-services-core/src/main/java/org/microg/gms/auth/loginservice/AccountAuthenticator.java b/play-services-core/src/main/java/org/microg/gms/auth/loginservice/AccountAuthenticator.java index a915e2d6..754f701e 100644 --- a/play-services-core/src/main/java/org/microg/gms/auth/loginservice/AccountAuthenticator.java +++ b/play-services-core/src/main/java/org/microg/gms/auth/loginservice/AccountAuthenticator.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/auth/loginservice/GoogleLoginService.java b/play-services-core/src/main/java/org/microg/gms/auth/loginservice/GoogleLoginService.java index 33255ddd..83739702 100644 --- a/play-services-core/src/main/java/org/microg/gms/auth/loginservice/GoogleLoginService.java +++ b/play-services-core/src/main/java/org/microg/gms/auth/loginservice/GoogleLoginService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/car/CarService.java b/play-services-core/src/main/java/org/microg/gms/car/CarService.java index 44593964..677ab28a 100644 --- a/play-services-core/src/main/java/org/microg/gms/car/CarService.java +++ b/play-services-core/src/main/java/org/microg/gms/car/CarService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/checkin/CheckinClient.java b/play-services-core/src/main/java/org/microg/gms/checkin/CheckinClient.java index 23416c44..c1720970 100644 --- a/play-services-core/src/main/java/org/microg/gms/checkin/CheckinClient.java +++ b/play-services-core/src/main/java/org/microg/gms/checkin/CheckinClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/checkin/CheckinManager.java b/play-services-core/src/main/java/org/microg/gms/checkin/CheckinManager.java index 86bbbca3..6670f774 100644 --- a/play-services-core/src/main/java/org/microg/gms/checkin/CheckinManager.java +++ b/play-services-core/src/main/java/org/microg/gms/checkin/CheckinManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/checkin/CheckinService.java b/play-services-core/src/main/java/org/microg/gms/checkin/CheckinService.java index 92465672..e71623b9 100644 --- a/play-services-core/src/main/java/org/microg/gms/checkin/CheckinService.java +++ b/play-services-core/src/main/java/org/microg/gms/checkin/CheckinService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/checkin/LastCheckinInfo.java b/play-services-core/src/main/java/org/microg/gms/checkin/LastCheckinInfo.java index 10d5a8ee..113f6b1c 100644 --- a/play-services-core/src/main/java/org/microg/gms/checkin/LastCheckinInfo.java +++ b/play-services-core/src/main/java/org/microg/gms/checkin/LastCheckinInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/checkin/TriggerReceiver.java b/play-services-core/src/main/java/org/microg/gms/checkin/TriggerReceiver.java index 0c75a57a..79e14723 100644 --- a/play-services-core/src/main/java/org/microg/gms/checkin/TriggerReceiver.java +++ b/play-services-core/src/main/java/org/microg/gms/checkin/TriggerReceiver.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/common/Build.java b/play-services-core/src/main/java/org/microg/gms/common/Build.java index 2246888b..6dc101bd 100644 --- a/play-services-core/src/main/java/org/microg/gms/common/Build.java +++ b/play-services-core/src/main/java/org/microg/gms/common/Build.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/common/DeviceConfiguration.java b/play-services-core/src/main/java/org/microg/gms/common/DeviceConfiguration.java index 68e5b780..543b677e 100644 --- a/play-services-core/src/main/java/org/microg/gms/common/DeviceConfiguration.java +++ b/play-services-core/src/main/java/org/microg/gms/common/DeviceConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/common/DeviceIdentifier.java b/play-services-core/src/main/java/org/microg/gms/common/DeviceIdentifier.java index e159d809..5a50e5e8 100644 --- a/play-services-core/src/main/java/org/microg/gms/common/DeviceIdentifier.java +++ b/play-services-core/src/main/java/org/microg/gms/common/DeviceIdentifier.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/common/HttpFormClient.java b/play-services-core/src/main/java/org/microg/gms/common/HttpFormClient.java index 4f932fcb..b50aeb71 100644 --- a/play-services-core/src/main/java/org/microg/gms/common/HttpFormClient.java +++ b/play-services-core/src/main/java/org/microg/gms/common/HttpFormClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/common/NonCancelToken.java b/play-services-core/src/main/java/org/microg/gms/common/NonCancelToken.java index 0e50eada..ff97664f 100644 --- a/play-services-core/src/main/java/org/microg/gms/common/NonCancelToken.java +++ b/play-services-core/src/main/java/org/microg/gms/common/NonCancelToken.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/common/PackageUtils.java b/play-services-core/src/main/java/org/microg/gms/common/PackageUtils.java index f74d8b59..bac147c1 100644 --- a/play-services-core/src/main/java/org/microg/gms/common/PackageUtils.java +++ b/play-services-core/src/main/java/org/microg/gms/common/PackageUtils.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/common/PhoneInfo.java b/play-services-core/src/main/java/org/microg/gms/common/PhoneInfo.java index 5352e1f3..2eb527ce 100644 --- a/play-services-core/src/main/java/org/microg/gms/common/PhoneInfo.java +++ b/play-services-core/src/main/java/org/microg/gms/common/PhoneInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/common/Utils.java b/play-services-core/src/main/java/org/microg/gms/common/Utils.java index 4adf51d1..15832f5c 100644 --- a/play-services-core/src/main/java/org/microg/gms/common/Utils.java +++ b/play-services-core/src/main/java/org/microg/gms/common/Utils.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/droidguard/DroidGuardService.java b/play-services-core/src/main/java/org/microg/gms/droidguard/DroidGuardService.java index 4bd128da..ea1efc4a 100644 --- a/play-services-core/src/main/java/org/microg/gms/droidguard/DroidGuardService.java +++ b/play-services-core/src/main/java/org/microg/gms/droidguard/DroidGuardService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/feedback/FeedbackService.java b/play-services-core/src/main/java/org/microg/gms/feedback/FeedbackService.java index 7d6d3160..18b947db 100644 --- a/play-services-core/src/main/java/org/microg/gms/feedback/FeedbackService.java +++ b/play-services-core/src/main/java/org/microg/gms/feedback/FeedbackService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/feeds/SubscribedFeedsProvider.java b/play-services-core/src/main/java/org/microg/gms/feeds/SubscribedFeedsProvider.java index 5bdccdae..4bd79255 100644 --- a/play-services-core/src/main/java/org/microg/gms/feeds/SubscribedFeedsProvider.java +++ b/play-services-core/src/main/java/org/microg/gms/feeds/SubscribedFeedsProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/gcm/Constants.java b/play-services-core/src/main/java/org/microg/gms/gcm/Constants.java index e8aa6833..cc5b7716 100644 --- a/play-services-core/src/main/java/org/microg/gms/gcm/Constants.java +++ b/play-services-core/src/main/java/org/microg/gms/gcm/Constants.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/gcm/McsInputStream.java b/play-services-core/src/main/java/org/microg/gms/gcm/McsInputStream.java index b867f76b..51f6a678 100644 --- a/play-services-core/src/main/java/org/microg/gms/gcm/McsInputStream.java +++ b/play-services-core/src/main/java/org/microg/gms/gcm/McsInputStream.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/gcm/McsOutputStream.java b/play-services-core/src/main/java/org/microg/gms/gcm/McsOutputStream.java index 0d33fa6f..c0277d76 100644 --- a/play-services-core/src/main/java/org/microg/gms/gcm/McsOutputStream.java +++ b/play-services-core/src/main/java/org/microg/gms/gcm/McsOutputStream.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/gcm/McsService.java b/play-services-core/src/main/java/org/microg/gms/gcm/McsService.java index 6ad5e90c..7a86b265 100644 --- a/play-services-core/src/main/java/org/microg/gms/gcm/McsService.java +++ b/play-services-core/src/main/java/org/microg/gms/gcm/McsService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -88,7 +88,7 @@ public class McsService extends IntentService implements Handler.Callback { private PowerManager powerManager; private static PowerManager.WakeLock wakeLock; - private static int delay = 0; + private static long currentDelay = 0; private Intent connectIntent; @@ -131,6 +131,17 @@ public class McsService extends IntentService implements Handler.Callback { return inputStream != null && inputStream.isAlive() && outputStream != null && outputStream.isAlive(); } + public synchronized static long getCurrentDelay() { + long delay = currentDelay == 0 ? 5000 : currentDelay; + if (currentDelay < 60000) currentDelay += 5000; + if (currentDelay >= 60000 && currentDelay < 60000) currentDelay += 60000; + return delay; + } + + public synchronized static void resetCurrentDelay() { + currentDelay = 0; + } + @Override protected void onHandleIntent(Intent intent) { synchronized (McsService.class) { @@ -151,7 +162,6 @@ public class McsService extends IntentService implements Handler.Callback { } private synchronized void connect() { - if (delay < 60000) delay += 5000; try { Log.d(TAG, "Starting MCS connection..."); Socket socket = new Socket(SERVICE_HOST, SERVICE_PORT); @@ -336,7 +346,7 @@ public class McsService extends IntentService implements Handler.Callback { } else { Log.w(TAG, "Unknown message: " + message); } - delay = 0; + resetCurrentDelay(); } catch (Exception e) { mainHandler.dispatchMessage(mainHandler.obtainMessage(MSG_TEARDOWN, e)); } @@ -352,10 +362,11 @@ public class McsService extends IntentService implements Handler.Callback { sslSocket.close(); } catch (Exception ignored) { } - if (delay == 0) { + if (currentDelay == 0) { sendBroadcast(new Intent("org.microg.gms.gcm.RECONNECT"), "org.microg.gms.STATUS_BROADCAST"); } else { - alarmManager.set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + delay, PendingIntent.getBroadcast(this, 1, new Intent(this, TriggerReceiver.class), 0)); + alarmManager.set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + getCurrentDelay(), + PendingIntent.getBroadcast(this, 1, new Intent("org.microg.gms.gcm.RECONNECT", null, this, TriggerReceiver.class), 0)); } alarmManager.cancel(heartbeatIntent); if (wakeLock != null) { diff --git a/play-services-core/src/main/java/org/microg/gms/gcm/PushRegisterService.java b/play-services-core/src/main/java/org/microg/gms/gcm/PushRegisterService.java index 68873611..7dfa7e84 100644 --- a/play-services-core/src/main/java/org/microg/gms/gcm/PushRegisterService.java +++ b/play-services-core/src/main/java/org/microg/gms/gcm/PushRegisterService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/gcm/RegisterRequest.java b/play-services-core/src/main/java/org/microg/gms/gcm/RegisterRequest.java index aea450d6..a4265f09 100644 --- a/play-services-core/src/main/java/org/microg/gms/gcm/RegisterRequest.java +++ b/play-services-core/src/main/java/org/microg/gms/gcm/RegisterRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/gcm/RegisterResponse.java b/play-services-core/src/main/java/org/microg/gms/gcm/RegisterResponse.java index 3ee4b8fb..88afd2ce 100644 --- a/play-services-core/src/main/java/org/microg/gms/gcm/RegisterResponse.java +++ b/play-services-core/src/main/java/org/microg/gms/gcm/RegisterResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/gcm/TriggerReceiver.java b/play-services-core/src/main/java/org/microg/gms/gcm/TriggerReceiver.java index 6f9a74ff..c9fbdb33 100644 --- a/play-services-core/src/main/java/org/microg/gms/gcm/TriggerReceiver.java +++ b/play-services-core/src/main/java/org/microg/gms/gcm/TriggerReceiver.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,10 +16,13 @@ package org.microg.gms.gcm; +import android.app.AlarmManager; +import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; +import android.os.SystemClock; import android.preference.PreferenceManager; import android.support.v4.content.WakefulBroadcastReceiver; import android.util.Log; @@ -31,22 +34,38 @@ public class TriggerReceiver extends WakefulBroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { boolean force = "android.provider.Telephony.SECRET_CODE".equals(intent.getAction()); + AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); + ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean(PREF_ENABLE_GCM, false) || force) { - if (!McsService.isConnected() || force) { + if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) { + McsService.resetCurrentDelay(); + } - ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo networkInfo = cm.getActiveNetworkInfo(); - if (networkInfo != null && networkInfo.isConnected() || force) { + NetworkInfo networkInfo = cm.getActiveNetworkInfo(); + if (networkInfo != null && networkInfo.isConnected() || force) { + if (!McsService.isConnected() || force) { startWakefulService(context, new Intent(McsService.ACTION_CONNECT, null, context, McsService.class)); } else { - Log.d(TAG, "Ignoring " + intent + ": network is offline"); + if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) { + Log.d(TAG, "Ignoring " + intent + ": service is running. schedule reconnect instead."); + scheduleReconnect(context, alarmManager); + } else { + Log.d(TAG, "Ignoring " + intent + ": service is running. heartbeat instead."); + startWakefulService(context, new Intent(McsService.ACTION_HEARTBEAT, null, context, McsService.class)); + } } } else { - Log.d(TAG, "Ignoring " + intent + ": service is running"); + Log.d(TAG, "Ignoring " + intent + ": network is offline, scheduling new attempt."); + scheduleReconnect(context, alarmManager); } } else { Log.d(TAG, "Ignoring " + intent + ": gcm is disabled"); } } + + private void scheduleReconnect(Context context, AlarmManager alarmManager) { + alarmManager.set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + McsService.getCurrentDelay(), + PendingIntent.getBroadcast(context, 1, new Intent("org.microg.gms.gcm.RECONNECT", null, context, TriggerReceiver.class), 0)); + } } diff --git a/play-services-core/src/main/java/org/microg/gms/gservices/DatabaseHelper.java b/play-services-core/src/main/java/org/microg/gms/gservices/DatabaseHelper.java index 4db030bd..5e02cad5 100644 --- a/play-services-core/src/main/java/org/microg/gms/gservices/DatabaseHelper.java +++ b/play-services-core/src/main/java/org/microg/gms/gservices/DatabaseHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/gservices/GServices.java b/play-services-core/src/main/java/org/microg/gms/gservices/GServices.java index ed5f7355..f3aae2b9 100644 --- a/play-services-core/src/main/java/org/microg/gms/gservices/GServices.java +++ b/play-services-core/src/main/java/org/microg/gms/gservices/GServices.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/gservices/GServicesProvider.java b/play-services-core/src/main/java/org/microg/gms/gservices/GServicesProvider.java index 2c8dacf0..7abdbaaf 100644 --- a/play-services-core/src/main/java/org/microg/gms/gservices/GServicesProvider.java +++ b/play-services-core/src/main/java/org/microg/gms/gservices/GServicesProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/icing/AppDataSearchImpl.java b/play-services-core/src/main/java/org/microg/gms/icing/AppDataSearchImpl.java index d0e2be7b..14d0689a 100644 --- a/play-services-core/src/main/java/org/microg/gms/icing/AppDataSearchImpl.java +++ b/play-services-core/src/main/java/org/microg/gms/icing/AppDataSearchImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/icing/GlobalSearchAdminImpl.java b/play-services-core/src/main/java/org/microg/gms/icing/GlobalSearchAdminImpl.java index 324aed4f..c36ab4c1 100644 --- a/play-services-core/src/main/java/org/microg/gms/icing/GlobalSearchAdminImpl.java +++ b/play-services-core/src/main/java/org/microg/gms/icing/GlobalSearchAdminImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/icing/IndexService.java b/play-services-core/src/main/java/org/microg/gms/icing/IndexService.java index 6a980e34..47641ee9 100644 --- a/play-services-core/src/main/java/org/microg/gms/icing/IndexService.java +++ b/play-services-core/src/main/java/org/microg/gms/icing/IndexService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/icing/LightweightAppDataSearchImpl.java b/play-services-core/src/main/java/org/microg/gms/icing/LightweightAppDataSearchImpl.java index 84aa5f18..d8eff058 100644 --- a/play-services-core/src/main/java/org/microg/gms/icing/LightweightAppDataSearchImpl.java +++ b/play-services-core/src/main/java/org/microg/gms/icing/LightweightAppDataSearchImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/icing/LightweightIndexService.java b/play-services-core/src/main/java/org/microg/gms/icing/LightweightIndexService.java index afb3520c..37fdb3da 100644 --- a/play-services-core/src/main/java/org/microg/gms/icing/LightweightIndexService.java +++ b/play-services-core/src/main/java/org/microg/gms/icing/LightweightIndexService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/icing/SearchCorporaImpl.java b/play-services-core/src/main/java/org/microg/gms/icing/SearchCorporaImpl.java index b036bb61..15725de1 100644 --- a/play-services-core/src/main/java/org/microg/gms/icing/SearchCorporaImpl.java +++ b/play-services-core/src/main/java/org/microg/gms/icing/SearchCorporaImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/icing/SearchQueriesImpl.java b/play-services-core/src/main/java/org/microg/gms/icing/SearchQueriesImpl.java index d58e8710..705aeb65 100644 --- a/play-services-core/src/main/java/org/microg/gms/icing/SearchQueriesImpl.java +++ b/play-services-core/src/main/java/org/microg/gms/icing/SearchQueriesImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/location/GoogleLocationManager.java b/play-services-core/src/main/java/org/microg/gms/location/GoogleLocationManager.java index bd7d427e..5c6070ca 100644 --- a/play-services-core/src/main/java/org/microg/gms/location/GoogleLocationManager.java +++ b/play-services-core/src/main/java/org/microg/gms/location/GoogleLocationManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,24 +16,30 @@ package org.microg.gms.location; -import android.Manifest; import android.app.PendingIntent; import android.content.Context; -import android.content.pm.PackageManager; import android.location.Location; import android.location.LocationManager; + import com.google.android.gms.location.ILocationListener; import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.internal.LocationRequestUpdateData; import java.util.ArrayList; import java.util.List; +import static android.Manifest.permission.ACCESS_COARSE_LOCATION; +import static android.Manifest.permission.ACCESS_FINE_LOCATION; +import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static android.location.LocationManager.GPS_PROVIDER; import static android.location.LocationManager.NETWORK_PROVIDER; +import static com.google.android.gms.location.LocationRequest.PRIORITY_HIGH_ACCURACY; +import static com.google.android.gms.location.LocationRequest.PRIORITY_NO_POWER; public class GoogleLocationManager implements LocationChangeListener { private static final String MOCK_PROVIDER = "mock"; private static final long SWITCH_ON_FRESHNESS_CLIFF_MS = 30000; // 30 seconds + private static final String ACCESS_MOCK_LOCATION = "android.permission.ACCESS_MOCK_LOCATION"; private Context context; private LocationManager locationManager; @@ -69,8 +75,7 @@ public class GoogleLocationManager implements LocationChangeListener { return network; } else if (networkPermission) { Location network = networkProvider.getLastLocation(); - if (network != null && network.getExtras() != null && - network.getExtras().getParcelable("no_gps_location") instanceof Location) { + if (network != null && network.getExtras() != null && network.getExtras().getParcelable("no_gps_location") instanceof Location) { network = network.getExtras().getParcelable("no_gps_location"); } return network; @@ -79,42 +84,35 @@ public class GoogleLocationManager implements LocationChangeListener { } private boolean hasCoarseLocationPermission() { - return context.checkCallingPermission(Manifest.permission.ACCESS_COARSE_LOCATION) == - PackageManager.PERMISSION_GRANTED || hasFineLocationPermission(); + return context.checkCallingPermission(ACCESS_COARSE_LOCATION) == PERMISSION_GRANTED || hasFineLocationPermission(); } private boolean hasFineLocationPermission() { - return context.checkCallingPermission(Manifest.permission.ACCESS_FINE_LOCATION) == - PackageManager.PERMISSION_GRANTED; + return context.checkCallingPermission(ACCESS_FINE_LOCATION) == PERMISSION_GRANTED; } private boolean hasMockLocationPermission() { - return context.checkCallingPermission(Manifest.permission.ACCESS_MOCK_LOCATION) == - PackageManager.PERMISSION_GRANTED; + return context.checkCallingPermission(ACCESS_MOCK_LOCATION) == PERMISSION_GRANTED; } private void requestLocationUpdates(LocationRequestHelper request) { currentRequests.add(request); - if (request.hasFinePermission && - request.locationRequest.getPriority() == LocationRequest.PRIORITY_HIGH_ACCURACY) + if (request.hasFinePermission && request.locationRequest.getPriority() == PRIORITY_HIGH_ACCURACY) gpsProvider.addRequest(request); - if (request.hasCoarsePermission && - request.locationRequest.getPriority() != LocationRequest.PRIORITY_NO_POWER) + if (request.hasCoarsePermission && request.locationRequest.getPriority() != PRIORITY_NO_POWER) networkProvider.addRequest(request); } public void requestLocationUpdates(LocationRequest request, ILocationListener listener, - String packageName) { - requestLocationUpdates( - new LocationRequestHelper(context, request, hasFineLocationPermission(), - hasCoarseLocationPermission(), packageName, listener)); + String packageName) { + requestLocationUpdates(new LocationRequestHelper(context, request, hasFineLocationPermission(), + hasCoarseLocationPermission(), packageName, listener)); } public void requestLocationUpdates(LocationRequest request, PendingIntent intent, - String packageName) { - requestLocationUpdates( - new LocationRequestHelper(context, request, hasFineLocationPermission(), - hasCoarseLocationPermission(), packageName, intent)); + String packageName) { + requestLocationUpdates(new LocationRequestHelper(context, request, hasFineLocationPermission(), + hasCoarseLocationPermission(), packageName, intent)); } private void removeLocationUpdates(LocationRequestHelper request) { @@ -141,6 +139,21 @@ public class GoogleLocationManager implements LocationChangeListener { } } + public void updateLocationRequest(LocationRequestUpdateData data) { + if (data.opCode == LocationRequestUpdateData.REQUEST_UPDATES) { + requestLocationUpdates(new LocationRequestHelper(context, hasFineLocationPermission(), hasCoarseLocationPermission(), null, data)); + } else if (data.opCode == LocationRequestUpdateData.REMOVE_UPDATES) { + for (int i = 0; i < currentRequests.size(); i++) { + if (currentRequests.get(i).respondsTo(data.listener) + || currentRequests.get(i).respondsTo(data.pendingIntent) + || currentRequests.get(i).respondsTo(data.callback)) { + removeLocationUpdates(currentRequests.get(i)); + i--; + } + } + } + } + public void setMockMode(boolean mockMode) { if (!hasMockLocationPermission()) return; @@ -157,8 +170,7 @@ public class GoogleLocationManager implements LocationChangeListener { public void onLocationChanged() { for (int i = 0; i < currentRequests.size(); i++) { LocationRequestHelper request = currentRequests.get(i); - if (!request - .report(getLocation(request.hasFinePermission, request.hasCoarsePermission))) { + if (!request.report(getLocation(request.hasFinePermission, request.hasCoarsePermission))) { removeLocationUpdates(request); i--; } diff --git a/play-services-core/src/main/java/org/microg/gms/location/GoogleLocationManagerService.java b/play-services-core/src/main/java/org/microg/gms/location/GoogleLocationManagerService.java index e2716d54..021953a3 100644 --- a/play-services-core/src/main/java/org/microg/gms/location/GoogleLocationManagerService.java +++ b/play-services-core/src/main/java/org/microg/gms/location/GoogleLocationManagerService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,8 +25,6 @@ import org.microg.gms.BaseService; import org.microg.gms.common.Services; public class GoogleLocationManagerService extends BaseService { - private static final String TAG = "GmsLocManagerSvc"; - private GoogleLocationManagerServiceImpl impl = new GoogleLocationManagerServiceImpl(this); public GoogleLocationManagerService() { diff --git a/play-services-core/src/main/java/org/microg/gms/location/GoogleLocationManagerServiceImpl.java b/play-services-core/src/main/java/org/microg/gms/location/GoogleLocationManagerServiceImpl.java index 5da8e47f..2b3bc1de 100644 --- a/play-services-core/src/main/java/org/microg/gms/location/GoogleLocationManagerServiceImpl.java +++ b/play-services-core/src/main/java/org/microg/gms/location/GoogleLocationManagerServiceImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,22 +20,37 @@ import android.app.PendingIntent; import android.content.Context; import android.location.Location; import android.os.IBinder; +import android.os.Parcel; import android.os.RemoteException; import android.util.Log; + +import com.google.android.gms.common.api.Status; +import com.google.android.gms.location.ActivityRecognitionResult; import com.google.android.gms.location.Geofence; import com.google.android.gms.location.GeofencingRequest; +import com.google.android.gms.location.GestureRequest; +import com.google.android.gms.location.ILocationListener; +import com.google.android.gms.location.LocationAvailability; import com.google.android.gms.location.LocationRequest; -import com.google.android.gms.location.LocationStatus; +import com.google.android.gms.location.LocationSettingsRequest; import com.google.android.gms.location.internal.IGeofencerCallbacks; import com.google.android.gms.location.internal.IGoogleLocationManagerService; -import com.google.android.gms.location.ILocationListener; +import com.google.android.gms.location.internal.ISettingsCallback; import com.google.android.gms.location.internal.LocationRequestInternal; -import com.google.android.gms.location.places.*; +import com.google.android.gms.location.internal.LocationRequestUpdateData; +import com.google.android.gms.location.places.AutocompleteFilter; +import com.google.android.gms.location.places.NearbyAlertRequest; +import com.google.android.gms.location.places.PlaceFilter; +import com.google.android.gms.location.places.PlaceReport; +import com.google.android.gms.location.places.PlaceRequest; +import com.google.android.gms.location.places.UserAddedPlace; +import com.google.android.gms.location.places.UserDataType; import com.google.android.gms.location.places.internal.IPlacesCallbacks; import com.google.android.gms.location.places.internal.PlacesParams; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.LatLngBounds; +import java.util.Arrays; import java.util.List; public class GoogleLocationManagerServiceImpl extends IGoogleLocationManagerService.Stub { @@ -56,30 +71,30 @@ public class GoogleLocationManagerServiceImpl extends IGoogleLocationManagerServ @Override public void addGeofencesList(List geofences, PendingIntent pendingIntent, - IGeofencerCallbacks callbacks, String packageName) throws RemoteException { + IGeofencerCallbacks callbacks, String packageName) throws RemoteException { Log.d(TAG, "addGeofencesList: " + geofences); } @Override public void removeGeofencesByIntent(PendingIntent pendingIntent, IGeofencerCallbacks callbacks, - String packageName) throws RemoteException { + String packageName) throws RemoteException { Log.d(TAG, "removeGeofencesByIntent: " + pendingIntent); } @Override public void removeGeofencesById(String[] geofenceRequestIds, IGeofencerCallbacks callbacks, - String packageName) throws RemoteException { - Log.d(TAG, "removeGeofencesById: " + geofenceRequestIds); + String packageName) throws RemoteException { + Log.d(TAG, "removeGeofencesById: " + Arrays.toString(geofenceRequestIds)); } @Override - public void iglms4(IGeofencerCallbacks callbacks, String packageName) throws RemoteException { - Log.d(TAG, "iglms4: " + packageName); + public void removeAllGeofences(IGeofencerCallbacks callbacks, String packageName) throws RemoteException { + Log.d(TAG, "removeAllGeofences"); } @Override public void requestActivityUpdates(long detectionIntervalMillis, boolean alwaysTrue, - PendingIntent callbackIntent) throws RemoteException { + PendingIntent callbackIntent) throws RemoteException { Log.d(TAG, "requestActivityUpdates: " + callbackIntent); } @@ -88,6 +103,36 @@ public class GoogleLocationManagerServiceImpl extends IGoogleLocationManagerServ Log.d(TAG, "removeActivityUpdates: " + callbackIntent); } + @Override + public ActivityRecognitionResult getLastActivity(String packageName) throws RemoteException { + Log.d(TAG, "getLastActivity"); + return null; + } + + @Override + public Status iglms65(PendingIntent pendingIntent) throws RemoteException { + Log.d(TAG, "iglms65"); + return null; + } + + @Override + public Status iglms66(PendingIntent pendingIntent) throws RemoteException { + Log.d(TAG, "iglms66"); + return null; + } + + @Override + public Status requestGestureUpdates(GestureRequest request, PendingIntent pendingIntent) throws RemoteException { + Log.d(TAG, "requestGestureUpdates"); + return null; + } + + @Override + public Status iglms61(PendingIntent pendingIntent) throws RemoteException { + Log.d(TAG, "iglms61"); + return null; + } + @Override public Location getLastLocation() throws RemoteException { Log.d(TAG, "getLastLocation"); @@ -96,14 +141,14 @@ public class GoogleLocationManagerServiceImpl extends IGoogleLocationManagerServ @Override public void requestLocationUpdatesWithListener(LocationRequest request, - final ILocationListener listener) throws RemoteException { + final ILocationListener listener) throws RemoteException { Log.d(TAG, "requestLocationUpdatesWithListener: " + request); getLocationManager().requestLocationUpdates(request, listener, null); } @Override public void requestLocationUpdatesWithIntent(LocationRequest request, - PendingIntent callbackIntent) throws RemoteException { + PendingIntent callbackIntent) throws RemoteException { Log.d(TAG, "requestLocationUpdatesWithIntent: " + request); getLocationManager().requestLocationUpdates(request, callbackIntent, null); } @@ -122,6 +167,12 @@ public class GoogleLocationManagerServiceImpl extends IGoogleLocationManagerServ getLocationManager().removeLocationUpdates(callbackIntent, null); } + @Override + public void updateLocationRequest(LocationRequestUpdateData locationRequestUpdateData) throws RemoteException { + Log.d(TAG, "updateLocationRequest: " + locationRequestUpdateData); + getLocationManager().updateLocationRequest(locationRequestUpdateData); + } + @Override public void setMockMode(boolean mockMode) throws RemoteException { Log.d(TAG, "setMockMode: " + mockMode); @@ -136,7 +187,7 @@ public class GoogleLocationManagerServiceImpl extends IGoogleLocationManagerServ @Override public void iglms14(LatLngBounds var1, int var2, PlaceFilter var3, PlacesParams var4, - IPlacesCallbacks var5) throws RemoteException { + IPlacesCallbacks var5) throws RemoteException { Log.d(TAG, "iglms14: " + var1); } @@ -171,7 +222,7 @@ public class GoogleLocationManagerServiceImpl extends IGoogleLocationManagerServ @Override public void requestLocationUpdatesWithPackage(LocationRequest request, ILocationListener listener, - String packageName) throws RemoteException { + String packageName) throws RemoteException { Log.d(TAG, "requestLocationUpdatesWithPackage: " + request); getLocationManager().requestLocationUpdates(request, listener, packageName); } @@ -193,7 +244,7 @@ public class GoogleLocationManagerServiceImpl extends IGoogleLocationManagerServ } @Override - public LocationStatus iglms34(String var1) throws RemoteException { + public LocationAvailability iglms34(String var1) throws RemoteException { Log.d(TAG, "iglms34: " + var1); return null; } @@ -212,7 +263,7 @@ public class GoogleLocationManagerServiceImpl extends IGoogleLocationManagerServ @Override public void iglms47(LatLngBounds var1, int var2, String var3, PlaceFilter var4, - PlacesParams var5, IPlacesCallbacks var6) throws RemoteException { + PlacesParams var5, IPlacesCallbacks var6) throws RemoteException { Log.d(TAG, "iglms47: " + var1); } @@ -229,7 +280,7 @@ public class GoogleLocationManagerServiceImpl extends IGoogleLocationManagerServ @Override public void iglms50(UserDataType var1, LatLngBounds var2, List var3, PlacesParams var4, - IPlacesCallbacks var5) throws RemoteException { + IPlacesCallbacks var5) throws RemoteException { Log.d(TAG, "iglms50: " + var1); } @@ -239,15 +290,20 @@ public class GoogleLocationManagerServiceImpl extends IGoogleLocationManagerServ return null; } + @Override + public void iglms63(LocationSettingsRequest settingsRequest, ISettingsCallback callback, String packageName) throws RemoteException { + Log.d(TAG, "iglms63"); + } + @Override public void requestLocationUpdatesInternalWithListener(LocationRequestInternal request, - ILocationListener listener) throws RemoteException { + ILocationListener listener) throws RemoteException { Log.d(TAG, "requestLocationUpdatesInternalWithListener: " + request); } @Override public void requestLocationUpdatesInternalWithIntent(LocationRequestInternal request, - PendingIntent callbackIntent) throws RemoteException { + PendingIntent callbackIntent) throws RemoteException { Log.d(TAG, "requestLocationUpdatesInternalWithIntent: " + request); } @@ -259,19 +315,26 @@ public class GoogleLocationManagerServiceImpl extends IGoogleLocationManagerServ @Override public void iglms55(String var1, LatLngBounds var2, AutocompleteFilter var3, PlacesParams var4, - IPlacesCallbacks var5) throws RemoteException { - Log.d(TAG, "iglms54: " + var1); + IPlacesCallbacks var5) throws RemoteException { + Log.d(TAG, "iglms55: " + var1); } @Override public void addGeofences(GeofencingRequest geofencingRequest, PendingIntent pendingIntent, - IGeofencerCallbacks callbacks) throws RemoteException { + IGeofencerCallbacks callbacks) throws RemoteException { Log.d(TAG, "addGeofences: " + geofencingRequest); } @Override public void iglms58(List var1, PlacesParams var2, IPlacesCallbacks var3) throws RemoteException { - Log.d(TAG, "iglms54: " + var1); + Log.d(TAG, "iglms58: " + var1); + } + + @Override + public boolean onTransact(int code, Parcel data, Parcel reply, int flags) throws RemoteException { + if (super.onTransact(code, data, reply, flags)) return true; + Log.d(TAG, "onTransact [unknown]: " + code + ", " + data + ", " + flags); + return false; } } diff --git a/play-services-core/src/main/java/org/microg/gms/location/LocationChangeListener.java b/play-services-core/src/main/java/org/microg/gms/location/LocationChangeListener.java index fada1a32..6c0aadd8 100644 --- a/play-services-core/src/main/java/org/microg/gms/location/LocationChangeListener.java +++ b/play-services-core/src/main/java/org/microg/gms/location/LocationChangeListener.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/location/LocationRequestHelper.java b/play-services-core/src/main/java/org/microg/gms/location/LocationRequestHelper.java index 7da0716b..aceb5408 100644 --- a/play-services-core/src/main/java/org/microg/gms/location/LocationRequestHelper.java +++ b/play-services-core/src/main/java/org/microg/gms/location/LocationRequestHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,8 +22,15 @@ import android.content.Intent; import android.location.Location; import android.os.RemoteException; import android.util.Log; + +import com.google.android.gms.location.ILocationCallback; import com.google.android.gms.location.ILocationListener; import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationResult; +import com.google.android.gms.location.internal.LocationRequestUpdateData; + +import java.util.Arrays; +import java.util.Collections; public class LocationRequestHelper { public static final String TAG = "GmsLocRequestHelper"; @@ -34,32 +41,40 @@ public class LocationRequestHelper { public final String packageName; private ILocationListener listener; private PendingIntent pendingIntent; + private ILocationCallback callback; private Location lastReport; private int numReports = 0; - public LocationRequestHelper(Context context, LocationRequest locationRequest, - boolean hasFinePermission, boolean hasCoarsePermission, String packageName, - ILocationListener listener) { + private LocationRequestHelper(Context context, LocationRequest locationRequest, boolean hasFinePermission, + boolean hasCoarsePermission, String packageName) { this.context = context; this.locationRequest = locationRequest; this.hasFinePermission = hasFinePermission; this.hasCoarsePermission = hasCoarsePermission; this.packageName = packageName; + } + + public LocationRequestHelper(Context context, LocationRequest locationRequest, boolean hasFinePermission, + boolean hasCoarsePermission, String packageName, ILocationListener listener) { + this(context, locationRequest, hasFinePermission, hasCoarsePermission, packageName); this.listener = listener; } - public LocationRequestHelper(Context context, LocationRequest locationRequest, - boolean hasFinePermission, boolean hasCoarsePermission, String packageName, - PendingIntent pendingIntent) { - this.context = context; - this.locationRequest = locationRequest; - this.hasFinePermission = hasFinePermission; - this.hasCoarsePermission = hasCoarsePermission; - this.packageName = packageName; + public LocationRequestHelper(Context context, LocationRequest locationRequest, boolean hasFinePermission, + boolean hasCoarsePermission, String packageName, PendingIntent pendingIntent) { + this(context, locationRequest, hasFinePermission, hasCoarsePermission, packageName); this.pendingIntent = pendingIntent; } + public LocationRequestHelper(Context context, boolean hasFinePermission, boolean hasCoarsePermission, + String packageName, LocationRequestUpdateData data) { + this(context, data.request.request, hasFinePermission, hasCoarsePermission, packageName); + this.listener = data.listener; + this.pendingIntent = data.pendingIntent; + this.callback = data.callback; + } + /** * @return whether to continue sending reports to this {@link LocationRequestHelper} */ @@ -87,6 +102,12 @@ public class LocationRequestHelper { } catch (PendingIntent.CanceledException e) { return false; } + } else if (callback != null) { + try { + callback.onLocationResult(LocationResult.create(Arrays.asList(location))); + } catch (RemoteException e) { + return false; + } } lastReport = location; numReports++; @@ -109,7 +130,42 @@ public class LocationRequestHelper { this.listener.asBinder().equals(listener.asBinder()); } + public boolean respondsTo(ILocationCallback callback) { + return this.callback != null && callback != null && + this.callback.asBinder().equals(callback.asBinder()); + } + public boolean respondsTo(PendingIntent pendingIntent) { return this.pendingIntent != null && this.pendingIntent.equals(pendingIntent); } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + LocationRequestHelper that = (LocationRequestHelper) o; + + if (hasFinePermission != that.hasFinePermission) return false; + if (hasCoarsePermission != that.hasCoarsePermission) return false; + if (!locationRequest.equals(that.locationRequest)) return false; + if (packageName != null ? !packageName.equals(that.packageName) : that.packageName != null) return false; + if (listener != null ? !listener.equals(that.listener) : that.listener != null) return false; + if (pendingIntent != null ? !pendingIntent.equals(that.pendingIntent) : that.pendingIntent != null) + return false; + return !(callback != null ? !callback.equals(that.callback) : that.callback != null); + + } + + @Override + public int hashCode() { + int result = locationRequest.hashCode(); + result = 31 * result + (hasFinePermission ? 1 : 0); + result = 31 * result + (hasCoarsePermission ? 1 : 0); + result = 31 * result + (packageName != null ? packageName.hashCode() : 0); + result = 31 * result + (listener != null ? listener.hashCode() : 0); + result = 31 * result + (pendingIntent != null ? pendingIntent.hashCode() : 0); + result = 31 * result + (callback != null ? callback.hashCode() : 0); + return result; + } } diff --git a/play-services-core/src/main/java/org/microg/gms/location/MockLocationProvider.java b/play-services-core/src/main/java/org/microg/gms/location/MockLocationProvider.java index 61659ad8..31a42d60 100644 --- a/play-services-core/src/main/java/org/microg/gms/location/MockLocationProvider.java +++ b/play-services-core/src/main/java/org/microg/gms/location/MockLocationProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/location/RealLocationProvider.java b/play-services-core/src/main/java/org/microg/gms/location/RealLocationProvider.java index d5c61d0d..13486656 100644 --- a/play-services-core/src/main/java/org/microg/gms/location/RealLocationProvider.java +++ b/play-services-core/src/main/java/org/microg/gms/location/RealLocationProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/location/ReportingAndroidService.java b/play-services-core/src/main/java/org/microg/gms/location/ReportingAndroidService.java index 1e8bb666..e9f6332c 100644 --- a/play-services-core/src/main/java/org/microg/gms/location/ReportingAndroidService.java +++ b/play-services-core/src/main/java/org/microg/gms/location/ReportingAndroidService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/location/ReportingServiceImpl.java b/play-services-core/src/main/java/org/microg/gms/location/ReportingServiceImpl.java index 172ff1c5..386a0f4c 100644 --- a/play-services-core/src/main/java/org/microg/gms/location/ReportingServiceImpl.java +++ b/play-services-core/src/main/java/org/microg/gms/location/ReportingServiceImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,13 +17,37 @@ package org.microg.gms.location; import android.accounts.Account; +import android.os.RemoteException; +import com.google.android.gms.location.places.PlaceReport; import com.google.android.gms.location.reporting.ReportingState; +import com.google.android.gms.location.reporting.UploadRequest; +import com.google.android.gms.location.reporting.UploadRequestResult; import com.google.android.gms.location.reporting.internal.IReportingService; public class ReportingServiceImpl extends IReportingService.Stub { - public ReportingState unknown3(Account account) { - + @Override + public ReportingState getReportingState(Account account) throws RemoteException { return new ReportingState(); } + + @Override + public int tryOptIn(Account account) throws RemoteException { + return 0; + } + + @Override + public UploadRequestResult requestUpload(UploadRequest request) throws RemoteException { + return new UploadRequestResult(); + } + + @Override + public int cancelUploadRequest(long l) throws RemoteException { + return 0; + } + + @Override + public int reportDeviceAtPlace(Account account, PlaceReport report) throws RemoteException { + return 0; + } } diff --git a/play-services-core/src/main/java/org/microg/gms/mdm/NetworkQualityService.java b/play-services-core/src/main/java/org/microg/gms/mdm/NetworkQualityService.java index be6ba77b..f7fd70ef 100644 --- a/play-services-core/src/main/java/org/microg/gms/mdm/NetworkQualityService.java +++ b/play-services-core/src/main/java/org/microg/gms/mdm/NetworkQualityService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/people/DatabaseHelper.java b/play-services-core/src/main/java/org/microg/gms/people/DatabaseHelper.java index 90e8d98c..79198173 100644 --- a/play-services-core/src/main/java/org/microg/gms/people/DatabaseHelper.java +++ b/play-services-core/src/main/java/org/microg/gms/people/DatabaseHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/people/PeopleManager.java b/play-services-core/src/main/java/org/microg/gms/people/PeopleManager.java index 348f384d..8eaa9893 100644 --- a/play-services-core/src/main/java/org/microg/gms/people/PeopleManager.java +++ b/play-services-core/src/main/java/org/microg/gms/people/PeopleManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/people/PeopleService.java b/play-services-core/src/main/java/org/microg/gms/people/PeopleService.java index efee125d..396588b5 100644 --- a/play-services-core/src/main/java/org/microg/gms/people/PeopleService.java +++ b/play-services-core/src/main/java/org/microg/gms/people/PeopleService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/people/PeopleServiceImpl.java b/play-services-core/src/main/java/org/microg/gms/people/PeopleServiceImpl.java index a237f25a..10a20b40 100644 --- a/play-services-core/src/main/java/org/microg/gms/people/PeopleServiceImpl.java +++ b/play-services-core/src/main/java/org/microg/gms/people/PeopleServiceImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/playlog/PlayLogService.java b/play-services-core/src/main/java/org/microg/gms/playlog/PlayLogService.java index 12335343..d220001b 100644 --- a/play-services-core/src/main/java/org/microg/gms/playlog/PlayLogService.java +++ b/play-services-core/src/main/java/org/microg/gms/playlog/PlayLogService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/playlog/PlayLogServiceImpl.java b/play-services-core/src/main/java/org/microg/gms/playlog/PlayLogServiceImpl.java index 18add4a5..850c3863 100644 --- a/play-services-core/src/main/java/org/microg/gms/playlog/PlayLogServiceImpl.java +++ b/play-services-core/src/main/java/org/microg/gms/playlog/PlayLogServiceImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/plus/PlusOneButtonImpl.java b/play-services-core/src/main/java/org/microg/gms/plus/PlusOneButtonImpl.java index 61eda38e..aeb0db78 100644 --- a/play-services-core/src/main/java/org/microg/gms/plus/PlusOneButtonImpl.java +++ b/play-services-core/src/main/java/org/microg/gms/plus/PlusOneButtonImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/settings/GoogleSettingsProvider.java b/play-services-core/src/main/java/org/microg/gms/settings/GoogleSettingsProvider.java index 128d4795..39e7fd7e 100644 --- a/play-services-core/src/main/java/org/microg/gms/settings/GoogleSettingsProvider.java +++ b/play-services-core/src/main/java/org/microg/gms/settings/GoogleSettingsProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/ui/SettingsActivity.java b/play-services-core/src/main/java/org/microg/gms/ui/SettingsActivity.java index bdef1143..56051448 100644 --- a/play-services-core/src/main/java/org/microg/gms/ui/SettingsActivity.java +++ b/play-services-core/src/main/java/org/microg/gms/ui/SettingsActivity.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/wearable/ConfigurationDatabaseHelper.java b/play-services-core/src/main/java/org/microg/gms/wearable/ConfigurationDatabaseHelper.java index d02e21dc..07ceb449 100644 --- a/play-services-core/src/main/java/org/microg/gms/wearable/ConfigurationDatabaseHelper.java +++ b/play-services-core/src/main/java/org/microg/gms/wearable/ConfigurationDatabaseHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/wearable/DataItemInternal.java b/play-services-core/src/main/java/org/microg/gms/wearable/DataItemInternal.java index a52b87d5..9a657dd9 100644 --- a/play-services-core/src/main/java/org/microg/gms/wearable/DataItemInternal.java +++ b/play-services-core/src/main/java/org/microg/gms/wearable/DataItemInternal.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/wearable/DataItemRecord.java b/play-services-core/src/main/java/org/microg/gms/wearable/DataItemRecord.java index d9c0c8fd..e86b4de4 100644 --- a/play-services-core/src/main/java/org/microg/gms/wearable/DataItemRecord.java +++ b/play-services-core/src/main/java/org/microg/gms/wearable/DataItemRecord.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/wearable/NodeDatabaseHelper.java b/play-services-core/src/main/java/org/microg/gms/wearable/NodeDatabaseHelper.java index 2acdfe37..2ddfe586 100644 --- a/play-services-core/src/main/java/org/microg/gms/wearable/NodeDatabaseHelper.java +++ b/play-services-core/src/main/java/org/microg/gms/wearable/NodeDatabaseHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/wearable/WearableService.java b/play-services-core/src/main/java/org/microg/gms/wearable/WearableService.java index 90ae6aa3..c9ebc5d3 100644 --- a/play-services-core/src/main/java/org/microg/gms/wearable/WearableService.java +++ b/play-services-core/src/main/java/org/microg/gms/wearable/WearableService.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/gms/wearable/WearableServiceImpl.java b/play-services-core/src/main/java/org/microg/gms/wearable/WearableServiceImpl.java index be64d065..50bfab62 100644 --- a/play-services-core/src/main/java/org/microg/gms/wearable/WearableServiceImpl.java +++ b/play-services-core/src/main/java/org/microg/gms/wearable/WearableServiceImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/java/org/microg/tools/AccountPickerActivity.java b/play-services-core/src/main/java/org/microg/tools/AccountPickerActivity.java index 8373200a..1185a4e3 100644 --- a/play-services-core/src/main/java/org/microg/tools/AccountPickerActivity.java +++ b/play-services-core/src/main/java/org/microg/tools/AccountPickerActivity.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2015 µg Project Team + * Copyright 2013-2015 microG Project Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/play-services-core/src/main/res/drawable-hdpi/ic_microg_app.png b/play-services-core/src/main/res/drawable-hdpi/ic_microg_app.png deleted file mode 100644 index efa2db94d3b96b35e8badab9d8ddcfa8de895a71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3293 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 bjN|_RHD`RmOA#>Y00000NkvXXu0mjfKyVNS diff --git a/play-services-core/src/main/res/drawable-mdpi/ic_microg_app.png b/play-services-core/src/main/res/drawable-mdpi/ic_microg_app.png deleted file mode 100644 index 708426171f09dca59db690788fa8ef8a18c06abe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2287 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 Hu0mjf+)eC- diff --git a/play-services-core/src/main/res/drawable-xxxhdpi/ic_microg_app.png b/play-services-core/src/main/res/drawable-xxxhdpi/ic_microg_app.png deleted file mode 100644 index 55da9800e96b565a125e73143755e8263bfcfe69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9594 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 diff --git a/play-services-core/src/main/res/drawable/circle_shape_background.xml b/play-services-core/src/main/res/drawable/circle_shape_background.xml index 5fe78f3c..cf0d0c4d 100644 --- a/play-services-core/src/main/res/drawable/circle_shape_background.xml +++ b/play-services-core/src/main/res/drawable/circle_shape_background.xml @@ -1,5 +1,5 @@ - µg сервиси + microG сервиси Само тренутак… - com.google Гугл Ако наставите дозволићете овој апликацији и Гуглу да користе ваше податке у складу са њиховим условима коришћења и политикама приватности. %s жели да: %s жели да користи: - µg менаџер Гугл налога + менаџер Гугл налога Дозволи Одбиј @@ -33,5 +32,5 @@ Поуздај се у Гугл за дозволе апликација Ако је искључено корисник ће бити упитан пре него се захтев за овлашћењем апликација пошаље Гуглу. Неке апликације неће моћи да користе Гуглов налог ако је ово искључено. - µg поставке + microG поставке diff --git a/play-services-core/src/main/res/values/colors.xml b/play-services-core/src/main/res/values/colors.xml index fe1e9818..65142a91 100644 --- a/play-services-core/src/main/res/values/colors.xml +++ b/play-services-core/src/main/res/values/colors.xml @@ -1,5 +1,5 @@ - µg Services + microG Services Core Just a sec… - com.google Google By continuing, you allow this app and Google to use your information in accordance with their respective terms of service and privacy policies. %s would like to: %s would like to use: - µg Google Account Manager + Google Account Manager Allow Deny @@ -36,7 +35,7 @@ checkin_enable_service Enable device checkin - Device checkin is a hidden process that is used to create an unique identifier for Google services. µg GmsCore strips identifying bits other than your Google account name from this data. + Device checkin is a hidden process that is used to create an unique identifier for Google services. microG Services strips identifying bits other than your Google account name from this data. gcm_enable_mcs_service Enable Google Cloud Messaging Google Cloud Messaging is a push notification provider used by many applications. To use it you must enable device checkin. @@ -44,5 +43,7 @@ Background services Components - µg Settings + microG Settings + + com.google diff --git a/play-services-core/src/main/res/values/themes.xml b/play-services-core/src/main/res/values/themes.xml index f6ba6117..532a2694 100644 --- a/play-services-core/src/main/res/values/themes.xml +++ b/play-services-core/src/main/res/values/themes.xml @@ -1,5 +1,5 @@