open works now for android 10

This commit is contained in:
Lucio Lelii 2023-03-16 11:19:19 +01:00
parent 31e2e0c9b6
commit 4b4f14382d
5 changed files with 39 additions and 11 deletions

View File

@ -42,7 +42,7 @@ export class OpenFile {
const fileWrited = await Filesystem.writeFile({
path: this.item.getTitle(),
data: base64,
directory: Directory.Documents
directory: Directory.Data
});
const mimeType = this.item.item.content?.mimeType;

View File

@ -3,6 +3,7 @@ import { WSItem } from "./ws-item";
export enum SortName {
Name = "Name",
LastModificationTime = "Last Modified",
Size = "Size",
FolderFirst = "Folders First"
}
@ -14,19 +15,33 @@ export enum SortType {
export class Sorting {
private static sortByNameASC = (item1: WSItem, item2: WSItem) => item1.getTitle().toLowerCase() > item2.getTitle().toLowerCase() ? -1 : 1;
private static sortByNameDESC = (item1: WSItem, item2: WSItem) => item1.getTitle().toLowerCase() > item2.getTitle().toLowerCase() ? 1 : -1;
private static sortByNameDESC = (item1: WSItem, item2: WSItem) => this.sortByNameASC(item1, item2) * (-1);
private static sortByLastModificationASC = (item1: WSItem, item2: WSItem) => item1.item.lastModificationTime > item2.item.lastModificationTime ? 1 : -1;
private static sortByLastModificationDESC = (item1: WSItem, item2: WSItem) => item1.item.lastModificationTime > item2.item.lastModificationTime ? -1 : 1;
private static sortByLastModificationASC = (item1: WSItem, item2: WSItem) => item1.item.lastModificationTime > item2.item.lastModificationTime ? -1 : 1;
private static sortByLastModificationDESC = (item1: WSItem, item2: WSItem) => this.sortByLastModificationASC(item1, item2) * (-1);
private static folderFirst(item1: WSItem, item2: WSItem) {
if (item1.isFolder() && !item2.isFolder()) return -1;
if (!item1.isFolder() && item2.isFolder()) return 1;
if (item1.item.title > item2.item.title) return 1;
if (item1.item.title < item2.item.title) return -1;
if (item1.getTitle().toLocaleLowerCase() > item2.getTitle().toLocaleLowerCase()) return -1;
if (item1.getTitle().toLocaleLowerCase() < item2.getTitle().toLocaleLowerCase()) return 1;
return 0;
}
private static sortBySizeASC(item1: WSItem, item2: WSItem) {
if (item1.isFolder() && item2.isFile()) return 1;
if (item1.isFile() && item2.isFolder()) return -1;
if (item1.isFile() && item2.isFile()) {
const sizeFile1 = item1.item.content ? item1.item.content.size : 0;
const sizeFile2 = item2.item.content ? item2.item.content.size : 0;
return sizeFile2 - sizeFile1;
}
return 0;
}
private static sortBySizeDESC = (item1: WSItem, item2: WSItem) => this.sortBySizeASC(item1, item2) * (-1);
static getSortFunction(name: SortName, type: SortType): (a: WSItem, b: WSItem) => number {
switch (name) {
case SortName.Name:
@ -39,6 +54,11 @@ export class Sorting {
case SortType.Asc: return this.sortByLastModificationASC;
case SortType.Desc: return this.sortByLastModificationDESC;
}
case SortName.Size:
switch (type) {
case SortType.Asc: return this.sortBySizeASC;
case SortType.Desc: return this.sortBySizeDESC;
}
case SortName.FolderFirst:
return this.folderFirst;
}

View File

@ -1,5 +1,5 @@
<ion-content class="padding">
<ion-segment mode="ios" value="all">
<ion-segment value="all">
<ion-segment-button (click)="filterBy('all')" value="all">
All
</ion-segment-button>
@ -7,7 +7,7 @@
Folders
</ion-segment-button>
<ion-segment-button (click)="filterBy('shared')" value="SharedFolderItem">
Shared Folders
Shared
</ion-segment-button>
<ion-segment-button (click)="filterBy('files')" value="GenericFileItem">
Files
@ -32,6 +32,7 @@
<ion-select [interfaceOptions]="customSortAlertOptions" (ionChange)="changeSortName($event)" interface="alert" [value]="currentSortName">
<ion-select-option [value]="sortName.Name"> Name </ion-select-option>
<ion-select-option [value]="sortName.LastModificationTime"> Last Modified </ion-select-option>
<ion-select-option [value]="sortName.Size"> Size </ion-select-option>
</ion-select>
</ion-item>
<ion-button (click)="changeSortType()"><mat-icon>{{ currentSortType }}</mat-icon></ion-button>

View File

@ -1,4 +1,4 @@
<ion-content [fullscreen]="true">
<show-folder title="Trash" [root]="true" [items]="getValues()" ></show-folder>
<show-folder title="Trash" [root]="true" [parentItem]="getCurrentItem()" [items]="getValues()"></show-folder>
</ion-content>

View File

@ -16,7 +16,9 @@ import { presentConnectionAlert } from '../_helper/utils';
export class TrashPage implements OnInit {
values: WSItem[] = [];
values: WSItem[] | undefined;
currentItem : WSItem | undefined ;
constructor(private storagehub: StoragehubService, private alertCtrl: AlertController) { }
@ -30,6 +32,7 @@ export class TrashPage implements OnInit {
}
private onSuccess(res: Item) {
this.currentItem = new WSItem(res);
this.storagehub.getChildren(res.id, false).then((obs) => obs.subscribe({
next: (res) => {
const tmpItems$: WSItem[] = []
@ -41,7 +44,11 @@ export class TrashPage implements OnInit {
))
}
public getValues(): WSItem[] {
public getValues(): WSItem[] | undefined{
return this.values;
}
public getCurrentItem(){
return this.currentItem;
}
}