Explorar o código

Merge pull request #12106 from nextcloud/update/material-design-library

Update M3 library, Increase target sdk to 34
Andy Scherzinger hai 1 ano
pai
achega
f09c3dafbf

+ 3 - 3
app/build.gradle

@@ -84,8 +84,8 @@ android {
 
     defaultConfig {
         minSdkVersion 24
-        targetSdkVersion 33
-        compileSdk 33
+        targetSdkVersion 34
+        compileSdk 34
 
         buildConfigField 'boolean', 'CI', ciBuild.toString()
         buildConfigField 'boolean', 'RUNTIME_PERF_ANALYSIS', perfAnalysis.toString()
@@ -246,7 +246,7 @@ dependencies {
     implementation 'org.apache.jackrabbit:jackrabbit-webdav:2.13.5' // remove after entire switch to lib v2
     implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
     implementation 'androidx.legacy:legacy-support-v4:1.0.0'
-    implementation 'com.google.android.material:material:1.9.0'
+    implementation 'com.google.android.material:material:1.10.0'
     implementation 'com.jakewharton:disklrucache:2.0.2'
     implementation "androidx.appcompat:appcompat:$appCompatVersion"
     implementation 'androidx.webkit:webkit:1.7.0'

+ 1 - 1
app/src/androidTest/java/com/nextcloud/client/ActivitiesActivityIT.kt

@@ -174,7 +174,7 @@ class ActivitiesActivityIT : AbstractIT() {
             sut.dismissSnackbar()
         }
 
-        shortSleep()
+        longSleep()
         waitForIdleSync()
 
         screenshot(sut)

+ 12 - 7
app/src/main/java/com/owncloud/android/ui/activity/ContactsPreferenceActivity.java

@@ -36,6 +36,7 @@ import com.owncloud.android.ui.fragment.contactsbackup.BackupListFragment;
 
 import javax.inject.Inject;
 
+import androidx.activity.OnBackPressedCallback;
 import androidx.drawerlayout.widget.DrawerLayout;
 import androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentTransaction;
@@ -115,6 +116,8 @@ public class ContactsPreferenceActivity extends FileActivity implements FileFrag
             }
             transaction.commit();
         }
+
+        getOnBackPressedDispatcher().addCallback(this, onBackPressedCallback);
     }
 
     @Override
@@ -137,12 +140,14 @@ public class ContactsPreferenceActivity extends FileActivity implements FileFrag
         // not needed
     }
 
-    @Override
-    public void onBackPressed() {
-        if (getSupportFragmentManager().findFragmentByTag(BackupListFragment.TAG) != null) {
-            getSupportFragmentManager().popBackStack(BACKUP_TO_LIST, FragmentManager.POP_BACK_STACK_INCLUSIVE);
-        } else {
-            finish();
+    private final OnBackPressedCallback onBackPressedCallback = new OnBackPressedCallback(true) {
+        @Override
+        public void handleOnBackPressed() {
+            if (getSupportFragmentManager().findFragmentByTag(BackupListFragment.TAG) != null) {
+                getSupportFragmentManager().popBackStack(BACKUP_TO_LIST, FragmentManager.POP_BACK_STACK_INCLUSIVE);
+            } else {
+                finish();
+            }
         }
-    }
+    };
 }

+ 25 - 14
app/src/main/java/com/owncloud/android/ui/activity/FolderPickerActivity.kt

@@ -32,6 +32,7 @@ import android.view.ActionMode
 import android.view.Menu
 import android.view.MenuItem
 import android.view.View
+import androidx.activity.OnBackPressedCallback
 import androidx.localbroadcastmanager.content.LocalBroadcastManager
 import com.google.android.material.button.MaterialButton
 import com.nextcloud.client.di.Injectable
@@ -125,9 +126,33 @@ open class FolderPickerActivity :
 
         // sets message for empty list of folders
         setBackgroundText()
+
+        handleOnBackPressed()
+
         Log_OC.d(TAG, "onCreate() end")
     }
 
+    private fun handleOnBackPressed() {
+        onBackPressedDispatcher.addCallback(
+            this,
+            object : OnBackPressedCallback(true) {
+                override fun handleOnBackPressed() {
+                    val listOfFiles = listOfFilesFragment
+                    if (listOfFiles != null) {
+                        // should never be null, indeed
+                        val levelsUp = listOfFiles.onBrowseUp()
+                        if (levelsUp == 0) {
+                            finish()
+                            return
+                        }
+                        file = listOfFiles.currentFile
+                        updateUiElements()
+                    }
+                }
+            }
+        )
+    }
+
     override fun onActionModeStarted(mode: ActionMode) {
         super.onActionModeStarted(mode)
         if (account != null) {
@@ -321,20 +346,6 @@ open class FolderPickerActivity :
         }
     }
 
