Skip to content

Commit abf5ca1

Browse files
committed
Filtering only folders and showing them as per NMC-2893 Task
Update UnifiedSearchFragment.kt. Commit id: 4fb3fb3 from branch bug/NMC-1652. NMC-2140: Tinting removed for folder and file icons and not overlaying icon for folders.
1 parent 21c46c2 commit abf5ca1

12 files changed

Lines changed: 61 additions & 32 deletions

File tree

app/src/main/java/com/nextcloud/client/media/NextcloudExoPlayer.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ object NextcloudExoPlayer {
4242
.setMediaSourceFactory(mediaSourceFactory)
4343
.setAudioAttributes(AudioAttributes.DEFAULT, true)
4444
.setHandleAudioBecomingNoisy(true)
45-
.setSeekForwardIncrementMs(FIVE_SECONDS_IN_MILLIS)
45+
// NMC-3192 Fix
46+
.setSeekBackIncrementMs(2 * FIVE_SECONDS_IN_MILLIS)
47+
.setSeekForwardIncrementMs(2 * FIVE_SECONDS_IN_MILLIS)
4648
.build()
4749
}
4850
}

app/src/main/java/com/nextcloud/utils/ShortcutUtil.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import android.content.Intent
1515
import android.graphics.Bitmap
1616
import android.graphics.Canvas
1717
import android.graphics.drawable.Drawable
18+
import androidx.core.content.ContextCompat
1819
import androidx.core.content.pm.ShortcutInfoCompat
1920
import androidx.core.content.pm.ShortcutManagerCompat
2021
import androidx.core.graphics.createBitmap
@@ -93,9 +94,12 @@ class ShortcutUtil @Inject constructor(private val mContext: Context) {
9394

9495
file.isFolder -> {
9596
val isAutoUploadFolder = SyncedFolderObserver.isAutoUploadFolder(file, user)
96-
val isDarkModeActive = syncedFolderProvider.preferences.isDarkModeEnabled
9797
val overlayIconId = file.getFileOverlayIconId(isAutoUploadFolder)
98-
val drawable = MimeTypeUtil.getFolderIcon(isDarkModeActive, overlayIconId, mContext, viewThemeUtils)
98+
// NMC Customization: No overlay icon will be used. Directly using folder icons
99+
val drawable = ContextCompat.getDrawable(mContext, overlayIconId) ?: MimeTypeUtil.getDefaultFolderIcon(
100+
mContext,
101+
viewThemeUtils
102+
)
99103
IconCompat.createWithBitmap(drawable.toBitmap())
100104
}
101105

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.nmc.android.utils;
2+
3+
import android.app.Activity;
4+
import android.content.Context;
5+
import android.view.View;
6+
import android.view.inputmethod.InputMethodManager;
7+
8+
public class KeyboardUtils {
9+
10+
public static void showSoftKeyboard(Context context, View view) {
11+
view.requestFocus();
12+
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
13+
imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
14+
}
15+
16+
public static void hideKeyboardFrom(Context context, View view) {
17+
view.clearFocus();
18+
InputMethodManager imm = (InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE);
19+
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
20+
}
21+
}

app/src/main/java/com/owncloud/android/media/MediaControlView.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,5 +351,7 @@ class MediaControlView(context: Context, attrs: AttributeSet?) :
351351
companion object {
352352
private val TAG = MediaControlView::class.java.getSimpleName()
353353
private const val SHOW_PROGRESS = 1
354+
// NMC-3192 Fix
355+
private const val FIVE_SECONDS_IN_MILLIS = 5000
354356
}
355357
}

app/src/main/java/com/owncloud/android/ui/activity/EditorWebView.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@
4444

4545
import javax.inject.Inject;
4646

