Skip to content

Commit ac71ec1

Browse files
show sharees
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
1 parent 60c7c3b commit ac71ec1

File tree

15 files changed

+229
-128
lines changed

15 files changed

+229
-128
lines changed

build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -212,9 +212,9 @@ dependencies {
212212
// dependencies for app building
213213
implementation 'androidx.multidex:multidex:2.0.1'
214214
// implementation project('nextcloud-android-library')
215-
genericImplementation 'com.github.nextcloud:android-library:master-SNAPSHOT'
216-
gplayImplementation 'com.github.nextcloud:android-library:master-SNAPSHOT'
217-
versionDevImplementation 'com.github.nextcloud:android-library:master-SNAPSHOT'
215+
genericImplementation 'com.github.nextcloud:android-library:showSharees-SNAPSHOT'
216+
gplayImplementation 'com.github.nextcloud:android-library:showSharees-SNAPSHOT'
217+
versionDevImplementation 'com.github.nextcloud:android-library:showSharees-SNAPSHOT'
218218
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
219219
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
220220
implementation 'com.google.android.material:material:1.0.0'

drawable_resources/ic_people.svg

Lines changed: 5 additions & 0 deletions
Loading

src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
import android.os.RemoteException;
3535
import android.provider.MediaStore;
3636
import android.text.TextUtils;
37-
37+
import androidx.annotation.Nullable;
3838
import com.owncloud.android.MainApp;
3939
import com.owncloud.android.db.ProviderMeta.ProviderTableMeta;
4040
import com.owncloud.android.lib.common.network.WebdavEntry;
@@ -50,6 +50,8 @@
5050
import com.owncloud.android.utils.FileStorageUtils;
5151
import com.owncloud.android.utils.MimeType;
5252
import com.owncloud.android.utils.MimeTypeUtil;
53+
import lombok.Getter;
54+
import lombok.Setter;
5355

5456
import java.io.File;
5557
import java.util.ArrayList;
@@ -62,10 +64,6 @@
6264
import java.util.Locale;
6365
import java.util.Set;
6466

65-
import androidx.annotation.Nullable;
66-
import lombok.Getter;
67-
import lombok.Setter;
68-
6967
@Getter
7068
public class FileDataStorageManager {
7169
private static final String TAG = FileDataStorageManager.class.getSimpleName();
@@ -208,6 +206,7 @@ public boolean saveFile(OCFile file) {
208206
cv.put(ProviderTableMeta.FILE_OWNER_ID, file.getOwnerId());
209207
cv.put(ProviderTableMeta.FILE_OWNER_DISPLAY_NAME, file.getOwnerDisplayName());
210208
cv.put(ProviderTableMeta.FILE_NOTE, file.getNote());
209+
cv.put(ProviderTableMeta.FILE_SHAREES, TextUtils.join(",", file.getSharees()));
211210

212211
boolean sameRemotePath = fileExists(file.getRemotePath());
213212
if (sameRemotePath ||
@@ -450,6 +449,7 @@ private ContentValues createContentValueForFile(OCFile folder) {
450449
cv.put(ProviderTableMeta.FILE_OWNER_ID, folder.getOwnerId());
451450
cv.put(ProviderTableMeta.FILE_OWNER_DISPLAY_NAME, folder.getOwnerDisplayName());
452451
cv.put(ProviderTableMeta.FILE_NOTE, folder.getNote());
452+
cv.put(ProviderTableMeta.FILE_SHAREES, TextUtils.join(",", folder.getSharees()));
453453

454454
return cv;
455455
}
@@ -489,6 +489,7 @@ private ContentValues createContentValueForFile(OCFile file, OCFile folder) {
489489
cv.put(ProviderTableMeta.FILE_OWNER_ID, file.getOwnerId());
490490
cv.put(ProviderTableMeta.FILE_OWNER_DISPLAY_NAME, file.getOwnerDisplayName());
491491
cv.put(ProviderTableMeta.FILE_NOTE, file.getNote());
492+
cv.put(ProviderTableMeta.FILE_SHAREES, TextUtils.join(",", file.getSharees()));
492493

493494
return cv;
494495
}
@@ -988,6 +989,14 @@ private OCFile createFileInstance(Cursor c) {
988989
file.setOwnerId(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_OWNER_ID)));
989990
file.setOwnerDisplayName(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_OWNER_DISPLAY_NAME)));
990991
file.setNote(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_NOTE)));
992+
993+
String sharees = c.getString(c.getColumnIndex(ProviderTableMeta.FILE_SHAREES));
994+
995+
if (sharees.isEmpty()) {
996+
file.setSharees(new ArrayList<>());
997+
} else {
998+
file.setSharees(new ArrayList<>(Arrays.asList(sharees.split(","))));
999+
}
9911000
}
9921001