-    override fun onBackPressed() {
-        val listOfFiles = listOfFilesFragment
-        if (listOfFiles != null) {
-            // should never be null, indeed
-            val levelsUp = listOfFiles.onBrowseUp()
-            if (levelsUp == 0) {
-                finish()
-                return
-            }
-            file = listOfFiles.currentFile
-            updateUiElements()
-        }
-    }
-
     private fun updateUiElements() {
         toggleChooseEnabled()
         updateNavigationElementsInActionBar()

+ 35 - 30
app/src/main/java/com/owncloud/android/ui/activity/UploadFilesActivity.java

@@ -61,6 +61,7 @@ import java.util.List;
 
 import javax.inject.Inject;
 
+import androidx.activity.OnBackPressedCallback;
 import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 import androidx.appcompat.app.ActionBar;
@@ -258,6 +259,8 @@ public class UploadFilesActivity extends DrawerActivity implements LocalFileList
 
         checkWritableFolder(mCurrentDir);
 
+        getOnBackPressedDispatcher().addCallback(this, onBackPressedCallback);
+
         Log_OC.d(TAG, "onCreate() end");
     }
 
@@ -369,43 +372,45 @@ public class UploadFilesActivity extends DrawerActivity implements LocalFileList
         }
     }
 
-    @Override
-    public void onBackPressed() {
-        if (isSearchOpen() && mSearchView != null) {
-            mSearchView.setQuery("", false);
-            mFileListFragment.onClose();
-            mSearchView.onActionViewCollapsed();
-            setDrawerIndicatorEnabled(isDrawerIndicatorAvailable());
-        } else {
-            if (mDirectories.getCount() <= SINGLE_DIR) {
-                finish();
-                return;
-            }
+    private final OnBackPressedCallback onBackPressedCallback = new OnBackPressedCallback(true) {
+        @Override
+        public void handleOnBackPressed() {
+            if (isSearchOpen() && mSearchView != null) {
+                mSearchView.setQuery("", false);
+                mFileListFragment.onClose();
+                mSearchView.onActionViewCollapsed();
+                setDrawerIndicatorEnabled(isDrawerIndicatorAvailable());
+            } else {
+                if (mDirectories.getCount() <= SINGLE_DIR) {
+                    finish();
+                    return;
+                }
 
-            File parentFolder = mCurrentDir.getParentFile();
-            if (!parentFolder.canRead()) {
-                checkLocalStoragePathPickerPermission();
-                return;
-            }
+                File parentFolder = mCurrentDir.getParentFile();
+                if (!parentFolder.canRead()) {
+                    checkLocalStoragePathPickerPermission();
+                    return;
+                }
 
-            popDirname();
-            mFileListFragment.onNavigateUp();
-            mCurrentDir = mFileListFragment.getCurrentDirectory();
-            checkWritableFolder(mCurrentDir);
+                popDirname();
+                mFileListFragment.onNavigateUp();
+                mCurrentDir = mFileListFragment.getCurrentDirectory();
+                checkWritableFolder(mCurrentDir);
 
-            if (mCurrentDir.getParentFile() == null) {
-                ActionBar actionBar = getSupportActionBar();
-                if (actionBar != null) {
-                    actionBar.setDisplayHomeAsUpEnabled(false);
+                if (mCurrentDir.getParentFile() == null) {
+                    ActionBar actionBar = getSupportActionBar();
+                    if (actionBar != null) {
+                        actionBar.setDisplayHomeAsUpEnabled(false);
+                    }
                 }
-            }
 
-            // invalidate checked state when navigating directories
-            if (!mLocalFolderPickerMode) {
-                setSelectAllMenuItem(mOptionsMenu.findItem(R.id.action_select_all), false);
+                // invalidate checked state when navigating directories
+                if (!mLocalFolderPickerMode) {
+                    setSelectAllMenuItem(mOptionsMenu.findItem(R.id.action_select_all), false);
+                }
             }
         }
-    }
+    };
 
     @Override
     protected void onSaveInstanceState(@NonNull Bundle outState) {

+ 3 - 3
app/src/test/java/com/nextcloud/client/core/LocalConnectionTest.kt

@@ -65,7 +65,7 @@ class LocalConnectionTest {
 
         // THEN
         //      no binding is performed
-        verify(exactly = 0) { context.bindService(any(), any(), any()) }
+        verify(exactly = 0) { context.bindService(any(), any(), Context.BIND_AUTO_CREATE) }
     }
 
     @Test
@@ -76,12 +76,12 @@ class LocalConnectionTest {
 
         // WHEN
         //      bind requested
-        every { context.bindService(mockIntent, any(), any()) } returns true
+        every { context.bindService(mockIntent!!, any(), Context.BIND_AUTO_CREATE) } returns true
         connection.bind()
 
         // THEN
         //      service bound
-        verify { context.bindService(mockIntent, any(), any()) }
+        verify { context.bindService(mockIntent!!, any(), Context.BIND_AUTO_CREATE) }
     }
 
     @Test