diff --git a/.drone.yml b/.drone.yml index b426187951..4f9ecb9d83 100644 --- a/.drone.yml +++ b/.drone.yml @@ -59,7 +59,6 @@ matrix: FLAVOUR: - Generic - Gplay - - Modified - Lint branches: master diff --git a/build.gradle b/build.gradle index 90883436ea..ebc373b0ff 100644 --- a/build.gradle +++ b/build.gradle @@ -98,15 +98,6 @@ android { dimension "default" } - modified { - // structure is: - // domain tld - // domain name - // .client - applicationId 'com.custom.client' - dimension "default" - } - versionDev { applicationId "com.nextcloud.android.beta" dimension "default" @@ -114,10 +105,6 @@ android { versionName "20180121" } } - - configurations { - modifiedCompile - } } @@ -216,7 +203,7 @@ dependencies { implementation 'com.madgag.spongycastle:pkix:1.54.0.0' implementation 'com.google.code.gson:gson:2.8.2' - // uncomment for gplay, modified + // uncomment for gplay // implementation "com.google.firebase:firebase-messaging:${googleLibraryVersion}" // implementation "com.google.android.gms:play-services-base:${googleLibraryVersion}" // implementation "com.google.android.gms:play-services-gcm:${googleLibraryVersion}" @@ -260,5 +247,5 @@ tasks.withType(Test) { } } -// uncomment for gplay, modified (must be at the bottom) +// uncomment for gplay (must be at the bottom) //apply plugin: 'com.google.gms.google-services' diff --git a/src/modified/AndroidManifest.xml b/src/modified/AndroidManifest.xml deleted file mode 100644 index 77b4e52b6d..0000000000 --- a/src/modified/AndroidManifest.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/modified/google-services.json b/src/modified/google-services.json deleted file mode 100644 index c115e9e3ab..0000000000 --- a/src/modified/google-services.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "project_info": { - "project_number": "", - "project_id": "" - }, - "client": [ - { - "client_info": { - "mobilesdk_app_id": "", - "android_client_info": { - "package_name": "com.custom.client" - } - }, - "oauth_client": [], - "api_key": [ - { - "current_key": "" - } - ], - "services": { - "analytics_service": { - "status": 1 - }, - "appinvite_service": { - "status": 1, - "other_platform_oauth_client": [] - }, - "ads_service": { - "status": 1 - } - } - } - ], - "configuration_version": "1" -} diff --git a/src/modified/java/com/owncloud/android/authentication/ModifiedAuthenticatorActivity.java b/src/modified/java/com/owncloud/android/authentication/ModifiedAuthenticatorActivity.java deleted file mode 100644 index 618578891a..0000000000 --- a/src/modified/java/com/owncloud/android/authentication/ModifiedAuthenticatorActivity.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.owncloud.android.authentication; - -import android.os.Bundle; - -import com.owncloud.android.utils.GooglePlayUtils; - -/** - * Nextcloud Android client application - * - * @author Mario Danic - * Copyright (C) 2017 Mario Danic - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -public class ModifiedAuthenticatorActivity extends AuthenticatorActivity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - GooglePlayUtils.checkPlayServices(this); - } - - @Override - protected void onResume() { - super.onResume(); - GooglePlayUtils.checkPlayServices(this); - } - -} \ No newline at end of file diff --git a/src/modified/java/com/owncloud/android/services/firebase/NCFirebaseInstanceIDService.java b/src/modified/java/com/owncloud/android/services/firebase/NCFirebaseInstanceIDService.java deleted file mode 100644 index f894264460..0000000000 --- a/src/modified/java/com/owncloud/android/services/firebase/NCFirebaseInstanceIDService.java +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Nextcloud Android client application - * - * @author Mario Danic - * Copyright (C) 2017 Mario Danic - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -package com.owncloud.android.services.firebase; - -import android.text.TextUtils; - -import com.google.firebase.iid.FirebaseInstanceId; -import com.google.firebase.iid.FirebaseInstanceIdService; -import com.owncloud.android.MainApp; -import com.owncloud.android.R; -import com.owncloud.android.db.PreferenceManager; -import com.owncloud.android.utils.PushUtils; - -public class NCFirebaseInstanceIDService extends FirebaseInstanceIdService { - - @Override - public void onTokenRefresh() { - //You can implement this method to store the token on your server - if (!TextUtils.isEmpty(getResources().getString(R.string.push_server_url))) { - PreferenceManager.setPushToken(MainApp.getAppContext(), FirebaseInstanceId.getInstance().getToken()); - PushUtils.pushRegistrationToServer(); - } - } -} - diff --git a/src/modified/java/com/owncloud/android/services/firebase/NCFirebaseMessagingService.java b/src/modified/java/com/owncloud/android/services/firebase/NCFirebaseMessagingService.java deleted file mode 100644 index 970fe7c736..0000000000 --- a/src/modified/java/com/owncloud/android/services/firebase/NCFirebaseMessagingService.java +++ /dev/null @@ -1,65 +0,0 @@ -/** - * Nextcloud Android client application - * - * @author Mario Danic - * Copyright (C) 2017 Mario Danic - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -package com.owncloud.android.services.firebase; - -import android.app.NotificationManager; -import android.app.PendingIntent; -import android.content.Context; -import android.content.Intent; -import android.graphics.BitmapFactory; -import android.media.RingtoneManager; -import android.support.v4.app.NotificationCompat; - -import com.google.firebase.messaging.FirebaseMessagingService; -import com.google.firebase.messaging.RemoteMessage; -import com.owncloud.android.MainApp; -import com.owncloud.android.R; -import com.owncloud.android.ui.activity.NotificationsActivity; -import com.owncloud.android.utils.ThemeUtils; - -public class NCFirebaseMessagingService extends FirebaseMessagingService { - - @Override - public void onMessageReceived(RemoteMessage remoteMessage) { - super.onMessageReceived(remoteMessage); - - sendNotification(MainApp.getAppContext().getString(R.string.new_notification_received)); - } - - private void sendNotification(String contentTitle) { - Intent intent = new Intent(this, NotificationsActivity.class); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT); - - NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) - .setSmallIcon(R.drawable.notification_icon) - .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.notification_icon)) - .setColor(ThemeUtils.primaryColor()) - .setContentTitle(contentTitle) - .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)) - .setAutoCancel(true) - .setContentIntent(pendingIntent); - - NotificationManager notificationManager = - (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); - - notificationManager.notify(0, notificationBuilder.build()); - } -} \ No newline at end of file diff --git a/src/modified/java/com/owncloud/android/utils/AnalyticsUtils.java b/src/modified/java/com/owncloud/android/utils/AnalyticsUtils.java deleted file mode 100644 index 855cb4ec47..0000000000 --- a/src/modified/java/com/owncloud/android/utils/AnalyticsUtils.java +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Nextcloud Android client application - * - * @author Mario Danic - * Copyright (C) 2017 Mario Danic - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -package com.owncloud.android.utils; - -import android.app.Activity; - -import com.google.firebase.analytics.FirebaseAnalytics; -import com.owncloud.android.MainApp; - -public class AnalyticsUtils { - - public static void setCurrentScreenName(Activity activity, String s, String s1) { - FirebaseAnalytics.getInstance(activity).setCurrentScreen(activity, s, s1); - } - - public static void disableAnalytics() { - FirebaseAnalytics.getInstance(MainApp.getAppContext()).setAnalyticsCollectionEnabled(false); - } - -} diff --git a/src/modified/java/com/owncloud/android/utils/GooglePlayUtils.java b/src/modified/java/com/owncloud/android/utils/GooglePlayUtils.java deleted file mode 100644 index 9dd560a126..0000000000 --- a/src/modified/java/com/owncloud/android/utils/GooglePlayUtils.java +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Nextcloud Android client application - * - * @author Mario Danic - * Copyright (C) 2017 Mario Danic - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package com.owncloud.android.utils; - -import android.app.Activity; -import android.util.Log; - -import com.google.android.gms.common.ConnectionResult; -import com.google.android.gms.common.GoogleApiAvailability; - -public class GooglePlayUtils { - private static final int PLAY_SERVICES_RESOLUTION_REQUEST = 9000; - private static final String TAG = "GooglePlayUtils"; - - public static boolean checkPlayServices(Activity activity) { - GoogleApiAvailability apiAvailability = GoogleApiAvailability.getInstance(); - int resultCode = apiAvailability.isGooglePlayServicesAvailable(activity); - if (resultCode != ConnectionResult.SUCCESS) { - if (apiAvailability.isUserResolvableError(resultCode)) { - apiAvailability.getErrorDialog(activity, resultCode, PLAY_SERVICES_RESOLUTION_REQUEST) - .show(); - } else { - Log.i(TAG, "This device is not supported."); - activity.finish(); - } - return false; - } - return true; - } - -} \ No newline at end of file diff --git a/src/modified/java/com/owncloud/android/utils/PushUtils.java b/src/modified/java/com/owncloud/android/utils/PushUtils.java deleted file mode 100644 index 2a848c9b1f..0000000000 --- a/src/modified/java/com/owncloud/android/utils/PushUtils.java +++ /dev/null @@ -1,338 +0,0 @@ -/* - * Nextcloud Android client application - * - * @author Mario Danic - * Copyright (C) 2017 Mario Danic - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package com.owncloud.android.utils; - -import android.accounts.Account; -import android.accounts.AuthenticatorException; -import android.accounts.OperationCanceledException; -import android.content.Context; -import android.text.TextUtils; -import android.util.Base64; - -import com.google.gson.Gson; -import com.owncloud.android.MainApp; -import com.owncloud.android.R; -import com.owncloud.android.authentication.AccountUtils; -import com.owncloud.android.datamodel.ArbitraryDataProvider; -import com.owncloud.android.datamodel.PushConfigurationState; -import com.owncloud.android.db.PreferenceManager; -import com.owncloud.android.lib.common.OwnCloudAccount; -import com.owncloud.android.lib.common.OwnCloudClient; -import com.owncloud.android.lib.common.OwnCloudClientManagerFactory; -import com.owncloud.android.lib.common.operations.RemoteOperation; -import com.owncloud.android.lib.common.operations.RemoteOperationResult; -import com.owncloud.android.lib.common.utils.Log_OC; -import com.owncloud.android.lib.resources.notifications.RegisterAccountDeviceForNotificationsOperation; -import com.owncloud.android.lib.resources.notifications.RegisterAccountDeviceForProxyOperation; -import com.owncloud.android.lib.resources.notifications.UnregisterAccountDeviceForNotificationsOperation; -import com.owncloud.android.lib.resources.notifications.UnregisterAccountDeviceForProxyOperation; -import com.owncloud.android.lib.resources.notifications.models.PushResponse; - -import org.apache.commons.httpclient.HttpStatus; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.security.Key; -import java.security.KeyFactory; -import java.security.KeyPair; -import java.security.KeyPairGenerator; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.security.PublicKey; -import java.security.spec.InvalidKeySpecException; -import java.security.spec.PKCS8EncodedKeySpec; -import java.security.spec.X509EncodedKeySpec; -import java.util.Locale; - -public class PushUtils { - - private static final String TAG = "PushUtils"; - private static final String KEYPAIR_FOLDER = "nc-keypair"; - private static final String KEYPAIR_FILE_NAME = "push_key"; - private static final String KEYPAIR_PRIV_EXTENSION = ".priv"; - private static final String KEYPAIR_PUB_EXTENSION = ".pub"; - - public static final String KEY_PUSH = "push"; - - private static ArbitraryDataProvider arbitraryDataProvider; - - public static String generateSHA512Hash(String pushToken) { - MessageDigest messageDigest = null; - try { - messageDigest = MessageDigest.getInstance("SHA-512"); - messageDigest.update(pushToken.getBytes()); - return bytesToHex(messageDigest.digest()); - } catch (NoSuchAlgorithmException e) { - Log_OC.d(TAG, "SHA-512 algorithm not supported"); - } - return ""; - } - - public static String bytesToHex(byte[] bytes) { - StringBuilder result = new StringBuilder(); - for (byte individualByte : bytes) { - result.append(Integer.toString((individualByte & 0xff) + 0x100, 16) - .substring(1)); - } - return result.toString(); - } - - private static int generateRsa2048KeyPair() { - migratePushKeys(); - String keyPath = MainApp.getAppContext().getFilesDir().getAbsolutePath() + File.separator + - MainApp.getDataFolder() + File.separator + KEYPAIR_FOLDER; - - String privateKeyPath = keyPath + File.separator + KEYPAIR_FILE_NAME + KEYPAIR_PRIV_EXTENSION; - String publicKeyPath = keyPath + File.separator + KEYPAIR_FILE_NAME + KEYPAIR_PUB_EXTENSION; - File keyPathFile = new File(keyPath); - - if (!new File(privateKeyPath).exists() && !new File(publicKeyPath).exists()) { - try { - if (!keyPathFile.exists()) { - keyPathFile.mkdir(); - } - KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); - keyGen.initialize(2048); - - KeyPair pair = keyGen.generateKeyPair(); - int statusPrivate = saveKeyToFile(pair.getPrivate(), privateKeyPath); - int statusPublic = saveKeyToFile(pair.getPublic(), publicKeyPath); - - if (statusPrivate == 0 && statusPublic == 0) { - // all went well - return 0; - } else { - return -2; - } - } catch (NoSuchAlgorithmException e) { - Log_OC.d(TAG, "RSA algorithm not supported"); - } - } else { - // we already have the key - return -1; - } - - // we failed to generate the key - return -2; - } - - private static void deleteRegistrationForAccount(Account account) { - Context context = MainApp.getAppContext(); - OwnCloudAccount ocAccount = null; - arbitraryDataProvider = new ArbitraryDataProvider(MainApp.getAppContext().getContentResolver()); - - try { - ocAccount = new OwnCloudAccount(account, context); - OwnCloudClient mClient = OwnCloudClientManagerFactory.getDefaultSingleton(). - getClientFor(ocAccount, context); - - RemoteOperation unregisterAccountDeviceForNotificationsOperation = new - UnregisterAccountDeviceForNotificationsOperation(); - - RemoteOperationResult remoteOperationResult = unregisterAccountDeviceForNotificationsOperation. - execute(mClient); - - if (remoteOperationResult.getHttpCode() == HttpStatus.SC_ACCEPTED) { - String arbitraryValue; - if (!TextUtils.isEmpty(arbitraryValue = arbitraryDataProvider.getValue(account, KEY_PUSH))) { - Gson gson = new Gson(); - PushConfigurationState pushArbitraryData = gson.fromJson(arbitraryValue, - PushConfigurationState.class); - RemoteOperation unregisterAccountDeviceForProxyOperation = - new UnregisterAccountDeviceForProxyOperation(context.getResources(). - getString(R.string.push_server_url), - pushArbitraryData.getDeviceIdentifier(), - pushArbitraryData.getDeviceIdentifierSignature(), - pushArbitraryData.getUserPublicKey()); - - remoteOperationResult = unregisterAccountDeviceForProxyOperation.execute(mClient); - - if (remoteOperationResult.isSuccess()) { - arbitraryDataProvider.deleteKeyForAccount(account.name, KEY_PUSH); - } - } - } - - - } catch (com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException e) { - Log_OC.d(TAG, "Failed to find an account"); - } catch (AuthenticatorException e) { - Log_OC.d(TAG, "Failed via AuthenticatorException"); - } catch (IOException e) { - Log_OC.d(TAG, "Failed via IOException"); - } catch (OperationCanceledException e) { - Log_OC.d(TAG, "Failed via OperationCanceledException"); - } - } - - public static void pushRegistrationToServer() { - String token = PreferenceManager.getPushToken(MainApp.getAppContext()); - arbitraryDataProvider = new ArbitraryDataProvider(MainApp.getAppContext().getContentResolver()); - - if (!TextUtils.isEmpty(MainApp.getAppContext().getResources().getString(R.string.push_server_url)) && - !TextUtils.isEmpty(token)) { - PushUtils.generateRsa2048KeyPair(); - String pushTokenHash = PushUtils.generateSHA512Hash(token).toLowerCase(Locale.ROOT); - PublicKey devicePublicKey = (PublicKey) PushUtils.readKeyFromFile(true); - if (devicePublicKey != null) { - byte[] publicKeyBytes = Base64.encode(devicePublicKey.getEncoded(), Base64.NO_WRAP); - String publicKey = new String(publicKeyBytes); - publicKey = publicKey.replaceAll("(.{64})", "$1\n"); - - publicKey = "-----BEGIN PUBLIC KEY-----\n" + publicKey + "\n-----END PUBLIC KEY-----\n"; - - Context context = MainApp.getAppContext(); - String providerValue; - PushConfigurationState accountPushData = null; - Gson gson = new Gson(); - for (Account account : AccountUtils.getAccounts(context)) { - providerValue = arbitraryDataProvider.getValue(account, KEY_PUSH); - if (!TextUtils.isEmpty(providerValue)) { - accountPushData = gson.fromJson(providerValue, - PushConfigurationState.class); - } else { - accountPushData = null; - } - - if (accountPushData != null && !accountPushData.getPushToken().equals(token) && - !accountPushData.isShouldBeDeleted() || - TextUtils.isEmpty(providerValue)) { - try { - OwnCloudAccount ocAccount = new OwnCloudAccount(account, context); - OwnCloudClient mClient = OwnCloudClientManagerFactory.getDefaultSingleton(). - getClientFor(ocAccount, context); - - RemoteOperation registerAccountDeviceForNotificationsOperation = - new RegisterAccountDeviceForNotificationsOperation(pushTokenHash, - publicKey, - context.getResources().getString(R.string.push_server_url)); - - RemoteOperationResult remoteOperationResult = - registerAccountDeviceForNotificationsOperation.execute(mClient); - - if (remoteOperationResult.isSuccess()) { - PushResponse pushResponse = remoteOperationResult.getPushResponseData(); - - RemoteOperation registerAccountDeviceForProxyOperation = new - RegisterAccountDeviceForProxyOperation( - context.getResources().getString(R.string.push_server_url), - token, pushResponse.getDeviceIdentifier(), pushResponse.getSignature(), - pushResponse.getPublicKey()); - - remoteOperationResult = registerAccountDeviceForProxyOperation.execute(mClient); - - if (remoteOperationResult.isSuccess()) { - PushConfigurationState pushArbitraryData = new PushConfigurationState(token, - pushResponse.getDeviceIdentifier(), pushResponse.getSignature(), - pushResponse.getPublicKey(), false); - arbitraryDataProvider.storeOrUpdateKeyValue(account.name, KEY_PUSH, - gson.toJson(pushArbitraryData)); - } - } - } catch (com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException e) { - Log_OC.d(TAG, "Failed to find an account"); - } catch (AuthenticatorException e) { - Log_OC.d(TAG, "Failed via AuthenticatorException"); - } catch (IOException e) { - Log_OC.d(TAG, "Failed via IOException"); - } catch (OperationCanceledException e) { - Log_OC.d(TAG, "Failed via OperationCanceledException"); - } - } else if (accountPushData != null && accountPushData.isShouldBeDeleted()) { - deleteRegistrationForAccount(account); - } - } - } - } - } - - public static Key readKeyFromFile(boolean readPublicKey) { - String keyPath = MainApp.getAppContext().getFilesDir().getAbsolutePath() + File.separator + - MainApp.getDataFolder() + File.separator + KEYPAIR_FOLDER; - - String privateKeyPath = keyPath + File.separator + KEYPAIR_FILE_NAME + KEYPAIR_PRIV_EXTENSION; - String publicKeyPath = keyPath + File.separator + KEYPAIR_FILE_NAME + KEYPAIR_PUB_EXTENSION; - - String path; - - if (readPublicKey) { - path = publicKeyPath; - } else { - path = privateKeyPath; - } - - FileInputStream fileInputStream = null; - try { - fileInputStream = new FileInputStream(path); - byte[] bytes = new byte[fileInputStream.available()]; - fileInputStream.read(bytes); - fileInputStream.close(); - - KeyFactory keyFactory = KeyFactory.getInstance("RSA"); - - if (readPublicKey) { - X509EncodedKeySpec keySpec = new X509EncodedKeySpec(bytes); - return keyFactory.generatePublic(keySpec); - } else { - PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(bytes); - return keyFactory.generatePrivate(keySpec); - } - - } catch (FileNotFoundException e) { - Log_OC.d(TAG, "Failed to find path while reading the Key"); - } catch (IOException e) { - Log_OC.d(TAG, "IOException while reading the key"); - } catch (InvalidKeySpecException e) { - Log_OC.d(TAG, "InvalidKeySpecException while reading the key"); - } catch (NoSuchAlgorithmException e) { - Log_OC.d(TAG, "RSA algorithm not supported"); - } - - return null; - } - - private static int saveKeyToFile(Key key, String path) { - byte[] encoded = key.getEncoded(); - FileOutputStream keyFileOutputStream = null; - try { - if (!new File(path).exists()) { - new File(path).createNewFile(); - } - keyFileOutputStream = new FileOutputStream(path); - keyFileOutputStream.write(encoded); - keyFileOutputStream.close(); - return 0; - } catch (FileNotFoundException e) { - Log_OC.d(TAG, "Failed to save key to file"); - } catch (IOException e) { - Log_OC.d(TAG, "Failed to save key to file via IOException"); - } - - return -1; - } - - private static void migratePushKeys() { - - } -} diff --git a/src/modified/res/layout/drawer.xml b/src/modified/res/layout/drawer.xml deleted file mode 100644 index b83ceb195a..0000000000 --- a/src/modified/res/layout/drawer.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/modified/res/values/setup.xml b/src/modified/res/values/setup.xml deleted file mode 100644 index fab5ff00f6..0000000000 --- a/src/modified/res/values/setup.xml +++ /dev/null @@ -1,144 +0,0 @@ - - - - false - - - Custom - custom - com.custom.client.provider - com.custom.client.provider.UsersAndGroupsSearch - com.custom.client.provider.UsersAndGroupsSearch.action.SHARE_WITH - com.custom.client.provider.Documents - com.custom.client.provider.Files - custom.db - custom - custom - custom - Custom - Mozilla/5.0 (Android) ownCloud-android/%1$s - - - - true - - - regular - true - "https://nextcloud.com/providers" - - - off - off - - - on - true - true - true - - - true - /.Contacts-Backup - 30 - - - true - - - - - #1E2751 - #006AA3 - #007CC2 - @color/white - #7fC0E3 - #FFFFFF - @color/color_accent - @color/white - #D6D7D7 - @color/black - - - #201D2D44 - #40162233 - - - #757575 - #616161 - #ECECEC - - - true - - - false - true - true - true - true - - - false - - - true - - - false - false - false - false - true - https://help.nextcloud.com/c/feature - true - https://nextcloud.com/privacy - false - true - true - false - - "mailto:android@nextcloud.com" - "https://play.google.com/store/apps/details?id=com.nextcloud.client" - https://nextcloud.com/install - - - true - @string/instant_upload_path - false - false - FileUploader.LOCAL_BEHAVIOUR_FORGET - - - - - - false - - https://f-droid.org/repository/browse/?fdid=com.nextcloud.android.beta - https://github.com/nextcloud/android/raw/beta/apks/latest.apk - https://play.google.com/apps/testing/com.nextcloud.client - https://f-droid.org/repository/browse/?fdid=com.nextcloud.client - http://webchat.freenode.net?channels=nextcloud-mobile - https://help.nextcloud.com/c/clients/android - https://www.transifex.com/nextcloud/nextcloud/android/ - https://github.com/nextcloud/android/blob/master/CONTRIBUTING.md - https://github.com/nextcloud/android/issues - - - cloud - - - - - false - - - true - - - - - -