From c2e310e737da75f62f2869976cc217bd99ebff89 Mon Sep 17 00:00:00 2001 From: Albert Gasset Date: Mon, 2 Jul 2018 16:08:39 +0200 Subject: [PATCH 1/2] MOBILE-2457 messages: Fix bottom padding when keyboard is shown --- src/addon/messages/pages/discussion/discussion.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/addon/messages/pages/discussion/discussion.ts b/src/addon/messages/pages/discussion/discussion.ts index ebea96e97..ceaf7af71 100644 --- a/src/addon/messages/pages/discussion/discussion.ts +++ b/src/addon/messages/pages/discussion/discussion.ts @@ -52,6 +52,7 @@ export class AddonMessagesDiscussionPage implements OnDestroy { protected keepMessageMap = {}; protected syncObserver: any; protected oldContentHeight = 0; + protected keyboardObserver: any; userId: number; currentUserId: number; @@ -178,6 +179,11 @@ export class AddonMessagesDiscussionPage implements OnDestroy { this.loaded = true; }); }); + + // Recalculate footer position when keyboard is shown or hidden. + this.keyboardObserver = this.eventsProvider.on(CoreEventsProvider.KEYBOARD_CHANGE, (isOn) => { + this.content.resize(); + }); } /** @@ -692,6 +698,7 @@ export class AddonMessagesDiscussionPage implements OnDestroy { // Unset again, just in case. this.unsetPolling(); this.syncObserver && this.syncObserver.off(); + this.keyboardObserver && this.keyboardObserver.off(); this.viewDestroyed = true; } } From db2cb40169954f4c5f04befd83dadd6ae4e0452a Mon Sep 17 00:00:00 2001 From: Albert Gasset Date: Mon, 2 Jul 2018 16:09:03 +0200 Subject: [PATCH 2/2] MOBILE-2457 chat: Fix bottom padding when keyboard is shown --- src/addon/mod/chat/pages/chat/chat.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/addon/mod/chat/pages/chat/chat.ts b/src/addon/mod/chat/pages/chat/chat.ts index d724549c2..889550095 100644 --- a/src/addon/mod/chat/pages/chat/chat.ts +++ b/src/addon/mod/chat/pages/chat/chat.ts @@ -15,6 +15,7 @@ import { Component, ViewChild, NgZone } from '@angular/core'; import { Content, IonicPage, ModalController, NavController, NavParams } from 'ionic-angular'; import { CoreAppProvider } from '@providers/app'; +import { CoreEventsProvider } from '@providers/events'; import { CoreLoggerProvider } from '@providers/logger'; import { CoreSitesProvider } from '@providers/sites'; import { CoreDomUtilsProvider } from '@providers/utils/dom'; @@ -49,12 +50,14 @@ export class AddonModChatChatPage { protected lastTime = 0; protected oldContentHeight = 0; protected onlineObserver: any; + protected keyboardObserver: any; protected viewDestroyed = false; protected pollingRunning = false; constructor(navParams: NavParams, logger: CoreLoggerProvider, network: Network, zone: NgZone, private navCtrl: NavController, private chatProvider: AddonModChatProvider, private appProvider: CoreAppProvider, sitesProvider: CoreSitesProvider, - private modalCtrl: ModalController, private domUtils: CoreDomUtilsProvider, private textUtils: CoreTextUtilsProvider) { + private modalCtrl: ModalController, private domUtils: CoreDomUtilsProvider, private textUtils: CoreTextUtilsProvider, + private eventsProvider: CoreEventsProvider) { this.chatId = navParams.get('chatId'); this.courseId = navParams.get('courseId'); @@ -87,6 +90,11 @@ export class AddonModChatChatPage { }).finally(() => { this.loaded = true; }); + + // Recalculate footer position when keyboard is shown or hidden. + this.keyboardObserver = this.eventsProvider.on(CoreEventsProvider.KEYBOARD_CHANGE, (isOn) => { + this.content.resize(); + }); } /** @@ -313,6 +321,7 @@ export class AddonModChatChatPage { */ ngOnDestroy(): void { this.onlineObserver && this.onlineObserver.unsubscribe(); + this.keyboardObserver && this.keyboardObserver.off(); this.stopPolling(); this.viewDestroyed = true; }