Эх сурвалжийг харах

Show messages if
- no push possible (fdroid)
- push possible, but old login

tobiaskaminsky 7 жил өмнө
parent
commit
a1b4923418

+ 20 - 0
src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java

@@ -30,6 +30,7 @@ import android.content.Intent;
 import android.graphics.PorterDuff;
 import android.os.Bundle;
 import android.support.design.widget.BottomNavigationView;
+import android.support.design.widget.Snackbar;
 import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.widget.DividerItemDecoration;
 import android.support.v7.widget.LinearLayoutManager;
@@ -44,6 +45,7 @@ import android.widget.TextView;
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.authentication.AccountUtils;
+import com.owncloud.android.datamodel.ArbitraryDataProvider;
 import com.owncloud.android.lib.common.OwnCloudAccount;
 import com.owncloud.android.lib.common.OwnCloudClient;
 import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
@@ -55,6 +57,7 @@ import com.owncloud.android.lib.resources.notifications.models.Notification;
 import com.owncloud.android.ui.adapter.NotificationListAdapter;
 import com.owncloud.android.utils.AnalyticsUtils;
 import com.owncloud.android.utils.DisplayUtils;
+import com.owncloud.android.utils.PushUtils;
 import com.owncloud.android.utils.ThemeUtils;
 
 import java.io.IOException;
@@ -140,6 +143,23 @@ public class NotificationsActivity extends FileActivity {
             }
         });
 
+        Context context = getApplicationContext();
+        String pushUrl = context.getResources().getString(R.string.push_server_url);
+
+        if (pushUrl.isEmpty()) {
+            Snackbar.make(emptyContentContainer, R.string.push_notifications_not_implemented,
+                    Snackbar.LENGTH_INDEFINITE).show();
+        } else {
+            Account account = AccountUtils.getCurrentOwnCloudAccount(context);
+            ArbitraryDataProvider arbitraryDataProvider = new ArbitraryDataProvider(getContentResolver());
+            String pushValue = arbitraryDataProvider.getValue(account.name, PushUtils.KEY_PUSH);
+
+            if (pushValue == null || pushValue.isEmpty()) {
+                Snackbar.make(emptyContentContainer, R.string.push_notifications_old_login,
+                        Snackbar.LENGTH_INDEFINITE).show();
+            }
+        }
+
         setupContent();
     }
 

+ 2 - 0
src/main/res/values/strings.xml

@@ -706,4 +706,6 @@
     <string name="prefs_sourcecode">Get source code</string>
     <string name="prefs_license">License</string>
     <string name="prefs_gpl_v2" translatable="false">GNU General Public License, version 2</string>
+    <string name="push_notifications_not_implemented">For this version push notification were disabled due to dependencies on proprietary Google play services.</string>
+    <string name="push_notifications_old_login">Push notifications not possible due to old login method. Please consider to re-create your account.</string>
 </resources>