From 7e256175dc40b4c2e7a724aa0ba6dd06484586cf Mon Sep 17 00:00:00 2001 From: Neslihan Date: Sat, 18 Mar 2017 01:49:19 +0300 Subject: [PATCH] Move theme checkbox to settings activity --- .../fr/free/nrw/commons/AboutActivity.java | 2 + .../fr/free/nrw/commons/BaseActivity.java | 19 --------- .../nrw/commons/BaseAppCompatActivity.java | 19 --------- .../fr/free/nrw/commons/SettingsActivity.java | 16 +++++-- .../fr/free/nrw/commons/WelcomeActivity.java | 2 + .../commons/auth/AuthenticatedActivity.java | 3 +- .../free/nrw/commons/auth/SignupActivity.java | 2 +- .../contributions/ContributionsActivity.java | 1 - .../ContributionsListFragment.java | 23 +---------- .../nrw/commons/nearby/NearbyActivity.java | 2 +- .../free/nrw/commons/theme/BaseActivity.java | 39 ++++++++++++++++++ .../commons/theme/BaseAppCompatActivity.java | 38 +++++++++++++++++ .../commons/upload/SingleUploadFragment.java | 3 +- app/src/main/res/drawable/toggle.png | Bin 585 -> 0 bytes app/src/main/res/drawable/toggle_inverse.png | Bin 641 -> 0 bytes app/src/main/res/drawable/toggle_selector.xml | 9 ---- .../res/layout/fragment_single_upload.xml | 17 ++------ .../main/res/layout/theme_toggle_layout.xml | 18 -------- .../res/menu/fragment_contributions_list.xml | 6 --- app/src/main/res/values/attrs.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- app/src/main/res/values/styles.xml | 10 +++-- app/src/main/res/xml/preferences.xml | 6 +++ 23 files changed, 118 insertions(+), 121 deletions(-) delete mode 100644 app/src/main/java/fr/free/nrw/commons/BaseActivity.java delete mode 100644 app/src/main/java/fr/free/nrw/commons/BaseAppCompatActivity.java create mode 100644 app/src/main/java/fr/free/nrw/commons/theme/BaseActivity.java create mode 100644 app/src/main/java/fr/free/nrw/commons/theme/BaseAppCompatActivity.java delete mode 100644 app/src/main/res/drawable/toggle.png delete mode 100644 app/src/main/res/drawable/toggle_inverse.png delete mode 100644 app/src/main/res/drawable/toggle_selector.xml delete mode 100644 app/src/main/res/layout/theme_toggle_layout.xml diff --git a/app/src/main/java/fr/free/nrw/commons/AboutActivity.java b/app/src/main/java/fr/free/nrw/commons/AboutActivity.java index dc79f51ba..7e6351ee0 100644 --- a/app/src/main/java/fr/free/nrw/commons/AboutActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/AboutActivity.java @@ -5,6 +5,8 @@ import android.text.Html; import android.text.method.LinkMovementMethod; import android.widget.TextView; +import fr.free.nrw.commons.theme.BaseActivity; + public class AboutActivity extends BaseActivity { private TextView versionText; private TextView licenseText; diff --git a/app/src/main/java/fr/free/nrw/commons/BaseActivity.java b/app/src/main/java/fr/free/nrw/commons/BaseActivity.java deleted file mode 100644 index 176c4e192..000000000 --- a/app/src/main/java/fr/free/nrw/commons/BaseActivity.java +++ /dev/null @@ -1,19 +0,0 @@ -package fr.free.nrw.commons; - -import android.app.Activity; -import android.content.Context; -import android.os.Bundle; - - -public class BaseActivity extends Activity { - @Override - protected void onCreate(Bundle savedInstanceState) { - //Check prefs on every activity starts - if (getSharedPreferences("prefs", Context.MODE_PRIVATE).getBoolean("theme", false)) { - setTheme(R.style.LightAppTheme); - }else { - setTheme(R.style.DarkAppTheme); //default - } - super.onCreate(savedInstanceState); - } -} diff --git a/app/src/main/java/fr/free/nrw/commons/BaseAppCompatActivity.java b/app/src/main/java/fr/free/nrw/commons/BaseAppCompatActivity.java deleted file mode 100644 index 54fa81379..000000000 --- a/app/src/main/java/fr/free/nrw/commons/BaseAppCompatActivity.java +++ /dev/null @@ -1,19 +0,0 @@ -package fr.free.nrw.commons; - -import android.content.Context; -import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; - - -public class BaseAppCompatActivity extends AppCompatActivity { - @Override - protected void onCreate(Bundle savedInstanceState) { - //Check prefs on every activity starts - if (getSharedPreferences("prefs", Context.MODE_PRIVATE).getBoolean("theme", false)) { - setTheme(R.style.LightAppTheme); - }else { - setTheme(R.style.DarkAppTheme); //default - } - super.onCreate(savedInstanceState); - } -} diff --git a/app/src/main/java/fr/free/nrw/commons/SettingsActivity.java b/app/src/main/java/fr/free/nrw/commons/SettingsActivity.java index 4f8dd8745..a7dedcf18 100644 --- a/app/src/main/java/fr/free/nrw/commons/SettingsActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/SettingsActivity.java @@ -1,13 +1,16 @@ package fr.free.nrw.commons; import android.content.Context; +import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Configuration; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceActivity; +import android.preference.PreferenceManager; import android.support.annotation.LayoutRes; +import android.support.v4.content.IntentCompat; import android.support.v7.app.AppCompatDelegate; import android.view.MenuInflater; import android.view.View; @@ -23,10 +26,10 @@ public class SettingsActivity extends PreferenceActivity implements SharedPrefer getDelegate().installViewFactory(); getDelegate().onCreate(savedInstanceState); //Check prefs on every activity starts - if (getSharedPreferences("prefs", Context.MODE_PRIVATE).getBoolean("theme", false)) { - setTheme(R.style.LightAppTheme); + if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean("theme",false)) { + setTheme(R.style.DarkAppTheme); }else { - setTheme(R.style.DarkAppTheme); //default + setTheme(R.style.LightAppTheme); //default } super.onCreate(savedInstanceState); super.onCreate(savedInstanceState); @@ -76,7 +79,12 @@ public class SettingsActivity extends PreferenceActivity implements SharedPrefer @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - + if(key.equals("theme")){ + //Finish current activity and tart new one with selected theme + Intent intent = getIntent(); + finish(); + startActivity(intent); + } } // All the stuff below is just to get a actionbar that says settings... diff --git a/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java b/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java index 2bf750645..6e754cff1 100644 --- a/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java @@ -9,6 +9,8 @@ import android.widget.Button; import com.viewpagerindicator.CirclePageIndicator; +import fr.free.nrw.commons.theme.BaseActivity; + public class WelcomeActivity extends BaseActivity { static final int PAGE_WIKIPEDIA = 0, PAGE_DO_UPLOAD = 1, diff --git a/app/src/main/java/fr/free/nrw/commons/auth/AuthenticatedActivity.java b/app/src/main/java/fr/free/nrw/commons/auth/AuthenticatedActivity.java index 261d51f55..83c68d6df 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/AuthenticatedActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/auth/AuthenticatedActivity.java @@ -11,11 +11,10 @@ import android.os.AsyncTask; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.ActivityCompat; -import android.support.v7.app.AppCompatActivity; import java.io.IOException; -import fr.free.nrw.commons.BaseAppCompatActivity; +import fr.free.nrw.commons.theme.BaseAppCompatActivity; import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.Utils; diff --git a/app/src/main/java/fr/free/nrw/commons/auth/SignupActivity.java b/app/src/main/java/fr/free/nrw/commons/auth/SignupActivity.java index 8aabb85f1..a8ec8937d 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/SignupActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/auth/SignupActivity.java @@ -8,7 +8,7 @@ import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast; -import fr.free.nrw.commons.BaseActivity; +import fr.free.nrw.commons.theme.BaseActivity; public class SignupActivity extends BaseActivity { diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java index 142517e29..ff7af70e8 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java @@ -125,7 +125,6 @@ public class ContributionsActivity if (mediaDetails != null && savedInstanceState.getBoolean("mediaDetailsVisible")) { // Feels awful that we have to reset this manually! getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setDisplayShowCustomEnabled(true); } } requestAuthToken(); diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java index 4f73fe1c8..359cf06df 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java @@ -11,6 +11,7 @@ import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.content.ContextCompat; import android.support.v4.content.IntentCompat; +import android.support.v7.app.ActionBar; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; @@ -166,27 +167,6 @@ public class ContributionsListFragment extends Fragment { startActivity(nearbyIntent); return true; } - case R.id.menu_theme_toggle: - final SharedPreferences prefs = getActivity().getSharedPreferences("prefs", Context.MODE_PRIVATE); - prefs.registerOnSharedPreferenceChangeListener(new SharedPreferences.OnSharedPreferenceChangeListener() { - @Override - public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) { - if(s.equals("theme")){ - //http://stackoverflow.com/questions/5659742/onsharedpreferencechanged-called-multiple-times-why - prefs.unregisterOnSharedPreferenceChangeListener(this); - //Finish current activity and tart new one with selected theme - Intent intent = getActivity().getIntent(); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | IntentCompat.FLAG_ACTIVITY_CLEAR_TASK); - getActivity().finish(); - startActivity(intent); - } - } - }); - SharedPreferences.Editor editor = prefs.edit(); - //put inverse of selected boolean - editor.putBoolean("theme", !prefs.getBoolean("theme", false)); - editor.commit(); - return true; case R.id.menu_refresh: ((SourceRefresher)getActivity()).refreshSource(); return true; @@ -229,7 +209,6 @@ public class ContributionsListFragment extends Fragment { } menu.findItem(R.id.menu_refresh).setVisible(false); - menu.findItem(R.id.menu_theme_toggle).setActionView(R.layout.theme_toggle_layout); } /*http://stackoverflow.com/questions/30076392/how-does-this-strange-condition-happens-when-show-menu-item-icon-in-toolbar-over/30337653#30337653 diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java index 56531493c..c55ae4b02 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java @@ -12,7 +12,7 @@ import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; -import fr.free.nrw.commons.BaseAppCompatActivity; +import fr.free.nrw.commons.theme.BaseAppCompatActivity; import fr.free.nrw.commons.R; public class NearbyActivity extends BaseAppCompatActivity { diff --git a/app/src/main/java/fr/free/nrw/commons/theme/BaseActivity.java b/app/src/main/java/fr/free/nrw/commons/theme/BaseActivity.java new file mode 100644 index 000000000..d62b00e7a --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/theme/BaseActivity.java @@ -0,0 +1,39 @@ +package fr.free.nrw.commons.theme; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.util.Log; + +import fr.free.nrw.commons.R; + + +public class BaseActivity extends Activity { + boolean currentTheme; + + @Override + protected void onCreate(Bundle savedInstanceState) { + if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean("theme",false)) { + currentTheme = true; + setTheme(R.style.DarkAppTheme); + }else { + currentTheme = false; + setTheme(R.style.LightAppTheme); //default + } + super.onCreate(savedInstanceState); + } + + @Override + protected void onResume() { + //Restart activity if theme is changed + Log.d("deneme","onResume Base"); + boolean newTheme = PreferenceManager.getDefaultSharedPreferences(this).getBoolean("theme",false); + if(currentTheme!=newTheme){ //is activity theme changed + Intent intent = getIntent(); + finish(); + startActivity(intent); + } + super.onResume(); + } +} diff --git a/app/src/main/java/fr/free/nrw/commons/theme/BaseAppCompatActivity.java b/app/src/main/java/fr/free/nrw/commons/theme/BaseAppCompatActivity.java new file mode 100644 index 000000000..526db13b8 --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/theme/BaseAppCompatActivity.java @@ -0,0 +1,38 @@ +package fr.free.nrw.commons.theme; + +import android.content.Intent; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.support.v7.app.AppCompatActivity; +import android.util.Log; + +import fr.free.nrw.commons.R; + +public class BaseAppCompatActivity extends AppCompatActivity { + boolean currentTheme; + + @Override + protected void onCreate(Bundle savedInstanceState) { + if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean("theme",false)) { + currentTheme = true;g + setTheme(R.style.DarkAppTheme); + }else { + currentTheme = false; + setTheme(R.style.LightAppTheme); //default + } + super.onCreate(savedInstanceState); + } + + @Override + protected void onResume() { + //Restart activity if theme is changed + Log.d("deneme","onResume Base"); + boolean newTheme = PreferenceManager.getDefaultSharedPreferences(this).getBoolean("theme",false); + if(currentTheme!=newTheme){ //is activity theme changed + Intent intent = getIntent(); + finish(); + startActivity(intent); + } + super.onResume(); + } +} diff --git a/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java index c8bb2acfe..a316f5afa 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java @@ -5,6 +5,7 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Color; +import android.graphics.PorterDuff; import android.net.Uri; import android.os.Bundle; import android.preference.ListPreference; @@ -116,7 +117,7 @@ public class SingleUploadFragment extends Fragment { //Set selected color to white because it should be readable on random images. TextView selectedText = (TextView) licenseSpinner.getChildAt(0); - if (selectedText != null) { + if (selectedText != null ) { selectedText.setTextColor(Color.WHITE); } diff --git a/app/src/main/res/drawable/toggle.png b/app/src/main/res/drawable/toggle.png deleted file mode 100644 index 08e8f1ccd02f0760f32b3cb4d0e3d074d36b4f14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 585 zcmV-P0=E5$P);TJDtvSmAQ!I_X2~#pd%trf$Qsxd7l3W!>}Jk zk++Uh)ksy}*|zb&h!OQ6cGdgd7hi#ec-m^IN$y#@GJbWY4BOa zam;u;HpP7rxz+3S4o(YG*9Yh{E3)a&)4mVHY^_R1l&KBr)biYAALRGX#s$CyZr>X2YfFQ9z_w8$;1@z1D8)WA^dM2lC$Uk>Pz+$ XiJI^R9FQ(Q00000NkvXXu0mjf&!hW! diff --git a/app/src/main/res/drawable/toggle_inverse.png b/app/src/main/res/drawable/toggle_inverse.png deleted file mode 100644 index 7fd6599aef4a2997becf5c783b02ee199ddba7d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 641 zcmV-{0)G98P)9{Bh!VrKYFp-|`q_5i&ivJL0~egeU&zhPbqMBL}y3)mvJd z3UD!zNL*Va5Iue)Bf=eEMZGB^Fm$As9qX1gQeKD{TEgl}U_SlD zVlktR*zQKCO{e`K26~fSKjBYVxQN==H~6feDDnxK@TwJ~WdD zUZGoK@0po(gXkZN$KyE#2)XVVuxT&U)VB&(9>4X~?3ztGj*|sk1^6*CIAtaWfUjN# zjOIV^?A`aK1ytlhEEb!D`L_U|eEU?c>V|uOr}YMy!MVE=+ - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_single_upload.xml b/app/src/main/res/layout/fragment_single_upload.xml index e73c30f8f..c2e7acc4f 100644 --- a/app/src/main/res/layout/fragment_single_upload.xml +++ b/app/src/main/res/layout/fragment_single_upload.xml @@ -33,21 +33,12 @@ android:imeOptions="flagNoExtractUi" /> - - - - - - + android:theme="?attr/spinnerTheme" + />