Skip to content

Commit 54aeeb0

Browse files
author
Zining He
committed
pull upstream
2 parents 55e59b8 + 3e020ed commit 54aeeb0

File tree

77 files changed

+980
-629
lines changed

Some content is hidden

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

77 files changed

+980
-629
lines changed

.idea/inspectionProfiles/Project_Default.xml

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ dependencies {
9393
implementation "org.jetbrains.kotlin:kotlin-reflect:$KOTLIN_VERSION"
9494

9595
//Mocking
96+
testImplementation("io.mockk:mockk:1.13.4")
9697
testImplementation 'com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0'
9798
testImplementation 'org.mockito:mockito-inline:5.2.0'
9899
testImplementation 'org.mockito:mockito-core:5.6.0'
@@ -174,7 +175,7 @@ dependencies {
174175
kaptTest "androidx.databinding:databinding-compiler:8.0.2"
175176
kaptAndroidTest "androidx.databinding:databinding-compiler:8.0.2"
176177

177-
implementation("io.github.coordinates2country:coordinates2country-android:1.3") { exclude group: 'com.google.android', module: 'android' }
178+
implementation("io.github.coordinates2country:coordinates2country-android:1.8") { exclude group: 'com.google.android', module: 'android' }
178179

179180
//OSMDroid
180181
implementation ("org.osmdroid:osmdroid-android:$OSMDROID_VERSION")
@@ -226,7 +227,7 @@ android {
226227
excludes += ['META-INF/androidx.*']
227228
}
228229
resources {
229-
excludes += ['META-INF/androidx.*', 'META-INF/proguard/androidx-annotations.pro']
230+
excludes += ['META-INF/androidx.*', 'META-INF/proguard/androidx-annotations.pro', '/META-INF/LICENSE.md', '/META-INF/LICENSE-notice.md']
230231
}
231232
}
232233

@@ -380,7 +381,7 @@ android {
380381
compose true
381382
}
382383
composeOptions {
383-
kotlinCompilerExtensionVersion '1.3.2'
384+
kotlinCompilerExtensionVersion '1.5.8'
384385
}
385386
namespace 'fr.free.nrw.commons'
386387
lint {

app/src/androidTest/java/fr/free/nrw/commons/WelcomeActivityTest.kt

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ import org.junit.Before
1717
import org.junit.Rule
1818
import org.junit.Test
1919
import org.junit.runner.RunWith
20+
import org.hamcrest.MatcherAssert.assertThat
21+
import org.hamcrest.CoreMatchers.equalTo
2022

2123
@LargeTest
2224
@RunWith(AndroidJUnit4::class)
@@ -59,7 +61,7 @@ class WelcomeActivityTest {
5961
.perform(ViewActions.click())
6062
onView(withId(R.id.finishTutorialButton))
6163
.perform(ViewActions.click())
62-
assert(activityRule.activity.isDestroyed)
64+
assertThat(activityRule.activity.isDestroyed, equalTo(true))
6365
}
6466
}
6567

@@ -69,10 +71,10 @@ class WelcomeActivityTest {
6971
.perform(ViewActions.click())
7072
onView(withId(R.id.welcomePager))
7173
.perform(ViewActions.swipeLeft())
72-
assert(true)
74+
assertThat(true, equalTo(true))
7375
onView(withId(R.id.welcomePager))
7476
.perform(ViewActions.swipeRight())
75-
assert(true)
77+
assertThat(true, equalTo(true))
7678
}
7779

7880
@Test
@@ -84,13 +86,13 @@ class WelcomeActivityTest {
8486
.perform(ViewActions.swipeLeft())
8587
.perform(ViewActions.swipeLeft())
8688
.perform(ViewActions.swipeLeft())
87-
assert(true)
89+
assertThat(true, equalTo(true))
8890
onView(withId(R.id.welcomePager))
8991
.perform(ViewActions.swipeRight())
9092
.perform(ViewActions.swipeRight())
9193
.perform(ViewActions.swipeRight())
9294
.perform(ViewActions.swipeRight())
93-
assert(true)
95+
assertThat(true, equalTo(true))
9496
}
9597

9698
@Test
@@ -101,10 +103,10 @@ class WelcomeActivityTest {
101103
if (viewPager.currentItem == 3) {
102104
onView(withId(R.id.welcomePager))
103105
.perform(ViewActions.swipeLeft())
104-
assert(true)
106+
assertThat(true, equalTo(true))
105107
onView(withId(R.id.welcomePager))
106108
.perform(ViewActions.swipeRight())
107-
assert(false)
109+
assertThat(true, equalTo(true))
108110
}
109111
}
110112
}
@@ -119,7 +121,7 @@ class WelcomeActivityTest {
119121
.perform(ViewActions.click())
120122
onView(withId(R.id.finishTutorialButton))
121123
.perform(ViewActions.click())
122-
assert(activityRule.activity.isDestroyed)
124+
assertThat(activityRule.activity.isDestroyed, equalTo(true))
123125
}
124126
}
125127
}

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
android:maxSdkVersion="29"/>
1414
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
1515
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
16-
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
16+
<!-- Permission needed up to Android 5.1, see https://github.com/commons-app/apps-android-commons/pull/5863 -->
17+
<uses-permission android:name="android.permission.GET_ACCOUNTS"
18+
android:maxSdkVersion="22"/>
1719
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
1820
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
1921
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

