show doze warning when push is running on prosody

Daniel Gultsch created

Change summary

src/free/java/eu/siacs/conversations/services/PushManagementService.java      | 4 
src/main/java/eu/siacs/conversations/ui/ConversationActivity.java             | 2 
src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java              | 2 
src/playstore/java/eu/siacs/conversations/services/PushManagementService.java | 4 
4 files changed, 10 insertions(+), 2 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/ConversationActivity.java 🔗

@@ -1498,7 +1498,7 @@ public class ConversationActivity extends XmppActivity
 	private boolean hasAccountWithoutPush() {
 		for(Account account : xmppConnectionService.getAccounts()) {
 			if (account.getStatus() != Account.State.DISABLED
-					&& !xmppConnectionService.getPushManagementService().available(account)) {
+					&& !xmppConnectionService.getPushManagementService().availableAndUseful(account)) {
 				return true;
 			}
 		}

src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java 🔗

@@ -836,7 +836,7 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
 		if (this.mAccount.isOnlineAndConnected() && !this.mFetchingAvatar) {
 			Features features = this.mAccount.getXmppConnection().getFeatures();
 			this.mStats.setVisibility(View.VISIBLE);
-			boolean showBatteryWarning = !xmppConnectionService.getPushManagementService().available(mAccount) && isOptimizingBattery();
+			boolean showBatteryWarning = !xmppConnectionService.getPushManagementService().availableAndUseful(mAccount) && isOptimizingBattery();
 			boolean showDataSaverWarning = isAffectedByDataSaver();
 			showOsOptimizationWarning(showBatteryWarning,showDataSaverWarning);
 			this.mSessionEst.setText(UIHelper.readableTimeDifferenceFull(this, this.mAccount.getXmppConnection()

src/playstore/java/eu/siacs/conversations/services/PushManagementService.java 🔗

@@ -106,6 +106,10 @@ public class PushManagementService {
 		return connection != null && connection.getFeatures().push() && playServicesAvailable();
 	}
 
+	public boolean availableAndUseful(Account account) {
+		return account.getServerIdentity() == XmppConnection.Identity.EJABBERD && available(account);
+	}
+
 	private boolean playServicesAvailable() {
 		return GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(mXmppConnectionService) == ConnectionResult.SUCCESS;
 	}