From 23aa691275f949820411e42df9b47ebe41cb7b26 Mon Sep 17 00:00:00 2001 From: Neslihan Date: Wed, 15 Mar 2017 18:58:57 +0300 Subject: [PATCH] Prepare xml files --- .../fr/free/nrw/commons/SettingsActivity.java | 8 +++ .../ContributionsListFragment.java | 49 ++++++++++++++++++ app/src/main/res/drawable/toggle.png | Bin 0 -> 3582 bytes app/src/main/res/drawable/toggle_inverse.png | Bin 0 -> 3771 bytes app/src/main/res/drawable/toggle_selector.xml | 9 ++++ app/src/main/res/layout/activity_share.xml | 2 +- app/src/main/res/layout/activity_welcome.xml | 2 +- .../main/res/layout/detail_category_item.xml | 2 +- .../res/layout/fragment_categorization.xml | 2 +- .../res/layout/fragment_contributions.xml | 2 +- .../main/res/layout/fragment_media_detail.xml | 16 +++--- .../res/menu/fragment_contributions_list.xml | 5 ++ app/src/main/res/values/attrs.xml | 11 ++++ app/src/main/res/values/colors.xml | 21 +++++++- app/src/main/res/values/strings.xml | 3 ++ 15 files changed, 117 insertions(+), 15 deletions(-) create mode 100644 app/src/main/res/drawable/toggle.png create mode 100644 app/src/main/res/drawable/toggle_inverse.png create mode 100644 app/src/main/res/drawable/toggle_selector.xml create mode 100644 app/src/main/res/values/attrs.xml 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 933d39bbd..4f8dd8745 100644 --- a/app/src/main/java/fr/free/nrw/commons/SettingsActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/SettingsActivity.java @@ -1,5 +1,6 @@ package fr.free.nrw.commons; +import android.content.Context; import android.content.SharedPreferences; import android.content.res.Configuration; import android.os.Bundle; @@ -21,6 +22,13 @@ public class SettingsActivity extends PreferenceActivity implements SharedPrefer protected void onCreate(Bundle savedInstanceState) { getDelegate().installViewFactory(); getDelegate().onCreate(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); super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); ListPreference licensePreference = (ListPreference) findPreference(Prefs.DEFAULT_LICENSE); 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 cc0df0e2d..ed6d2c0a7 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 @@ -10,6 +10,7 @@ import android.os.Build; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.content.ContextCompat; +import android.support.v4.content.IntentCompat; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; @@ -23,6 +24,8 @@ import android.widget.ListAdapter; import android.widget.TextView; import android.widget.Toast; +import java.lang.reflect.Method; + import fr.free.nrw.commons.AboutActivity; import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.R; @@ -163,6 +166,27 @@ 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; @@ -207,6 +231,31 @@ public class ContributionsListFragment extends Fragment { menu.findItem(R.id.menu_refresh).setVisible(false); } + /*http://stackoverflow.com/questions/30076392/how-does-this-strange-condition-happens-when-show-menu-item-icon-in-toolbar-over/30337653#30337653 + Overriden to show toggle_layout button on overlay menu + */ + @Override + public void onPrepareOptionsMenu(Menu menu) { + if(menu != null){ + if(menu.getClass().getSimpleName().equals("MenuBuilder")){ + try{ + Method m = menu.getClass().getDeclaredMethod( + "setOptionalIconsVisible", Boolean.TYPE); + m.setAccessible(true); + m.invoke(menu, true); + } + catch(NoSuchMethodException e){ + Log.e(TAG, "onMenuOpened", e); + } + catch(Exception e){ + throw new RuntimeException(e); + } + } + } + super.onPrepareOptionsMenu(menu); + } + + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/app/src/main/res/drawable/toggle.png b/app/src/main/res/drawable/toggle.png new file mode 100644 index 0000000000000000000000000000000000000000..4871bf0b4920c61d31de38d62164603eaf9cc130 GIT binary patch literal 3582 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/toggle_inverse.png b/app/src/main/res/drawable/toggle_inverse.png new file mode 100644 index 0000000000000000000000000000000000000000..c08d7fc9321d5717c0a5418a0d92d619ec6b5ece GIT binary patch literal 3771 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 lQJ5^t% + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_share.xml b/app/src/main/res/layout/activity_share.xml index e1e58d8dd..3eecb6ec1 100644 --- a/app/src/main/res/layout/activity_share.xml +++ b/app/src/main/res/layout/activity_share.xml @@ -1,7 +1,7 @@ @@ -66,7 +66,7 @@ android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="#20ffffff" + android:background="?attr/subBackground" android:padding="16dp" > @@ -100,7 +100,7 @@ android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="#20ffffff" + android:background="?attr/subBackground" android:padding="16dp" > diff --git a/app/src/main/res/menu/fragment_contributions_list.xml b/app/src/main/res/menu/fragment_contributions_list.xml index 06c39006c..20a08cedc 100644 --- a/app/src/main/res/menu/fragment_contributions_list.xml +++ b/app/src/main/res/menu/fragment_contributions_list.xml @@ -28,6 +28,11 @@ android:title="@string/menu_nearby" app:showAsAction="never" /> + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 824528460..7c8fad193 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,6 +1,23 @@ - + #90000000 + #ffffffff + #000000 + #bdbdbd + #33FFFFFF + #33FFFFFF + #0c609c + #0c609c + #20ffffff + #20ffffff + #AA000000 + #44ffffff + #90000000 + #60000000 + #77000000 + #44000000 - \ No newline at end of file + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 88317229e..3d620bcc2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -33,6 +33,7 @@ Take photo Nearby My uploads + Night mode Share View in Browser Title @@ -90,6 +91,8 @@ Tap this message (or hit back) to skip this step. Use previous title/description Automatically get current location Retrieve current location to offer category suggestions if image is not geotagged + Select theme + Select application theme as light/dark Attribution-ShareAlike 4.0 Attribution 4.0 Attribution-ShareAlike 3.0