From 0af94d2b62731bf9c9328d40989ac94e96e08193 Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Mon, 25 Jul 2022 07:59:01 +0200 Subject: [PATCH 1/2] Fix npe by migrating to binding Signed-off-by: tobiasKaminsky --- .../ReceiveExternalFilesActivity.java | 37 +++++++++---------- .../res/layout/receive_external_files.xml | 8 +++- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java index 0e0d9974dc..4cf3827c24 100755 --- a/app/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java @@ -54,8 +54,6 @@ import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.ListView; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; @@ -63,11 +61,11 @@ import android.widget.Toast; import com.google.android.material.button.MaterialButton; import com.google.android.material.textfield.TextInputEditText; import com.google.android.material.textfield.TextInputLayout; -import com.nextcloud.client.account.User; import com.nextcloud.client.di.Injectable; import com.nextcloud.client.preferences.AppPreferences; import com.owncloud.android.MainApp; import com.owncloud.android.R; +import com.owncloud.android.databinding.ReceiveExternalFilesBinding; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.files.services.FileUploader; import com.owncloud.android.files.services.NameCollisionPolicy; @@ -121,6 +119,7 @@ import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog.Builder; import androidx.appcompat.widget.SearchView; import androidx.core.view.MenuItemCompat; +import androidx.core.widget.NestedScrollView; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.FragmentManager; import androidx.localbroadcastmanager.content.LocalBroadcastManager; @@ -165,11 +164,12 @@ public class ReceiveExternalFilesActivity extends FileActivity private final static Charset FILENAME_ENCODING = Charset.forName("UTF-8"); - private LinearLayout mEmptyListContainer; + private NestedScrollView mEmptyListContainer; private TextView mEmptyListMessage; private TextView mEmptyListHeadline; private ImageView mEmptyListIcon; private MaterialButton sortButton; + private ReceiveExternalFilesBinding binding; @Override protected void onCreate(Bundle savedInstanceState) { @@ -187,10 +187,12 @@ public class ReceiveExternalFilesActivity extends FileActivity mAccountManager = (AccountManager) getSystemService(Context.ACCOUNT_SERVICE); super.onCreate(savedInstanceState); + binding = ReceiveExternalFilesBinding.inflate(getLayoutInflater()); + setContentView(binding.getRoot()); // Listen for sync messages IntentFilter syncIntentFilter = new IntentFilter(RefreshFolderOperation. - EVENT_SINGLE_FOLDER_CONTENTS_SYNCED); + EVENT_SINGLE_FOLDER_CONTENTS_SYNCED); syncIntentFilter.addAction(RefreshFolderOperation.EVENT_SINGLE_FOLDER_SHARES_SYNCED); mSyncBroadcastReceiver = new SyncBroadcastReceiver(); localBroadcastManager.registerReceiver(mSyncBroadcastReceiver, syncIntentFilter); @@ -716,16 +718,13 @@ public class ReceiveExternalFilesActivity extends FileActivity } private void populateDirectoryList() { - setContentView(R.layout.receive_external_files); setupEmptyList(); setupToolbar(); ActionBar actionBar = getSupportActionBar(); setupActionBarSubtitle(); - ListView mListView = findViewById(android.R.id.list); - - findViewById(R.id.sort_list_button_group).setVisibility(View.VISIBLE); - findViewById(R.id.switch_grid_view_button).setVisibility(View.GONE); + binding.toolbarLayout.sortListButtonGroup.setVisibility(View.VISIBLE); + binding.toolbarLayout.switchGridViewButton.setVisibility(View.GONE); String current_dir = mParents.peek(); boolean notRoot = mParents.size() > 1; @@ -774,9 +773,9 @@ public class ReceiveExternalFilesActivity extends FileActivity themeColorUtils, themeDrawableUtils); - mListView.setAdapter(sa); + binding.list.setAdapter(sa); } - MaterialButton btnChooseFolder = findViewById(R.id.uploader_choose_folder); + MaterialButton btnChooseFolder = binding.uploaderChooseFolder; themeButtonUtils.colorPrimaryButton(btnChooseFolder, this, themeColorUtils); btnChooseFolder.setOnClickListener(this); @@ -792,13 +791,13 @@ public class ReceiveExternalFilesActivity extends FileActivity themeToolbarUtils.tintBackButton(actionBar, this); - Button btnNewFolder = findViewById(R.id.uploader_cancel); + Button btnNewFolder = binding.uploaderCancel; btnNewFolder.setTextColor(themeColorUtils.primaryColor(this, true)); btnNewFolder.setOnClickListener(this); - mListView.setOnItemClickListener(this); + binding.list.setOnItemClickListener(this); - sortButton = findViewById(R.id.sort_button); + sortButton = binding.toolbarLayout.sortButton; FileSortOrder sortOrder = preferences.getSortOrderByFolder(mFile); sortButton.setText(DisplayUtils.getSortOrderStringId(sortOrder)); sortButton.setOnClickListener(l -> openSortingOrderDialogFragment(getSupportFragmentManager(), sortOrder)); @@ -806,10 +805,10 @@ public class ReceiveExternalFilesActivity extends FileActivity } protected void setupEmptyList() { - mEmptyListContainer = findViewById(R.id.empty_list_view); - mEmptyListMessage = findViewById(R.id.empty_list_view_text); - mEmptyListHeadline = findViewById(R.id.empty_list_view_headline); - mEmptyListIcon = findViewById(R.id.empty_list_icon); + mEmptyListContainer = binding.emptyView.emptyListView; + mEmptyListMessage = binding.emptyView.emptyListViewText; + mEmptyListHeadline = binding.emptyView.emptyListViewHeadline; + mEmptyListIcon = binding.emptyView.emptyListIcon; } public void setMessageForEmptyList(@StringRes final int headline, @StringRes final int message, diff --git a/app/src/main/res/layout/receive_external_files.xml b/app/src/main/res/layout/receive_external_files.xml index 1dfd7e175c..a8bcc10661 100644 --- a/app/src/main/res/layout/receive_external_files.xml +++ b/app/src/main/res/layout/receive_external_files.xml @@ -24,7 +24,9 @@ android:layout_height="match_parent" android:orientation="vertical"> - + - + From 35635f9039025683f0a230f00380c55782012da1 Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Mon, 25 Jul 2022 08:15:13 +0200 Subject: [PATCH 2/2] Add test Signed-off-by: tobiasKaminsky --- ...ty.ReceiveExternalFilesActivityIT_open.png | Bin 0 -> 12411 bytes .../ReceiveExternalFilesActivityIT.kt | 41 ++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 app/screenshots/gplay/debug/com.owncloud.android.ui.activity.ReceiveExternalFilesActivityIT_open.png create mode 100644 app/src/androidTest/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivityIT.kt diff --git a/app/screenshots/gplay/debug/com.owncloud.android.ui.activity.ReceiveExternalFilesActivityIT_open.png b/app/screenshots/gplay/debug/com.owncloud.android.ui.activity.ReceiveExternalFilesActivityIT_open.png new file mode 100644 index 0000000000000000000000000000000000000000..f7cafa6bc4afa3600ab86ebc19508a5273d4dbc1 GIT binary patch literal 12411 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
54?wwCYM2KoeUDpt4mOc# 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 literal 0 HcmV?d00001 diff --git a/app/src/androidTest/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivityIT.kt b/app/src/androidTest/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivityIT.kt new file mode 100644 index 0000000000..a4e534a560 --- /dev/null +++ b/app/src/androidTest/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivityIT.kt @@ -0,0 +1,41 @@ +/* + * + * Nextcloud Android client application + * + * @author Tobias Kaminsky + * Copyright (C) 2022 Tobias Kaminsky + * Copyright (C) 2022 Nextcloud GmbH + * + * 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.ui.activity + +import android.app.Activity +import androidx.test.espresso.intent.rule.IntentsTestRule +import com.owncloud.android.AbstractIT +import com.owncloud.android.utils.ScreenshotTest +import org.junit.Rule +import org.junit.Test + +class ReceiveExternalFilesActivityIT : AbstractIT() { + @get:Rule + val activityRule = IntentsTestRule(ReceiveExternalFilesActivity::class.java, true, false) + + @Test + @ScreenshotTest + fun open() { + val sut: Activity = activityRule.launchActivity(null) + screenshot(sut) + } +}