Skip to content

Commit f2cdedd

Browse files
Merge pull request #1560 from nextcloud/pushWarning
Show info messages for push
2 parents 98a1ca5 + 8c272da commit f2cdedd

File tree

5 files changed

+38
-1
lines changed

5 files changed

+38
-1
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ dependencies {
184184
/// dependencies for app building
185185
implementation name: 'touch-image-view'
186186
implementation 'com.android.support:multidex:1.0.2'
187-
compile 'com.github.nextcloud:android-library:1.0.30'
187+
compile 'com.github.nextcloud:android-library:1.0.31'
188188
implementation "com.android.support:support-v4:${supportLibraryVersion}"
189189
implementation "com.android.support:design:${supportLibraryVersion}"
190190
implementation 'com.jakewharton:disklrucache:2.0.2'

src/gplay/java/com/owncloud/android/utils/PushUtils.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,10 @@ public static void pushRegistrationToServer() {
247247
arbitraryDataProvider.storeOrUpdateKeyValue(account.name, KEY_PUSH,
248248
gson.toJson(pushArbitraryData));
249249
}
250+
} else if (remoteOperationResult.getCode() ==
251+
RemoteOperationResult.ResultCode.ACCOUNT_USES_STANDARD_PASSWORD) {
252+
arbitraryDataProvider.storeOrUpdateKeyValue(account.name,
253+
AccountUtils.ACCOUNT_USES_STANDARD_PASSWORD, "true");
250254
}
251255
} catch (com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException e) {
252256
Log_OC.d(TAG, "Failed to find an account");

src/main/java/com/owncloud/android/authentication/AccountUtils.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public class AccountUtils {
5252

5353
public static final int ACCOUNT_VERSION = 1;
5454
public static final int ACCOUNT_VERSION_WITH_PROPER_ID = 2;
55+
public static final String ACCOUNT_USES_STANDARD_PASSWORD = "ACCOUNT_USES_STANDARD_PASSWORD";
5556

5657
/**
5758
* Can be used to get the currently selected ownCloud {@link Account} in the

src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import android.graphics.PorterDuff;
3131
import android.os.Bundle;
3232
import android.support.design.widget.BottomNavigationView;
33+
import android.support.design.widget.Snackbar;
3334
import android.support.v4.widget.SwipeRefreshLayout;
3435
import android.support.v7.widget.DividerItemDecoration;
3536
import android.support.v7.widget.LinearLayoutManager;
@@ -44,6 +45,7 @@
4445
import com.owncloud.android.MainApp;
4546
import com.owncloud.android.R;
4647
import com.owncloud.android.authentication.AccountUtils;
48+
import com.owncloud.android.datamodel.ArbitraryDataProvider;
4749
import com.owncloud.android.lib.common.OwnCloudAccount;
4850
import com.owncloud.android.lib.common.OwnCloudClient;
4951
import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
@@ -55,6 +57,7 @@
5557
import com.owncloud.android.ui.adapter.NotificationListAdapter;
5658
import com.owncloud.android.utils.AnalyticsUtils;
5759
import com.owncloud.android.utils.DisplayUtils;
60+
import com.owncloud.android.utils.PushUtils;
5861
import com.owncloud.android.utils.ThemeUtils;
5962

6063
import java.io.IOException;
@@ -140,6 +143,32 @@ public void onRefresh() {
140143
}
141144
});
142145

146+
Context context = getApplicationContext();
147+
String pushUrl = context.getResources().getString(R.string.push_server_url);
148+
149+
if (pushUrl.isEmpty()) {
150+
Snackbar.make(emptyContentContainer, R.string.push_notifications_not_implemented,
151+
Snackbar.LENGTH_INDEFINITE).show();
152+
} else {
153+
Account account = AccountUtils.getCurrentOwnCloudAccount(context);
154+
ArbitraryDataProvider arbitraryDataProvider = new ArbitraryDataProvider(getContentResolver());
155+
156+
boolean usesOldLogin = arbitraryDataProvider.getBooleanValue(account.name,
157+
AccountUtils.ACCOUNT_USES_STANDARD_PASSWORD);
158+
159+
if (usesOldLogin) {
160+
Snackbar.make(emptyContentContainer, R.string.push_notifications_old_login,
161+
Snackbar.LENGTH_INDEFINITE).show();
162+
} else {
163+
String pushValue = arbitraryDataProvider.getValue(account.name, PushUtils.KEY_PUSH);
164+
165+
if (pushValue == null || pushValue.isEmpty()) {
166+
Snackbar.make(emptyContentContainer, R.string.push_notifications_temp_error,
167+
Snackbar.LENGTH_INDEFINITE).show();
168+
}
169+
}
170+
}
171+
143172
setupContent();
144173
}
145174

src/main/res/values/strings.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -706,4 +706,7 @@
706706
<string name="prefs_sourcecode">Get source code</string>
707707
<string name="prefs_license">License</string>
708708
<string name="prefs_gpl_v2" translatable="false">GNU General Public License, version 2</string>
709+
<string name="push_notifications_not_implemented">Push notifications disabled due to dependencies on proprietary Google Play services.</string>
710+
<string name="push_notifications_old_login">No push notifications due to outdated login session. Please consider re-adding your account.</string>
711+
<string name="push_notifications_temp_error">Push notifications currently not available.</string>
709712
</resources>

0 commit comments

Comments
 (0)