app/src/main/java/fr/free/nrw/commons/CommonsApplication.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,6 @@ public class CommonsApplication extends MultiDexApplication {
107107
/**
108108
* Constants begin
109109
*/
110-
public static final int OPEN_APPLICATION_DETAIL_SETTINGS = 1001;
111110

112111
public static final String DEFAULT_EDIT_SUMMARY = "Uploaded using [[COM:MOA|Commons Mobile App]]";
113112

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

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import androidx.activity.result.ActivityResultCallback;
1010
import androidx.activity.result.ActivityResultLauncher;
1111
import androidx.activity.result.contract.ActivityResultContracts;
12+
import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult;
1213
import androidx.annotation.NonNull;
1314
import androidx.annotation.Nullable;
1415
import androidx.recyclerview.widget.LinearLayoutManager;
@@ -33,6 +34,23 @@ public class BookmarkLocationsFragment extends DaggerFragment {
3334
@Inject BookmarkLocationsDao bookmarkLocationDao;
3435
@Inject CommonPlaceClickActions commonPlaceClickActions;
3536
private PlaceAdapter adapter;
37+
38+
private final ActivityResultLauncher<Intent> cameraPickLauncherForResult =
39+
registerForActivityResult(new StartActivityForResult(),
40+
result -> {
41+
contributionController.handleActivityResultWithCallback(requireActivity(), callbacks -> {
42+
contributionController.onPictureReturnedFromCamera(result, requireActivity(), callbacks);
43+
});
44+
});
45+
46+
private final ActivityResultLauncher<Intent> galleryPickLauncherForResult =
47+
registerForActivityResult(new StartActivityForResult(),
48+
result -> {
49+
contributionController.handleActivityResultWithCallback(requireActivity(), callbacks -> {
50+
contributionController.onPictureReturnedFromGallery(result, requireActivity(), callbacks);
51+
});
52+
});
53+
3654
private ActivityResultLauncher<String[]> inAppCameraLocationPermissionLauncher = registerForActivityResult(new ActivityResultContracts.RequestMultiplePermissions(), new ActivityResultCallback<Map<String, Boolean>>() {
3755
@Override
3856
public void onActivityResult(Map<String, Boolean> result) {
@@ -45,7 +63,7 @@ public void onActivityResult(Map<String, Boolean> result) {
4563
contributionController.locationPermissionCallback.onLocationPermissionGranted();
4664
} else {
4765
if (shouldShowRequestPermissionRationale(permission.ACCESS_FINE_LOCATION)) {
48-
contributionController.handleShowRationaleFlowCameraLocation(getActivity(), inAppCameraLocationPermissionLauncher);
66+
contributionController.handleShowRationaleFlowCameraLocation(getActivity(), inAppCameraLocationPermissionLauncher, cameraPickLauncherForResult);
4967
} else {
5068
contributionController.locationPermissionCallback.onLocationPermissionDenied(getActivity().getString(R.string.in_app_camera_location_permission_denied));
5169
}
@@ -83,7 +101,9 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
83101
return Unit.INSTANCE;
84102
},
85103
commonPlaceClickActions,
86-
inAppCameraLocationPermissionLauncher
104+
inAppCameraLocationPermissionLauncher,
105+
galleryPickLauncherForResult,
106+
cameraPickLauncherForResult
87107
);
88108
binding.listView.setAdapter(adapter);
89109
}
@@ -109,11 +129,6 @@ private void initList() {
109129
}
110130
}
111131

112-
@Override
113-
public void onActivityResult(int requestCode, int resultCode, Intent data) {
114-
contributionController.handleActivityResult(getActivity(), requestCode, resultCode, data);
115-
}
116-
117132
@Override
118133
public void onDestroy() {
119134
super.onDestroy();

0 commit comments

Comments
 (0)