open works now for android 10
This commit is contained in:
parent
31e2e0c9b6
commit
4b4f14382d
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue