From e567acfc4fd440daa9d1be15072558aac0f0676d Mon Sep 17 00:00:00 2001 From: Neslihan Date: Tue, 21 Mar 2017 00:44:27 +0300 Subject: [PATCH] Fix spinner theme problem --- .../commons/upload/SingleUploadFragment.java | 20 ++++++++++++++++++- .../light_simple_spinner_dropdown_item.xml | 11 ++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/layout/light_simple_spinner_dropdown_item.xml 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 e03cf07db..137d3f850 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 @@ -4,11 +4,13 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.content.res.TypedArray; import android.graphics.Color; import android.net.Uri; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v4.app.Fragment; +import android.support.v7.view.ContextThemeWrapper; import android.text.Editable; import android.text.TextWatcher; import android.util.Log; @@ -24,6 +26,7 @@ import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; +import android.widget.LinearLayout; import android.widget.Spinner; import android.widget.TextView; @@ -89,6 +92,7 @@ public class SingleUploadFragment extends Fragment { licenseSpinner = (Spinner) rootView.findViewById(R.id.licenseSpinner); licenseSummaryView = (TextView)rootView.findViewById(R.id.share_license_summary); + ArrayList licenseItems = new ArrayList<>(); licenseItems.add(getString(R.string.license_name_cc0)); licenseItems.add(getString(R.string.license_name_cc_by)); @@ -101,9 +105,22 @@ public class SingleUploadFragment extends Fragment { Log.d("Single Upload fragment", license); - ArrayAdapter adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_dropdown_item, licenseItems); + ArrayAdapter adapter; + if (PreferenceManager.getDefaultSharedPreferences(getActivity()).getBoolean("theme",true)) { + // dark theme + adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_dropdown_item, licenseItems); + }else { + // light theme + adapter = new ArrayAdapter<>(getActivity(), R.layout.light_simple_spinner_dropdown_item, licenseItems); + } + licenseSpinner.setAdapter(adapter); + // Get background resource id to recognize current themes + TypedArray typedArray = getActivity().getTheme().obtainStyledAttributes(new int[] {R.attr.mainBackground}); + int themeBackgroundID = typedArray.getResourceId(0, 0); + typedArray.recycle(); + int position = licenseItems.indexOf(getString(Utils.licenseNameFor(license))); Log.d("Single Upload fragment", "Position:"+position+" "+getString(Utils.licenseNameFor(license))); licenseSpinner.setSelection(position); @@ -116,6 +133,7 @@ public class SingleUploadFragment extends Fragment { TextView selectedText = (TextView) licenseSpinner.getChildAt(0); if (selectedText != null ) { selectedText.setTextColor(Color.WHITE); + selectedText.setBackgroundColor(Color.TRANSPARENT); } String licenseName = parent.getItemAtPosition(position).toString(); diff --git a/app/src/main/res/layout/light_simple_spinner_dropdown_item.xml b/app/src/main/res/layout/light_simple_spinner_dropdown_item.xml new file mode 100644 index 000000000..11f95bf2e --- /dev/null +++ b/app/src/main/res/layout/light_simple_spinner_dropdown_item.xml @@ -0,0 +1,11 @@ + +