Skip to content

Commit b190f7f

Browse files
authored
Merge pull request #383 from maskaravivek/chooseLicense
Fixes #323: Provide explicit selection of licenses when uploading image
2 parents 252f8b8 + 6fe242c commit b190f7f

File tree

2 files changed

+71
-5
lines changed

2 files changed

+71
-5
lines changed

app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java

+64-5
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import android.content.SharedPreferences;
77
import android.net.Uri;
88
import android.os.Bundle;
9+
import android.preference.ListPreference;
910
import android.preference.PreferenceManager;
1011
import android.support.v4.app.Fragment;
1112
import android.text.Editable;
@@ -19,10 +20,16 @@
1920
import android.view.View;
2021
import android.view.ViewGroup;
2122
import android.view.inputmethod.InputMethodManager;
23+
import android.widget.AdapterView;
24+
import android.widget.ArrayAdapter;
2225
import android.widget.Button;
2326
import android.widget.EditText;
27+
import android.widget.Spinner;
2428
import android.widget.TextView;
2529

30+
import java.util.ArrayList;
31+
import java.util.List;
32+
2633
import fr.free.nrw.commons.Prefs;
2734
import fr.free.nrw.commons.R;
2835
import fr.free.nrw.commons.Utils;
@@ -36,6 +43,7 @@ public interface OnUploadActionInitiated {
3643
private EditText titleEdit;
3744
private EditText descEdit;
3845
private TextView licenseSummaryView;
46+
private Spinner licenseSpinner;
3947

4048
private OnUploadActionInitiated uploadActionInitiatedHandler;
4149

@@ -79,6 +87,57 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
7987
titleEdit = (EditText)rootView.findViewById(R.id.titleEdit);
8088
descEdit = (EditText)rootView.findViewById(R.id.descEdit);
8189
Button titleDescButton = (Button) rootView.findViewById(R.id.titleDescButton);
90+
licenseSpinner = (Spinner) rootView.findViewById(R.id.licenseSpinner);
91+
licenseSummaryView = (TextView)rootView.findViewById(R.id.share_license_summary);
92+
93+
ArrayList<String> licenseItems = new ArrayList<>();
94+
licenseItems.add(getString(R.string.license_name_cc0));
95+
licenseItems.add(getString(R.string.license_name_cc_by));
96+
licenseItems.add(getString(R.string.license_name_cc_by_sa));
97+
licenseItems.add(getString(R.string.license_name_cc_by_four));
98+
licenseItems.add(getString(R.string.license_name_cc_by_sa_four));
99+
100+
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
101+
final String license = prefs.getString(Prefs.DEFAULT_LICENSE, Prefs.Licenses.CC_BY_SA_3);
102+
103+
Log.d("Single Upload fragment", license);
104+
105+
ArrayAdapter<String> adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_dropdown_item, licenseItems);
106+
licenseSpinner.setAdapter(adapter);
107+
108+
int position = licenseItems.indexOf(getString(Utils.licenseNameFor(license)));
109+
Log.d("Single Upload fragment", "Position:"+position+" "+getString(Utils.licenseNameFor(license)));
110+
licenseSpinner.setSelection(position);
111+
112+
licenseSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
113+
@Override
114+
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
115+
String licenseName = parent.getItemAtPosition(position).toString();
116+
117+
String license = Prefs.Licenses.CC_BY_SA_3; // default value
118+
if(getString(R.string.license_name_cc0).equals(licenseName)) {
119+
license = Prefs.Licenses.CC0;
120+
} else if(getString(R.string.license_name_cc_by).equals(licenseName)) {
121+
license = Prefs.Licenses.CC_BY_3;
122+
} else if(getString(R.string.license_name_cc_by_sa).equals(licenseName)) {
123+
license = Prefs.Licenses.CC_BY_SA_3;
124+
} else if(getString(R.string.license_name_cc_by_four).equals(licenseName)) {
125+
license = Prefs.Licenses.CC_BY_4;
126+
} else if(getString(R.string.license_name_cc_by_sa_four).equals(licenseName)) {
127+
license = Prefs.Licenses.CC_BY_SA_4;
128+
}
129+
130+
setLicenseSummary(license);
131+
SharedPreferences.Editor editor = prefs.edit();
132+
editor.putString(Prefs.DEFAULT_LICENSE, license);
133+
editor.commit();
134+
}
135+
136+
@Override
137+
public void onNothingSelected(AdapterView<?> parent) {
138+
139+
}
140+
});
82141

83142
titleDescButton.setOnClickListener(new View.OnClickListener()
84143
{
@@ -96,8 +155,6 @@ public void onClick(View v)
96155
}
97156
});
98157

99-
licenseSummaryView = (TextView)rootView.findViewById(R.id.share_license_summary);
100-
101158
TextWatcher uploadEnabler = new TextWatcher() {
102159
@Override
103160
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { }
@@ -115,9 +172,7 @@ public void afterTextChanged(Editable editable) {
115172

116173
titleEdit.addTextChangedListener(uploadEnabler);
117174

118-
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
119-
final String license = prefs.getString(Prefs.DEFAULT_LICENSE, Prefs.Licenses.CC_BY_SA_3);
120-
licenseSummaryView.setText(getString(R.string.share_license_summary, getString(Utils.licenseNameFor(license))));
175+
setLicenseSummary(license);
121176

122177
// Open license page on touch
123178
licenseSummaryView.setOnTouchListener(new View.OnTouchListener() {
@@ -138,6 +193,10 @@ public boolean onTouch(View view, MotionEvent motionEvent) {
138193
return rootView;
139194
}
140195

196+
private void setLicenseSummary(String license) {
197+
licenseSummaryView.setText(getString(R.string.share_license_summary, getString(Utils.licenseNameFor(license))));
198+
}
199+
141200
@Override
142201
public void onAttach(Activity activity) {
143202
super.onAttach(activity);

app/src/main/res/layout/fragment_single_upload.xml

+7
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@
3232
android:imeOptions="flagNoExtractUi"
3333
/>
3434

35+
<Spinner
36+
android:id="@+id/licenseSpinner"
37+
android:layout_width="match_parent"
38+
android:layout_height="wrap_content"
39+
>
40+
</Spinner>
41+
3542
<Button
3643
android:text="@string/use_previous"
3744
android:background="#90000000"

0 commit comments

Comments
 (0)