From 514776940510490b817ccc79ff51179027aae67a Mon Sep 17 00:00:00 2001 From: Neslihan Date: Wed, 15 Mar 2017 18:20:59 +0300 Subject: [PATCH 01/17] Add BaseActivity and BaseAppcompatActivity --- .../fr/free/nrw/commons/AboutActivity.java | 3 +-- .../fr/free/nrw/commons/BaseActivity.java | 19 ++++++++++++++ .../nrw/commons/BaseAppCompatActivity.java | 19 ++++++++++++++ .../fr/free/nrw/commons/WelcomeActivity.java | 3 +-- .../commons/auth/AuthenticatedActivity.java | 3 ++- .../free/nrw/commons/auth/SignupActivity.java | 5 ++-- .../nrw/commons/nearby/NearbyActivity.java | 4 +-- app/src/main/res/values/styles.xml | 25 +++++++++++++++++-- 8 files changed, 70 insertions(+), 11 deletions(-) create mode 100644 app/src/main/java/fr/free/nrw/commons/BaseActivity.java create mode 100644 app/src/main/java/fr/free/nrw/commons/BaseAppCompatActivity.java 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 4fb9bc70b..dc79f51ba 100644 --- a/app/src/main/java/fr/free/nrw/commons/AboutActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/AboutActivity.java @@ -1,12 +1,11 @@ package fr.free.nrw.commons; -import android.app.Activity; import android.os.Bundle; import android.text.Html; import android.text.method.LinkMovementMethod; import android.widget.TextView; -public class AboutActivity extends Activity { +public class AboutActivity extends BaseActivity { private TextView versionText; private TextView licenseText; private TextView improveText; diff --git a/app/src/main/java/fr/free/nrw/commons/BaseActivity.java b/app/src/main/java/fr/free/nrw/commons/BaseActivity.java new file mode 100644 index 000000000..176c4e192 --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/BaseActivity.java @@ -0,0 +1,19 @@ +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 new file mode 100644 index 000000000..54fa81379 --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/BaseAppCompatActivity.java @@ -0,0 +1,19 @@ +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/WelcomeActivity.java b/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java index e075f793b..2bf750645 100644 --- a/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java @@ -1,6 +1,5 @@ package fr.free.nrw.commons; -import android.app.Activity; import android.os.Bundle; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; @@ -10,7 +9,7 @@ import android.widget.Button; import com.viewpagerindicator.CirclePageIndicator; -public class WelcomeActivity extends Activity { +public class WelcomeActivity extends BaseActivity { static final int PAGE_WIKIPEDIA = 0, PAGE_DO_UPLOAD = 1, PAGE_DONT_UPLOAD = 2, 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 f5eccf6fb..261d51f55 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 @@ -15,10 +15,11 @@ import android.support.v7.app.AppCompatActivity; import java.io.IOException; +import fr.free.nrw.commons.BaseAppCompatActivity; import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.Utils; -public abstract class AuthenticatedActivity extends AppCompatActivity { +public abstract class AuthenticatedActivity extends BaseAppCompatActivity { String accountType; CommonsApplication app; 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 57f35aed0..8aabb85f1 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 @@ -1,6 +1,5 @@ package fr.free.nrw.commons.auth; -import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; @@ -9,7 +8,9 @@ import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast; -public class SignupActivity extends Activity { +import fr.free.nrw.commons.BaseActivity; + +public class SignupActivity extends BaseActivity { private WebView webView; 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 c94700dda..e275a4fd1 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 @@ -7,12 +7,12 @@ import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.support.v4.app.FragmentTransaction; -import android.support.v7.app.AppCompatActivity; import android.util.Log; +import fr.free.nrw.commons.BaseAppCompatActivity; import fr.free.nrw.commons.R; -public class NearbyActivity extends AppCompatActivity { +public class NearbyActivity extends BaseAppCompatActivity { private MyLocationListener myLocationListener; private LocationManager locationManager; diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 900cac66e..1484ae59c 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,8 +1,29 @@ - + + + + From 23aa691275f949820411e42df9b47ebe41cb7b26 Mon Sep 17 00:00:00 2001 From: Neslihan Date: Wed, 15 Mar 2017 18:58:57 +0300 Subject: [PATCH 02/17] 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 From a2f98748d75d8a927cecc7d25eac9bc878b012f6 Mon Sep 17 00:00:00 2001 From: Neslihan Date: Wed, 15 Mar 2017 19:10:15 +0300 Subject: [PATCH 03/17] Attempt 1 to set layout for menu item (putting toggle button to right side) --- .../contributions/ContributionsActivity.java | 1 + .../main/res/layout/theme_toggle_layout.xml | 18 ++++++++++++++++++ .../res/menu/fragment_contributions_list.xml | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/layout/theme_toggle_layout.xml 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 ff7af70e8..142517e29 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,6 +125,7 @@ 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/res/layout/theme_toggle_layout.xml b/app/src/main/res/layout/theme_toggle_layout.xml new file mode 100644 index 000000000..70b18cec7 --- /dev/null +++ b/app/src/main/res/layout/theme_toggle_layout.xml @@ -0,0 +1,18 @@ + + + + diff --git a/app/src/main/res/menu/fragment_contributions_list.xml b/app/src/main/res/menu/fragment_contributions_list.xml index 20a08cedc..4324f5681 100644 --- a/app/src/main/res/menu/fragment_contributions_list.xml +++ b/app/src/main/res/menu/fragment_contributions_list.xml @@ -30,7 +30,7 @@ /> Date: Wed, 15 Mar 2017 19:12:26 +0300 Subject: [PATCH 04/17] Attempt 2 to set layout for menu item (putting toggle button to right side) --- app/src/main/res/menu/fragment_contributions_list.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/menu/fragment_contributions_list.xml b/app/src/main/res/menu/fragment_contributions_list.xml index 4324f5681..63dfa4ea6 100644 --- a/app/src/main/res/menu/fragment_contributions_list.xml +++ b/app/src/main/res/menu/fragment_contributions_list.xml @@ -30,7 +30,7 @@ /> Date: Wed, 15 Mar 2017 19:16:35 +0300 Subject: [PATCH 05/17] Attempt 3 (programatical approach) to set layout for menu item (putting toggle button to right side) --- .../nrw/commons/contributions/ContributionsListFragment.java | 1 + 1 file changed, 1 insertion(+) 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 ed6d2c0a7..4f73fe1c8 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 @@ -229,6 +229,7 @@ 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 From 65753550e31b4244d1d91d8ac33864652c56045f Mon Sep 17 00:00:00 2001 From: Neslihan Date: Thu, 16 Mar 2017 16:55:18 +0300 Subject: [PATCH 06/17] Add (black)Material icons for light theme --- .../res/drawable-hdpi/ic_photo_black_24dp.png | Bin 0 -> 256 bytes .../drawable-hdpi/ic_photo_camera_black_24dp.png | Bin 0 -> 351 bytes .../main/res/drawable-hdpi/ic_save_black_24dp.png | Bin 0 -> 240 bytes .../main/res/drawable-hdpi/ic_send_black_24dp.png | Bin 0 -> 250 bytes .../main/res/drawable-hdpi/ic_undo_black_24dp.png | Bin 0 -> 276 bytes .../drawable-ldrtl-hdpi/ic_send_black_24dp.png | Bin 0 -> 250 bytes .../drawable-ldrtl-mdpi/ic_send_black_24dp.png | Bin 0 -> 204 bytes .../drawable-ldrtl-xhdpi/ic_send_black_24dp.png | Bin 0 -> 341 bytes .../drawable-ldrtl-xxhdpi/ic_send_black_24dp.png | Bin 0 -> 414 bytes .../drawable-ldrtl-xxxhdpi/ic_send_black_24dp.png | Bin 0 -> 551 bytes .../res/drawable-mdpi/ic_photo_black_24dp.png | Bin 0 -> 183 bytes .../drawable-mdpi/ic_photo_camera_black_24dp.png | Bin 0 -> 236 bytes .../main/res/drawable-mdpi/ic_save_black_24dp.png | Bin 0 -> 167 bytes .../main/res/drawable-mdpi/ic_send_black_24dp.png | Bin 0 -> 205 bytes .../main/res/drawable-mdpi/ic_undo_black_24dp.png | Bin 0 -> 199 bytes .../res/drawable-xhdpi/ic_photo_black_24dp.png | Bin 0 -> 295 bytes .../drawable-xhdpi/ic_photo_camera_black_24dp.png | Bin 0 -> 430 bytes .../res/drawable-xhdpi/ic_save_black_24dp.png | Bin 0 -> 264 bytes .../res/drawable-xhdpi/ic_send_black_24dp.png | Bin 0 -> 333 bytes .../res/drawable-xhdpi/ic_undo_black_24dp.png | Bin 0 -> 333 bytes .../res/drawable-xxhdpi/ic_photo_black_24dp.png | Bin 0 -> 424 bytes .../ic_photo_camera_black_24dp.png | Bin 0 -> 643 bytes .../res/drawable-xxhdpi/ic_save_black_24dp.png | Bin 0 -> 368 bytes .../res/drawable-xxhdpi/ic_send_black_24dp.png | Bin 0 -> 412 bytes .../res/drawable-xxhdpi/ic_undo_black_24dp.png | Bin 0 -> 473 bytes .../res/drawable-xxxhdpi/ic_photo_black_24dp.png | Bin 0 -> 548 bytes .../ic_photo_camera_black_24dp.png | Bin 0 -> 860 bytes .../res/drawable-xxxhdpi/ic_save_black_24dp.png | Bin 0 -> 477 bytes .../res/drawable-xxxhdpi/ic_send_black_24dp.png | Bin 0 -> 543 bytes .../res/drawable-xxxhdpi/ic_undo_black_24dp.png | Bin 0 -> 601 bytes app/src/main/res/menu/activity_share.xml | 2 +- app/src/main/res/menu/fragment_categorization.xml | 2 +- .../main/res/menu/fragment_contributions_list.xml | 4 ++-- app/src/main/res/menu/fragment_image_detail.xml | 2 +- .../res/menu/fragment_multiple_upload_list.xml | 2 +- app/src/main/res/values/attrs.xml | 5 +++++ app/src/main/res/values/styles.xml | 11 ++++++++++- 37 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/ic_photo_black_24dp.png create mode 100644 app/src/main/res/drawable-hdpi/ic_photo_camera_black_24dp.png create mode 100644 app/src/main/res/drawable-hdpi/ic_save_black_24dp.png create mode 100644 app/src/main/res/drawable-hdpi/ic_send_black_24dp.png create mode 100644 app/src/main/res/drawable-hdpi/ic_undo_black_24dp.png create mode 100644 app/src/main/res/drawable-ldrtl-hdpi/ic_send_black_24dp.png create mode 100644 app/src/main/res/drawable-ldrtl-mdpi/ic_send_black_24dp.png create mode 100644 app/src/main/res/drawable-ldrtl-xhdpi/ic_send_black_24dp.png create mode 100644 app/src/main/res/drawable-ldrtl-xxhdpi/ic_send_black_24dp.png create mode 100644 app/src/main/res/drawable-ldrtl-xxxhdpi/ic_send_black_24dp.png create mode 100644 app/src/main/res/drawable-mdpi/ic_photo_black_24dp.png create mode 100644 app/src/main/res/drawable-mdpi/ic_photo_camera_black_24dp.png create mode 100644 app/src/main/res/drawable-mdpi/ic_save_black_24dp.png create mode 100644 app/src/main/res/drawable-mdpi/ic_send_black_24dp.png create mode 100644 app/src/main/res/drawable-mdpi/ic_undo_black_24dp.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_photo_black_24dp.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_photo_camera_black_24dp.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_save_black_24dp.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_send_black_24dp.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_undo_black_24dp.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_photo_black_24dp.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_photo_camera_black_24dp.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_save_black_24dp.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_send_black_24dp.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_undo_black_24dp.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_photo_black_24dp.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_photo_camera_black_24dp.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_save_black_24dp.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_send_black_24dp.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_undo_black_24dp.png diff --git a/app/src/main/res/drawable-hdpi/ic_photo_black_24dp.png b/app/src/main/res/drawable-hdpi/ic_photo_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..52c788746551c8c56b0b0c007d6d88b86e2491e1 GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpaZeY=kP60R1X|{Hu@&s|&Ag-FGDXro&V_2U(SdKn8~3KLrKrI|Wt)y~N<@>gTe~DWM4f DxdmAD literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_photo_camera_black_24dp.png b/app/src/main/res/drawable-hdpi/ic_photo_camera_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e9ed26d6e4f92558dc64abff018b785de5efabaa GIT binary patch literal 351 zcmV-l0igbgP)tQGp~y-42qsy)>gZ$)q0vUVQ|JjOw22l1 zn&eO;piQ@1s8L#)cu=Q@HgXw&%*abh=$l(1TzZNPZQO!^!rI!sKDe@p3+3RG8e-fI5vU{kOq3;k( zf4D(r8}s=`U}*na<|D}C-qDLoaA%=XnY#hk>ev-|a)pp<-_w?M94u|FPCp~HM^iJU xZNwQ#G+>vUY5vslUkT_X{f-(dJ%26#`3Wdjfl{;J4+8)I002ovPDHLkV1nx|nVSFr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_save_black_24dp.png b/app/src/main/res/drawable-hdpi/ic_save_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..b959dc4a8ed3d974d59ec0d471506cd61998592e GIT binary patch literal 240 zcmVDVd5(>BJ=niteU%2YFH`2sfB`Tj|9A4842*mXP-3vb zsu0uSBC~9)6z59Hybe0-MqLbL#b@u0ptMkcQbLaETaY~#3cp$;6z*8)gnH_w;WOw# z%6l2J9!gm+*FwFx8Ff%CZkiuMgSeTrKRaW+KmDuCk70=0VF?4$W5sjUO7JFf&v@cBq1Ms0ry%8`7Z~azh1Vga)YM6n-_y2o)b~ zqK+_?4h@i)I&TR57CHy$@Bv-vmY~Ejo`L;BT2I69PE+?3%XG9n3m^X+W4uQ?MnFc4 zfb19z=@=iY>Ki7UCVX-yUuT6 z(RqI3dCsTPIR|uf{yC9vL5puuh7A=aPlp+M&Ky}YqDmU41U*v;dR#DUWL(Bo{W5yxe9g5(%JtPk+Y(1{9u+q0*bTCFY) z3CexGPCT@%UO|GSf7LL1N1|#-q8tp&USEPFD#Xt0#Ux0gN@lApLux9(oI1((m($VF a`CYDj>cCobUVXp-0000|k0wldT1B8LpK~ERQkP61P*ADVFIS8~qG-nNH z+rkvvk>2`kjhpaB2Azgx^~Y;|DxW-Dkz{fHe4Vr~=iiKN7pDIWd%ks{7rShz_O+I* zueVlLtv+;!Co68Yn?~Y;d4~^5C?1%hc&OmS0XRA%RqA_wiWB#Yl@T(ghc_}fzi(L> zu>7+7i+M)Vp9U;5mAYc&+yAJ>eA&~RE5naZ-&=CeNTuP{e&vQ=iY>nsfh2^{HcPRs l=tKh$9h?7u)Asj^)pc+Bs2&UL`2+L}gQu&X%Q~loCICQfZw&wd literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-ldrtl-mdpi/ic_send_black_24dp.png b/app/src/main/res/drawable-ldrtl-mdpi/ic_send_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..d65d82294b084f83fb9395fb0b06e000b42a6191 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i$(}BbAr*{guWaN!WFX=4aC*}k z2enS|#x)Jndkj5V7!NV%Y5Z#v{(dD=IHF|A=|c zmyO8yck%vZ2mVVA{3aI|gkLnWMNME4yYbNf0k6{(BT3JnF{gmeWAJqKb6Mw<&;$Uc C9Y`Vo literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-ldrtl-xhdpi/ic_send_black_24dp.png b/app/src/main/res/drawable-ldrtl-xhdpi/ic_send_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..3a25fbb866a157759a4c33cad2d9feda224b0e1e GIT binary patch literal 341 zcmV-b0jmCqP)xbQeeahX$}n9q^A=zM zCavI!GrM_!niJ2Id~)vxc4YRf0Stgd$vn`{3e+T8O2+%*&H-%c`Y3KdqZomTlSYXH zu_(Hg0`Vv|K%*FeEt!KxaR3EJG7UNdpizv#hAtk38y8*&pQ{4VDA&;!Ubvwf02PUr zD)x*z1^Os^iug1B7ifN}EATM_-lhWpC5iM$qW1y!5=qo=&5@3V-xqp61<+u+!22l> z_)S@kih~C8A9fqE26F-$%n#@>;s^8~oC(li{#%6x^8*^p2gqt#lK<+c!MeFFzk2`h n1A5nX0~+kiX-xSn7_Vt%%8ql86*dsprZ%Wh4g^BkSU=4 zEbI>$@Ng~!tkKZ}`i1m>ej)uG&M&0D`TK?BfDcTkP$(1%zsTH@DOGpE9RL6T07*qo IM6N<$g0v#M&Hw-a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-ldrtl-xxxhdpi/ic_send_black_24dp.png b/app/src/main/res/drawable-ldrtl-xxxhdpi/ic_send_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..def070fd7fad796ee6d7e18f40132e919fd707b1 GIT binary patch literal 551 zcmV+?0@(eDP)v3Z_`+Mx*kz3c5y;342V*Dn zjrUxz&l{F#kdfDHr2dGF?k63T)BPm>Cpq0uEgh88{j^d+8Qo7hD2w~ipBXu)!XJ8> z#xN)y#V{zvFsO;pq-XlHs6qKY?xOD(&I0;YZ7QHanF^pmxqhY8piBicC{qD_mN#5A zNC#!QZqudjETBOd3g|a|+m$m7%2+^G6l?`FDAUbd4a!tNx9e;LG$>Dj#9DHJVi%O5 pfNohE3TRLt2!bF8f*=SUxd#W{=TXo*JzM|)002ovPDHLkV1m_n?o|K) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_photo_black_24dp.png b/app/src/main/res/drawable-mdpi/ic_photo_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..377ce1331881a9e3a65230890c53d75a1afadf2e GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iI!_nJkP60Ri9HGv9;zO$xA`F2 zY~NKip@`{&>Z-Q?EsCWkJy}1F2%PyabwitRK^RAXP2+^NT%I#L+6ULftvJI}BlXUh zgYo7Zp5>B!h8rAGcSx*zbm_y~gB+(OCrxmebUEoqSFE$qxh-=XS`%tr1AcOc@c!e` h=hXNvyJe<4!{gtg&1u^v`~|v%!PC{xWt~$(698OCMb!WR literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_photo_camera_black_24dp.png b/app/src/main/res/drawable-mdpi/ic_photo_camera_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..2ce3c5b7c82ca5ac6363b748d5ee02dd19b092d1 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i&7LlfAr*{wC&qF$Imoc5R}1+I zaxZNE@R&vMuEGnp#)}JGjzqIGJ?W$|7=WRm0}mdKI;Vst0A%c3asU7T literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_save_black_24dp.png b/app/src/main/res/drawable-mdpi/ic_save_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..663479b73d60f5a20abc0a53d0bf2822dd80eb0b GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iJWm(LkP61Dr+v8&88Eb5e9!cA z=Zpo%IXIti$z88ve695;%^~BYgL!G1`I*Oic5XB%t4deiwfl*6zUvWoC9?p2rp5nR z;zXDxo_f`|XltcHhOb;l)MoZo*WNWwbyK=r`My~_`4YSR&P_h=#Lvy*Z~pql@Ndj2 Q1E9?ep00i_>zopr096P-!~g&Q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_send_black_24dp.png b/app/src/main/res/drawable-mdpi/ic_send_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..83156aa38fc3644b0e394e8ab32ffd916be57ea6 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iDV{ElAr*{AFC64;au8^Jc)x{d z34`IqzU!xNG2J*3#JR13-PXrP?PIHr{;wUMCeFY4@o62al(<`%yiH@P_SB=S8>dRQ zK5M=q(`cu_zDt4imIFK63(KYH3obV@+FduCV1MDc18-l-2K56jiFN98FLSd`3|V>S z?tHx-n>Cx=T1v0UY~*!mVKYjSe!;<;VdccU@qd$eaj2Ul1NWh4K=(0ty85}Sb4q9e E0Nig(TmS$7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_undo_black_24dp.png b/app/src/main/res/drawable-mdpi/ic_undo_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..a0e2b681bbe2bd5f2473c0105d5d5406757a3e3d GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iK2I0NkP61Prwy|XF^Dugd@r{! zK%h|ch_%Hn>7y52c{=Vn>}gQg@lxlV++yGDOV(dl+PY_{^Frr;_5c3F)-H_~vp*5? zbltaySI?eOVUIs@BC^CzGEL#lUhaj38@C1Q%xVd!KIy=*cI~0^*50s;GsOiLa+itS z<1rFAHD${oLw3uXoQZQ9=h#$6RDJV*^_ykFpU?^K-b@Ywx{Sfo)z4*}Q$iB}kBU^N literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_photo_black_24dp.png b/app/src/main/res/drawable-xhdpi/ic_photo_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..6b7cd7838b5ab18a63036d58a054a7f7588df8d5 GIT binary patch literal 295 zcmV+?0oeYDP)A-PL#CT5Az5qiARtADF310vJ002ovPDHLkV1k7`cx3

hDSG`b1yb)y7wf)E%rK~RXhz(BI{1lhRBAw*F!ApSW|5cB{+RFWAI zQ<+7eiQSE%tAq*kd&?ixgKDa(wfq^5To~qfUqA&PMF*F<|kx;Md$&W&;x!#4;TRufSvnyKmY=;&`=O< zD`{EPz!xd^WlTz7A;m7|q5~RSbvmHHRiy(WT*Yq$l(?#OK#Qwh2dre+9fV)gZ4fyZ>#A&pWX|cF@nuJ>{9{^+CL!nen`MaoS0vDoPmT;NZb{N*U=t-36Ko{ O0000k}u zz4yJ$&1J--q};JXhGV`7G#rzA0=j;3#hM==_F;TsE#X%ij>tU$QCR5&(1qCnQP=`P zf}xVIU~Uv90(4;lAPT#r6aj|bvrVQ0bYaY~%qIJsG3A-BLBa~mnPHK2b~)jiN8WT{ zW8UwTx=)yXzmHCs0$5^$Jx-bM#QUFs3s(Q9XoW2fIOm3!UPXt@3uo+kAnntJ f+zL`$lalfSE(3Y*vbZRd00000NkvXXu0mjf@9dA^ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_undo_black_24dp.png b/app/src/main/res/drawable-xhdpi/ic_undo_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..3d2340925db6f4d8d411a61d9a1eab77084637b0 GIT binary patch literal 333 zcmV-T0kZyyP)DI!b;S=_7qemcr< zIz3%{PI3~kS=$Y2j0F{`>f8QO;senfGalr;t fbP#1(mStIA!!=e4*%@oA00000NkvXXu0mjfyM2`) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_photo_black_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_photo_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..7297bd5d29836b39d398d97961bc312fd9152bb5 GIT binary patch literal 424 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXoKNz?kpp;uuoF`1a;TufqW%4G;IP z;N;S~n0IdihI998&O^-W#$ zE8eR<`gyLR?O%&Chls5choVhVmCp&?Gd)wx?0#|VP~L8%%w$p-R(yr$;{~C~*0aQ- zs?IgBWz4kTp0!A|+(Jmj5e0owZ&G_RIaKonL&qxNl4CJJy$iIb&5VA0&o>}y-{Vf+ zDHG1r1x#19Qr&G{7AbO*Pb!!_%zNG?L)Xr;3&OX}$oL zDwTSQHR(l^wA|V&5Tv(BaLS|4S6@E=HsQVMvgUa=7p*v^YH9g=O3?HaqZf1cUXtJS zaF%GD*rb`FVdQ&MBb@09A9bRsaA1 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_photo_camera_black_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_photo_camera_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..6125fa2b74bb1999097eece0a7e1784ecc88cf3f GIT binary patch literal 643 zcmV-}0(||6P)36G`;7d4oo;X(9h`KX`>EFK8hDV&8biKM)ky=N74XcO0>VMTl{Zkp_3l zI01yg9JLb!z6!_~R>IeQEJ26(x{W2MjV~F~k|1M2_iU3Vi;X~FlVy<|I`ITuQ(=^T zQmoN39khu}kPLNmK|SV)B2UjmP>&BpHAhc>&^%rivs9>2qrwaVuLa#fo4Aeeg)5|M zO;#Dkt*$fZ8XFuhxj^>WIg{YX(9#!F@#Hj-KD%TB9P7G*?iocH;Q|@3Gc1%89X&zY z;HV%&RtCqeo}fI6#Z_ofgCUfno}etsEHc8TQF3~MY@Y`f{?O8Tf&@w}QcxAedi+6y z`N*;;Gm(O(bRX(P6hSjI=Q~3vB|Skq;8+a}S_a3Su2)A2Wtekhz>X0pHeFpW*EMiV zav5*|^Bf!-`rh^}GT@lt%;(o}=ZtZqFGy0y&7w>L?@?Yx;I^gvFKiyKCrneON|iEG z4B=HY@h5+ds6O&w<}+x4D2hCo`%tWtA;=h8raz@ytdpW2n+mpaXm@#S&D&m&K{^oUaH1jB{c*=P4m9N*vNQaFh=yAb4aF di9{li_zj}-1QU&Csq_E<002ovPDHLkV1hQ_6@35z literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_save_black_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_save_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..871291b4e6b3aab1840613e5c6a8a498a972649b GIT binary patch literal 368 zcmV-$0gwKPP)^c^fo|P|pSPy$;Uv zZr}&^4i28@d0tw9F;9FD|7rIeRgE{IJrya~94%=~w5KF3iRVT7B%T*3{@O9wBt6I` z=|MJ053)&mkWJEqY*KzubdZA_bmHX)Imkf{a*%@@v}Hn%Iu!~U^qJ-bt!VSN4rMOT z1DEWo$|477wTJUVD%GGZZ4T8{gC>V~KWl~mc+6>B{xvY@($^O)=WDCzEataaXtamIiqfk2BP^HUsXUqsP1 zB=sT#ElKK51{#sn1uF^Xm4d`-ybCzjkY3=HXErDL%1cHRc%J8ZDSZQI<(51+Brs$E O00009SiX~8^U zs0^|Jg+V%CkHn^!XN_G>x#5Y=+yEz-Wrb~yx#EG>?g9P#`GEfYY{2gC_rie#Xx{HV z9WZ^+9INbb!ZnY){W<8IMW1Yeb@n*pmggk0eWts)LHZl8!Q?;PKtK|1ApBhkH%LaR z+<&eDk~K&`G6xAr>G?=KM#@GSITuODMG{hxgxp`sLh?^hp*9(*rqfy<$sZ&l`GXn{ zN%(M{j3g9PB%z=p2?Z5ND5xJVg@XEhUa0RPl}e>jN$3j$I+7_=g2%A{0000UmM|r-#`5r!{)_G zNNy}rz-1m#qs=>d{AR!}y6myS8}4&~068}zDNC6K-*J)q#sXzd>Y!-SIqLkxjl3V! zIje*Gq#`X`j16c~)Ied(3Zc*PSQ@r>8B=n(y{U1vrBMeG9=u5p5JS*}vyJr4gm6ebN?<~k{&OL2uJ1MlRn3ryQ zdt3wQq@_c5zH&(e>7>&C=ex{ugEVL$opg*HYLo~_RF-8~mStI%Wm(o=if92|9Znszw-prK{(xhG7jYOgXiB))yeH<#dZofRb8aKMh65v4Km(J=0tQxe zrh}*HlLr2tohObjWUF~<#BlwG<&g&AcZFKgNe6i} zfNYr$^8};!yxS34JUMjJ3C3@0i#mVas^%|TnZ!1yV0v))k9T{%%dlH>PGl;JESr7* z+|{QE>WW?mxX)euR&jJ~e$Hi8Zm9Tj<;&2I@{RDB)ul%4IcxY~~shuCjiJz7=%!}+XkP3S}BH?LlOXmQ{1 zbtX&xyQ`v;<^mP(Zkg7~vthON3ayZa*jUD$>Ib8bzq<89<;SOp*oW$l^*Ndhtbf|& z_sOY?7IbX4S=nH_$2U{x*PlA}wm*#j?DqCp9#AQ`XVkQh)Ab4a%EbAC=|-u?1WQ}Q jpDR|sd7z>M1oey&Pa+y;l`K*O#y*3mtDnm{r-UW|Gl}p9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_photo_camera_black_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_photo_camera_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..6df33edd6197e901e9e0195f4b372a79f4396343 GIT binary patch literal 860 zcmV-i1Ec(jP)qXzO|ZWe=O(&0-FFUD$;^ zxff4mDeSI9N^gqNlkHk)wXsUAZq`h%GbZ7^mxMPHI-lS9LB24X4bGzpEX%SiYYE|V zOBm#9gzuI43PTL@7E#Aae2D=*<6lIbJL6L{OLB~8U_}yW^fA998r%UNp~?IFf@s3_ z=s|<`_!-fp{lvR8-6!PP;{u_17wob|5?|ioA;PGY$rJJZ@qa`ZxaVFI9wH3gnzyqr zj9r-|uJQcZ%Nb6g3-X9H}2`2m-_;u<5wi4rDElsIXwv&p6T0sAb| zPc0v^!f)mV{K+isxCt}Ip@{*Hh~iZjkIf2r!wi0XL&=nYfB1rWq&PDn;0>QsuOUkM z17@hElTq%nL4g7rWJ%LOHS@Xy9#N@}dz>QFaY~k6Dm~E|@CQ*;ZA^25sIgh z;XB|NvRLo|VPpm00WXm`trzgZJ;3ZEw66OI#gS!O?;mj*S=x6%3fXw@0oRdr`23Ho zNCer<-~%?HfkSi))s~JQa~~k<^>Jr^L=4%WjvsS^6;xB6pPWFoiqH}8E8)71Q3jR6 zft~=t9I6m^Jbe5RszrpZfJ3^tYLa5@v(E%q^-$CoAb3orZf^5;l`qa)#HjRC_aCgCy?@-5S7IK&7I|yd1;-O&c-6yG z6R((#Sir%J!?zU8z2tk%cMMR=Agdg-!ZmAw8;p@4hJ!jF!MhD!-Rg$v7uU#gfm0!Hf;Yoz&2m|*64jx6w8+MS&lItxES#dJw6yYM$|I#OM=zHzyti}Pwc^wN zt))Mh%cSoRUpghoOS5!|qNV?v4aVoI&jobrM2 z$mu=)$jDq&z1ekBu@?lqI?!8Eh|s}IjDKfvy^)|NSsGyL&A?F9>b zr|#PGi^XTftux9GW?F@2e|W@S;OgUD-ymq%`c2|5CSP&+_V&O1U75EBlQW zA57$ZmUC%mSY_hL8FrGAwa3xp#U)%C$H2?HsTP{@eO+0R%w9&s6jPrjS{Klkz&V60~+kL@gb&1nDt literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_send_black_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_send_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..761929f4319ed27f6d1f995d09eb2b9bc2de316a GIT binary patch literal 543 zcmV+)0^t3LP)x*fkZ{B`g7i!8I&_G+^jp3D98-1uOyT{3%&NQbJ*DmH;h=0&4#;NKAvc zngWD8@00GiD>ySpPfw%ED;&ph9LI5-3$`dDOrO9#M^uFcUS_~=>dFFfx_Utk2yf<& zL#na@CMZ#XI2|@AiwWojH6)m^LH(kxEMS9@5fBJ!L`Y6LsAWk36I4l8AWn}K6=i`! z1T`jn!d%jzq%2^A5)_C*{hV}APXs$kL0JK@psavcP*y-Js4$V~aX>{+zy`G>DPV)r z6R<(eC=1x2@(bh(YKnQ**yWUeTr*S;>I<{1u+1@l=<+bZpnjx+Qo5fu8;PKF?k63T z&i%xoY9x@kpL9@4_j5}#5tPvV^kY!@1?E^~hZFvC#pAmKzO$Gop#{FN#~J^*`EWw} zOc(o%)6-_1uf;#(bTk5Ioc`_<{*2Snl!|`F>1b;C&p1moA>Y{Fg$x4uf7pUlG#0UF zEGp6De_Cu(k$v1X(Z~qcw}$)z`QM|BfL1h?v05}nKrI?0pcRc}l>M1JgMf)fQJ_OZ zb=@XLBfE0eiqR+um}v9_;>v*7;;V^9Nx(!SBw#n;^aNrwGW6B<)s28&G*%#PM2m8+ h5{=_Hj^j9v^9)ES=TShce4YRR002ovPDHLkV1nL{>pK7d literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_undo_black_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_undo_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..9ca7eb73e65dd91d11e4f3fd0cc2d0ab0e66ff6d GIT binary patch literal 601 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z@*^m;uuoF`1bnV?BGO+wvVd= zqnAb*txya+(!W$GNnnm_49m)E>s_bo#mcw{1a9fNu$EQbktO@6)eSG1Bd$7K&U22O zUD$2GA-FbSQSQV^pLba8QCoiYw+Qq1(*KP7_UAqnF)S7F(p)+v2twRla&~i>dcxwoKO=D(>nok0rH6Pf_Y}^3oO9GL+D!4hLU7H|pf!g?n4i=zzT}KN z7pQh{+Kv{Z<}VctmxR9=owK=i=-Cec^}-7{7oITIIrVCah82U9z%~QNCfAs`hDCf0 z42p+Y>yr3Z7tZUeXfQ}rPd!t({)Qa8fZCj8ZIRB8bCM2>%PgLcZ+{tTTm#{Ky z;SmA#8~*c3QzCr%EBOk#R@*!^o|dJ$D~Wm5d)w(Zoi~>iPuw1HdGC_yrwpI(B+7fQ zoF2F;;_%d$$K($%EzU`@Ox<~n diff --git a/app/src/main/res/menu/fragment_categorization.xml b/app/src/main/res/menu/fragment_categorization.xml index de0a87f8c..0b941eb28 100644 --- a/app/src/main/res/menu/fragment_categorization.xml +++ b/app/src/main/res/menu/fragment_categorization.xml @@ -4,6 +4,6 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> \ No newline at end of file diff --git a/app/src/main/res/menu/fragment_contributions_list.xml b/app/src/main/res/menu/fragment_contributions_list.xml index 5e40c83ac..404857ef3 100644 --- a/app/src/main/res/menu/fragment_contributions_list.xml +++ b/app/src/main/res/menu/fragment_contributions_list.xml @@ -4,13 +4,13 @@ android:title="@string/menu_from_camera" android:orderInCategory="100" app:showAsAction="ifRoom|withText" - android:icon="@drawable/ic_photo_camera_white_24dp" + android:icon="?attr/iconCamera" /> diff --git a/app/src/main/res/menu/fragment_multiple_upload_list.xml b/app/src/main/res/menu/fragment_multiple_upload_list.xml index 77b93e5c9..288d55332 100644 --- a/app/src/main/res/menu/fragment_multiple_upload_list.xml +++ b/app/src/main/res/menu/fragment_multiple_upload_list.xml @@ -6,6 +6,6 @@ \ No newline at end of file diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index daf787222..cff8a426f 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -8,4 +8,9 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 1484ae59c..d3e392d99 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -9,7 +9,11 @@ @color/button_background_dark @color/upload_overlay_background_dark @drawable/toggle_inverse - + @drawable/ic_send_white_24dp + @drawable/ic_save_white_24dp + @drawable/ic_photo_camera_white_24dp + @drawable/ic_photo_white_24dp + @drawable/ic_undo_white_24dp - + + From 7e256175dc40b4c2e7a724aa0ba6dd06484586cf Mon Sep 17 00:00:00 2001 From: Neslihan Date: Sat, 18 Mar 2017 01:49:19 +0300 Subject: [PATCH 11/17] 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" + />