浏览代码

for brander: show color/background image if theming is disabled

tobiasKaminsky 7 年之前
父节点
当前提交
b6c9b3afbf

+ 14 - 1
src/main/java/com/owncloud/android/ui/activity/DrawerActivity.java

@@ -1046,13 +1046,13 @@ public abstract class DrawerActivity extends ToolbarActivity implements DisplayU
 
             if (navigationHeader != null) {
                 String background = getStorageManager().getCapability(getAccount().name).getServerBackground();
+                int primaryColor = ThemeUtils.primaryColor(getAccount());
 
                 if (URLUtil.isValidUrl(background) || background.isEmpty()) {
                     // background image
                     SimpleTarget target = new SimpleTarget<Drawable>() {
                         @Override
                         public void onResourceReady(Drawable resource, GlideAnimation glideAnimation) {
-                            int primaryColor = ThemeUtils.primaryColor(getAccount());
                             Drawable[] drawables = {new ColorDrawable(primaryColor), resource};
                             LayerDrawable layerDrawable = new LayerDrawable(drawables);
                             
@@ -1062,6 +1062,19 @@ public abstract class DrawerActivity extends ToolbarActivity implements DisplayU
                                 navigationHeader.setBackground(layerDrawable);
                             }
                         }
+
+                        @Override
+                        public void onLoadFailed(Exception e, Drawable errorDrawable) {
+                            Drawable[] drawables = {new ColorDrawable(primaryColor),
+                                    getResources().getDrawable(R.drawable.background)};
+                            LayerDrawable layerDrawable = new LayerDrawable(drawables);
+
+                            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
+                                navigationHeader.setBackgroundDrawable(layerDrawable);
+                            } else {
+                                navigationHeader.setBackground(layerDrawable);
+                            }
+                        }
                     };
 
                     Glide.with(this)

+ 14 - 1
src/main/java/com/owncloud/android/ui/activity/UserInfoActivity.java

@@ -281,13 +281,13 @@ public class UserInfoActivity extends FileActivity {
 
             if (appBar != null) {
                 String background = getStorageManager().getCapability(account.name).getServerBackground();
+                int primaryColor = ThemeUtils.primaryColor(getAccount());
 
                 if (URLUtil.isValidUrl(background)) {
                     // background image
                     SimpleTarget target = new SimpleTarget<Drawable>() {
                         @Override
                         public void onResourceReady(Drawable resource, GlideAnimation glideAnimation) {
-                            int primaryColor = ThemeUtils.primaryColor(getAccount());
                             Drawable[] drawables = {new ColorDrawable(primaryColor), resource};
                             LayerDrawable layerDrawable = new LayerDrawable(drawables);
                             
@@ -297,6 +297,19 @@ public class UserInfoActivity extends FileActivity {
                                 appBar.setBackground(layerDrawable);
                             }
                         }
+
+                        @Override
+                        public void onLoadFailed(Exception e, Drawable errorDrawable) {
+                            Drawable[] drawables = {new ColorDrawable(primaryColor),
+                                    getResources().getDrawable(R.drawable.background)};
+                            LayerDrawable layerDrawable = new LayerDrawable(drawables);
+
+                            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
+                                appBar.setBackgroundDrawable(layerDrawable);
+                            } else {
+                                appBar.setBackground(layerDrawable);
+                            }
+                        }
                     };
 
                     Glide.with(this)