diff --git a/app/src/main/java/fr/free/nrw/commons/upload/categories/UploadCategoriesFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/categories/UploadCategoriesFragment.java index 3d3becd01..1618c4a6e 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/categories/UploadCategoriesFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/categories/UploadCategoriesFragment.java @@ -4,7 +4,9 @@ import android.os.Bundle; import android.text.Editable; import android.view.LayoutInflater; import android.view.View; +import android.view.View.OnClickListener; import android.view.ViewGroup; +import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; import androidx.annotation.NonNull; @@ -42,6 +44,8 @@ public class UploadCategoriesFragment extends UploadBaseFragment implements Cate ProgressBar pbCategories; @BindView(R.id.rv_categories) RecyclerView rvCategories; + @BindView(R.id.tooltip) + ImageView tooltip; @Inject CategoriesContract.UserActionListener presenter; @@ -64,7 +68,13 @@ public class UploadCategoriesFragment extends UploadBaseFragment implements Cate private void init() { tvTitle.setText(getString(R.string.step_count, callback.getIndexInViewFlipper(this) + 1, - callback.getTotalNumberOfSteps())); + callback.getTotalNumberOfSteps(), getString(R.string.categories_activity_title))); + tooltip.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + DialogUtil.showAlertDialog(getActivity(), getString(R.string.categories_activity_title), getString(R.string.categories_tooltip), getString(android.R.string.ok), null, true); + } + }); presenter.onAttachView(this); initRecyclerView(); addTextChangeListenerToEtSearch(); diff --git a/app/src/main/java/fr/free/nrw/commons/upload/depicts/DepictsFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/depicts/DepictsFragment.java index 50eca58f6..a310dbb35 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/depicts/DepictsFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/depicts/DepictsFragment.java @@ -3,7 +3,9 @@ package fr.free.nrw.commons.upload.depicts; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; +import android.view.View.OnClickListener; import android.view.ViewGroup; +import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; import androidx.annotation.NonNull; @@ -45,6 +47,8 @@ public class DepictsFragment extends UploadBaseFragment implements DepictsContra ProgressBar depictsSearchInProgress; @BindView(R.id.depicts_recycler_view) RecyclerView depictsRecyclerView; + @BindView(R.id.tooltip) + ImageView tooltip; @Inject DepictsContract.UserActionListener presenter; @@ -71,7 +75,13 @@ public class DepictsFragment extends UploadBaseFragment implements DepictsContra */ private void init() { depictsTitle.setText(getString(R.string.step_count, callback.getIndexInViewFlipper(this) + 1, - callback.getTotalNumberOfSteps())); + callback.getTotalNumberOfSteps(), getString(R.string.depicts_step_title))); + tooltip.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + DialogUtil.showAlertDialog(getActivity(), getString(R.string.depicts_step_title), getString(R.string.depicts_tooltip), getString(android.R.string.ok), null, true); + } + }); presenter.onAttachView(this); initRecyclerView(); addTextChangeListenerToSearchBox(); diff --git a/app/src/main/java/fr/free/nrw/commons/upload/license/MediaLicenseFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/license/MediaLicenseFragment.java index 46ce6f0b2..94d88ff5a 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/license/MediaLicenseFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/license/MediaLicenseFragment.java @@ -9,14 +9,21 @@ import android.text.style.ClickableSpan; import android.text.style.URLSpan; import android.view.LayoutInflater; import android.view.View; +import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; +import android.widget.ImageView; import android.widget.Spinner; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; + +import fr.free.nrw.commons.utils.DialogUtil; +import java.util.List; + +import javax.inject.Inject; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; @@ -35,6 +42,8 @@ public class MediaLicenseFragment extends UploadBaseFragment implements MediaLic Spinner spinnerLicenseList; @BindView(R.id.tv_share_license_summary) TextView tvShareLicenseSummary; + @BindView(R.id.tooltip) + ImageView tooltip; @Inject MediaLicenseContract.UserActionListener presenter; @@ -63,7 +72,13 @@ public class MediaLicenseFragment extends UploadBaseFragment implements MediaLic private void init() { tvTitle.setText(getString(R.string.step_count, callback.getIndexInViewFlipper(this) + 1, - callback.getTotalNumberOfSteps())); + callback.getTotalNumberOfSteps(), getString(R.string.license_step_title))); + tooltip.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + DialogUtil.showAlertDialog(getActivity(), getString(R.string.license_step_title), getString(R.string.license_tooltip), getString(android.R.string.ok), null, true); + } + }); initPresenter(); initLicenseSpinner(); presenter.getLicenses(); diff --git a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java index 0ffa54eea..e62a6e8d4 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java @@ -6,7 +6,9 @@ import android.annotation.SuppressLint; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; +import android.view.View.OnClickListener; import android.view.ViewGroup; +import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import androidx.annotation.NonNull; @@ -63,6 +65,8 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements AppCompatButton btnNext; @BindView(R.id.btn_previous) AppCompatButton btnPrevious; + @BindView(R.id.tooltip) + ImageView tooltip; private UploadMediaDetailAdapter uploadMediaDetailAdapter; @BindView(R.id.btn_copy_prev_title_desc) AppCompatButton btnCopyPreviousTitleDesc; @@ -111,7 +115,13 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements private void init() { tvTitle.setText(getString(R.string.step_count, callback.getIndexInViewFlipper(this) + 1, - callback.getTotalNumberOfSteps())); + callback.getTotalNumberOfSteps(), getString(R.string.media_detail_step_title))); + tooltip.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + showInfoAlert(R.string.media_detail_step_title, R.string.media_details_tooltip); + } + }); initRecyclerView(); initPresenter(); presenter.receiveImage(uploadableFile, place); diff --git a/app/src/main/res/layout/fragment_media_license.xml b/app/src/main/res/layout/fragment_media_license.xml index c6f59ef17..5591e432a 100644 --- a/app/src/main/res/layout/fragment_media_license.xml +++ b/app/src/main/res/layout/fragment_media_license.xml @@ -12,16 +12,28 @@ android:layout_above="@+id/ll_container_license_desc" android:orientation="vertical"> - + android:orientation="horizontal"> + + + - + android:orientation="horizontal"> + + + - + android:orientation="horizontal"> + + + - + + + + We need your permission to access the external storage of your device in order to upload images. You won\'t see the nearest place that needs pictures anymore. However, you can re-enable this notification in Settings if you wish. - Step %1$d of %2$d + Step %1$d of %2$d: %3$s Image %1$d in set Next Previous @@ -703,4 +703,13 @@ Upload your first media by tapping on the add button. Quality images are diagrams or photographs that meet certain quality standards (which are mostly technical in nature) and are valuable for Wikimedia projects Resuming upload… Pausing upload… + + Please write a short caption that says what your picture shows. In the description, say what makes the picture interesting or typical or rare, and explain the context, visible or not. Use exact terminology as much as you can. + Please find and select all concepts that this image portrays. Be as specific as you can. If the image portrays multiple items, choose them all within reason. Do not choose generic tags if more specific tags are available. + Please select the appropriate categories. Unlike depictions, categories are only in English. + Commons makes your pictures reusable and adapted by everyone. Do you want to waive all rights? Do you want to be attributed? Do you want adaptations to use the same license? + Depicts + Media License + Media Details +