9931002
return file;
@@ -1216,7 +1225,7 @@ private OCShare createShareInstance(Cursor c) {
12161225
share.setSharedWithDisplayName(
12171226
c.getString(c.getColumnIndex(ProviderTableMeta.OCSHARES_SHARE_WITH_DISPLAY_NAME)));
12181227
share.setFolder(c.getInt(c.getColumnIndex(ProviderTableMeta.OCSHARES_IS_DIRECTORY)) == 1);
1219-
share.setUserId(c.getLong(c.getColumnIndex(ProviderTableMeta.OCSHARES_USER_ID)));
1228+
share.setUserId(c.getString(c.getColumnIndex(ProviderTableMeta.OCSHARES_USER_ID)));
12201229
share.setRemoteId(c.getLong(c.getColumnIndex(ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED)));
12211230
share.setPasswordProtected(c.getInt(c.getColumnIndex(ProviderTableMeta.OCSHARES_IS_PASSWORD_PROTECTED)) == 1);
12221231
share.setNote(c.getString(c.getColumnIndex(ProviderTableMeta.OCSHARES_NOTE)));

src/main/java/com/owncloud/android/datamodel/OCFile.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,22 @@
2828
import android.net.Uri;
2929
import android.os.Parcel;
3030
import android.os.Parcelable;
31-
31+
import androidx.annotation.NonNull;
32+
import androidx.core.content.FileProvider;
3233
import com.owncloud.android.R;
3334
import com.owncloud.android.lib.common.network.WebdavEntry;
3435
import com.owncloud.android.lib.common.network.WebdavUtils;
3536
import com.owncloud.android.lib.common.utils.Log_OC;
3637
import com.owncloud.android.lib.resources.files.model.ServerFileInterface;
3738
import com.owncloud.android.utils.MimeType;
38-
39-
import java.io.File;
40-
41-
import androidx.annotation.NonNull;
42-
import androidx.core.content.FileProvider;
4339
import lombok.Getter;
4440
import lombok.Setter;
4541
import third_parties.daveKoeller.AlphanumComparator;
4642

43+
import java.io.File;
44+
import java.util.ArrayList;
45+
import java.util.List;
46+
4747
public class OCFile implements Parcelable, Comparable<OCFile>, ServerFileInterface {
4848
private final static String PERMISSION_SHARED_WITH_ME = "S";
4949
private final static String PERMISSION_CAN_RESHARE = "R";
@@ -88,6 +88,7 @@ public class OCFile implements Parcelable, Comparable<OCFile>, ServerFileInterfa
8888
@Getter @Setter private String ownerId;
8989
@Getter @Setter private String ownerDisplayName;
9090
@Getter @Setter String note;
91+
@Getter @Setter private List<String> sharees = new ArrayList<>();
9192

9293
/**
9394
* URI to the local path of the file contents, if stored in the device; cached after first call

src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -859,6 +859,7 @@ private int getAvatarDimension() {
859859
Drawable doAvatarInBackground() {
860860
Bitmap avatar = null;
861861

862+
// TODO escape username here?
862863
String accountName = mUserId + "@" + mServerName;
863864

864865
ArbitraryDataProvider arbitraryDataProvider = new ArbitraryDataProvider(mContext.getContentResolver());

src/main/java/com/owncloud/android/db/ProviderMeta.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
public class ProviderMeta {
3333

3434
public static final String DB_NAME = "filelist";
35-
public static final int DB_VERSION = 44;
35+
public static final int DB_VERSION = 45;
3636

3737
private ProviderMeta() {
3838
}
@@ -109,14 +109,15 @@ static public class ProviderTableMeta implements BaseColumns {
109109
public static final String FILE_OWNER_ID = "owner_id";
110110
public static final String FILE_OWNER_DISPLAY_NAME = "owner_display_name";
111111
public static final String FILE_NOTE = "note";
112+
public static final String FILE_SHAREES = "sharees";
112113

113114
public static final String[] FILE_ALL_COLUMNS = {
114115
_ID, FILE_PARENT, FILE_NAME, FILE_CREATION, FILE_MODIFIED,
115116
FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA, FILE_CONTENT_LENGTH, FILE_CONTENT_TYPE, FILE_STORAGE_PATH,
116117
FILE_PATH, FILE_ACCOUNT_OWNER, FILE_LAST_SYNC_DATE, FILE_LAST_SYNC_DATE_FOR_DATA, FILE_ETAG,
117118
FILE_ETAG_ON_SERVER, FILE_SHARED_VIA_LINK, FILE_SHARED_WITH_SHAREE, FILE_PUBLIC_LINK, FILE_PERMISSIONS,
118119
FILE_REMOTE_ID, FILE_UPDATE_THUMBNAIL, FILE_IS_DOWNLOADING, FILE_ETAG_IN_CONFLICT, FILE_FAVORITE,
119-
FILE_IS_ENCRYPTED, FILE_MOUNT_TYPE, FILE_HAS_PREVIEW, FILE_UNREAD_COMMENTS_COUNT
120+
FILE_IS_ENCRYPTED, FILE_MOUNT_TYPE, FILE_HAS_PREVIEW, FILE_UNREAD_COMMENTS_COUNT, FILE_SHAREES
120121
};
121122

122123
public static final String FILE_DEFAULT_SORT_ORDER = FILE_NAME + " collate nocase asc";

src/main/java/com/owncloud/android/providers/FileContentProvider.java

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -701,7 +701,8 @@ private void createFilesTable(SQLiteDatabase db) {
701701
+ ProviderTableMeta.FILE_UNREAD_COMMENTS_COUNT + INTEGER
702702
+ ProviderTableMeta.FILE_OWNER_ID + TEXT
703703
+ ProviderTableMeta.FILE_OWNER_DISPLAY_NAME + TEXT
704-
+ ProviderTableMeta.FILE_NOTE + " TEXT);"
704+
+ ProviderTableMeta.FILE_NOTE + TEXT
705+
+ ProviderTableMeta.FILE_SHAREES + " TEXT);"
705706
);
706707
}
707708

@@ -1874,9 +1875,9 @@ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
18741875
db.beginTransaction();
18751876
try {
18761877
db.execSQL(ALTER_TABLE + ProviderTableMeta.FILE_TABLE_NAME +
1877-
ADD_COLUMN + ProviderTableMeta.FILE_OWNER_ID + " TEXT ");
1878+
ADD_COLUMN + ProviderTableMeta.FILE_OWNER_ID + " TEXT ");
18781879
db.execSQL(ALTER_TABLE + ProviderTableMeta.FILE_TABLE_NAME +
1879-
ADD_COLUMN + ProviderTableMeta.FILE_OWNER_DISPLAY_NAME + " TEXT ");
1880+
ADD_COLUMN + ProviderTableMeta.FILE_OWNER_DISPLAY_NAME + " TEXT ");
18801881

18811882
upgraded = true;
18821883
db.setTransactionSuccessful();
@@ -1906,6 +1907,24 @@ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
19061907
if (!upgraded) {
19071908
Log_OC.i(SQL, String.format(Locale.ENGLISH, UPGRADE_VERSION_MSG, oldVersion, newVersion));
19081909
}
1910+
1911+
if (oldVersion < 45 && newVersion >= 45) {
1912+
Log_OC.i(SQL, "Entering in the #45 add sharees to file table");
1913+
db.beginTransaction();
1914+
try {
1915+
db.execSQL(ALTER_TABLE + ProviderTableMeta.FILE_TABLE_NAME +
1916+
ADD_COLUMN + ProviderTableMeta.FILE_SHAREES + " TEXT ");
1917+
1918+
upgraded = true;
1919+
db.setTransactionSuccessful();
1920+
} finally {
1921+
db.endTransaction();
1922+
}
1923+
}
1924+
1925+
if (!upgraded) {
1926+
Log_OC.i(SQL, String.format(Locale.ENGLISH, UPGRADE_VERSION_MSG, oldVersion, newVersion));
1927+
}
19091928
}
19101929

19111930
@Override

0 commit comments

Comments
 (0)