47+
import androidx.core.content.ContextCompat;
48+
4749
public abstract class EditorWebView extends ExternalSiteWebView {
4850
public static final int REQUEST_LOCAL_FILE = 101;
4951
public ValueCallback<Uri[]> uploadMessage;
@@ -255,8 +257,8 @@ protected void setThumbnailView(final User user) {
255257
boolean isAutoUploadFolder = SyncedFolderObserver.INSTANCE.isAutoUploadFolder(file, user);
256258

257259
Integer overlayIconId = file.getFileOverlayIconId(isAutoUploadFolder);
258-
LayerDrawable drawable = MimeTypeUtil.getFolderIcon(preferences.isDarkModeEnabled(), overlayIconId, this, viewThemeUtils);
259-
binding.thumbnail.setImageDrawable(drawable);
260+
// NMC Customization: No overlay icon will be used. Directly using folder icons
261+
binding.thumbnail.setImageDrawable(ContextCompat.getDrawable(this, overlayIconId));
260262
} else {
261263
if ((MimeTypeUtil.isImage(file) || MimeTypeUtil.isVideo(file)) && file.getRemoteId() != null) {
262264
// Thumbnail in cache?

app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ import com.nextcloud.utils.extensions.navigateToAllFiles
8282
import com.nextcloud.utils.extensions.observeWorker
8383
import com.nextcloud.utils.fileNameValidator.FileNameValidator.checkFolderPath
8484
import com.nextcloud.utils.view.FastScrollUtils
85+
import com.nmc.android.utils.KeyboardUtils
8586
import com.owncloud.android.MainApp
8687
import com.owncloud.android.R
8788
import com.owncloud.android.databinding.FilesBinding
@@ -1307,6 +1308,8 @@ class FileDisplayActivity :
13071308
private fun popBack() {
13081309
binding.fabMain.setImageResource(R.drawable.ic_plus)
13091310
resetScrolling(true)
1311+
// NMC: hide the keyboard on back press if showing
1312+
KeyboardUtils.hideKeyboardFrom(this, binding.root)
13101313
showSortListGroup(false)
13111314
supportFragmentManager.popBackStack()
13121315
}

app/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
import java.util.Stack;
100100
import java.util.concurrent.ExecutorService;
101101
import java.util.concurrent.Executors;
102+
import java.util.stream.Collectors;
102103

103104
import javax.inject.Inject;
104105

@@ -775,6 +776,10 @@ private void populateDirectoryList(OCFile file) {
775776

776777
List<OCFile> files = getStorageManager().getFolderContent(mFile, false);
777778

779+
// NMC-2893 Task
780+
// Filtering and showing only files which are folder
781+
files = files.stream().filter(OCFile::isFolder).collect(Collectors.toList());
782+
778783
if (files.isEmpty()) {
779784
setMessageForEmptyList(R.string.file_list_empty_headline, R.string.empty,
780785
R.drawable.uploads);

app/src/main/java/com/owncloud/android/ui/activity/ShareActivity.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040

4141
import javax.inject.Inject;
4242

43+
import androidx.core.content.ContextCompat;
4344
import androidx.fragment.app.Fragment;
4445
import androidx.fragment.app.FragmentTransaction;
4546

@@ -74,8 +75,8 @@ protected void onCreate(Bundle savedInstanceState) {
7475
boolean isAutoUploadFolder = SyncedFolderObserver.INSTANCE.isAutoUploadFolder(file, optionalUser.get());
7576

7677
Integer overlayIconId = file.getFileOverlayIconId(isAutoUploadFolder);
77-
LayerDrawable drawable = MimeTypeUtil.getFolderIcon(preferences.isDarkModeEnabled(), overlayIconId, this, viewThemeUtils);
78-
binding.shareFileIcon.setImageDrawable(drawable);
78+
// NMC Customization: No overlay icon will be used. Directly using folder icons
79+
binding.shareFileIcon.setImageDrawable(ContextCompat.getDrawable(this, overlayIconId));
7980
} else {
8081
binding.shareFileIcon.setImageDrawable(MimeTypeUtil.getFileTypeIcon(file.getMimeType(),
8182
file.getFileName(),

app/src/main/java/com/owncloud/android/ui/adapter/ReceiveExternalFilesAdapter.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import android.view.LayoutInflater
1313
import android.view.View
1414
import android.view.ViewGroup
1515
import android.widget.ImageView
16+
import androidx.core.content.ContextCompat
1617
import androidx.recyclerview.widget.RecyclerView
1718
import com.nextcloud.client.account.User
1819
import com.owncloud.android.databinding.UploaderListItemLayoutBinding
@@ -114,10 +115,9 @@ class ReceiveExternalFilesAdapter(
114115

115116
private fun setupThumbnailForFolder(thumbnailImageView: ImageView, file: OCFile) {
116117
val isAutoUploadFolder = SyncedFolderObserver.isAutoUploadFolder(file, user)
117-
val isDarkModeActive = syncedFolderProvider.preferences.isDarkModeEnabled
118118
val overlayIconId = file.getFileOverlayIconId(isAutoUploadFolder)
119-
val icon = MimeTypeUtil.getFolderIcon(isDarkModeActive, overlayIconId, context, viewThemeUtils)
120-
thumbnailImageView.setImageDrawable(icon)
119+
// NMC Customization: No overlay icon will be used. Directly using folder icons
120+
thumbnailImageView.setImageDrawable(ContextCompat.getDrawable(context, overlayIconId))
121121
}
122122

123123
@Suppress("NestedBlockDepth")

app/src/main/java/com/owncloud/android/ui/fragment/UnifiedSearchFragment.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import com.nextcloud.client.core.AsyncRunner
3434
import com.nextcloud.client.core.Clock
3535
import com.nextcloud.client.di.Injectable
3636
import com.nextcloud.client.di.ViewModelFactory
37+
import com.nmc.android.utils.KeyboardUtils
3738
import com.nextcloud.client.network.ClientFactory
3839
import com.nextcloud.client.preferences.AppPreferences
3940
import com.nextcloud.common.NextcloudClient
@@ -359,6 +360,8 @@ class UnifiedSearchFragment :
359360

360361
private fun showFile(file: OCFile, showFileActions: Boolean, updateCurrentFile: Boolean = true) {
361362
(activity as? FileDisplayActivity)?.apply {
363+
// NMC: hide keyboard when user taps on any file to view
364+
KeyboardUtils.hideKeyboardFrom(requireContext(), binding.root)
362365
if (updateCurrentFile) {
363366
this.file = file
364367
}
@@ -431,6 +434,7 @@ class UnifiedSearchFragment :
431434
}
432435

433436
override fun onQueryTextSubmit(query: String): Boolean {
437+
KeyboardUtils.hideKeyboardFrom(requireContext(), binding.root)
434438
vm.setQuery(query)
435439
vm.initialQuery()
436440
return true

0 commit comments

Comments
 (0)