Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb67e280 authored by Stefan Niedermann's avatar Stefan Niedermann Committed by Niedermann IT-Dienstleistungen
Browse files

#409 Support .qa package id of the files app

parent 00a6c091
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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>
```
+3 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ android {
        }
    }
    compileOptions {
        coreLibraryDesugaringEnabled true
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
@@ -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'
+1 −0
Original line number Diff line number Diff line
@@ -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>

+6 −12
Original line number Diff line number Diff line
@@ -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;

@@ -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;
@@ -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) {
@@ -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,
@@ -384,7 +379,6 @@ public class AccountImporter {
        return authIntent;
    }


    public static SharedPreferences getSharedPreferences(Context context) {
        if(SHARED_PREFERENCES != null) {
            return SHARED_PREFERENCES;
+22 −6
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@

package com.nextcloud.android.sso;

import com.nextcloud.android.sso.model.FilesAppType;

public class Constants {

    // Authenticator related constants
@@ -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