Skip to content

Commit 8b916d2

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 da53cb5 commit 8b916d2

12 files changed

Lines changed: 61 additions & 30 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
@@ -16,6 +16,7 @@ import android.graphics.Bitmap
1616
import android.graphics.Canvas
1717
import android.graphics.drawable.BitmapDrawable
1818
import android.graphics.drawable.Drawable
19+
import androidx.core.content.ContextCompat
1920
import androidx.core.content.pm.ShortcutInfoCompat
2021
import androidx.core.content.pm.ShortcutManagerCompat
2122
import androidx.core.graphics.drawable.IconCompat
@@ -59,10 +60,13 @@ class ShortcutUtil @Inject constructor(private val mContext: Context) {
5960
icon = IconCompat.createWithAdaptiveBitmap(thumbnail)
6061
} else if (file.isFolder) {
6162
val isAutoUploadFolder = SyncedFolderProvider.isAutoUploadFolder(syncedFolderProvider, file, user)
62-
val isDarkModeActive = syncedFolderProvider.preferences.isDarkModeEnabled
6363

6464
val overlayIconId = file.getFileOverlayIconId(isAutoUploadFolder)
65-
val drawable = MimeTypeUtil.getFolderIcon(isDarkModeActive, overlayIconId, mContext, viewThemeUtils)
65+
// NMC Customization: No overlay icon will be used. Directly using folder icons
66+
val drawable = ContextCompat.getDrawable(mContext, overlayIconId) ?: MimeTypeUtil.getDefaultFolderIcon(
67+
mContext,
68+
viewThemeUtils
69+
)
6670
val bitmapIcon = drawable.toBitmap()
6771
icon = IconCompat.createWithBitmap(bitmapIcon)
6872
} else {
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
@@ -42,6 +42,8 @@
4242

4343
import javax.inject.Inject;
4444

45+
import androidx.core.content.ContextCompat;
46+
4547
public abstract class EditorWebView extends ExternalSiteWebView {
4648
public static final int REQUEST_LOCAL_FILE = 101;
4749
public ValueCallback<Uri[]> uploadMessage;
@@ -250,8 +252,8 @@ protected void setThumbnailView(final User user) {
250252
boolean isAutoUploadFolder = SyncedFolderProvider.isAutoUploadFolder(syncedFolderProvider, file, user);
251253

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

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@
138138
import com.owncloud.android.utils.MimeTypeUtil;
139139
import com.owncloud.android.utils.PermissionUtil;
140140
import com.owncloud.android.utils.PushUtils;
141+
import com.nmc.android.utils.KeyboardUtils;
141142
import com.owncloud.android.utils.StringUtils;
142143
import com.owncloud.android.utils.theme.CapabilityUtils;
143144

@@ -1197,6 +1198,8 @@ private void resetSearchAction() {
11971198
private void popBack() {
11981199
binding.fabMain.setImageResource(R.drawable.ic_plus);
11991200
resetScrolling(true);
1201+
// hide the keyboard on back press if showing
1202+
KeyboardUtils.hideKeyboardFrom(this, binding.getRoot());
12001203
showSortListGroup(false);
12011204
super.onBackPressed();
12021205
}

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
@@ -98,6 +98,7 @@
9898
import java.util.Calendar;
9999
import java.util.List;
100100
import java.util.Stack;
101+
import java.util.stream.Collectors;
101102

102103
import javax.inject.Inject;
103104

@@ -766,6 +767,10 @@ private void populateDirectoryList(OCFile file) {
766767

767768
List<OCFile> files = getStorageManager().getFolderContent(mFile, false);
768769

770+
// NMC-2893 Task
771+
// Filtering and showing only files which are folder
772+
files = files.stream().filter(OCFile::isFolder).collect(Collectors.toList());
773+
769774
if (files.isEmpty()) {
770775
setMessageForEmptyList(R.string.file_list_empty_headline, R.string.empty,
771776
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
@@ -39,6 +39,7 @@
3939

4040
import javax.inject.Inject;
4141

42+
import androidx.core.content.ContextCompat;
4243
import androidx.fragment.app.Fragment;
4344
import androidx.fragment.app.FragmentTransaction;
4445

@@ -73,8 +74,8 @@ protected void onCreate(Bundle savedInstanceState) {
7374
boolean isAutoUploadFolder = SyncedFolderProvider.isAutoUploadFolder(syncedFolderProvider, file, optionalUser.get());
7475

7576
Integer overlayIconId = file.getFileOverlayIconId(isAutoUploadFolder);
76-
LayerDrawable drawable = MimeTypeUtil.getFolderIcon(preferences.isDarkModeEnabled(), overlayIconId, this, viewThemeUtils);
77-
binding.shareFileIcon.setImageDrawable(drawable);
77+
// NMC Customization: No overlay icon will be used. Directly using folder icons
78+
binding.shareFileIcon.setImageDrawable(ContextCompat.getDrawable(this, overlayIconId));
7879
} else {
7980
binding.shareFileIcon.setImageDrawable(MimeTypeUtil.getFileTypeIcon(file.getMimeType(),
8081
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
@@ -113,10 +114,9 @@ class ReceiveExternalFilesAdapter(
113114

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

122122
@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
@@ -29,6 +29,7 @@ import com.nextcloud.client.account.UserAccountManager
2929
import com.nextcloud.client.core.AsyncRunner
3030
import com.nextcloud.client.di.Injectable
3131
import com.nextcloud.client.di.ViewModelFactory
32+
import com.nmc.android.utils.KeyboardUtils
3233
import com.nextcloud.client.network.ClientFactory
3334
import com.owncloud.android.R
3435
import com.owncloud.android.databinding.ListFragmentBinding
@@ -238,6 +239,8 @@ class UnifiedSearchFragment :
238239
private fun showFile(file: OCFile, showFileActions: Boolean) {
239240
activity.let {
240241
if (activity is FileDisplayActivity) {
242+
// NMC: hide keyboard when user taps on any file to view
243+
KeyboardUtils.hideKeyboardFrom(requireContext(), binding.root)
241244
val fda = activity as FileDisplayActivity
242245
fda.file = file
243246

@@ -298,6 +301,7 @@ class UnifiedSearchFragment :
298301
}
299302

300303
override fun onQueryTextSubmit(query: String): Boolean {
304+
KeyboardUtils.hideKeyboardFrom(requireContext(), binding.root)
301305
vm.setQuery(query)
302306
vm.initialQuery()
303307
return true

0 commit comments

Comments
 (0)