Skip to content

Commit 3bf48a8

Browse files
Merge branch 'main' into hide-voice-input-when-not-available
2 parents 22d8f54 + 522f1fe commit 3bf48a8

File tree

144 files changed

+645
-606
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

144 files changed

+645
-606
lines changed

app/src/main/AndroidManifest.xml

+1-2
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@
9999
android:exported="true"
100100
android:hardwareAccelerated="false"
101101
android:icon="@mipmap/ic_launcher"
102-
android:label="@string/app_name"
103102
android:windowSoftInputMode="adjustResize">
104103
<intent-filter android:label="@string/intent_share_upload_label">
105104
<action android:name="android.intent.action.SEND" />
@@ -122,7 +121,7 @@
122121
android:name=".contributions.MainActivity"
123122
android:configChanges="screenSize|keyboard|orientation"
124123
android:icon="@mipmap/ic_launcher"
125-
android:label="@string/app_name" />
124+
/>
126125
<activity
127126
android:name=".settings.SettingsActivity"
128127
android:label="@string/title_activity_settings" />

app/src/main/java/fr/free/nrw/commons/BaseMarker.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class BaseMarker {
4646
val drawable: Drawable = context.resources.getDrawable(drawableResId)
4747
icon =
4848
if (drawable is BitmapDrawable) {
49-
(drawable as BitmapDrawable).bitmap
49+
drawable.bitmap
5050
} else {
5151
val bitmap =
5252
Bitmap.createBitmap(

app/src/main/java/fr/free/nrw/commons/LocationPicker/LocationPickerActivity.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
import io.reactivex.android.schedulers.AndroidSchedulers;
5454
import io.reactivex.schedulers.Schedulers;
5555
import java.util.List;
56+
import java.util.Locale;
5657
import javax.inject.Inject;
5758
import javax.inject.Named;
5859
import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
@@ -301,7 +302,8 @@ private void bindViews() {
301302
modifyLocationButton = findViewById(R.id.modify_location);
302303
removeLocationButton = findViewById(R.id.remove_location);
303304
showInMapButton = findViewById(R.id.show_in_map);
304-
showInMapButton.setText(getResources().getString(R.string.show_in_map_app).toUpperCase());
305+
showInMapButton.setText(getResources().getString(R.string.show_in_map_app).toUpperCase(
306+
Locale.ROOT));
305307
shadow = findViewById(R.id.location_picker_image_view_shadow);
306308
}
307309

app/src/main/java/fr/free/nrw/commons/Media.kt

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package fr.free.nrw.commons
33
import android.os.Parcelable
44
import fr.free.nrw.commons.location.LatLng
55
import fr.free.nrw.commons.wikidata.model.page.PageTitle
6+
import kotlinx.parcelize.IgnoredOnParcel
67
import kotlinx.parcelize.Parcelize
78
import java.util.Date
89
import java.util.Locale
@@ -124,6 +125,7 @@ class Media constructor(
124125
* Gets the categories the file falls under.
125126
* @return file categories as an ArrayList of Strings
126127
*/
128+
@IgnoredOnParcel
127129
var addedCategories: List<String>? = null
128130
// TODO added categories should be removed. It is added for a short fix. On category update,
129131
// categories should be re-fetched instead

app/src/main/java/fr/free/nrw/commons/bookmarks/items/BookmarkItemsDao.java

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package fr.free.nrw.commons.bookmarks.items;
22

3+
import android.annotation.SuppressLint;
34
import android.content.ContentProviderClient;
45
import android.content.ContentValues;
56
import android.database.Cursor;
@@ -134,6 +135,7 @@ public boolean findBookmarkItem(final String depictedItemID) {
134135
* @param cursor : Object for storing database data
135136
* @return DepictedItem
136137
*/
138+
@SuppressLint("Range")
137139
DepictedItem fromCursor(final Cursor cursor) {
138140
final String fileName = cursor.getString(cursor.getColumnIndex(Table.COLUMN_NAME));
139141
final String description

app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsDao.java

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package fr.free.nrw.commons.bookmarks.locations;
22

3+
import android.annotation.SuppressLint;
34
import android.content.ContentProviderClient;
45
import android.content.ContentValues;
56
import android.database.Cursor;
@@ -146,6 +147,7 @@ public boolean findBookmarkLocation(Place bookmarkLocation) {
146147
return false;
147148
}
148149

150+
@SuppressLint("Range")
149151
@NonNull
150152
Place fromCursor(final Cursor cursor) {
151153
final LatLng location = new LatLng(cursor.getDouble(cursor.getColumnIndex(Table.COLUMN_LAT)),

app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesDao.java

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package fr.free.nrw.commons.bookmarks.pictures;
22

3+
import android.annotation.SuppressLint;
34
import android.content.ContentProviderClient;
45
import android.content.ContentValues;
56
import android.database.Cursor;
@@ -150,6 +151,7 @@ public boolean findBookmark(Bookmark bookmark) {
150151
return false;
151152
}
152153

154+
@SuppressLint("Range")
153155
@NonNull
154156
Bookmark fromCursor(Cursor cursor) {
155157
String fileName = cursor.getString(cursor.getColumnIndex(Table.COLUMN_MEDIA_NAME));

app/src/main/java/fr/free/nrw/commons/category/CategoryClient.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ class CategoryClient
124124
}.map {
125125
it
126126
.filter { page ->
127-
page.categoryInfo() == null || !page.categoryInfo().isHidden
127+
!page.categoryInfo().isHidden
128128
}.map {
129129
CategoryItem(
130130
it.title().replace(CATEGORY_PREFIX, ""),

app/src/main/java/fr/free/nrw/commons/category/CategoryDao.java

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package fr.free.nrw.commons.category;
22

3+
import android.annotation.SuppressLint;
34
import android.content.ContentProviderClient;
45
import android.content.ContentValues;
56
import android.database.Cursor;
@@ -111,6 +112,7 @@ List<CategoryItem> recentCategories(int limit) {
111112
}
112113

113114
@NonNull
115+
@SuppressLint("Range")
114116
Category fromCursor(Cursor cursor) {
115117
// Hardcoding column positions!
116118
return new Category(

app/src/main/java/fr/free/nrw/commons/contributions/WikipediaInstructionsDialogFragment.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class WikipediaInstructionsDialogFragment : DialogFragment() {
2222
) = DialogAddToWikipediaInstructionsBinding
2323
.inflate(inflater, container, false)
2424
.apply {
25-
val contribution: Contribution? = arguments!!.getParcelable(ARG_CONTRIBUTION)
25+
val contribution: Contribution? = requireArguments().getParcelable(ARG_CONTRIBUTION)
2626
tvWikicode.setText(contribution?.media?.wikiCode)
2727
instructionsCancel.setOnClickListener { dismiss() }
2828
instructionsConfirm.setOnClickListener {

app/src/main/java/fr/free/nrw/commons/customselector/database/NotForUploadStatusDao.kt

+5-5
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,19 @@ abstract class NotForUploadStatusDao {
1515
* Insert into Not For Upload status.
1616
*/
1717
@Insert(onConflict = OnConflictStrategy.REPLACE)
18-
abstract fun insert(notForUploadStatus: NotForUploadStatus)
18+
abstract suspend fun insert(notForUploadStatus: NotForUploadStatus)
1919

2020
/**
2121
* Delete Not For Upload status entry.
2222
*/
2323
@Delete
24-
abstract fun delete(notForUploadStatus: NotForUploadStatus)
24+
abstract suspend fun delete(notForUploadStatus: NotForUploadStatus)
2525

2626
/**
2727
* Query Not For Upload status with image sha1.
2828
*/
2929
@Query("SELECT * FROM images_not_for_upload_table WHERE imageSHA1 = (:imageSHA1) ")
30-
abstract fun getFromImageSHA1(imageSHA1: String): NotForUploadStatus?
30+
abstract suspend fun getFromImageSHA1(imageSHA1: String): NotForUploadStatus?
3131

3232
/**
3333
* Asynchronous image sha1 query.
@@ -38,7 +38,7 @@ abstract class NotForUploadStatusDao {
3838
* Deletion Not For Upload status with image sha1.
3939
*/
4040
@Query("DELETE FROM images_not_for_upload_table WHERE imageSHA1 = (:imageSHA1) ")
41-
abstract fun deleteWithImageSHA1(imageSHA1: String)
41+
abstract suspend fun deleteWithImageSHA1(imageSHA1: String)
4242

4343
/**
4444
* Asynchronous image sha1 deletion.
@@ -49,5 +49,5 @@ abstract class NotForUploadStatusDao {
4949
* Check whether the imageSHA1 is present in database
5050
*/
5151
@Query("SELECT COUNT() FROM images_not_for_upload_table WHERE imageSHA1 = (:imageSHA1) ")
52-
abstract fun find(imageSHA1: String): Int
52+
abstract suspend fun find(imageSHA1: String): Int
5353
}

app/src/main/java/fr/free/nrw/commons/customselector/database/UploadedStatusDao.kt

+7-7
Original file line numberDiff line numberDiff line change
@@ -17,31 +17,31 @@ abstract class UploadedStatusDao {
1717
* Insert into uploaded status.
1818
*/
1919
@Insert(onConflict = OnConflictStrategy.REPLACE)
20-
abstract fun insert(uploadedStatus: UploadedStatus)
20+
abstract suspend fun insert(uploadedStatus: UploadedStatus)
2121

2222
/**
2323
* Update uploaded status entry.
2424
*/
2525
@Update
26-
abstract fun update(uploadedStatus: UploadedStatus)
26+
abstract suspend fun update(uploadedStatus: UploadedStatus)
2727

2828
/**
2929
* Delete uploaded status entry.
3030
*/
3131
@Delete
32-
abstract fun delete(uploadedStatus: UploadedStatus)
32+
abstract suspend fun delete(uploadedStatus: UploadedStatus)
3333

3434
/**
3535
* Query uploaded status with image sha1.
3636
*/
3737
@Query("SELECT * FROM uploaded_table WHERE imageSHA1 = (:imageSHA1) ")
38-
abstract fun getFromImageSHA1(imageSHA1: String): UploadedStatus?
38+
abstract suspend fun getFromImageSHA1(imageSHA1: String): UploadedStatus?
3939

4040
/**
4141
* Query uploaded status with modified image sha1.
4242
*/
4343
@Query("SELECT * FROM uploaded_table WHERE modifiedImageSHA1 = (:modifiedImageSHA1) ")
44-
abstract fun getFromModifiedImageSHA1(modifiedImageSHA1: String): UploadedStatus?
44+
abstract suspend fun getFromModifiedImageSHA1(modifiedImageSHA1: String): UploadedStatus?
4545

4646
/**
4747
* Asynchronous insert into uploaded status table.
@@ -55,7 +55,7 @@ abstract class UploadedStatusDao {
5555
* Check whether the imageSHA1 is present in database
5656
*/
5757
@Query("SELECT COUNT() FROM uploaded_table WHERE imageSHA1 = (:imageSHA1) AND imageResult = (:imageResult) ")
58-
abstract fun findByImageSHA1(
58+
abstract suspend fun findByImageSHA1(
5959
imageSHA1: String,
6060
imageResult: Boolean,
6161
): Int
@@ -66,7 +66,7 @@ abstract class UploadedStatusDao {
6666
@Query(
6767
"SELECT COUNT() FROM uploaded_table WHERE modifiedImageSHA1 = (:modifiedImageSHA1) AND modifiedImageResult = (:modifiedImageResult) ",
6868
)
69-
abstract fun findByModifiedImageSHA1(
69+
abstract suspend fun findByModifiedImageSHA1(
7070
modifiedImageSHA1: String,
7171
modifiedImageResult: Boolean,
7272
): Int

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import fr.free.nrw.commons.utils.CustomSelectorUtils
1717
import fr.free.nrw.commons.utils.CustomSelectorUtils.Companion.checkWhetherFileExistsOnCommonsUsingSHA1
1818
import kotlinx.coroutines.CoroutineDispatcher
1919
import kotlinx.coroutines.CoroutineScope
20-
import kotlinx.coroutines.MainScope
20+
import kotlinx.coroutines.Dispatchers
2121
import kotlinx.coroutines.launch
2222
import java.util.Calendar
2323
import java.util.concurrent.TimeUnit
@@ -65,7 +65,7 @@ class ImageLoader
6565
/**
6666
* Coroutine Scope.
6767
*/
68-
private val scope: CoroutineScope = MainScope()
68+
private val scope: CoroutineScope = CoroutineScope(Dispatchers.IO)
6969

7070
/**
7171
* Query image and setUp the view.

app/src/main/java/fr/free/nrw/commons/description/DescriptionEditActivity.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ class DescriptionEditActivity :
238238
) {
239239
try {
240240
descriptionEditHelper
241-
?.addDescription(
241+
.addDescription(
242242
applicationContext,
243243
media,
244244
updatedWikiText,
@@ -251,7 +251,7 @@ class DescriptionEditActivity :
251251
)
252252
}
253253
} catch (e: InvalidLoginTokenException) {
254-
val username: String? = sessionManager?.userName
254+
val username: String? = sessionManager.userName
255255
val logoutListener =
256256
CommonsApplication.BaseLogoutListener(
257257
this,
@@ -269,7 +269,7 @@ class DescriptionEditActivity :
269269
for (mediaDetail in uploadMediaDetails) {
270270
try {
271271
compositeDisposable.add(
272-
descriptionEditHelper!!
272+
descriptionEditHelper
273273
.addCaption(
274274
applicationContext,
275275
media,

app/src/main/java/fr/free/nrw/commons/edit/TransformImageImpl.kt

-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ class TransformImageImpl : TransformImage {
6565
} catch (e: LLJTranException) {
6666
Timber.tag("Error").d(e)
6767
return null
68-
false
6968
}
7069

7170
if (rotated) {

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

+4-3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import fr.free.nrw.commons.utils.ActivityUtils;
2323
import java.util.ArrayList;
2424
import java.util.List;
25+
import java.util.Locale;
2526
import javax.inject.Inject;
2627
import javax.inject.Named;
2728

@@ -112,13 +113,13 @@ public void setTabs() {
112113
mobileRootFragment = new ExploreListRootFragment(mobileArguments);
113114
mapRootFragment = new ExploreMapRootFragment(mapArguments);
114115
fragmentList.add(featuredRootFragment);
115-
titleList.add(getString(R.string.explore_tab_title_featured).toUpperCase());
116+
titleList.add(getString(R.string.explore_tab_title_featured).toUpperCase(Locale.ROOT));
116117

117118
fragmentList.add(mobileRootFragment);
118-
titleList.add(getString(R.string.explore_tab_title_mobile).toUpperCase());
119+
titleList.add(getString(R.string.explore_tab_title_mobile).toUpperCase(Locale.ROOT));
119120

120121
fragmentList.add(mapRootFragment);
121-
titleList.add(getString(R.string.explore_tab_title_map).toUpperCase());
122+
titleList.add(getString(R.string.explore_tab_title_map).toUpperCase(Locale.ROOT));
122123

123124
((MainActivity)getActivity()).showTabs();
124125
((BaseActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(false);

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

+4-3
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.util.ArrayList;
2929
import java.util.Date;
3030
import java.util.List;
31+
import java.util.Locale;
3132
import java.util.concurrent.TimeUnit;
3233
import javax.inject.Inject;
3334
import timber.log.Timber;
@@ -95,11 +96,11 @@ public void setTabs() {
9596
searchDepictionsFragment = new SearchDepictionsFragment();
9697
searchCategoryFragment= new SearchCategoryFragment();
9798
fragmentList.add(searchMediaFragment);
98-
titleList.add(getResources().getString(R.string.search_tab_title_media).toUpperCase());
99+
titleList.add(getResources().getString(R.string.search_tab_title_media).toUpperCase(Locale.ROOT));
99100
fragmentList.add(searchCategoryFragment);
100-
titleList.add(getResources().getString(R.string.search_tab_title_categories).toUpperCase());
101+
titleList.add(getResources().getString(R.string.search_tab_title_categories).toUpperCase(Locale.ROOT));
101102
fragmentList.add(searchDepictionsFragment);
102-
titleList.add(getResources().getString(R.string.search_tab_title_depictions).toUpperCase());
103+
titleList.add(getResources().getString(R.string.search_tab_title_depictions).toUpperCase(Locale.ROOT));
103104

104105
viewPagerAdapter.setTabData(fragmentList, titleList);
105106
viewPagerAdapter.notifyDataSetChanged();

app/src/main/java/fr/free/nrw/commons/explore/categories/media/CategoriesMediaFragment.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ class CategoriesMediaFragment : PageableMediaFragment() {
1818
savedInstanceState: Bundle?,
1919
) {
2020
super.onViewCreated(view, savedInstanceState)
21-
onQueryUpdated("$CATEGORY_PREFIX${arguments!!.getString("categoryName")!!}")
21+
onQueryUpdated("$CATEGORY_PREFIX${requireArguments().getString("categoryName")!!}")
2222
}
2323
}

app/src/main/java/fr/free/nrw/commons/explore/categories/parent/ParentCategoriesFragment.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ class ParentCategoriesFragment : PageableCategoryFragment() {
2121
savedInstanceState: Bundle?,
2222
) {
2323
super.onViewCreated(view, savedInstanceState)
24-
onQueryUpdated("$CATEGORY_PREFIX${arguments!!.getString("categoryName")!!}")
24+
onQueryUpdated("$CATEGORY_PREFIX${requireArguments().getString("categoryName")!!}")
2525
}
2626
}

app/src/main/java/fr/free/nrw/commons/explore/categories/sub/SubCategoriesFragment.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ class SubCategoriesFragment : PageableCategoryFragment() {
2020
savedInstanceState: Bundle?,
2121
) {
2222
super.onViewCreated(view, savedInstanceState)
23-
onQueryUpdated("$CATEGORY_PREFIX${arguments!!.getString("categoryName")!!}")
23+
onQueryUpdated("$CATEGORY_PREFIX${requireArguments().getString("categoryName")!!}")
2424
}
2525
}

app/src/main/java/fr/free/nrw/commons/explore/depictions/child/ChildDepictionsFragment.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ class ChildDepictionsFragment : PageableDepictionsFragment() {
1313
override val injectedPresenter
1414
get() = presenter
1515

16-
override fun getEmptyText(query: String) = getString(R.string.no_child_classes, arguments!!.getString("wikidataItemName")!!)
16+
override fun getEmptyText(query: String) = getString(R.string.no_child_classes, requireArguments().getString("wikidataItemName")!!)
1717

1818
override fun onViewCreated(
1919
view: View,
2020
savedInstanceState: Bundle?,
2121
) {
2222
super.onViewCreated(view, savedInstanceState)
23-
onQueryUpdated(arguments!!.getString("entityId")!!)
23+
onQueryUpdated(requireArguments().getString("entityId")!!)
2424
}
2525
}

app/src/main/java/fr/free/nrw/commons/explore/depictions/media/DepictedImagesFragment.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ class DepictedImagesFragment : PageableMediaFragment() {
1717
savedInstanceState: Bundle?,
1818
) {
1919
super.onViewCreated(view, savedInstanceState)
20-
onQueryUpdated(arguments!!.getString("entityId")!!)
20+
onQueryUpdated(requireArguments().getString("entityId")!!)
2121
}
2222
}

app/src/main/java/fr/free/nrw/commons/explore/depictions/parent/ParentDepictionsFragment.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ class ParentDepictionsFragment : PageableDepictionsFragment() {
1313
override val injectedPresenter
1414
get() = presenter
1515

16-
override fun getEmptyText(query: String) = getString(R.string.no_parent_classes, arguments!!.getString("wikidataItemName")!!)
16+
override fun getEmptyText(query: String) = getString(R.string.no_parent_classes, requireArguments().getString("wikidataItemName")!!)
1717

1818
override fun onViewCreated(
1919
view: View,
2020
savedInstanceState: Bundle?,
2121
) {
2222
super.onViewCreated(view, savedInstanceState)
23-
onQueryUpdated(arguments!!.getString("entityId")!!)
23+
onQueryUpdated(requireArguments().getString("entityId")!!)
2424
}
2525
}

0 commit comments

Comments
 (0)