Skip to content

Commit 732b343

Browse files
4D17Y4translatewikiobsidian-zeroaq45654amire80
committed
[GSoC] Custom Selector Tests (commons-app#4494)
* Localisation updates from https://translatewiki.net. * Fixes commons-app#4357 After switching to different account, contributions screen shows pictures of previous account (commons-app#4421) * Update UploadMediaDetailFragment.java * Update LoginActivity.java Clear CompositeDisposable after logging in successfully. It may help solve the problem of saving the contribution to the previous account * Revert "Update UploadMediaDetailFragment.java" This reverts commit b1b4257. Co-authored-by: Obsidian_zero <1198474846@qq.com> * Remove unnecessary whitespace from a message (commons-app#4439) * Merge v3.0.1 into master (commons-app#4446) * Versioning and changelog for v3.0.0 (commons-app#4152) * Versioning for v3.0.0 * Update changelog.md * Handled migration 8-9-10 in BookmarksLocationDao (commons-app#4154) * #Fixes commons-app#4141 - Handled migrations for BookmarkLocationsDao from 8-9-10 * #Fixes commons-app#4141 - Handled migrations for BookmarkLocationsDao from 8-9-10 * Fixes commons-app#4179 (commons-app#4180) * Handled null pointer exception in MainActivity->ContributionsFragment#backButtonClicked() * Updated >ContributionsFragment#backButtonClicked() to handle back press properly * Fixes commons-app#4179 (commons-app#4181) * Handled possible null check on MediaDetails in BookmarkListRootFragment#backPressed() * Cherrypick for hotfix3.1 (commons-app#4205) * Fixes commons-app#4159 On Explore Tab, All Available Options on toolbar in media detail view are only targeting the first media in the list. Fixes commons-app#4159 On Explore Tab, All Available Options on toolbar in media detail view are only targeting the first media in the list. * fixed bug: App crashes on viewing review in Review Fragment commons-app#4132 (commons-app#4146) * fixed bug:app crashes on viewing review in Review Fragment commons-app#4135 * Fixed the issue with back button in contribution tab. (commons-app#4177) Co-authored-by: Pratham2305 <Pratham2305@users.noreply.github.com> * Fixed the issue with back navigation button on toolbar in explore tab. (commons-app#4175) * Fix (commons-app#4148) Issues on theme change * fixed themeChange crashes * fixed comments * Overlooked the title bar Co-authored-by: Pratham Pahariya <54663429+Pratham2305@users.noreply.github.com> Co-authored-by: Shabir Ahmad <56585337+shabar-shab@users.noreply.github.com> Co-authored-by: Pratham2305 <Pratham2305@users.noreply.github.com> Co-authored-by: Aditya-Srivastav <54016427+4D17Y4@users.noreply.github.com> * Fixes commons-app#4173 (commons-app#4396) * Fix commons-app#4147 Pre-fill desc in Nearby uploads with Wikidata item's label + description (commons-app#4390) * Update query to fetch descriptions * Make description added to NearbyResultItem * Make string operations to display description and label in a combined way * Fix reviews, remove long description from list and swap label and description texts * Fix repeated information issue * Fix double information issue * fix style issues * Remove douplicated information * Changes made (commons-app#4354) * Remove nonexistent method * Fix commons-app#4283 IllegalStateException (commons-app#4440) * Fix commons-app#4283 IllegalStateException * Fix flickering issue * Versioning for v3.0.1 * Update changelog.md Co-authored-by: Ashish <ashishkumar468@gmail.com> Co-authored-by: neslihanturan <tur.neslihan@gmail.com> Co-authored-by: Pratham Pahariya <54663429+Pratham2305@users.noreply.github.com> Co-authored-by: Shabir Ahmad <56585337+shabar-shab@users.noreply.github.com> Co-authored-by: Pratham2305 <Pratham2305@users.noreply.github.com> Co-authored-by: Aditya-Srivastav <54016427+4D17Y4@users.noreply.github.com> Co-authored-by: Madhur Gupta <30932899+madhurgupta10@users.noreply.github.com> Co-authored-by: Vinayak Aggarwal <56196007+vinayak0505@users.noreply.github.com> * Localisation updates from https://translatewiki.net. * Added a feature for editing coordinates (commons-app#4418) * not * Place Picker added * Pick location and API call linked * minor warnings resolved * Code conventions followed * issue fixed * Wikitext edited properly * minor modification * Location Picker added * Bottom sheet removed * Location picker fully implemented * credit added * credit added * issues fixed * issues fixed * minor issue fixed * Some build issues occured merging release v3.0 are fixed. One paranthesis issue is solved, a method about UploadService is removed, since we don't use it anymore. (commons-app#4451) * Localisation updates from https://translatewiki.net. * Fixes 4344 - Duplicate Uploads (commons-app#4442) * Fixes 4344 - Update the retention policy of the Work Manager to ExistingWorkPolicy.APPEND_OR_REPLACE- which would append the new work to the end of existing one. This helps remove the while loop in UploadWorker which was meant to handle the cases where a new worker would be created for retries. The while loop seemed to have race conditions uploading duplicate entries. * Update states to IN_PROGRESS before uploads are processed * Fixes commons-app#3694 Pre-select places as depictions (commons-app#4452) * WikidataEditService: stop automatically adding WikidataPlace as a depiction When the user initiates the upload process from Nearby and also manually adds the place as a depiction, the depiction is added twice. Since this behavior is invisible to the user, it is being removed in preparation for auto-selecting the place as a depiction on the DepictsFragment screen. * DepictsFragment: auto-select place as a depiction Pass the Place reference from UploadActivity to DepictsFragment and select the corresponding DepictedItem. Using the place id, retrieve the corresponding Entity to create and select a DepictedItem. * UploadRepository: use Place from UploadItem to obtain a DepictedItem Instead of passing a Place object from UploadActivity to DepictsFragment and then passing the Place object up the chain to obtain and select a DepictedItem, retrieve the Place object directly within UploadRepository * DepictsFragment: select Place depiction when fragment becomes visible * UploadDepictsAdapter: make adapter aware of selection state Update selection state when recycled list items are automatically selected, preventing automatically selected items from appearing as unselected until they are forced to re-bind (i.e. after scrolling) * DepictsFragment: pre-select place depictions for all UploadItems If several images are selected and set to different places, pre-select all place depictions to reinforce the intended upload workflow philosophy (i.e. all images in a set are intended to be from/of the same place). See discussion in commons-app#3694 * DepictsFragment: scroll to the top every time list is updated * Typo fixes (commons-app#4461) * Fixed typo on class documentation of TextUtils * corrected comma placement in documentation * Fixed typos in comments * fix-issue-4424 (commons-app#4445) Co-authored-by: Pratham2305 <Pratham2305@users.noreply.github.com> * fix edit categories ui (commons-app#4414) Co-authored-by: Pratham2305 <Pratham2305@users.noreply.github.com> * Fix doom version issue (commons-app#4463) * Update db version * DBOpenHelper version update * fix :Back Pressed Event not work in Explore tab when user not login (commons-app#4404) * fix :Back Pressed Event not work in Explore tab * minor changes * fix :Upload count or number of contribution does not get updated when media is successful uploaded (commons-app#4399) * * fix:Number of Contributions not updated * Add javadocs * minor changes * made minor changes * String was nonsense and untranslatible, fixed (commons-app#4466) * Ability to show captions and descriptions in all entered languages (commons-app#4355) * implement Ability to show captions and descriptions in all entered languages *Add Javadoc * handle Back event of fragment(mediaDetailFragment) * fix minor bugs * add internationalization * revert previous changes * fix visibility bug * resolve conflict * Fixes commons-app#4437 - Changed indentation on files with 2 spaces to 4 spaces (commons-app#4462) * Edited Project.xml to make indent size 4 * Changed files with 2 space indentation to use 4 space indentation * Edited Project.xml to make indent size 4 * changed files with 2 space indent to 4 space indent * fix :Back Pressed Event not work in Explore tab when user not login (commons-app#4404) * fix :Back Pressed Event not work in Explore tab * minor changes * fix :Upload count or number of contribution does not get updated when media is successful uploaded (commons-app#4399) * * fix:Number of Contributions not updated * Add javadocs * minor changes * made minor changes * String was nonsense and untranslatible, fixed (commons-app#4466) * Ability to show captions and descriptions in all entered languages (commons-app#4355) * implement Ability to show captions and descriptions in all entered languages *Add Javadoc * handle Back event of fragment(mediaDetailFragment) * fix minor bugs * add internationalization * revert previous changes * fix visibility bug * resolve conflict Co-authored-by: Prince kushwaha <65972015+Prince-kushwaha@users.noreply.github.com> Co-authored-by: neslihanturan <tur.neslihan@gmail.com> * Use more understandable strings (commons-app#4470) * Fix commons-app#3792 Missing Column Issue (commons-app#4468) * Fix Missing Column Issue * Fix tests * Add UploadCategoriesFragment Unit Tests (commons-app#4473) * Panorama (commons-app#4467) * panoramic images fixed * made requested changes * Minor refactoring Co-authored-by: Aditya Srivastava <iamaditya2009@gmail.com> * Localisation updates from https://translatewiki.net. * Main activity title is sometimes "Contributions", sometimes "Commons" (commons-app#4472) Fixes commons-app#4438 Replace == with equals() in onRestoreInstanceState * Localisation updates from https://translatewiki.net. * caption and description copyable (commons-app#4481) * Removed next button in quiz (commons-app#4382) * issues resolved * modification done * warning fixed * issues resolved * Button added * don't know function added * Button added * modification done * modification done * Localisation updates from https://translatewiki.net. * Added option to show and modify location while uploading (commons-app#4475) * initial commit * Everything done * minor modification * minor modification * Issues fixed * minor modifications * issue fixed * Issues fixed * Tutorial removed from log out state (commons-app#4479) * tutorial removed from log out state * Issue removed * Update changelog.md * Versioning for v3.0.2 * Fix commons-app#4482 (commons-app#4484) * Fix crash when image resolution is very high (commons-app#4483) * Localisation updates from https://translatewiki.net. * Add Contributions Fragment Unit Tests (commons-app#4490) * Fix Tests Errors (commons-app#4491) * Add UploadMediaDetailFragment Unit Tests (commons-app#4492) * Localisation updates from https://translatewiki.net. * Folder Fragment test * Folder Fragment test done * Initialised xmls, made folder and image item. * xmls done * xmls completed * removed unwanted attribute * Created models, adapters and view models (commons-app#4441) * created models, adapters and view models * Added Image Fragment * back button linked * Documentation and refractor * spaces * Butterknife annotation * DiffUtil * Added Examples * Extended Custom selector From Base Activity * made view model injectable * [GSOC] Added Image Fetch (commons-app#4449) * Added basic Fetch * added permission request * Folder count rectified * Loaded thumbnail * disabled overlay * Added sha1 function * Documented the code * [GSoC] Image Selection (commons-app#4457) * Localisation updates from https://translatewiki.net. * Fixes commons-app#4357 After switching to different account, contributions screen shows pictures of previous account (commons-app#4421) * Update UploadMediaDetailFragment.java * Update LoginActivity.java Clear CompositeDisposable after logging in successfully. It may help solve the problem of saving the contribution to the previous account * Revert "Update UploadMediaDetailFragment.java" This reverts commit b1b4257. Co-authored-by: Obsidian_zero <1198474846@qq.com> * Remove unnecessary whitespace from a message (commons-app#4439) * Merge v3.0.1 into master (commons-app#4446) * Versioning and changelog for v3.0.0 (commons-app#4152) * Versioning for v3.0.0 * Update changelog.md * Handled migration 8-9-10 in BookmarksLocationDao (commons-app#4154) * #Fixes commons-app#4141 - Handled migrations for BookmarkLocationsDao from 8-9-10 * #Fixes commons-app#4141 - Handled migrations for BookmarkLocationsDao from 8-9-10 * Fixes commons-app#4179 (commons-app#4180) * Handled null pointer exception in MainActivity->ContributionsFragment#backButtonClicked() * Updated >ContributionsFragment#backButtonClicked() to handle back press properly * Fixes commons-app#4179 (commons-app#4181) * Handled possible null check on MediaDetails in BookmarkListRootFragment#backPressed() * Cherrypick for hotfix3.1 (commons-app#4205) * Fixes commons-app#4159 On Explore Tab, All Available Options on toolbar in media detail view are only targeting the first media in the list. Fixes commons-app#4159 On Explore Tab, All Available Options on toolbar in media detail view are only targeting the first media in the list. * fixed bug: App crashes on viewing review in Review Fragment commons-app#4132 (commons-app#4146) * fixed bug:app crashes on viewing review in Review Fragment commons-app#4135 * Fixed the issue with back button in contribution tab. (commons-app#4177) Co-authored-by: Pratham2305 <Pratham2305@users.noreply.github.com> * Fixed the issue with back navigation button on toolbar in explore tab. (commons-app#4175) * Fix (commons-app#4148) Issues on theme change * fixed themeChange crashes * fixed comments * Overlooked the title bar Co-authored-by: Pratham Pahariya <54663429+Pratham2305@users.noreply.github.com> Co-authored-by: Shabir Ahmad <56585337+shabar-shab@users.noreply.github.com> Co-authored-by: Pratham2305 <Pratham2305@users.noreply.github.com> Co-authored-by: Aditya-Srivastav <54016427+4D17Y4@users.noreply.github.com> * Fixes commons-app#4173 (commons-app#4396) * Fix commons-app#4147 Pre-fill desc in Nearby uploads with Wikidata item's label + description (commons-app#4390) * Update query to fetch descriptions * Make description added to NearbyResultItem * Make string operations to display description and label in a combined way * Fix reviews, remove long description from list and swap label and description texts * Fix repeated information issue * Fix double information issue * fix style issues * Remove douplicated information * Changes made (commons-app#4354) * Remove nonexistent method * Fix commons-app#4283 IllegalStateException (commons-app#4440) * Fix commons-app#4283 IllegalStateException * Fix flickering issue * Versioning for v3.0.1 * Update changelog.md Co-authored-by: Ashish <ashishkumar468@gmail.com> Co-authored-by: neslihanturan <tur.neslihan@gmail.com> Co-authored-by: Pratham Pahariya <54663429+Pratham2305@users.noreply.github.com> Co-authored-by: Shabir Ahmad <56585337+shabar-shab@users.noreply.github.com> Co-authored-by: Pratham2305 <Pratham2305@users.noreply.github.com> Co-authored-by: Aditya-Srivastav <54016427+4D17Y4@users.noreply.github.com> Co-authored-by: Madhur Gupta <30932899+madhurgupta10@users.noreply.github.com> Co-authored-by: Vinayak Aggarwal <56196007+vinayak0505@users.noreply.github.com> * Localisation updates from https://translatewiki.net. * Added basic Fetch * added permission request * Folder count rectified * Loaded thumbnail * disabled overlay * Added sha1 function * Documented the code * Added a feature for editing coordinates (commons-app#4418) * not * Place Picker added * Pick location and API call linked * minor warnings resolved * Code conventions followed * issue fixed * Wikitext edited properly * minor modification * Location Picker added * Bottom sheet removed * Location picker fully implemented * credit added * credit added * issues fixed * issues fixed * minor issue fixed * Some build issues occured merging release v3.0 are fixed. One paranthesis issue is solved, a method about UploadService is removed, since we don't use it anymore. (commons-app#4451) * Localisation updates from https://translatewiki.net. * Fixes 4344 - Duplicate Uploads (commons-app#4442) * Fixes 4344 - Update the retention policy of the Work Manager to ExistingWorkPolicy.APPEND_OR_REPLACE- which would append the new work to the end of existing one. This helps remove the while loop in UploadWorker which was meant to handle the cases where a new worker would be created for retries. The while loop seemed to have race conditions uploading duplicate entries. * Update states to IN_PROGRESS before uploads are processed * Image selection added * Forwarded activity result to upload wizard * Initialised xmls, made folder and image item. * xmls done * xmls completed * removed unwanted attribute * Created models, adapters and view models (commons-app#4441) * created models, adapters and view models * Added Image Fragment * back button linked * Documentation and refractor * spaces * Butterknife annotation * DiffUtil * Added Examples * Extended Custom selector From Base Activity * made view model injectable * Added basic Fetch * added permission request * Folder count rectified * Loaded thumbnail * disabled overlay * Added sha1 function * Documented the code * Image selection added * Forwarded activity result to upload wizard * [GSOC] Added Image Fetch (commons-app#4449) * Added basic Fetch * added permission request * Folder count rectified * Loaded thumbnail * disabled overlay * Added sha1 function * Documented the code * fixed merge errors * Documented the remaining function Co-authored-by: translatewiki.net <l10n-bot@translatewiki.net> Co-authored-by: obsidian-zero <63155026+obsidian-zero@users.noreply.github.com> Co-authored-by: Obsidian_zero <1198474846@qq.com> Co-authored-by: Amir E. Aharoni <amir.aharoni@mail.huji.ac.il> Co-authored-by: Josephine Lim <josephinelim86@gmail.com> Co-authored-by: Ashish <ashishkumar468@gmail.com> Co-authored-by: neslihanturan <tur.neslihan@gmail.com> Co-authored-by: Pratham Pahariya <54663429+Pratham2305@users.noreply.github.com> Co-authored-by: Shabir Ahmad <56585337+shabar-shab@users.noreply.github.com> Co-authored-by: Pratham2305 <Pratham2305@users.noreply.github.com> Co-authored-by: Madhur Gupta <30932899+madhurgupta10@users.noreply.github.com> Co-authored-by: Vinayak Aggarwal <56196007+vinayak0505@users.noreply.github.com> Co-authored-by: Ayan Sarkar <71203077+Ayan-10@users.noreply.github.com> * [GSoC] Show uploaded images differently. (commons-app#4464) * uploaded images shown differently * Loaded images before query * Handled exceptions, Made ImageLoader injectable, Document and clean code * [GSoC] Added Uploaded status table in room database. (commons-app#4476) * added Uploaded status table in room database * Added unique property, minor refractoring * Database intigrated * Database integrated * Handled result null exception * Exceptions handled and refractored * Introduced constants * moved to sealed class * No database insert on network error * queried original image * documented the code * Updated uploaded status on upload success * Image Helper test (commons-app#4485) * [GSoC] Adapter Tests (commons-app#4488) * Added FolderAdapterTest * Image Adapter Test * Folder Fragment test * Folder Fragment test done * Fragment test complete * Added Custom Selector View Model Test * ImageFileLoaderTest * Update strings.xml * Custom Selector Activiy test * Image Loader Test Co-authored-by: translatewiki.net <l10n-bot@translatewiki.net> Co-authored-by: obsidian-zero <63155026+obsidian-zero@users.noreply.github.com> Co-authored-by: Obsidian_zero <1198474846@qq.com> Co-authored-by: Amir E. Aharoni <amir.aharoni@mail.huji.ac.il> Co-authored-by: Josephine Lim <josephinelim86@gmail.com> Co-authored-by: Ashish <ashishkumar468@gmail.com> Co-authored-by: neslihanturan <tur.neslihan@gmail.com> Co-authored-by: Pratham Pahariya <54663429+Pratham2305@users.noreply.github.com> Co-authored-by: Shabir Ahmad <56585337+shabar-shab@users.noreply.github.com> Co-authored-by: Pratham2305 <Pratham2305@users.noreply.github.com> Co-authored-by: Madhur Gupta <30932899+madhurgupta10@users.noreply.github.com> Co-authored-by: Vinayak Aggarwal <56196007+vinayak0505@users.noreply.github.com> Co-authored-by: Ayan Sarkar <71203077+Ayan-10@users.noreply.github.com> Co-authored-by: Brigham Byerly <6891883+byerlyb20@users.noreply.github.com> Co-authored-by: Jamie Brown <jamiejbrown521@gmail.com> Co-authored-by: Prince kushwaha <65972015+Prince-kushwaha@users.noreply.github.com> Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com> Co-authored-by: Ashar <asharalikhan200@gmail.com>
1 parent 86ee96c commit 732b343

File tree

11 files changed

+786
-11
lines changed

11 files changed

+786
-11
lines changed

app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/FolderFragment.kt

+16-3
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ import android.os.Bundle
44
import android.view.LayoutInflater
55
import android.view.View
66
import android.view.ViewGroup
7+
import android.widget.ProgressBar
78
import androidx.lifecycle.Observer
89
import androidx.lifecycle.ViewModelProvider
910
import androidx.recyclerview.widget.GridLayoutManager
11+
import androidx.recyclerview.widget.RecyclerView
1012
import fr.free.nrw.commons.R
1113
import fr.free.nrw.commons.customselector.helper.ImageHelper
1214
import fr.free.nrw.commons.customselector.model.Result
@@ -16,7 +18,6 @@ import fr.free.nrw.commons.customselector.ui.adapter.FolderAdapter
1618
import fr.free.nrw.commons.di.CommonsDaggerSupportFragment
1719
import fr.free.nrw.commons.media.MediaClient
1820
import fr.free.nrw.commons.upload.FileProcessor
19-
import kotlinx.android.synthetic.main.fragment_custom_selector.*
2021
import kotlinx.android.synthetic.main.fragment_custom_selector.view.*
2122
import javax.inject.Inject
2223

@@ -27,6 +28,12 @@ class FolderFragment : CommonsDaggerSupportFragment() {
2728
*/
2829
private var viewModel: CustomSelectorViewModel? = null
2930

31+
/**
32+
* View Elements
33+
*/
34+
private var selectorRV: RecyclerView? = null
35+
private var loader: ProgressBar? = null
36+
3037
/**
3138
* View Model Factory.
3239
*/
@@ -75,6 +82,8 @@ class FolderFragment : CommonsDaggerSupportFragment() {
7582
val root = inflater.inflate(R.layout.fragment_custom_selector, container, false)
7683
folderAdapter = FolderAdapter(activity!!, activity as FolderClickListener)
7784
gridLayoutManager = GridLayoutManager(context, columnCount())
85+
selectorRV = root.selector_rv
86+
loader = root.loader
7887
with(root.selector_rv){
7988
this.layoutManager = gridLayoutManager
8089
setHasFixedSize(true)
@@ -96,9 +105,13 @@ class FolderFragment : CommonsDaggerSupportFragment() {
96105
val folders = ImageHelper.folderListFromImages(result.images)
97106
folderAdapter.init(folders)
98107
folderAdapter.notifyDataSetChanged()
99-
selector_rv.visibility = View.VISIBLE
108+
selectorRV?.let {
109+
it.visibility = View.VISIBLE
110+
}
111+
}
112+
loader?.let {
113+
it.visibility = if (result.status is CallbackStatus.FETCHING) View.VISIBLE else View.GONE
100114
}
101-
loader.visibility = if (result.status is CallbackStatus.FETCHING) View.VISIBLE else View.GONE
102115
}
103116

104117
/**

app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/ImageFragment.kt

+22-5
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ import android.os.Bundle
44
import android.view.LayoutInflater
55
import android.view.View
66
import android.view.ViewGroup
7+
import android.widget.ProgressBar
78
import androidx.lifecycle.Observer
89
import androidx.lifecycle.ViewModelProvider
910
import androidx.recyclerview.widget.GridLayoutManager
11+
import androidx.recyclerview.widget.RecyclerView
1012
import fr.free.nrw.commons.R
1113
import fr.free.nrw.commons.customselector.helper.ImageHelper
1214
import fr.free.nrw.commons.customselector.listeners.ImageSelectListener
@@ -28,7 +30,13 @@ class ImageFragment: CommonsDaggerSupportFragment() {
2830
/**
2931
* View model for images.
3032
*/
31-
private lateinit var viewModel: CustomSelectorViewModel
33+
private var viewModel: CustomSelectorViewModel? = null
34+
35+
/**
36+
* View Elements
37+
*/
38+
private var selectorRV: RecyclerView? = null
39+
private var loader: ProgressBar? = null
3240

3341
/**
3442
* View model Factory.
@@ -98,10 +106,13 @@ class ImageFragment: CommonsDaggerSupportFragment() {
98106
this.adapter = imageAdapter
99107
}
100108

101-
viewModel.result.observe(viewLifecycleOwner, Observer{
109+
viewModel?.result?.observe(viewLifecycleOwner, Observer{
102110
handleResult(it)
103111
})
104112

113+
selectorRV = root.selector_rv
114+
loader = root.loader
115+
105116
return root
106117
}
107118

@@ -113,13 +124,19 @@ class ImageFragment: CommonsDaggerSupportFragment() {
113124
val images = result.images
114125
if(images.isNotEmpty()) {
115126
imageAdapter.init(ImageHelper.filterImages(images,bucketId))
116-
selector_rv.visibility = View.VISIBLE
127+
selectorRV?.let{
128+
it.visibility = View.VISIBLE
129+
}
117130
}
118131
else{
119-
selector_rv.visibility = View.GONE
132+
selectorRV?.let{
133+
it.visibility = View.GONE
134+
}
120135
}
121136
}
122-
loader.visibility = if (result.status is CallbackStatus.FETCHING) View.VISIBLE else View.GONE
137+
loader?.let {
138+
it.visibility = if (result.status is CallbackStatus.FETCHING) View.VISIBLE else View.GONE
139+
}
123140
}
124141

125142
/**

app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/ImageLoader.kt

+4-2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import timber.log.Timber
1919
import java.io.IOException
2020
import java.net.UnknownHostException
2121
import java.util.*
22+
import java.util.concurrent.TimeUnit
2223
import javax.inject.Inject
2324
import kotlin.collections.HashMap
2425

@@ -179,7 +180,8 @@ class ImageLoader @Inject constructor(
179180
return Result.TRUE
180181
} else {
181182
uploadedStatus.lastUpdated?.let {
182-
if (it.date >= Calendar.getInstance().time.date - INVALIDATE_DAY_COUNT) {
183+
val duration = Calendar.getInstance().time.time - it.time
184+
if (TimeUnit.MILLISECONDS.toDays(duration) < INVALIDATE_DAY_COUNT) {
183185
return Result.FALSE
184186
}
185187
}
@@ -218,7 +220,7 @@ class ImageLoader @Inject constructor(
218220
}
219221

220222
companion object {
221-
const val INVALIDATE_DAY_COUNT: Int = 7
223+
const val INVALIDATE_DAY_COUNT: Long = 7
222224
}
223225

224226
}

app/src/main/java/fr/free/nrw/commons/explore/ExploreListRootFragment.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public ExploreListRootFragment(Bundle bundle) {
4040
featuredArguments.putString("categoryName", title);
4141
listFragment.setArguments(featuredArguments);
4242
}
43-
43+
4444
@Nullable
4545
@Override
4646
public View onCreateView(@NonNull final LayoutInflater inflater,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
package fr.free.nrw.commons.customselector.ui.selector
2+
3+
import android.net.Uri
4+
import android.os.Bundle
5+
import fr.free.nrw.commons.TestCommonsApplication
6+
import fr.free.nrw.commons.customselector.model.Folder
7+
import fr.free.nrw.commons.customselector.model.Image
8+
import org.junit.Before
9+
import org.junit.Test
10+
import org.junit.jupiter.api.Assertions.assertNotNull
11+
import org.junit.runner.RunWith
12+
import org.mockito.MockitoAnnotations
13+
import org.robolectric.Robolectric
14+
import org.robolectric.RobolectricTestRunner
15+
import org.robolectric.annotation.Config
16+
17+
/**
18+
* Custom Selector Activity Test
19+
*/
20+
@RunWith(RobolectricTestRunner::class)
21+
@Config(sdk = [21], application = TestCommonsApplication::class)
22+
class CustomSelectorActivityTest {
23+
24+
private lateinit var activity: CustomSelectorActivity
25+
26+
/**
27+
* Set up the tests.
28+
*/
29+
@Before
30+
fun setUp() {
31+
MockitoAnnotations.initMocks(this)
32+
activity = Robolectric.buildActivity(CustomSelectorActivity::class.java)
33+
.get()
34+
val onCreate = activity.javaClass.getDeclaredMethod("onCreate", Bundle::class.java)
35+
onCreate.isAccessible = true
36+
onCreate.invoke(activity, null)
37+
}
38+
39+
/**
40+
* Test activity not null.
41+
*/
42+
@Test
43+
@Throws(Exception::class)
44+
fun testActivityNotNull() {
45+
assertNotNull(activity)
46+
}
47+
48+
/**
49+
* Test changeTitle function.
50+
*/
51+
@Test
52+
@Throws(Exception::class)
53+
fun testChangeTitle() {
54+
val func = activity.javaClass.getDeclaredMethod("changeTitle", String::class.java)
55+
func.isAccessible = true
56+
func.invoke(activity, "test")
57+
}
58+
59+
/**
60+
* Test onFolderClick function.
61+
*/
62+
@Test
63+
@Throws(Exception::class)
64+
fun testOnFolderClick() {
65+
activity.onFolderClick(Folder(1, "test", arrayListOf()));
66+
}
67+
68+
/**
69+
* Test selectedImagesChanged function.
70+
*/
71+
@Test
72+
@Throws(Exception::class)
73+
fun testOnSelectedImagesChanged() {
74+
activity.onSelectedImagesChanged(ArrayList())
75+
}
76+
77+
/**
78+
* Test onDone function.
79+
*/
80+
@Test
81+
@Throws(Exception::class)
82+
fun testOnDone() {
83+
activity.onDone()
84+
activity.onSelectedImagesChanged(ArrayList(arrayListOf(Image(1, "test", Uri.parse("test"), "test", 1))));
85+
activity.onDone()
86+
}
87+
88+
/**
89+
* Test onBackPressed Function.
90+
*/
91+
@Test
92+
@Throws(Exception::class)
93+
fun testOnBackPressed() {
94+
activity.onBackPressed()
95+
}
96+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package fr.free.nrw.commons.customselector.ui.selector
2+
3+
import android.content.Context
4+
import org.junit.Before
5+
import org.junit.Test
6+
import org.mockito.Mock
7+
import org.mockito.MockitoAnnotations
8+
9+
/**
10+
* Custom Selector View Model test.
11+
*/
12+
class CustomSelectorViewModelTest {
13+
14+
private lateinit var viewModel: CustomSelectorViewModel
15+
16+
@Mock
17+
private lateinit var imageFileLoader: ImageFileLoader
18+
19+
@Mock
20+
private lateinit var context: Context
21+
22+
/**
23+
* Set up the test.
24+
*/
25+
@Before
26+
fun setUp(){
27+
MockitoAnnotations.initMocks(this)
28+
viewModel = CustomSelectorViewModel(context, imageFileLoader);
29+
}
30+
31+
/**
32+
* Test onCleared();
33+
*/
34+
@Test
35+
fun testOnCleared(){
36+
val func = viewModel.javaClass.getDeclaredMethod("onCleared")
37+
func.isAccessible = true
38+
func.invoke(viewModel);
39+
}
40+
41+
}

0 commit comments

Comments
 (0)