Skip to content

Commit 8a7750b

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 e362c66 commit 8a7750b

File tree

12 files changed

+65
-27
lines changed

12 files changed

+65
-27
lines changed

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.getFileIcon(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: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ class MediaControlView(context: Context, attrs: AttributeSet?) :
279279
}
280280
R.id.rewindBtn -> {
281281
pos = playerControl.currentPosition
282-
pos -= 5000
282+
pos -= 2 * FIVE_SECONDS_IN_MILLIS
283283
playerControl.seekTo(pos)
284284
if (!playing) {
285285
playerControl.pause() // necessary in some 2.3.x devices
@@ -288,7 +288,7 @@ class MediaControlView(context: Context, attrs: AttributeSet?) :
288288
}
289289
R.id.forwardBtn -> {
290290
pos = playerControl.currentPosition
291-
pos += 15000
291+
pos += 2 * FIVE_SECONDS_IN_MILLIS
292292
playerControl.seekTo(pos)
293293

294294
if (!playing) {
@@ -353,5 +353,7 @@ class MediaControlView(context: Context, attrs: AttributeSet?) :
353353
companion object {
354354
private val TAG = MediaControlView::class.java.getSimpleName()
355355
private const val SHOW_PROGRESS = 1
356+
// NMC-3192 Fix
357+
private const val FIVE_SECONDS_IN_MILLIS = 5000
356358
}
357359
}

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.getFileIcon(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
@@ -135,6 +135,7 @@
135135
import com.owncloud.android.utils.MimeTypeUtil;
136136
import com.owncloud.android.utils.PermissionUtil;
137137
import com.owncloud.android.utils.PushUtils;
138+
import com.nmc.android.utils.KeyboardUtils;
138139
import com.owncloud.android.utils.StringUtils;
139140
import com.owncloud.android.utils.theme.CapabilityUtils;
140141

@@ -1174,6 +1175,8 @@ private void resetSearchAction() {
11741175
private void popBack() {
11751176
binding.fabMain.setImageResource(R.drawable.ic_plus);
11761177
resetScrolling(true);
1178+
// hide the keyboard on back press if showing
1179+
KeyboardUtils.hideKeyboardFrom(this, binding.getRoot());
11771180
showSortListGroup(false);
11781181
super.onBackPressed();
11791182
}

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

@@ -772,6 +773,10 @@ private void populateDirectoryList(OCFile file) {
772773

773774
List<OCFile> files = getStorageManager().getFolderContent(mFile, false);
774775

776+
// NMC-2893 Task
777+
// Filtering and showing only files which are folder
778+
files = files.stream().filter(OCFile::isFolder).collect(Collectors.toList());
779+
775780
if (files.isEmpty()) {
776781
setMessageForEmptyList(R.string.file_list_empty_headline, R.string.empty,
777782
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.getFileIcon(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.getFileIcon(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)