Skip to content

Commit 561d986

Browse files
committed
Implement dense layout option
Closes #15376 Signed-off-by: Philipp Niedermayer <[email protected]>
1 parent 8fb887d commit 561d986

File tree

6 files changed

+28
-0
lines changed

6 files changed

+28
-0
lines changed

app/src/main/java/com/nextcloud/client/preferences/AppPreferences.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,8 @@ default void onDarkThemeModeChanged(DarkMode mode) {
277277
*/
278278
DarkMode getDarkThemeMode();
279279

280+
boolean isDenseLayoutEnabled();
281+
280282
/**
281283
* Saves the uploader behavior which the user has set last.
282284
*

app/src/main/java/com/nextcloud/client/preferences/AppPreferencesImpl.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public final class AppPreferencesImpl implements AppPreferences {
5858
public static final String DATA_STORAGE_LOCATION = "data_storage_location";
5959
public static final String STORAGE_PATH_VALID = "storage_path_valid";
6060
public static final String PREF__DARK_THEME = "dark_theme_mode";
61+
public static final String PREF__DENSE_LAYOUT = "dense_layout";
6162
public static final float DEFAULT_GRID_COLUMN = 3f;
6263

6364
private static final String AUTO_PREF__LAST_UPLOAD_PATH = "last_upload_path";
@@ -464,6 +465,11 @@ public DarkMode getDarkThemeMode() {
464465
}
465466
}
466467

468+
@Override
469+
public boolean isDenseLayoutEnabled() {
470+
return preferences.getBoolean(PREF__DENSE_LAYOUT, false);
471+
}
472+
467473
@Override
468474
public void setUploaderBehaviour(int uploaderBehaviour) {
469475
preferences.edit().putInt(AUTO_PREF__UPLOADER_BEHAVIOR, uploaderBehaviour).apply();

app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -722,6 +722,12 @@ private void bindListItemViewHolder(ListItemViewHolder holder, OCFile file) {
722722
}
723723

724724
setVisibilityOfMoreOption(holder);
725+
726+
// layout density
727+
if (preferences.isDenseLayoutEnabled()){
728+
holder.getItemLayout().setMinimumHeight(activity.getResources().getDimensionPixelSize(R.dimen.min_list_item_size));
729+
holder.getItemLayout().setPadding(0, 0, 0, 0);
730+
}
725731
}
726732

727733
private void setVisibilityOfMoreOption(Object holder) {

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ class OCFileListDelegate(
260260

261261
// shares
262262
val shouldHideShare = (
263+
preferences.isDenseLayoutEnabled() ||
263264
hideItemOptions ||
264265
!file.isFolder &&
265266
file.isEncrypted ||
@@ -278,6 +279,13 @@ class OCFileListDelegate(
278279
if (!file.isOfflineOperation && !file.isFolder) {
279280
gridViewHolder.thumbnail.makeRounded(context, 4f)
280281
}
282+
283+
// layout density
284+
if (preferences.isDenseLayoutEnabled()){
285+
gridViewHolder.itemLayout.minimumHeight = context.resources.getDimension(R.dimen.min_list_item_size).toInt()
286+
gridViewHolder.itemLayout.setPadding(0, 0, 0, 0)
287+
}
288+
281289
}
282290

283291
private fun bindUnreadComments(file: OCFile, gridViewHolder: ListViewHolder) {

app/src/main/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1380,4 +1380,6 @@
13801380
<string name="clear">Clear</string>
13811381
<string name="set_message">Set message</string>
13821382
<string name="error_setting_status_message">Error setting status message!</string>
1383+
<string name="prefs_dense_layout">Dense layout</string>
1384+
<string name="prefs_dense_layout_summary">Fit more content on the screen</string>
13831385
</resources>

app/src/main/res/xml/preferences.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121
android:title="@string/prefs_theme_title"
2222
android:key="darkMode"
2323
android:summary="%s" />
24+
<com.owncloud.android.ui.ThemeableSwitchPreference
25+
android:title="@string/prefs_dense_layout"
26+
android:summary="@string/prefs_dense_layout_summary"
27+
android:key="dense_layout" />
2428
</PreferenceCategory>
2529
<PreferenceCategory
2630
android:title="@string/drawer_synced_folders"

0 commit comments

Comments
 (0)