Permalink
1 comment
on commit
sign in to comment.
Showing
with
888 additions
and 333 deletions.
- +3 −1 app-android/app/build.gradle
- +30 −51 app-android/app/src/main/AndroidManifest.xml
- +7 −6 app-android/app/src/main/java/de/tutao/tutanota/Crypto.java
- +4 −22 app-android/app/src/main/java/de/tutao/tutanota/MainActivity.java
- +12 −0 app-android/app/src/main/java/de/tutao/tutanota/Native.java
- +5 −0 app-android/app/src/main/java/de/tutao/tutanota/Utils.java
- +0 −21 app-android/app/src/main/java/de/tutao/tutanota/push/GcmListener.java
- +0 −47 app-android/app/src/main/java/de/tutao/tutanota/push/GcmRegistrationService.java
- +0 −17 app-android/app/src/main/java/de/tutao/tutanota/push/PushInstanceIdListenerService.java
- +199 −0 app-android/app/src/main/java/de/tutao/tutanota/push/PushNotificationService.java
- +120 −0 app-android/app/src/main/java/de/tutao/tutanota/push/SseStorage.java
- BIN app-android/app/src/main/res/drawable-hdpi/ic_status.png
- BIN app-android/app/src/main/res/drawable-xhdpi/ic_status.png
- BIN app-android/app/src/main/res/drawable-xxhdpi/ic_status.png
- BIN app-android/app/src/main/res/drawable-xxxhdpi/ic_status.png
- +15 −0 flow/api/entities/sys.js
- +3 −0 flow/api/types.js
- +4 −0 src/api/Env.js
- +3 −2 src/api/common/TutanotaConstants.js
- +1 −1 src/api/entities/sys/AccountingInfo.js
- +1 −1 src/api/entities/sys/AdministratedGroup.js
- +1 −1 src/api/entities/sys/AdministratedGroupsRef.js
- +1 −1 src/api/entities/sys/AuditLogEntry.js
- +1 −1 src/api/entities/sys/AuditLogRef.js
- +1 −1 src/api/entities/sys/AuthenticatedDevice.js
- +1 −1 src/api/entities/sys/Authentication.js
- +1 −1 src/api/entities/sys/AutoLoginDataDelete.js
- +1 −1 src/api/entities/sys/AutoLoginDataGet.js
- +1 −1 src/api/entities/sys/AutoLoginDataReturn.js
- +1 −1 src/api/entities/sys/AutoLoginPostReturn.js
- +1 −1 src/api/entities/sys/Booking.js
- +1 −1 src/api/entities/sys/BookingItem.js
- +1 −1 src/api/entities/sys/BookingServiceData.js
- +1 −1 src/api/entities/sys/BookingsRef.js
- +1 −1 src/api/entities/sys/BootstrapFeature.js
- +1 −1 src/api/entities/sys/BrandingDomainData.js
- +1 −1 src/api/entities/sys/BrandingDomainDeleteData.js
- +1 −1 src/api/entities/sys/Bucket.js
- +1 −1 src/api/entities/sys/BucketPermission.js
- +1 −1 src/api/entities/sys/Challenge.js
- +1 −1 src/api/entities/sys/ChangePasswordData.js
- +1 −1 src/api/entities/sys/Chat.js
- +1 −1 src/api/entities/sys/CreateCustomerServerPropertiesData.js
- +1 −1 src/api/entities/sys/CreateCustomerServerPropertiesReturn.js
- +1 −1 src/api/entities/sys/CreateGroupData.js
- +1 −1 src/api/entities/sys/CreateGroupListData.js
- +1 −1 src/api/entities/sys/CreateSessionData.js
- +1 −1 src/api/entities/sys/CreateSessionReturn.js
- +1 −1 src/api/entities/sys/CreditCard.js
- +1 −1 src/api/entities/sys/CustomDomainData.js
- +1 −1 src/api/entities/sys/CustomDomainReturn.js
- +1 −1 src/api/entities/sys/Customer.js
- +1 −1 src/api/entities/sys/CustomerData.js
- +1 −1 src/api/entities/sys/CustomerInfo.js
- +1 −1 src/api/entities/sys/CustomerInfoReturn.js
- +1 −1 src/api/entities/sys/CustomerProperties.js
- +1 −1 src/api/entities/sys/CustomerReturn.js
- +1 −1 src/api/entities/sys/CustomerServerProperties.js
- +1 −1 src/api/entities/sys/DebitServicePutData.js
- +1 −1 src/api/entities/sys/DeleteCustomerData.js
- +1 −1 src/api/entities/sys/DomainInfo.js
- +1 −1 src/api/entities/sys/DomainMailAddressAvailabilityData.js
- +1 −1 src/api/entities/sys/DomainMailAddressAvailabilityReturn.js
- +1 −1 src/api/entities/sys/DomainsRef.js
- +1 −1 src/api/entities/sys/EmailSenderListElement.js
- +1 −1 src/api/entities/sys/EntityEventBatch.js
- +1 −1 src/api/entities/sys/EntityUpdate.js
- +1 −1 src/api/entities/sys/Exception.js
- +1 −1 src/api/entities/sys/ExternalPropertiesReturn.js
- +1 −1 src/api/entities/sys/ExternalUserReference.js
- +1 −1 src/api/entities/sys/Feature.js
- +1 −1 src/api/entities/sys/File.js
- +40 −0 src/api/entities/sys/GeneratedIdWrapper.js
- +1 −1 src/api/entities/sys/Group.js
- +1 −1 src/api/entities/sys/GroupInfo.js
- +1 −1 src/api/entities/sys/GroupMember.js
- +1 −1 src/api/entities/sys/GroupMembership.js
- +1 −1 src/api/entities/sys/GroupRoot.js
- +1 −1 src/api/entities/sys/Invoice.js
- +1 −1 src/api/entities/sys/InvoiceInfo.js
- +1 −1 src/api/entities/sys/KeyPair.js
- +1 −1 src/api/entities/sys/LocationServiceGetReturn.js
- +1 −1 src/api/entities/sys/Login.js
- +1 −1 src/api/entities/sys/MailAddressAlias.js
- +1 −1 src/api/entities/sys/MailAddressAliasServiceData.js
- +1 −1 src/api/entities/sys/MailAddressAliasServiceDataDelete.js
- +1 −1 src/api/entities/sys/MailAddressAliasServiceReturn.js
- +1 −1 src/api/entities/sys/MailAddressAvailabilityData.js
- +1 −1 src/api/entities/sys/MailAddressAvailabilityReturn.js
- +1 −1 src/api/entities/sys/MailAddressToGroup.js
- +1 −1 src/api/entities/sys/MembershipAddData.js
- +1 −1 src/api/entities/sys/MembershipRemoveData.js
- +110 −5 src/api/entities/sys/OrderProcessingAgreement.js
- +37 −5 src/api/entities/sys/OrderProcessingAgreements.js
- +1 −1 src/api/entities/sys/OtpChallenge.js
- +1 −1 src/api/entities/sys/PaymentDataServiceGetReturn.js
- +1 −1 src/api/entities/sys/PaymentDataServicePutData.js
- +1 −1 src/api/entities/sys/PaymentDataServicePutReturn.js
- +1 −1 src/api/entities/sys/PdfInvoiceServiceData.js
- +1 −1 src/api/entities/sys/PdfInvoiceServiceReturn.js
- +1 −1 src/api/entities/sys/Permission.js
- +1 −1 src/api/entities/sys/PhoneNumber.js
- +1 −1 src/api/entities/sys/PremiumFeatureData.js
- +1 −1 src/api/entities/sys/PremiumFeatureReturn.js
- +1 −1 src/api/entities/sys/PriceData.js
- +1 −1 src/api/entities/sys/PriceItemData.js
- +1 −1 src/api/entities/sys/PriceRequestData.js
- +1 −1 src/api/entities/sys/PriceServiceData.js
- +1 −1 src/api/entities/sys/PriceServiceReturn.js
- +1 −1 src/api/entities/sys/PublicKeyData.js
- +1 −1 src/api/entities/sys/PublicKeyReturn.js
- +1 −1 src/api/entities/sys/PushIdentifier.js
- +1 −1 src/api/entities/sys/PushIdentifierList.js
- +1 −1 src/api/entities/sys/RegistrationCaptchaServiceData.js
- +1 −1 src/api/entities/sys/RegistrationCaptchaServiceReturn.js
- +1 −1 src/api/entities/sys/RegistrationConfigReturn.js
- +1 −1 src/api/entities/sys/RegistrationReturn.js
- +1 −1 src/api/entities/sys/RegistrationServiceData.js
- +1 −1 src/api/entities/sys/ResetPasswordData.js
- +1 −1 src/api/entities/sys/RootInstance.js
- +1 −1 src/api/entities/sys/SaltData.js
- +1 −1 src/api/entities/sys/SaltReturn.js
- +1 −1 src/api/entities/sys/SecondFactor.js
- +1 −1 src/api/entities/sys/SecondFactorAuthAllowedReturn.js
- +1 −1 src/api/entities/sys/SecondFactorAuthData.js
- +1 −1 src/api/entities/sys/SecondFactorAuthGetData.js
- +1 −1 src/api/entities/sys/SecondFactorAuthGetReturn.js
- +1 −1 src/api/entities/sys/SecondFactorAuthentication.js
- +1 −1 src/api/entities/sys/SendRegistrationCodeData.js
- +1 −1 src/api/entities/sys/SendRegistrationCodeReturn.js
- +1 −1 src/api/entities/sys/Session.js
- +44 −5 src/api/entities/sys/SignOrderProcessingAgreementData.js
- +50 −0 src/api/entities/sys/SseConnectData.js
- +1 −1 src/api/entities/sys/StringConfigValue.js
- +1 −1 src/api/entities/sys/StringWrapper.js
- +1 −1 src/api/entities/sys/SwitchAccountTypeData.js
- +1 −1 src/api/entities/sys/SystemKeysReturn.js
- +1 −1 src/api/entities/sys/U2fChallenge.js
- +1 −1 src/api/entities/sys/U2fKey.js
- +1 −1 src/api/entities/sys/U2fRegisteredDevice.js
- +1 −1 src/api/entities/sys/U2fResponseData.js
- +1 −1 src/api/entities/sys/UpdateAdminshipData.js
- +1 −1 src/api/entities/sys/UpdatePermissionKeyData.js
- +1 −1 src/api/entities/sys/User.js
- +1 −1 src/api/entities/sys/UserAreaGroups.js
- +1 −1 src/api/entities/sys/UserAuthentication.js
- +1 −1 src/api/entities/sys/UserData.js
- +1 −1 src/api/entities/sys/UserDataDelete.js
- +1 −1 src/api/entities/sys/UserExternalAuthInfo.js
- +1 −1 src/api/entities/sys/UserIdData.js
- +1 −1 src/api/entities/sys/UserIdReturn.js
- +1 −1 src/api/entities/sys/UserReturn.js
- +1 −1 src/api/entities/sys/VariableExternalAuthInfo.js
- +1 −1 src/api/entities/sys/VerifyRegistrationCodeData.js
- +1 −1 src/api/entities/sys/Version.js
- +1 −1 src/api/entities/sys/VersionData.js
- +1 −1 src/api/entities/sys/VersionInfo.js
- +1 −1 src/api/entities/sys/VersionReturn.js
- +1 −1 src/api/entities/sys/WebsocketWrapper.js
- +1 −1 src/api/entities/sys/WhitelabelChild.js
- +1 −1 src/api/entities/sys/WhitelabelChildrenRef.js
- +1 −1 src/api/entities/sys/WhitelabelConfig.js
- +1 −1 src/api/entities/sys/WhitelabelParent.js
- +4 −0 src/api/main/WorkerClient.js
- +5 −0 src/api/worker/WorkerImpl.js
- +54 −12 src/native/PushServiceApp.js
| @@ -1,71 +1,50 @@ | ||
| <?xml version="1.0" encoding="utf-8"?> | ||
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||
| - package="de.tutao.tutanota"> | ||
| + package="de.tutao.tutanota"> | ||
| - <uses-permission android:name="android.permission.INTERNET" /> | ||
| - <uses-permission android:name="android.permission.READ_CONTACTS" /> | ||
| - <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> | ||
| - <uses-permission android:name="android.permission.VIBRATE" /> | ||
| + <uses-permission android:name="android.permission.INTERNET"/> | ||
| + <uses-permission android:name="android.permission.READ_CONTACTS"/> | ||
| + <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> | ||
| + <uses-permission android:name="android.permission.VIBRATE"/> | ||
| <application | ||
| - android:allowBackup="true" | ||
| - android:icon="@mipmap/ic_launcher" | ||
| - android:label="@string/app_name" | ||
| - android:supportsRtl="true" | ||
| - android:theme="@style/AppTheme"> | ||
| + android:allowBackup="false" | ||
| + android:icon="@mipmap/ic_launcher" | ||
| + android:label="@string/app_name" | ||
| + android:supportsRtl="true" | ||
| + android:theme="@style/AppTheme"> | ||
| <activity | ||
| - android:name=".MainActivity" | ||
| - android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" | ||
| - android:launchMode="singleInstance" | ||
| - android:theme="@style/SplashTheme"> | ||
| + android:name=".MainActivity" | ||
| + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" | ||
| + android:launchMode="singleInstance" | ||
| + android:theme="@style/SplashTheme"> | ||
| <intent-filter> | ||
| - <action android:name="android.intent.action.MAIN" /> | ||
| - <category android:name="android.intent.category.LAUNCHER" /> | ||
| + <action android:name="android.intent.action.MAIN"/> | ||
| + <category android:name="android.intent.category.LAUNCHER"/> | ||
| </intent-filter> | ||
| <intent-filter> | ||
| - <action android:name="android.intent.action.SEND" /> | ||
| - <action android:name="android.intent.action.SEND_MULTIPLE" /> | ||
| + <action android:name="android.intent.action.SEND"/> | ||
| + <action android:name="android.intent.action.SEND_MULTIPLE"/> | ||
| - <category android:name="android.intent.category.DEFAULT" /> | ||
| - <data android:mimeType="*/*" /> | ||
| + <category android:name="android.intent.category.DEFAULT"/> | ||
| + <data android:mimeType="*/*"/> | ||
| </intent-filter> | ||
| </activity> | ||
| <provider | ||
| - android:name="android.support.v4.content.FileProvider" | ||
| - android:authorities="${contentProviderAuthority}" | ||
| - android:exported="false" | ||
| - android:grantUriPermissions="true"> | ||
| + android:name="android.support.v4.content.FileProvider" | ||
| + android:authorities="${contentProviderAuthority}" | ||
| + android:exported="false" | ||
| + android:grantUriPermissions="true"> | ||
| <meta-data | ||
| - android:name="android.support.FILE_PROVIDER_PATHS" | ||
| - android:resource="@xml/paths" /> | ||
| + android:name="android.support.FILE_PROVIDER_PATHS" | ||
| + android:resource="@xml/paths"/> | ||
| </provider> | ||
| - <receiver | ||
| - android:name="com.google.android.gms.gcm.GcmReceiver" | ||
| - android:exported="true" | ||
| - android:permission="com.google.android.c2dm.permission.SEND"> | ||
| - <intent-filter> | ||
| - <action android:name="com.google.android.c2dm.intent.RECEIVE" /> | ||
| - <category android:name="com.example.gcm" /> | ||
| - </intent-filter> | ||
| - </receiver> | ||
| <service | ||
| - android:name="de.tutao.tutanota.push.GcmListener" | ||
| - android:exported="false"> | ||
| - <intent-filter> | ||
| - <action android:name="com.google.android.c2dm.intent.RECEIVE" /> | ||
| - </intent-filter> | ||
| - </service> | ||
| - <service | ||
| - android:name="de.tutao.tutanota.push.PushInstanceIdListenerService" | ||
| - android:exported="false"> | ||
| - <intent-filter> | ||
| - <action android:name="com.google.android.gms.iid.InstanceID" /> | ||
| - </intent-filter> | ||
| - </service> | ||
| - <service | ||
| - android:name="de.tutao.tutanota.push.GcmRegistrationService" | ||
| - android:exported="false" /> | ||
| + android:name=".push.PushNotificationService" | ||
| + android:enabled="true" | ||
| + android:exported="false" | ||
| + android:process=":pushprocess"/> | ||
| </application> | ||
| </manifest> |
| @@ -1,21 +0,0 @@ | ||
| -package de.tutao.tutanota.push; | ||
| - | ||
| -import android.content.Context; | ||
| -import android.os.Bundle; | ||
| -import android.os.Vibrator; | ||
| - | ||
| -import com.google.android.gms.gcm.GcmListenerService; | ||
| - | ||
| -/** | ||
| - * Created by mpfau on 4/16/17. | ||
| - */ | ||
| - | ||
| -public class GcmListener extends GcmListenerService { | ||
| - | ||
| - @Override | ||
| - public void onMessageReceived(String s, Bundle data) { | ||
| - super.onMessageReceived(s, data); | ||
| - Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); | ||
| - v.vibrate(300); | ||
| - } | ||
| -} |
| @@ -1,47 +0,0 @@ | ||
| -package de.tutao.tutanota.push; | ||
| - | ||
| -import android.app.IntentService; | ||
| -import android.content.Intent; | ||
| -import android.support.annotation.Nullable; | ||
| -import android.util.Log; | ||
| - | ||
| -import com.google.android.gms.gcm.GoogleCloudMessaging; | ||
| -import com.google.android.gms.iid.InstanceID; | ||
| - | ||
| -import org.jdeferred.FailCallback; | ||
| - | ||
| -import java.io.IOException; | ||
| - | ||
| -import de.tutao.tutanota.JsRequest; | ||
| - | ||
| - | ||
| -/** | ||
| - * Created by mpfau on 4/16/17. | ||
| - */ | ||
| -public class GcmRegistrationService extends IntentService { | ||
| - static String SenderId = "707517914653"; | ||
| - static String TAG = "GcmRegistrationService"; | ||
| - | ||
| - public GcmRegistrationService() { | ||
| - super("GcmRegistrationService"); | ||
| - } | ||
| - | ||
| - @Override | ||
| - protected void onHandleIntent(@Nullable Intent intent) { | ||
| -// InstanceID instanceID = InstanceID.getInstance(this); | ||
| -// try { | ||
| -// String token = instanceID.getToken(SenderId, | ||
| -// GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); | ||
| -// activity.nativeImpl.sendRequest(JsRequest.updatePushIdentifier, new Object[] { token }).fail(new FailCallback<Exception>() { | ||
| -// @Override | ||
| -// public void onFail(Exception e) { | ||
| -// Log.e(TAG, "could not retrieve token", e); | ||
| -// } | ||
| -// }); | ||
| -// } catch (IOException e) { | ||
| -// Log.e(TAG, "could not retrieve token", e); | ||
| -// } | ||
| - } | ||
| - | ||
| - | ||
| -} |
| @@ -1,17 +0,0 @@ | ||
| -package de.tutao.tutanota.push; | ||
| - | ||
| -import android.content.Intent; | ||
| - | ||
| -import com.google.android.gms.iid.InstanceIDListenerService; | ||
| - | ||
| -/** | ||
| - * Created by mpfau on 4/16/17. | ||
| - */ | ||
| - | ||
| -public class PushInstanceIdListenerService extends InstanceIDListenerService { | ||
| - @Override | ||
| - public void onTokenRefresh() { | ||
| - Intent intent = new Intent(this, GcmRegistrationService.class); | ||
| - startService(intent); | ||
| - } | ||
| -} |
Oops, something went wrong.
This comment has been minimized.
MartinHennrichJun 16, 2018
Thanks, this commit is wonderful!😍 👍
Finally the push service is handled by a Tutao operated server and not on a Google machine.
MartinHennrich commented onJun 16, 2018
449c36eThanks, this commit is wonderful!😍 👍
Finally the push service is handled by a Tutao operated server and not on a Google machine.