implement the actual theme change

This commit is contained in:
tibbi 2016-07-18 21:58:44 +02:00
parent 45527473e3
commit c771904361
9 changed files with 50 additions and 15 deletions

View File

@ -47,7 +47,9 @@
<activity <activity
android:name=".activities.SettingsActivity" android:name=".activities.SettingsActivity"
android:label="@string/settings"/> android:allowTaskReparenting="true"
android:label="@string/settings"
android:parentActivityName=".activities.MainActivity"/>
<receiver <receiver
android:name=".MyWidgetProvider" android:name=".MyWidgetProvider"

View File

@ -5,7 +5,6 @@ import android.content.Intent;
import android.content.res.Resources; import android.content.res.Resources;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.Html; import android.text.Html;
import android.text.method.LinkMovementMethod; import android.text.method.LinkMovementMethod;
import android.view.View; import android.view.View;
@ -21,7 +20,7 @@ import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
public class AboutActivity extends AppCompatActivity { public class AboutActivity extends SimpleActivity {
@BindView(R.id.about_copyright) TextView mCopyright; @BindView(R.id.about_copyright) TextView mCopyright;
@BindView(R.id.about_email) TextView mEmailTV; @BindView(R.id.about_email) TextView mEmailTV;
@BindView(R.id.about_rate_us) View mRateUs; @BindView(R.id.about_rate_us) View mRateUs;

View File

@ -9,7 +9,6 @@ import android.os.Bundle;
import android.support.design.widget.CoordinatorLayout; import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.Snackbar; import android.support.design.widget.Snackbar;
import android.support.v7.app.AlertDialog; import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.util.SparseBooleanArray; import android.util.SparseBooleanArray;
import android.view.ActionMode; import android.view.ActionMode;
import android.view.Menu; import android.view.Menu;
@ -40,7 +39,7 @@ import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
public class DayActivity extends AppCompatActivity public class DayActivity extends SimpleActivity
implements DBHelper.DBOperationsListener, AdapterView.OnItemClickListener, AbsListView.MultiChoiceModeListener { implements DBHelper.DBOperationsListener, AdapterView.OnItemClickListener, AbsListView.MultiChoiceModeListener {
@BindView(R.id.top_text) TextView mDateTV; @BindView(R.id.top_text) TextView mDateTV;
@BindView(R.id.day_events) ListView mEventsList; @BindView(R.id.day_events) ListView mEventsList;

View File

@ -5,7 +5,6 @@ import android.app.TimePickerDialog;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.AppCompatSpinner; import android.support.v7.widget.AppCompatSpinner;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
@ -34,7 +33,7 @@ import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
import butterknife.OnItemSelected; import butterknife.OnItemSelected;
public class EventActivity extends AppCompatActivity implements DBHelper.DBOperationsListener { public class EventActivity extends SimpleActivity implements DBHelper.DBOperationsListener {
@BindView(R.id.event_start_date) TextView mStartDate; @BindView(R.id.event_start_date) TextView mStartDate;
@BindView(R.id.event_start_time) TextView mStartTime; @BindView(R.id.event_start_time) TextView mStartTime;
@BindView(R.id.event_end_date) TextView mEndDate; @BindView(R.id.event_end_date) TextView mEndDate;

View File

@ -3,14 +3,13 @@ package com.simplemobiletools.calendar.activities;
import android.content.Intent; import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.simplemobiletools.calendar.R; import com.simplemobiletools.calendar.R;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
public class LicenseActivity extends AppCompatActivity { public class LicenseActivity extends SimpleActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {

View File

@ -8,7 +8,6 @@ import android.graphics.PorterDuff;
import android.os.Bundle; import android.os.Bundle;
import android.support.design.widget.CoordinatorLayout; import android.support.design.widget.CoordinatorLayout;
import android.support.v7.app.AlertDialog; import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
@ -37,7 +36,7 @@ import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
public class MainActivity extends AppCompatActivity implements Calendar { public class MainActivity extends SimpleActivity implements Calendar {
@BindView(R.id.top_left_arrow) ImageView mLeftArrow; @BindView(R.id.top_left_arrow) ImageView mLeftArrow;
@BindView(R.id.top_right_arrow) ImageView mRightArrow; @BindView(R.id.top_right_arrow) ImageView mRightArrow;
@BindView(R.id.top_text) TextView mMonthTV; @BindView(R.id.top_text) TextView mMonthTV;
@ -62,11 +61,12 @@ public class MainActivity extends AppCompatActivity implements Calendar {
setContentView(R.layout.activity_main); setContentView(R.layout.activity_main);
ButterKnife.bind(this); ButterKnife.bind(this);
final int baseColor = mConfig.getIsDarkTheme() ? Color.WHITE : Color.BLACK;
mRes = getResources(); mRes = getResources();
Locale.setDefault(Locale.ENGLISH); Locale.setDefault(Locale.ENGLISH);
mTextColor = Utils.adjustAlpha(Color.BLACK, Constants.HIGH_ALPHA); mTextColor = Utils.adjustAlpha(baseColor, Constants.HIGH_ALPHA);
mTextColorWithEvent = Utils.adjustAlpha(mRes.getColor(R.color.colorPrimary), Constants.HIGH_ALPHA); mTextColorWithEvent = Utils.adjustAlpha(mRes.getColor(R.color.colorPrimary), Constants.HIGH_ALPHA);
mWeakTextColor = Utils.adjustAlpha(Color.BLACK, Constants.LOW_ALPHA); mWeakTextColor = Utils.adjustAlpha(baseColor, Constants.LOW_ALPHA);
mWeakTextColorWithEvent = Utils.adjustAlpha(mRes.getColor(R.color.colorPrimary), Constants.LOW_ALPHA); mWeakTextColorWithEvent = Utils.adjustAlpha(mRes.getColor(R.color.colorPrimary), Constants.LOW_ALPHA);
mLeftArrow.getDrawable().mutate().setColorFilter(mTextColor, PorterDuff.Mode.SRC_ATOP); mLeftArrow.getDrawable().mutate().setColorFilter(mTextColor, PorterDuff.Mode.SRC_ATOP);
mRightArrow.getDrawable().mutate().setColorFilter(mTextColor, PorterDuff.Mode.SRC_ATOP); mRightArrow.getDrawable().mutate().setColorFilter(mTextColor, PorterDuff.Mode.SRC_ATOP);

View File

@ -1,7 +1,7 @@
package com.simplemobiletools.calendar.activities; package com.simplemobiletools.calendar.activities;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.app.AppCompatActivity; import android.support.v4.app.TaskStackBuilder;
import android.support.v7.widget.SwitchCompat; import android.support.v7.widget.SwitchCompat;
import com.simplemobiletools.calendar.Config; import com.simplemobiletools.calendar.Config;
@ -11,7 +11,7 @@ import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
public class SettingsActivity extends AppCompatActivity { public class SettingsActivity extends SimpleActivity {
@BindView(R.id.settings_dark_theme) SwitchCompat mDarkThemeSwitch; @BindView(R.id.settings_dark_theme) SwitchCompat mDarkThemeSwitch;
private static Config mConfig; private static Config mConfig;
@ -34,5 +34,10 @@ public class SettingsActivity extends AppCompatActivity {
public void handleDarkTheme() { public void handleDarkTheme() {
mDarkThemeSwitch.setChecked(!mDarkThemeSwitch.isChecked()); mDarkThemeSwitch.setChecked(!mDarkThemeSwitch.isChecked());
mConfig.setIsDarkTheme(mDarkThemeSwitch.isChecked()); mConfig.setIsDarkTheme(mDarkThemeSwitch.isChecked());
restartActivity();
}
private void restartActivity() {
TaskStackBuilder.create(getApplicationContext()).addNextIntentWithParentStack(getIntent()).startActivities();
} }
} }

View File

@ -0,0 +1,19 @@
package com.simplemobiletools.calendar.activities;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import com.simplemobiletools.calendar.Config;
import com.simplemobiletools.calendar.R;
public class SimpleActivity extends AppCompatActivity {
protected Config mConfig;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
mConfig = Config.newInstance(getApplicationContext());
setTheme(mConfig.getIsDarkTheme() ? R.style.AppTheme_Dark : R.style.AppTheme);
super.onCreate(savedInstanceState);
}
}

View File

@ -13,6 +13,19 @@
<item name="android:spinnerDropDownItemStyle">@style/SpinnerItem.DropDownItem</item> <item name="android:spinnerDropDownItemStyle">@style/SpinnerItem.DropDownItem</item>
</style> </style>
<style name="AppTheme.Dark" parent="Theme.AppCompat">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="buttonStyle">@style/MyButton</item>
<item name="android:buttonStyle">@style/MyButton</item>
<item name="actionBarStyle">@style/AppTheme.ActionBarStyle</item>
<item name="android:textSize">@dimen/normal_text_size</item>
<item name="android:spinnerItemStyle">@style/SpinnerItem</item>
<item name="spinnerDropDownItemStyle">@style/SpinnerItem.DropDownItem</item>
<item name="android:spinnerDropDownItemStyle">@style/SpinnerItem.DropDownItem</item>
</style>
<style name="DayView"> <style name="DayView">
<item name="android:gravity">center</item> <item name="android:gravity">center</item>
<item name="android:textSize">@dimen/day_text_size</item> <item name="android:textSize">@dimen/day_text_size</item>