Skip to content

Commit 88bc211

Browse files
tobiasKaminskyAndyScherzinger
authored andcommitted
show sharees
Signed-off-by: tobiasKaminsky <[email protected]>
1 parent 5bf97c0 commit 88bc211

File tree

15 files changed

+221
-114
lines changed

15 files changed

+221
-114
lines changed

build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -247,9 +247,9 @@ dependencies {
247247
// dependencies for app building
248248
implementation 'androidx.multidex:multidex:2.0.1'
249249
// implementation project('nextcloud-android-library')
250-
genericImplementation 'com.github.nextcloud:android-library:master-SNAPSHOT'
251-
gplayImplementation 'com.github.nextcloud:android-library:master-SNAPSHOT'
252-
versionDevImplementation 'com.github.nextcloud:android-library:master-SNAPSHOT'
250+
genericImplementation 'com.github.nextcloud:android-library:showSharees-SNAPSHOT'
251+
gplayImplementation 'com.github.nextcloud:android-library:showSharees-SNAPSHOT'
252+
versionDevImplementation 'com.github.nextcloud:android-library:showSharees-SNAPSHOT'
253253
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
254254
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
255255
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 & 2 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;
@@ -209,6 +211,7 @@ public boolean saveFile(OCFile file) {
209211
cv.put(ProviderTableMeta.FILE_OWNER_ID, file.getOwnerId());
210212
cv.put(ProviderTableMeta.FILE_OWNER_DISPLAY_NAME, file.getOwnerDisplayName());
211213
cv.put(ProviderTableMeta.FILE_NOTE, file.getNote());
214+
cv.put(ProviderTableMeta.FILE_SHAREES, TextUtils.join(",", file.getSharees()));
212215

213216
boolean sameRemotePath = fileExists(file.getRemotePath());
214217
if (sameRemotePath ||
@@ -451,6 +454,7 @@ private ContentValues createContentValueForFile(OCFile folder) {
451454
cv.put(ProviderTableMeta.FILE_OWNER_ID, folder.getOwnerId());
452455
cv.put(ProviderTableMeta.FILE_OWNER_DISPLAY_NAME, folder.getOwnerDisplayName());
453456
cv.put(ProviderTableMeta.FILE_NOTE, folder.getNote());
457+
cv.put(ProviderTableMeta.FILE_SHAREES, TextUtils.join(",", folder.getSharees()));
454458

455459
return cv;
456460
}
@@ -490,6 +494,7 @@ private ContentValues createContentValueForFile(OCFile file, OCFile folder) {
490494
cv.put(ProviderTableMeta.FILE_OWNER_ID, file.getOwnerId());
491495
cv.put(ProviderTableMeta.FILE_OWNER_DISPLAY_NAME, file.getOwnerDisplayName());
492496
cv.put(ProviderTableMeta.FILE_NOTE, file.getNote());
497+
cv.put(ProviderTableMeta.FILE_SHAREES, TextUtils.join(",", file.getSharees()));
493498

494499
return cv;
495500
}
@@ -989,6 +994,14 @@ private OCFile createFileInstance(Cursor c) {
989994
file.setOwnerId(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_OWNER_ID)));
990995
file.setOwnerDisplayName(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_OWNER_DISPLAY_NAME)));
991996
file.setNote(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_NOTE)));
997+
998+
String sharees = c.getString(c.getColumnIndex(ProviderTableMeta.FILE_SHAREES));
999+
1000+
if (sharees.isEmpty()) {
1001+
file.setSharees(new ArrayList<>());
1002+
} else {
1003+
file.setSharees(new ArrayList<>(Arrays.asList(sharees.split(","))));
1004+
}
9921005
}
9931006

9941007
return file;
@@ -1217,7 +1230,7 @@ private OCShare createShareInstance(Cursor c) {
12171230
share.setSharedWithDisplayName(
12181231
c.getString(c.getColumnIndex(ProviderTableMeta.OCSHARES_SHARE_WITH_DISPLAY_NAME)));
12191232
share.setFolder(c.getInt(c.getColumnIndex(ProviderTableMeta.OCSHARES_IS_DIRECTORY)) == 1);
1220-
share.setUserId(c.getLong(c.getColumnIndex(ProviderTableMeta.OCSHARES_USER_ID)));
1233+
share.setUserId(c.getString(c.getColumnIndex(ProviderTableMeta.OCSHARES_USER_ID)));
12211234
share.setRemoteId(c.getLong(c.getColumnIndex(ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED)));
12221235
share.setPasswordProtected(c.getInt(c.getColumnIndex(ProviderTableMeta.OCSHARES_IS_PASSWORD_PROTECTED)) == 1);
12231236
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
// No instance
@@ -115,14 +115,15 @@ private ProviderTableMeta() {
115115
public static final String FILE_OWNER_ID = "owner_id";
116116
public static final String FILE_OWNER_DISPLAY_NAME = "owner_display_name";
117117
public static final String FILE_NOTE = "note";
118+
public static final String FILE_SHAREES = "sharees";
118119

119120
public static final String[] FILE_ALL_COLUMNS = {
120121
_ID, FILE_PARENT, FILE_NAME, FILE_CREATION, FILE_MODIFIED,
121122
FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA, FILE_CONTENT_LENGTH, FILE_CONTENT_TYPE, FILE_STORAGE_PATH,
122123
FILE_PATH, FILE_ACCOUNT_OWNER, FILE_LAST_SYNC_DATE, FILE_LAST_SYNC_DATE_FOR_DATA, FILE_ETAG,
123124
FILE_ETAG_ON_SERVER, FILE_SHARED_VIA_LINK, FILE_SHARED_WITH_SHAREE, FILE_PUBLIC_LINK, FILE_PERMISSIONS,
124125
FILE_REMOTE_ID, FILE_UPDATE_THUMBNAIL, FILE_IS_DOWNLOADING, FILE_ETAG_IN_CONFLICT, FILE_FAVORITE,
125-
FILE_IS_ENCRYPTED, FILE_MOUNT_TYPE, FILE_HAS_PREVIEW, FILE_UNREAD_COMMENTS_COUNT
126+
FILE_IS_ENCRYPTED, FILE_MOUNT_TYPE, FILE_HAS_PREVIEW, FILE_UNREAD_COMMENTS_COUNT, FILE_SHAREES
126127
};
127128

128129
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)