mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 12:53:55 +01:00
Merge pull request #383 from maskaravivek/chooseLicense
Fixes #323: Provide explicit selection of licenses when uploading image
This commit is contained in:
commit
b190f7ffed
2 changed files with 71 additions and 5 deletions
|
|
@ -6,6 +6,7 @@ import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.preference.ListPreference;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
|
|
@ -19,10 +20,16 @@ import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
|
import android.widget.AdapterView;
|
||||||
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
|
import android.widget.Spinner;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import fr.free.nrw.commons.Prefs;
|
import fr.free.nrw.commons.Prefs;
|
||||||
import fr.free.nrw.commons.R;
|
import fr.free.nrw.commons.R;
|
||||||
import fr.free.nrw.commons.Utils;
|
import fr.free.nrw.commons.Utils;
|
||||||
|
|
@ -36,6 +43,7 @@ public class SingleUploadFragment extends Fragment {
|
||||||
private EditText titleEdit;
|
private EditText titleEdit;
|
||||||
private EditText descEdit;
|
private EditText descEdit;
|
||||||
private TextView licenseSummaryView;
|
private TextView licenseSummaryView;
|
||||||
|
private Spinner licenseSpinner;
|
||||||
|
|
||||||
private OnUploadActionInitiated uploadActionInitiatedHandler;
|
private OnUploadActionInitiated uploadActionInitiatedHandler;
|
||||||
|
|
||||||
|
|
@ -79,6 +87,57 @@ public class SingleUploadFragment extends Fragment {
|
||||||
titleEdit = (EditText)rootView.findViewById(R.id.titleEdit);
|
titleEdit = (EditText)rootView.findViewById(R.id.titleEdit);
|
||||||
descEdit = (EditText)rootView.findViewById(R.id.descEdit);
|
descEdit = (EditText)rootView.findViewById(R.id.descEdit);
|
||||||
Button titleDescButton = (Button) rootView.findViewById(R.id.titleDescButton);
|
Button titleDescButton = (Button) rootView.findViewById(R.id.titleDescButton);
|
||||||
|
licenseSpinner = (Spinner) rootView.findViewById(R.id.licenseSpinner);
|
||||||
|
licenseSummaryView = (TextView)rootView.findViewById(R.id.share_license_summary);
|
||||||
|
|
||||||
|
ArrayList<String> licenseItems = new ArrayList<>();
|
||||||
|
licenseItems.add(getString(R.string.license_name_cc0));
|
||||||
|
licenseItems.add(getString(R.string.license_name_cc_by));
|
||||||
|
licenseItems.add(getString(R.string.license_name_cc_by_sa));
|
||||||
|
licenseItems.add(getString(R.string.license_name_cc_by_four));
|
||||||
|
licenseItems.add(getString(R.string.license_name_cc_by_sa_four));
|
||||||
|
|
||||||
|
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||||
|
final String license = prefs.getString(Prefs.DEFAULT_LICENSE, Prefs.Licenses.CC_BY_SA_3);
|
||||||
|
|
||||||
|
Log.d("Single Upload fragment", license);
|
||||||
|
|
||||||
|
ArrayAdapter<String> adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_dropdown_item, licenseItems);
|
||||||
|
licenseSpinner.setAdapter(adapter);
|
||||||
|
|
||||||
|
int position = licenseItems.indexOf(getString(Utils.licenseNameFor(license)));
|
||||||
|
Log.d("Single Upload fragment", "Position:"+position+" "+getString(Utils.licenseNameFor(license)));
|
||||||
|
licenseSpinner.setSelection(position);
|
||||||
|
|
||||||
|
licenseSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||||
|
@Override
|
||||||
|
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||||
|
String licenseName = parent.getItemAtPosition(position).toString();
|
||||||
|
|
||||||
|
String license = Prefs.Licenses.CC_BY_SA_3; // default value
|
||||||
|
if(getString(R.string.license_name_cc0).equals(licenseName)) {
|
||||||
|
license = Prefs.Licenses.CC0;
|
||||||
|
} else if(getString(R.string.license_name_cc_by).equals(licenseName)) {
|
||||||
|
license = Prefs.Licenses.CC_BY_3;
|
||||||
|
} else if(getString(R.string.license_name_cc_by_sa).equals(licenseName)) {
|
||||||
|
license = Prefs.Licenses.CC_BY_SA_3;
|
||||||
|
} else if(getString(R.string.license_name_cc_by_four).equals(licenseName)) {
|
||||||
|
license = Prefs.Licenses.CC_BY_4;
|
||||||
|
} else if(getString(R.string.license_name_cc_by_sa_four).equals(licenseName)) {
|
||||||
|
license = Prefs.Licenses.CC_BY_SA_4;
|
||||||
|
}
|
||||||
|
|
||||||
|
setLicenseSummary(license);
|
||||||
|
SharedPreferences.Editor editor = prefs.edit();
|
||||||
|
editor.putString(Prefs.DEFAULT_LICENSE, license);
|
||||||
|
editor.commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNothingSelected(AdapterView<?> parent) {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
titleDescButton.setOnClickListener(new View.OnClickListener()
|
titleDescButton.setOnClickListener(new View.OnClickListener()
|
||||||
{
|
{
|
||||||
|
|
@ -96,8 +155,6 @@ public class SingleUploadFragment extends Fragment {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
licenseSummaryView = (TextView)rootView.findViewById(R.id.share_license_summary);
|
|
||||||
|
|
||||||
TextWatcher uploadEnabler = new TextWatcher() {
|
TextWatcher uploadEnabler = new TextWatcher() {
|
||||||
@Override
|
@Override
|
||||||
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { }
|
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { }
|
||||||
|
|
@ -115,9 +172,7 @@ public class SingleUploadFragment extends Fragment {
|
||||||
|
|
||||||
titleEdit.addTextChangedListener(uploadEnabler);
|
titleEdit.addTextChangedListener(uploadEnabler);
|
||||||
|
|
||||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
setLicenseSummary(license);
|
||||||
final String license = prefs.getString(Prefs.DEFAULT_LICENSE, Prefs.Licenses.CC_BY_SA_3);
|
|
||||||
licenseSummaryView.setText(getString(R.string.share_license_summary, getString(Utils.licenseNameFor(license))));
|
|
||||||
|
|
||||||
// Open license page on touch
|
// Open license page on touch
|
||||||
licenseSummaryView.setOnTouchListener(new View.OnTouchListener() {
|
licenseSummaryView.setOnTouchListener(new View.OnTouchListener() {
|
||||||
|
|
@ -138,6 +193,10 @@ public class SingleUploadFragment extends Fragment {
|
||||||
return rootView;
|
return rootView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setLicenseSummary(String license) {
|
||||||
|
licenseSummaryView.setText(getString(R.string.share_license_summary, getString(Utils.licenseNameFor(license))));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttach(Activity activity) {
|
public void onAttach(Activity activity) {
|
||||||
super.onAttach(activity);
|
super.onAttach(activity);
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,13 @@
|
||||||
android:imeOptions="flagNoExtractUi"
|
android:imeOptions="flagNoExtractUi"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<Spinner
|
||||||
|
android:id="@+id/licenseSpinner"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
>
|
||||||
|
</Spinner>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:text="@string/use_previous"
|
android:text="@string/use_previous"
|
||||||
android:background="#90000000"
|
android:background="#90000000"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue