#4005 For images in set removed if user selected one image (#4022)

* #4005 For images in set  removed if user selected one image

* #4005 changed code as suggested

* fixed syntax

* added javadoc

* added more java doc

* refactored to more meaningful documentation

* reverted the Project.xml file

* cleaned  documentations a little bit
This commit is contained in:
gouri-panda 2021-08-06 15:48:19 +05:30 committed by GitHub
parent a94a28f743
commit d0df2ffd59
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 76 additions and 3 deletions

View file

@ -2,6 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
package="fr.free.nrw.commons"> package="fr.free.nrw.commons">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

View file

@ -56,6 +56,8 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Named; 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; import timber.log.Timber;
public class UploadActivity extends BaseActivity implements UploadContract.View, UploadBaseFragment.Callback { 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 Place place;
private List<UploadableFile> uploadableFiles = Collections.emptyList(); private List<UploadableFile> uploadableFiles = Collections.emptyList();
private int currentSelectedPosition = 0; private int currentSelectedPosition = 0;
/*
Checks for if multiple files selected
*/
private boolean isMultipleFilesSelected = false;
public static final String EXTRA_FILES = "commons_image_exta"; 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()); Timber.d("Received intent %s with action %s", intent.toString(), intent.getAction());
uploadableFiles = intent.getParcelableArrayListExtra(EXTRA_FILES); uploadableFiles = intent.getParcelableArrayListExtra(EXTRA_FILES);
isMultipleFilesSelected = uploadableFiles.size() > 1;
Timber.i("Received multiple upload %s", uploadableFiles.size()); Timber.i("Received multiple upload %s", uploadableFiles.size());
place = intent.getParcelableExtra(PLACE_OBJECT); place = intent.getParcelableExtra(PLACE_OBJECT);
resetDirectPrefs(); resetDirectPrefs();
} }
/**
* Returns if multiple files selected or not.
*/
public boolean getIsMultipleFilesSelected() {
return isMultipleFilesSelected;
}
public void resetDirectPrefs() { public void resetDirectPrefs() {
directKvStore.remove(PLACE_OBJECT); directKvStore.remove(PLACE_OBJECT);
} }

View file

@ -1,7 +1,9 @@
package fr.free.nrw.commons.upload.categories; package fr.free.nrw.commons.upload.categories;
import android.app.Activity;
import android.os.Bundle; import android.os.Bundle;
import android.text.Editable; import android.text.Editable;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
@ -22,6 +24,7 @@ import com.jakewharton.rxbinding2.view.RxView;
import com.jakewharton.rxbinding2.widget.RxTextView; import com.jakewharton.rxbinding2.widget.RxTextView;
import fr.free.nrw.commons.R; import fr.free.nrw.commons.R;
import fr.free.nrw.commons.category.CategoryItem; 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.upload.UploadBaseFragment;
import fr.free.nrw.commons.utils.DialogUtil; import fr.free.nrw.commons.utils.DialogUtil;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
@ -36,6 +39,8 @@ public class UploadCategoriesFragment extends UploadBaseFragment implements Cate
@BindView(R.id.tv_title) @BindView(R.id.tv_title)
TextView tvTitle; TextView tvTitle;
@BindView(R.id.tv_subtitle)
TextView tvSubTitle;
@BindView(R.id.til_container_search) @BindView(R.id.til_container_search)
TextInputLayout tilContainerEtSearch; TextInputLayout tilContainerEtSearch;
@BindView(R.id.et_search) @BindView(R.id.et_search)
@ -68,7 +73,8 @@ public class UploadCategoriesFragment extends UploadBaseFragment implements Cate
private void init() { private void init() {
tvTitle.setText(getString(R.string.step_count, callback.getIndexInViewFlipper(this) + 1, 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() { tooltip.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -89,6 +95,20 @@ public class UploadCategoriesFragment extends UploadBaseFragment implements Cate
.subscribe(filter -> searchForCategory(filter.toString()), Timber::e); .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) { private void searchForCategory(String query) {
presenter.searchForCategories(query); presenter.searchForCategories(query);
} }

View file

@ -1,5 +1,6 @@
package fr.free.nrw.commons.upload.depicts; package fr.free.nrw.commons.upload.depicts;
import android.app.Activity;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; 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.view.RxView;
import com.jakewharton.rxbinding2.widget.RxTextView; import com.jakewharton.rxbinding2.widget.RxTextView;
import fr.free.nrw.commons.R; 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.UploadBaseFragment;
import fr.free.nrw.commons.upload.UploadModel; import fr.free.nrw.commons.upload.UploadModel;
import fr.free.nrw.commons.upload.structure.depictions.DepictedItem; 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) @BindView(R.id.depicts_title)
TextView depictsTitle; TextView depictsTitle;
@BindView(R.id.depicts_subtitle)
TextView depictsSubTitle;
@BindView(R.id.depicts_search_container) @BindView(R.id.depicts_search_container)
TextInputLayout depictsSearchContainer; TextInputLayout depictsSearchContainer;
@BindView(R.id.depicts_search) @BindView(R.id.depicts_search)
@ -76,7 +80,8 @@ public class DepictsFragment extends UploadBaseFragment implements DepictsContra
*/ */
private void init() { private void init() {
depictsTitle.setText(getString(R.string.step_count, callback.getIndexInViewFlipper(this) + 1, 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() { tooltip.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -88,6 +93,20 @@ public class DepictsFragment extends UploadBaseFragment implements DepictsContra
addTextChangeListenerToSearchBox(); 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 * Initialise recyclerView and set adapter
*/ */

View file

@ -1,5 +1,6 @@
package fr.free.nrw.commons.upload.license; package fr.free.nrw.commons.upload.license;
import android.app.Activity;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.text.Html; import android.text.Html;
@ -20,6 +21,7 @@ import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import fr.free.nrw.commons.upload.UploadActivity;
import fr.free.nrw.commons.utils.DialogUtil; import fr.free.nrw.commons.utils.DialogUtil;
import java.util.List; import java.util.List;
@ -38,6 +40,8 @@ public class MediaLicenseFragment extends UploadBaseFragment implements MediaLic
@BindView(R.id.tv_title) @BindView(R.id.tv_title)
TextView tvTitle; TextView tvTitle;
@BindView(R.id.tv_subtitle)
TextView tvSubTitle;
@BindView(R.id.spinner_license_list) @BindView(R.id.spinner_license_list)
Spinner spinnerLicenseList; Spinner spinnerLicenseList;
@BindView(R.id.tv_share_license_summary) @BindView(R.id.tv_share_license_summary)
@ -72,7 +76,8 @@ public class MediaLicenseFragment extends UploadBaseFragment implements MediaLic
private void init() { private void init() {
tvTitle.setText(getString(R.string.step_count, callback.getIndexInViewFlipper(this) + 1, 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() { tooltip.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -84,6 +89,20 @@ public class MediaLicenseFragment extends UploadBaseFragment implements MediaLic
presenter.getLicenses(); 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() { private void initPresenter() {
presenter.onAttachView(this); presenter.onAttachView(this);
} }