Your English is great. I am also no native english speaker
and as long as communication is working, everything is more than fine 
So here’s the code I got so far:
home.html:
<ion-header>
<ion-navbar color="primary">
<ion-title>
NZ Pictures
</ion-title>
<ion-buttons start>
<button ion-button *ngIf="depth" (click)="goBack()"><ion-icon name="arrow-back"></ion-icon> Back</button>
</ion-buttons>
</ion-navbar>
</ion-header>
<ion-content>
<ion-list>
<div *ngFor="let folder of folders">
<ion-item *ngIf="folder['.tag'] == 'folder'" detail-push (click)="openFolder(folder.path_lower)">
{{folder.name}}
</ion-item>
<button ion-item *ngIf="folder['.tag'] == 'file'" (click)="openFile(folder.path_lower)">
{{folder.name}}
</button>
</div>
</ion-list>
</ion-content>
home.ts:
import { Component } from '@angular/core';
import { NavController, LoadingController, AlertController, Platform, ModalController, Modal, } from 'ionic-angular';
import { Dropbox } from '../../providers/dropbox/dropbox';
import { InAppBrowser } from '@ionic-native/in-app-browser';
import { FileOpener } from '@ionic-native/file-opener';
import { FileChooser } from '@ionic-native/file-chooser';
import { FilePath } from '@ionic-native/file-path';
import { Http, Headers } from '@angular/http';
import { LocalNotifications } from '@ionic-native/local-notifications';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
depth: number = 0;
folders: any;
constructor(public http: Http, public iab: InAppBrowser, public modalCtrl: ModalController, private fileChooser: FileChooser, public alertCtrl: AlertController, private fileOpener: FileOpener, private filePath: FilePath, public navCtrl: NavController, public dropbox: Dropbox, public loadingCtrl: LoadingController, private plt: Platform, private localNotifications: LocalNotifications) {
}
ionViewDidLoad(){
this.folders = [];
let loading = this.loadingCtrl.create({
content: 'Syncing from Dropbox...'
});
loading.present();
this.dropbox.getFolders().subscribe(data => {
this.folders = data.entries;
loading.dismiss();
}, (err) => {
console.log(err);
});
this.localNotifications.schedule({
title: 'Attention',
text: 'New pictures online!',
sound: null
});
}
ionViewDidEnter(){
let loading = this.loadingCtrl.create({
content: 'Syncing from Dropbox...'
});
loading.present();
this.dropbox.getFolders().subscribe(data => {
this.folders = data.entries;
loading.dismiss();
}, (err) => {
console.log(err);
});
}
openFolder(path){
let loading = this.loadingCtrl.create({
content: 'Syncing from Dropbox...'
});
loading.present();
this.dropbox.getFolders(path).subscribe(data => {
this.folders = data.entries;
this.depth++;
loading.dismiss();
}, err => {
console.log(err);
});
}
goBack(){
let loading = this.loadingCtrl.create({
content: 'Syncing from Dropbox...'
});
loading.present();
this.dropbox.goBackFolder().subscribe(data => {
this.folders = data.entries;
this.depth--;
loading.dismiss();
}, err => {
console.log(err);
});
}
scheduleNotification(){
//this.plt.ready().then(() => {
this.localNotifications.schedule({
title: 'Attention',
text: 'New pictures online!',
sound: null
});
//});
}
openFile(path){
let loading = this.loadingCtrl.create({
content: 'Syncing from Dropbox...'
});
loading.present();
this.dropbox.getTemporaryLink().subscribe(data => {
this.iab.create(data.link, '_system', 'location=yes');
loading.dismiss();
}, err => {
console.log(err);
loading.dismiss();
});
}
}
dropbox.ts:
import { Injectable } from '@angular/core';
import { Http, Headers } from '@angular/http';
import 'rxjs/add/operator/map';
//part 2
import { InAppBrowser } from '@ionic-native/in-app-browser';
import { Observable } from 'rxjs/Observable';
@Injectable()
export class Dropbox {
accessToken: any;
folderHistory: any = [];
appKey: any;
redirectURI: any;
url: any;
constructor(public http: Http, public iab: InAppBrowser ) {
//OAuth
this.appKey = '***myAppKey***';
this.redirectURI = 'http://localhost';
this.url = 'https://www.dropbox.com/1/oauth2/authorize?client_id=' + this.appKey + '&redirect_uri=' + this.redirectURI + '&response_type=token';
}
setAccessToken(token) {
this.accessToken = token;
}
getUserInfo(){
let headers = new Headers();
headers.append('Authorization', 'Bearer ' + this.accessToken);
headers.append('Content-Type', 'application/json');
return this.http.post('https://api.dropboxapi.com/2/users/get_current_account', "null", {headers: headers})
.map(res => res.json());
}
getFolders(path?){
let headers = new Headers();
headers.append('Authorization', 'Bearer ' + this.accessToken);
headers.append('Content-Type', 'application/json');
let folderPath;
if(typeof(path) == "undefined" || !path){
folderPath = {
path: ""
};
} else {
folderPath = {
path: path
};
if(this.folderHistory[this.folderHistory.length - 1] != path){
this.folderHistory.push(path);
}
}
return this.http.post('https://api.dropboxapi.com/2/files/list_folder', JSON.stringify(folderPath), {headers: headers})
.map(res => res.json());
}
goBackFolder(){
if(this.folderHistory.length > 0){
this.folderHistory.pop();
let path = this.folderHistory[this.folderHistory.length - 1];
return this.getFolders(path);
}
else {
return this.getFolders();
}
}
login(){
return new Promise((resolve, reject) => {
let browser = this.iab.create(this.url, '_blank');
let listener = browser.on('loadstart').subscribe((event: any) => {
//Ignore the dropbox authorize screen
if(event.url.indexOf('oauth2/authorize') > -1){
return;
}
//Check the redirect uri
if(event.url.indexOf(this.redirectURI) > -1 ){
listener.unsubscribe();
browser.close();
let token = event.url.split('=')[1].split('&')[0];
this.accessToken = token;
resolve(event.url);
} else {
reject("Could not authenticate");
}
});
});
}
getTemporaryLink(path?){
let headers = new Headers();
headers.append('Authorization', 'Bearer' + this.accessToken);
headers.append('Content-Type', 'application/json');
return this.http.post('https://api.dropboxapi.com/2/files/get_temporary_link', {"path": path }, {headers: headers})
.map(res => res.json());
}
}