Fixed crash on pre-Lollipop devices (API levels 20 and prior) due to trying to load attributes in drawables.
parent
8964c61397
commit
af4af94775
@ -0,0 +1,52 @@ |
||||
/* Copyright 2017 Andrew Dawson |
||||
* |
||||
* This file is part of Tusky. |
||||
* |
||||
* Tusky is free software: you can redistribute it and/or modify it under the terms of the GNU |
||||
* General Public License as published by the Free Software Foundation, either version 3 of the |
||||
* License, or (at your option) any later version. |
||||
* |
||||
* Tusky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even |
||||
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
||||
* Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License along with Tusky. If not, see |
||||
* <http://www.gnu.org/licenses/>. */
|
||||
|
||||
package com.keylesspalace.tusky; |
||||
|
||||
import android.content.Context; |
||||
import android.graphics.drawable.Drawable; |
||||
import android.support.v4.content.ContextCompat; |
||||
import android.util.TypedValue; |
||||
|
||||
public class ThemeUtils { |
||||
public static Drawable getDrawable(Context context, int attribute, int fallbackDrawable) { |
||||
TypedValue value = new TypedValue(); |
||||
int resourceId; |
||||
if (context.getTheme().resolveAttribute(attribute, value, true)) { |
||||
resourceId = value.resourceId; |
||||
} else { |
||||
resourceId = fallbackDrawable; |
||||
} |
||||
return ContextCompat.getDrawable(context, resourceId); |
||||
} |
||||
|
||||
public static int getDrawableId(Context context, int attribute, int fallbackDrawableId) { |
||||
TypedValue value = new TypedValue(); |
||||
if (context.getTheme().resolveAttribute(attribute, value, true)) { |
||||
return value.resourceId; |
||||
} else { |
||||
return fallbackDrawableId; |
||||
} |
||||
} |
||||
|
||||
public static int getColor(Context context, int attribute) { |
||||
TypedValue value = new TypedValue(); |
||||
if (context.getTheme().resolveAttribute(attribute, value, true)) { |
||||
return value.data; |
||||
} else { |
||||
return android.R.color.black; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,14 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<shape |
||||
xmlns:android="http://schemas.android.com/apk/res/android" |
||||
android:shape="rectangle"> |
||||
|
||||
<solid android:color="@color/media_preview_unloaded_background_light" /> |
||||
|
||||
<stroke |
||||
android:dashWidth="4dp" |
||||
android:dashGap="4dp" |
||||
android:width="2dp" |
||||
android:color="#AFAFAF" /> |
||||
|
||||
</shape> |
@ -0,0 +1,6 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" |
||||
android:shape="rectangle"> |
||||
<size android:height="1dp" /> |
||||
<solid android:color="@color/status_divider_light" /> |
||||
</shape> |
@ -1,5 +1,5 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" |
||||
android:shape="rectangle"> |
||||
<solid android:color="?attr/tab_page_margin_color" /> |
||||
<solid android:color="@color/tab_page_margin_dark" /> |
||||
</shape> |
@ -0,0 +1,5 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" |
||||
android:shape="rectangle"> |
||||
<solid android:color="@color/tab_page_margin_light" /> |
||||
</shape> |
Loading…
Reference in new issue