diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3d996469b..cc6576aad 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,7 @@ + diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java index 372abae53..ef3544f6c 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java @@ -56,6 +56,8 @@ import java.util.Collections; import java.util.List; import javax.inject.Inject; import javax.inject.Named; +import kotlin.reflect.jvm.internal.impl.load.kotlin.JvmType.Object; +import kotlin.reflect.jvm.internal.impl.util.Checks; import timber.log.Timber; public class UploadActivity extends BaseActivity implements UploadContract.View, UploadBaseFragment.Callback { @@ -108,6 +110,10 @@ public class UploadActivity extends BaseActivity implements UploadContract.View, private Place place; private List uploadableFiles = Collections.emptyList(); private int currentSelectedPosition = 0; + /* + Checks for if multiple files selected + */ + private boolean isMultipleFilesSelected = false; public static final String EXTRA_FILES = "commons_image_exta"; @@ -400,12 +406,20 @@ public class UploadActivity extends BaseActivity implements UploadContract.View, Timber.d("Received intent %s with action %s", intent.toString(), intent.getAction()); uploadableFiles = intent.getParcelableArrayListExtra(EXTRA_FILES); + isMultipleFilesSelected = uploadableFiles.size() > 1; Timber.i("Received multiple upload %s", uploadableFiles.size()); place = intent.getParcelableExtra(PLACE_OBJECT); resetDirectPrefs(); } + /** + * Returns if multiple files selected or not. + */ + public boolean getIsMultipleFilesSelected() { + return isMultipleFilesSelected; + } + public void resetDirectPrefs() { directKvStore.remove(PLACE_OBJECT); } 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 1618c4a6e..610f93d99 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 @@ -1,7 +1,9 @@ package fr.free.nrw.commons.upload.categories; +import android.app.Activity; import android.os.Bundle; import android.text.Editable; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; @@ -22,6 +24,7 @@ import com.jakewharton.rxbinding2.view.RxView; import com.jakewharton.rxbinding2.widget.RxTextView; import fr.free.nrw.commons.R; import fr.free.nrw.commons.category.CategoryItem; +import fr.free.nrw.commons.upload.UploadActivity; import fr.free.nrw.commons.upload.UploadBaseFragment; import fr.free.nrw.commons.utils.DialogUtil; import io.reactivex.android.schedulers.AndroidSchedulers; @@ -36,6 +39,8 @@ public class UploadCategoriesFragment extends UploadBaseFragment implements Cate @BindView(R.id.tv_title) TextView tvTitle; + @BindView(R.id.tv_subtitle) + TextView tvSubTitle; @BindView(R.id.til_container_search) TextInputLayout tilContainerEtSearch; @BindView(R.id.et_search) @@ -68,7 +73,8 @@ public class UploadCategoriesFragment extends UploadBaseFragment implements Cate private void init() { tvTitle.setText(getString(R.string.step_count, callback.getIndexInViewFlipper(this) + 1, - callback.getTotalNumberOfSteps(), getString(R.string.categories_activity_title))); + callback.getTotalNumberOfSteps(), getString(R.string.categories_activity_title))); + setTvSubTitle(); tooltip.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -89,6 +95,20 @@ public class UploadCategoriesFragment extends UploadBaseFragment implements Cate .subscribe(filter -> searchForCategory(filter.toString()), Timber::e); } + /** + * Removes the tv subtitle If the activity is the instance of [UploadActivity] and + * if multiple files aren't selected. + */ + private void setTvSubTitle() { + final Activity activity = getActivity(); + if (activity instanceof UploadActivity) { + final boolean isMultipleFileSelected = ((UploadActivity) activity).getIsMultipleFilesSelected(); + if (!isMultipleFileSelected) { + tvSubTitle.setVisibility(View.GONE); + } + } + } + private void searchForCategory(String query) { presenter.searchForCategories(query); } 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 0b1dc5156..dce952ca1 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 @@ -1,5 +1,6 @@ package fr.free.nrw.commons.upload.depicts; +import android.app.Activity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -20,6 +21,7 @@ import com.google.android.material.textfield.TextInputLayout; import com.jakewharton.rxbinding2.view.RxView; import com.jakewharton.rxbinding2.widget.RxTextView; import fr.free.nrw.commons.R; +import fr.free.nrw.commons.upload.UploadActivity; import fr.free.nrw.commons.upload.UploadBaseFragment; import fr.free.nrw.commons.upload.UploadModel; import fr.free.nrw.commons.upload.structure.depictions.DepictedItem; @@ -41,6 +43,8 @@ public class DepictsFragment extends UploadBaseFragment implements DepictsContra @BindView(R.id.depicts_title) TextView depictsTitle; + @BindView(R.id.depicts_subtitle) + TextView depictsSubTitle; @BindView(R.id.depicts_search_container) TextInputLayout depictsSearchContainer; @BindView(R.id.depicts_search) @@ -76,7 +80,8 @@ public class DepictsFragment extends UploadBaseFragment implements DepictsContra */ private void init() { depictsTitle.setText(getString(R.string.step_count, callback.getIndexInViewFlipper(this) + 1, - callback.getTotalNumberOfSteps(), getString(R.string.depicts_step_title))); + callback.getTotalNumberOfSteps(), getString(R.string.depicts_step_title))); + setDepictsSubTitle(); tooltip.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -88,6 +93,20 @@ public class DepictsFragment extends UploadBaseFragment implements DepictsContra addTextChangeListenerToSearchBox(); } + /** + * Removes the depicts subtitle If the activity is the instance of [UploadActivity] and + * if multiple files aren't selected. + */ + private void setDepictsSubTitle() { + final Activity activity = getActivity(); + if (activity instanceof UploadActivity) { + final boolean isMultipleFileSelected = ((UploadActivity) activity).getIsMultipleFilesSelected(); + if (!isMultipleFileSelected) { + depictsSubTitle.setVisibility(View.GONE); + } + } + } + /** * Initialise recyclerView and set adapter */ 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 530d4bf61..6164fd6cc 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 @@ -1,5 +1,6 @@ package fr.free.nrw.commons.upload.license; +import android.app.Activity; import android.net.Uri; import android.os.Bundle; import android.text.Html; @@ -20,6 +21,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import fr.free.nrw.commons.upload.UploadActivity; import fr.free.nrw.commons.utils.DialogUtil; import java.util.List; @@ -38,6 +40,8 @@ public class MediaLicenseFragment extends UploadBaseFragment implements MediaLic @BindView(R.id.tv_title) TextView tvTitle; + @BindView(R.id.tv_subtitle) + TextView tvSubTitle; @BindView(R.id.spinner_license_list) Spinner spinnerLicenseList; @BindView(R.id.tv_share_license_summary) @@ -72,7 +76,8 @@ public class MediaLicenseFragment extends UploadBaseFragment implements MediaLic private void init() { tvTitle.setText(getString(R.string.step_count, callback.getIndexInViewFlipper(this) + 1, - callback.getTotalNumberOfSteps(), getString(R.string.license_step_title))); + callback.getTotalNumberOfSteps(), getString(R.string.license_step_title))); + setTvSubTitle(); tooltip.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -84,6 +89,20 @@ public class MediaLicenseFragment extends UploadBaseFragment implements MediaLic presenter.getLicenses(); } + /** + * Removes the tv Subtitle If the activity is the instance of [UploadActivity] and + * if multiple files aren't selected. + */ + private void setTvSubTitle() { + final Activity activity = getActivity(); + if (activity instanceof UploadActivity) { + final boolean isMultipleFileSelected = ((UploadActivity) activity).getIsMultipleFilesSelected(); + if (!isMultipleFileSelected) { + tvSubTitle.setVisibility(View.GONE); + } + } + } + private void initPresenter() { presenter.onAttachView(this); }