Loading README.md +1 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ For Android 11 and later [you need to add queries](https://github.com/nextcloud/ ```xml <queries> <package android:name="com.nextcloud.client" /> <package android:name="com.nextcloud.android.qa" /> <package android:name="com.nextcloud.android.beta" /> </queries> ``` Loading lib/build.gradle +3 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ android { } } compileOptions { coreLibraryDesugaringEnabled true sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } Loading Loading @@ -97,6 +98,8 @@ detekt { } dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' implementation "androidx.appcompat:appcompat:1.3.1" implementation 'androidx.annotation:annotation:1.3.0' implementation 'androidx.core:core:1.7.0' Loading lib/src/main/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ <queries> <package android:name="com.nextcloud.client" /> <package android:name="com.nextcloud.android.qa" /> <package android:name="com.nextcloud.android.beta" /> </queries> Loading lib/src/main/java/com/nextcloud/android/sso/AccountImporter.java +6 −12 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ import com.nextcloud.android.sso.exceptions.NextcloudFilesAppAccountPermissionNo import com.nextcloud.android.sso.exceptions.NextcloudFilesAppNotInstalledException; import com.nextcloud.android.sso.exceptions.NextcloudFilesAppNotSupportedException; import com.nextcloud.android.sso.exceptions.SSOException; import com.nextcloud.android.sso.model.FilesAppType; import com.nextcloud.android.sso.model.SingleSignOnAccount; import com.nextcloud.android.sso.ui.UiExceptionManager; Loading @@ -74,8 +75,7 @@ public class AccountImporter { private static SharedPreferences SHARED_PREFERENCES; private static final List<String> APPS = Arrays.asList(Constants.PACKAGE_NAME_PROD, Constants.PACKAGE_NAME_DEV); private static final String[] ACCOUNT_TYPES = {Constants.ACCOUNT_TYPE_PROD, Constants.ACCOUNT_TYPE_DEV}; private static final String[] ACCOUNT_TYPES = Arrays.stream(FilesAppType.values()).map(a -> a.accountType).toArray(String[]::new); public static boolean accountsToImportAvailable(Context context) { return findAccounts(context).size() > 0; Loading Loading @@ -131,9 +131,9 @@ public class AccountImporter { private static boolean appInstalledOrNot(Context context) { boolean returnValue = false; PackageManager pm = context.getPackageManager(); for (String app : APPS) { for (final var appType : FilesAppType.values()) { try { pm.getPackageInfo(app, PackageManager.GET_ACTIVITIES); pm.getPackageInfo(appType.packageId, PackageManager.GET_ACTIVITIES); returnValue = true; break; } catch (PackageManager.NameNotFoundException e) { Loading Loading @@ -370,12 +370,7 @@ public class AccountImporter { throw new NextcloudFilesAppAccountPermissionNotGrantedException(); } String componentName; if (account.type.equalsIgnoreCase(Constants.ACCOUNT_TYPE_DEV)) { componentName = Constants.PACKAGE_NAME_DEV; } else { componentName = Constants.PACKAGE_NAME_PROD; } String componentName = FilesAppType.findByAccountType(account.type).packageId; Intent authIntent = new Intent(); authIntent.setComponent(new ComponentName(componentName, Loading @@ -384,7 +379,6 @@ public class AccountImporter { return authIntent; } public static SharedPreferences getSharedPreferences(Context context) { if(SHARED_PREFERENCES != null) { return SHARED_PREFERENCES; Loading lib/src/main/java/com/nextcloud/android/sso/Constants.java +22 −6 Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ package com.nextcloud.android.sso; import com.nextcloud.android.sso.model.FilesAppType; public class Constants { // Authenticator related constants Loading @@ -38,10 +40,24 @@ public class Constants { public static final String EXCEPTION_HTTP_REQUEST_FAILED = "CE_5"; public static final String EXCEPTION_ACCOUNT_ACCESS_DECLINED = "CE_6"; // package related constans public static final String PACKAGE_NAME_PROD = "com.nextcloud.client"; public static final String PACKAGE_NAME_DEV = "com.nextcloud.android.beta"; public static final String ACCOUNT_TYPE_PROD = "nextcloud"; public static final String ACCOUNT_TYPE_DEV = "nextcloud.beta"; // package related constants /** @deprecated Use {@link FilesAppType#packageId} */ @Deprecated public static final String PACKAGE_NAME_PROD = FilesAppType.PROD.packageId; /** @deprecated Use {@link FilesAppType#packageId} */ @Deprecated public static final String PACKAGE_NAME_QA = FilesAppType.QA.packageId; /** @deprecated Use {@link FilesAppType#packageId} */ @Deprecated public static final String PACKAGE_NAME_DEV = FilesAppType.DEV.packageId; /** @deprecated Use {@link FilesAppType#accountType} */ @Deprecated public static final String ACCOUNT_TYPE_PROD = FilesAppType.PROD.accountType; /** @deprecated Use {@link FilesAppType#accountType} */ @Deprecated public static final String ACCOUNT_TYPE_QA = FilesAppType.QA.accountType; /** @deprecated Use {@link FilesAppType#accountType} */ @Deprecated public static final String ACCOUNT_TYPE_DEV = FilesAppType.DEV.accountType; } Loading
README.md +1 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ For Android 11 and later [you need to add queries](https://github.com/nextcloud/ ```xml <queries> <package android:name="com.nextcloud.client" /> <package android:name="com.nextcloud.android.qa" /> <package android:name="com.nextcloud.android.beta" /> </queries> ``` Loading
lib/build.gradle +3 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ android { } } compileOptions { coreLibraryDesugaringEnabled true sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } Loading Loading @@ -97,6 +98,8 @@ detekt { } dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' implementation "androidx.appcompat:appcompat:1.3.1" implementation 'androidx.annotation:annotation:1.3.0' implementation 'androidx.core:core:1.7.0' Loading
lib/src/main/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ <queries> <package android:name="com.nextcloud.client" /> <package android:name="com.nextcloud.android.qa" /> <package android:name="com.nextcloud.android.beta" /> </queries> Loading
lib/src/main/java/com/nextcloud/android/sso/AccountImporter.java +6 −12 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ import com.nextcloud.android.sso.exceptions.NextcloudFilesAppAccountPermissionNo import com.nextcloud.android.sso.exceptions.NextcloudFilesAppNotInstalledException; import com.nextcloud.android.sso.exceptions.NextcloudFilesAppNotSupportedException; import com.nextcloud.android.sso.exceptions.SSOException; import com.nextcloud.android.sso.model.FilesAppType; import com.nextcloud.android.sso.model.SingleSignOnAccount; import com.nextcloud.android.sso.ui.UiExceptionManager; Loading @@ -74,8 +75,7 @@ public class AccountImporter { private static SharedPreferences SHARED_PREFERENCES; private static final List<String> APPS = Arrays.asList(Constants.PACKAGE_NAME_PROD, Constants.PACKAGE_NAME_DEV); private static final String[] ACCOUNT_TYPES = {Constants.ACCOUNT_TYPE_PROD, Constants.ACCOUNT_TYPE_DEV}; private static final String[] ACCOUNT_TYPES = Arrays.stream(FilesAppType.values()).map(a -> a.accountType).toArray(String[]::new); public static boolean accountsToImportAvailable(Context context) { return findAccounts(context).size() > 0; Loading Loading @@ -131,9 +131,9 @@ public class AccountImporter { private static boolean appInstalledOrNot(Context context) { boolean returnValue = false; PackageManager pm = context.getPackageManager(); for (String app : APPS) { for (final var appType : FilesAppType.values()) { try { pm.getPackageInfo(app, PackageManager.GET_ACTIVITIES); pm.getPackageInfo(appType.packageId, PackageManager.GET_ACTIVITIES); returnValue = true; break; } catch (PackageManager.NameNotFoundException e) { Loading Loading @@ -370,12 +370,7 @@ public class AccountImporter { throw new NextcloudFilesAppAccountPermissionNotGrantedException(); } String componentName; if (account.type.equalsIgnoreCase(Constants.ACCOUNT_TYPE_DEV)) { componentName = Constants.PACKAGE_NAME_DEV; } else { componentName = Constants.PACKAGE_NAME_PROD; } String componentName = FilesAppType.findByAccountType(account.type).packageId; Intent authIntent = new Intent(); authIntent.setComponent(new ComponentName(componentName, Loading @@ -384,7 +379,6 @@ public class AccountImporter { return authIntent; } public static SharedPreferences getSharedPreferences(Context context) { if(SHARED_PREFERENCES != null) { return SHARED_PREFERENCES; Loading
lib/src/main/java/com/nextcloud/android/sso/Constants.java +22 −6 Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ package com.nextcloud.android.sso; import com.nextcloud.android.sso.model.FilesAppType; public class Constants { // Authenticator related constants Loading @@ -38,10 +40,24 @@ public class Constants { public static final String EXCEPTION_HTTP_REQUEST_FAILED = "CE_5"; public static final String EXCEPTION_ACCOUNT_ACCESS_DECLINED = "CE_6"; // package related constans public static final String PACKAGE_NAME_PROD = "com.nextcloud.client"; public static final String PACKAGE_NAME_DEV = "com.nextcloud.android.beta"; public static final String ACCOUNT_TYPE_PROD = "nextcloud"; public static final String ACCOUNT_TYPE_DEV = "nextcloud.beta"; // package related constants /** @deprecated Use {@link FilesAppType#packageId} */ @Deprecated public static final String PACKAGE_NAME_PROD = FilesAppType.PROD.packageId; /** @deprecated Use {@link FilesAppType#packageId} */ @Deprecated public static final String PACKAGE_NAME_QA = FilesAppType.QA.packageId; /** @deprecated Use {@link FilesAppType#packageId} */ @Deprecated public static final String PACKAGE_NAME_DEV = FilesAppType.DEV.packageId; /** @deprecated Use {@link FilesAppType#accountType} */ @Deprecated public static final String ACCOUNT_TYPE_PROD = FilesAppType.PROD.accountType; /** @deprecated Use {@link FilesAppType#accountType} */ @Deprecated public static final String ACCOUNT_TYPE_QA = FilesAppType.QA.accountType; /** @deprecated Use {@link FilesAppType#accountType} */ @Deprecated public static final String ACCOUNT_TYPE_DEV = FilesAppType.DEV.accountType; }