improving theme

This commit is contained in:
Mariotaku Lee 2015-04-15 00:05:02 +08:00
parent a998e690ab
commit 88cc7a8cce
11 changed files with 23 additions and 107 deletions

View File

@ -277,7 +277,7 @@
android:label="@string/set_color"
android:theme="@style/Theme.Twidere.Light.NoDisplay"/>
<activity
android:theme="@style/Theme.Twidere.Light.DialogWhenLarge"
android:theme="@style/Theme.Twidere.Dark.DialogWhenLarge"
android:name=".activity.support.LinkHandlerActivity"
android:windowSoftInputMode="adjustResize">
<meta-data

View File

@ -19,11 +19,8 @@
package org.mariotaku.twidere.activity;
import android.content.res.Resources;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.support.v4.app.NavUtils;
import android.view.Menu;
import org.mariotaku.twidere.Constants;
import org.mariotaku.twidere.activity.iface.IThemedActivity;
@ -37,11 +34,6 @@ public abstract class BasePreferenceActivity extends PreferenceActivity implemen
private int mCurrentThemeResource;
private String mCurrentThemeBackgroundOption;
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
return super.onMenuOpened(featureId, menu);
}
@Override
public int getCurrentThemeBackgroundAlpha() {
return 0;
@ -57,11 +49,6 @@ public abstract class BasePreferenceActivity extends PreferenceActivity implemen
return mCurrentThemeResource;
}
@Override
public Resources getDefaultResources() {
return super.getResources();
}
@Override
public int getThemeBackgroundAlpha() {
return 0;
@ -72,7 +59,6 @@ public abstract class BasePreferenceActivity extends PreferenceActivity implemen
return 0;
}
@Override
public String getThemeFontFamily() {
return VALUE_THEME_FONT_FAMILY_REGULAR;
@ -83,11 +69,6 @@ public abstract class BasePreferenceActivity extends PreferenceActivity implemen
return ThemeUtils.getSettingsThemeResource(this);
}
@Override
public void navigateUpFromSameTask() {
NavUtils.navigateUpFromSameTask(this);
}
@Override
public final void restart() {
restartActivity(this);
@ -115,6 +96,7 @@ public abstract class BasePreferenceActivity extends PreferenceActivity implemen
public String getThemeBackgroundOption() {
return ThemeUtils.getThemeBackgroundOption(this);
}
@Override
protected void onResume() {
super.onResume();
@ -123,7 +105,7 @@ public abstract class BasePreferenceActivity extends PreferenceActivity implemen
}
}
private final void setActionBarBackground() {
private void setActionBarBackground() {
// ThemeUtils.applyActionBarBackground(getActionBar(), this,
// mCurrentThemeResource);
}

View File

@ -35,9 +35,10 @@ import static org.mariotaku.twidere.util.Utils.restartActivity;
public abstract class BaseThemedActivity extends Activity implements IThemedActivity {
private int mCurrentThemeResource, mCurrentThemeColor, mCurrentThemeBackgroundAlpha;
private int mCurrentThemeResource;
private int mCurrentThemeColor;
private int mCurrentThemeBackgroundAlpha;
private String mCurrentThemeFontFamily;
private Theme mTheme;
private String mCurrentThemeBackgroundOption;
@Override
@ -55,11 +56,6 @@ public abstract class BaseThemedActivity extends Activity implements IThemedActi
return mCurrentThemeResource;
}
@Override
public Resources getDefaultResources() {
return super.getResources();
}
@Override
public int getThemeBackgroundAlpha() {
return ThemeUtils.getUserThemeBackgroundAlpha(this);
@ -76,29 +72,11 @@ public abstract class BaseThemedActivity extends Activity implements IThemedActi
@Override
public abstract int getThemeResourceId();
@Override
public void navigateUpFromSameTask() {
NavUtils.navigateUpFromSameTask(this);
}
@Override
public final void restart() {
restartActivity(this);
}
@Override
public Theme getTheme() {
if (mTheme == null) {
mTheme = getResources().newTheme();
mTheme.setTo(super.getTheme());
final int getThemeResourceId = getThemeResourceId();
if (getThemeResourceId != 0) {
mTheme.applyStyle(getThemeResourceId, true);
}
}
return mTheme;
}
protected final boolean isThemeChanged() {
return getThemeResourceId() != mCurrentThemeResource || getThemeColor() != mCurrentThemeColor
|| !CompareUtils.objectEquals(getThemeFontFamily(), mCurrentThemeFontFamily)
@ -136,6 +114,6 @@ public abstract class BaseThemedActivity extends Activity implements IThemedActi
mCurrentThemeBackgroundAlpha = getThemeBackgroundAlpha();
mCurrentThemeBackgroundOption = getThemeBackgroundOption();
setTheme(mCurrentThemeResource);
ThemeUtils.applyWindowBackground(this, getWindow(),mCurrentThemeResource, mCurrentThemeBackgroundOption, mCurrentThemeBackgroundAlpha);
ThemeUtils.applyWindowBackground(this, getWindow(), mCurrentThemeResource, mCurrentThemeBackgroundOption, mCurrentThemeBackgroundAlpha);
}
}

View File

@ -36,6 +36,7 @@ import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.NavUtils;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.support.v4.view.WindowCompat;
@ -103,7 +104,7 @@ public class FiltersActivity extends BaseActionBarActivity implements TabListene
public boolean onOptionsItemSelected(final MenuItem item) {
switch (item.getItemId()) {
case MENU_HOME: {
navigateUpFromSameTask();
NavUtils.navigateUpFromSameTask(this);
return true;
}
case MENU_ADD: {

View File

@ -23,28 +23,24 @@ import android.content.res.Resources;
public interface IThemedActivity {
public int getCurrentThemeBackgroundAlpha();
int getCurrentThemeBackgroundAlpha();
public String getCurrentThemeBackgroundOption();
String getCurrentThemeBackgroundOption();
public int getCurrentThemeColor();
int getCurrentThemeColor();
public int getCurrentThemeResourceId();
int getCurrentThemeResourceId();
public Resources getDefaultResources();
public int getThemeBackgroundAlpha();
int getThemeBackgroundAlpha();
String getThemeBackgroundOption();
public int getThemeColor();
int getThemeColor();
public String getThemeFontFamily();
String getThemeFontFamily();
int getThemeResourceId();
public void navigateUpFromSameTask();
public void restart();
void restart();
}

View File

@ -25,11 +25,6 @@ public class DataExportActivity extends BaseActionBarActivity implements FileSel
private ExportSettingsTask mTask;
@Override
public Resources getResources() {
return getDefaultResources();
}
@Override
public int getThemeResourceId() {
return ThemeUtils.getNoDisplayThemeResource(this);

View File

@ -24,11 +24,6 @@ public class DataImportActivity extends BaseActionBarActivity implements FileSel
private ImportSettingsTask mImportSettingsTask;
private OpenImportTypeTask mOpenImportTypeTask;
@Override
public Resources getResources() {
return getDefaultResources();
}
@Override
public int getThemeResourceId() {
return ThemeUtils.getNoDisplayThemeResource(this);

View File

@ -29,6 +29,7 @@ import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.NavUtils;
import android.support.v4.view.WindowCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.widget.Toolbar;
@ -114,7 +115,7 @@ public class LinkHandlerActivity extends BaseActionBarActivity implements System
if (mFinishOnly) {
finish();
} else {
navigateUpFromSameTask();
NavUtils.navigateUpFromSameTask(this);
}
break;
}

View File

@ -69,11 +69,6 @@ public abstract class ThemedActionBarActivity extends ActionBarActivity implemen
return mCurrentThemeResource;
}
@Override
public Resources getDefaultResources() {
return super.getResources();
}
@Override
public int getThemeBackgroundAlpha() {
return ThemeUtils.getUserThemeBackgroundAlpha(this);
@ -89,11 +84,6 @@ public abstract class ThemedActionBarActivity extends ActionBarActivity implemen
return ThemeUtils.getThemeFontFamily(this);
}
@Override
public void navigateUpFromSameTask() {
NavUtils.navigateUpFromSameTask(this);
}
@Override
public final void restart() {
restartActivity(this);

View File

@ -54,11 +54,6 @@ public abstract class ThemedFragmentActivity extends FragmentActivity implements
return mCurrentThemeResource;
}
@Override
public Resources getDefaultResources() {
return super.getResources();
}
@Override
public int getThemeBackgroundAlpha() {
return ThemeUtils.getUserThemeBackgroundAlpha(this);
@ -89,11 +84,6 @@ public abstract class ThemedFragmentActivity extends FragmentActivity implements
return ThemeUtils.getThemeFontFamily(this);
}
@Override
public void navigateUpFromSameTask() {
NavUtils.navigateUpFromSameTask(this);
}
@Override
public final void restart() {
restartActivity(this);

View File

@ -657,9 +657,6 @@ public class ThemeUtils implements Constants {
}
public static Resources getResources(final Context context) {
if (context instanceof IThemedActivity) {
return ((IThemedActivity) context).getDefaultResources();
}
return context.getResources();
}
@ -727,11 +724,10 @@ public class ThemeUtils implements Constants {
}
public static int getThemeColor(final Context context) {
final Resources res = getResources(context);
final Context wrapped = getThemedContext(context, res);
final TypedArray a = wrapped.obtainStyledAttributes(new int[]{android.R.attr.colorActivatedHighlight});
final TypedArray a = context.obtainStyledAttributes(new int[]{android.R.attr.colorActivatedHighlight});
try {
return a.getColor(0, res.getColor(R.color.material_light_blue));
final Resources resources = context.getResources();
return a.getColor(0, resources.getColor(R.color.material_light_blue));
} finally {
a.recycle();
}
@ -856,10 +852,6 @@ public class ThemeUtils implements Constants {
public static int getUserThemeBackgroundAlpha(final Context context) {
if (context instanceof IThemedActivity) {
final int alpha = ((IThemedActivity) context).getCurrentThemeBackgroundAlpha();
if (alpha >= 0) return alpha;
}
if (context == null) return DEFAULT_THEME_BACKGROUND_ALPHA;
final SharedPreferencesWrapper pref = getSharedPreferencesWrapper(context);
return pref.getInt(KEY_THEME_BACKGROUND_ALPHA, DEFAULT_THEME_BACKGROUND_ALPHA);
@ -867,8 +859,8 @@ public class ThemeUtils implements Constants {
public static int getUserAccentColor(final Context context) {
if (context == null) return Color.TRANSPARENT;
final Resources res = getResources(context);
final SharedPreferencesWrapper pref = getSharedPreferencesWrapper(context);
final Resources res = context.getResources();
final int def = res.getColor(R.color.branding_color);
return pref.getInt(KEY_THEME_COLOR, def);
}
@ -941,10 +933,6 @@ public class ThemeUtils implements Constants {
}
public static boolean isTransparentBackground(final Context context) {
if (context instanceof IThemedActivity) {
final String option = ((IThemedActivity) context).getCurrentThemeBackgroundOption();
if (option != null) return isTransparentBackground(option);
}
return isTransparentBackground(getThemeBackgroundOption(context));
}