Skip to content

Commit b4bfc6c

Browse files
Fixes #4447 1. Updated SDK version to 30 2. Updated WorkManager's version (#4677) (#4692)
1 parent ce8d10e commit b4bfc6c

File tree

4 files changed

+30
-4
lines changed

4 files changed

+30
-4
lines changed

app/build.gradle

+3-3
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ dependencies {
139139

140140
implementation "androidx.multidex:multidex:$MULTIDEX_VERSION"
141141

142-
def work_version = "2.4.0"
142+
def work_version = "2.6.0"
143143
// Kotlin + coroutines
144144
implementation "androidx.work:work-runtime-ktx:$work_version"
145145
testImplementation "androidx.work:work-testing:$work_version"
@@ -150,7 +150,7 @@ dependencies {
150150
}
151151

152152
android {
153-
compileSdkVersion 29
153+
compileSdkVersion 30
154154

155155
defaultConfig {
156156
//applicationId 'fr.free.nrw.commons'
@@ -160,7 +160,7 @@ android {
160160
setProperty("archivesBaseName", "app-commons-v$versionName-" + getBranchName())
161161

162162
minSdkVersion 19
163-
targetSdkVersion 29
163+
targetSdkVersion 30
164164
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
165165
testInstrumentationRunnerArguments clearPackageData: 'true'
166166

app/src/main/AndroidManifest.xml

+2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
<uses-permission android:name="com.google.android.apps.photos.permission.GOOGLE_PHOTOS" />
1818
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
1919
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
20+
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
21+
2022

2123

2224
<!-- Needed only if your app targets Android 5.0 (API level 21) or higher. -->

app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java

+22-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
package fr.free.nrw.commons.contributions;
22

3+
import android.Manifest.permission;
34
import android.app.Activity;
45
import android.content.Context;
56
import android.content.Intent;
67
import android.content.SharedPreferences;
8+
import android.content.pm.PackageManager;
9+
import android.os.Build.VERSION;
10+
import android.os.Build.VERSION_CODES;
711
import android.os.Bundle;
812
import android.view.Menu;
913
import android.view.MenuItem;
@@ -42,6 +46,7 @@
4246
import fr.free.nrw.commons.settings.SettingsFragment;
4347
import fr.free.nrw.commons.theme.BaseActivity;
4448
import fr.free.nrw.commons.upload.worker.UploadWorker;
49+
import fr.free.nrw.commons.utils.PermissionUtils;
4550
import fr.free.nrw.commons.utils.ViewUtilWrapper;
4651
import javax.inject.Inject;
4752
import javax.inject.Named;
@@ -138,15 +143,31 @@ public void setSelectedItemId(int id) {
138143

139144
private void setUpPager() {
140145
tabLayout.setOnNavigationItemSelectedListener(item -> {
146+
if (VERSION.SDK_INT >= VERSION_CODES.M) {
147+
if (item.getTitle().equals(getString(R.string.nearby_fragment))
148+
&& checkSelfPermission(permission.READ_PHONE_STATE)
149+
!= PackageManager.PERMISSION_GRANTED) {
150+
requestPhoneStatePermission(() -> {
151+
tabLayout.setSelectedItemId(NavTab.NEARBY.code());
152+
});
153+
return false;
154+
}
155+
}
141156
if (!item.getTitle().equals(getString(R.string.more))) {
142157
// do not change title for more fragment
143158
setTitle(item.getTitle());
144159
}
145160
Fragment fragment = NavTab.of(item.getOrder()).newInstance();
146-
return loadFragment(fragment,true);
161+
return loadFragment(fragment, true);
147162
});
148163
}
149164

165+
private void requestPhoneStatePermission(final Runnable runnable) {
166+
PermissionUtils.checkPermissionsAndPerformAction(this,
167+
android.Manifest.permission.READ_PHONE_STATE, (Runnable) runnable::run, (Runnable) () -> {
168+
}, R.string.need_permission, R.string.read_phone_state_permission_message);
169+
}
170+
150171
private void setUpLoggedOutPager() {
151172
loadFragment(ExploreFragment.newInstance(),false);
152173
tabLayout.setOnNavigationItemSelectedListener(item -> {

app/src/main/res/values/strings.xml

+3
Original file line numberDiff line numberDiff line change
@@ -657,6 +657,9 @@ Upload your first media by tapping on the add button.</string>
657657
<string name="learn_more">LEARN MORE</string>
658658
<string name="wlm_campaign_title">Wiki Loves Monuments</string>
659659
<string name="wlm_campaign_description">Wiki Loves Monuments is an international photo contest for monuments organised by Wikimedia</string>
660+
<string name="need_permission">Need Permission</string>
661+
<string name="read_phone_state_permission_message">Nearby maps need to read PHONE STATE to function properly</string>
662+
660663
<string name="contributions_of_user">Contributions of User: %s</string>
661664
<string name="achievements_of_user">Achievements of User: %s</string>
662665
<string name="menu_view_user_page">View user page</string>

0 commit comments

Comments
 (0)