Merge commit 'refs/pull/5220/head' of github.com:commons-app/apps-android-commons into new-tools

This commit is contained in:
Kaartic Sivaraam 2023-10-04 06:54:48 +05:30
commit 62661604ff
15 changed files with 101 additions and 148 deletions

View file

@ -17,8 +17,8 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: 11
distribution: 'temurin'
java-version: '17'
- name: Cache packages
id: cache-packages

View file

@ -39,21 +39,18 @@
<option name="ALIGN_INIT_LIST_IN_COLUMNS" value="false" />
<option name="SPACE_BEFORE_SUPERCLASS_COLON" value="false" />
</Objective-C>
<Objective-C-extensions>
<extensions>
<pair source="cc" header="h" fileNamingConvention="NONE" />
<pair source="c" header="h" fileNamingConvention="NONE" />
</extensions>
</Objective-C-extensions>
<Python>
<option name="USE_CONTINUATION_INDENT_FOR_ARGUMENTS" value="true" />
</Python>
<TypeScriptCodeStyleSettings>
<option name="INDENT_CHAINED_CALLS" value="false" />
</TypeScriptCodeStyleSettings>
<XML>
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
</XML>
<files>
<extensions>
<pair source="cc" header="h" fileNamingConvention="NONE" />
<pair source="c" header="h" fileNamingConvention="NONE" />
</extensions>
</files>
<codeStyleSettings language="CSS">
<indentOptions>
<option name="INDENT_SIZE" value="2" />

View file

@ -20,8 +20,8 @@ dependencies {
// Utils
implementation 'in.yuvi:http.fluent:1.3'
implementation 'com.google.code.gson:gson:2.8.5'
implementation ("com.squareup.okhttp3:okhttp:$OKHTTP_VERSION"){
force = true //API 19 support
implementation ("com.squareup.okhttp3:okhttp:$OKHTTP_VERSION!!"){
//force = true //API 19 support
}
implementation 'com.squareup.okio:okio:2.2.2'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
@ -120,7 +120,7 @@ dependencies {
implementation "androidx.exifinterface:exifinterface:1.3.2"
implementation "androidx.core:core-ktx:$CORE_KTX_VERSION"
implementation "androidx.multidex:multidex:2.0.1"
compile 'com.simplecityapps:recyclerview-fastscroll:2.0.1'
implementation 'com.simplecityapps:recyclerview-fastscroll:2.0.1'
//swipe_layout
implementation 'com.daimajia.swipelayout:library:1.2.0@aar'
@ -188,12 +188,16 @@ android {
vectorDrawables.useSupportLibrary = true
}
packagingOptions {
exclude 'META-INF/androidx.*'
exclude 'META-INF/proguard/androidx-annotations.pro'
jniLibs {
excludes += ['META-INF/androidx.*']
}
resources {
excludes += ['META-INF/androidx.*', 'META-INF/proguard/androidx-annotations.pro']
}
}
testOptions {
animationsDisabled true
@ -326,11 +330,6 @@ android {
}
}
lintOptions {
disable 'MissingTranslation'
disable 'ExtraTranslation'
abortOnError false
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
@ -342,7 +341,11 @@ android {
buildFeatures {
viewBinding true
}
namespace 'fr.free.nrw.commons'
lint {
abortOnError false
disable 'MissingTranslation', 'ExtraTranslation'
}
}
String getTestUserName() {

View file

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="fr.free.nrw.commons">
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />

View file

@ -41,8 +41,9 @@ import fr.free.nrw.commons.R;
import fr.free.nrw.commons.Utils;
import fr.free.nrw.commons.auth.SessionManager;
import fr.free.nrw.commons.di.CommonsDaggerSupportFragment;
import fr.free.nrw.commons.utils.DialogUtil;
import fr.free.nrw.commons.media.MediaClient;
import fr.free.nrw.commons.profile.ProfileActivity;
import fr.free.nrw.commons.utils.DialogUtil;
import fr.free.nrw.commons.utils.SystemThemeUtils;
import fr.free.nrw.commons.utils.ViewUtil;
import java.util.Locale;
@ -52,7 +53,6 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.commons.lang3.StringUtils;
import org.wikipedia.dataclient.WikiSite;
import fr.free.nrw.commons.profile.ProfileActivity;
/**
@ -112,7 +112,8 @@ public class ContributionsListFragment extends CommonsDaggerSupportFragment impl
private ContributionsListAdapter adapter;
@Nullable private Callback callback;
@Nullable
private Callback callback;
private final int SPAN_COUNT_LANDSCAPE = 3;
private final int SPAN_COUNT_PORTRAIT = 1;
@ -142,7 +143,8 @@ public class ContributionsListFragment extends CommonsDaggerSupportFragment impl
@Override
public void onCreate(@Nullable @org.jetbrains.annotations.Nullable final Bundle savedInstanceState) {
public void onCreate(
@Nullable @org.jetbrains.annotations.Nullable final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Now that we are allowing this fragment to be started for
// any userName- we expect it to be passed as an argument
@ -336,7 +338,7 @@ public class ContributionsListFragment extends CommonsDaggerSupportFragment impl
* Launch Custom Selector.
*/
@OnClick(R.id.fab_custom_gallery)
void launchCustomSelector(){
void launchCustomSelector() {
controller.initiateCustomGalleryPickWithPermission(getActivity());
animateFAB(isFabOpen);
}
@ -348,24 +350,24 @@ public class ContributionsListFragment extends CommonsDaggerSupportFragment impl
private void animateFAB(final boolean isFabOpen) {
this.isFabOpen = !isFabOpen;
if (fabPlus.isShown()) {
if (isFabOpen) {
fabPlus.startAnimation(rotate_backward);
fabCamera.startAnimation(fab_close);
fabGallery.startAnimation(fab_close);
fabCustomGallery.startAnimation(fab_close);
fabCamera.hide();
fabGallery.hide();
fabCustomGallery.hide();
} else {
fabPlus.startAnimation(rotate_forward);
fabCamera.startAnimation(fab_open);
fabGallery.startAnimation(fab_open);
fabCustomGallery.startAnimation(fab_open);
fabCamera.show();
fabGallery.show();
fabCustomGallery.show();
}
this.isFabOpen = !isFabOpen;
if (isFabOpen) {
fabPlus.startAnimation(rotate_backward);
fabCamera.startAnimation(fab_close);
fabGallery.startAnimation(fab_close);
fabCustomGallery.startAnimation(fab_close);
fabCamera.hide();
fabGallery.hide();
fabCustomGallery.hide();
} else {
fabPlus.startAnimation(rotate_forward);
fabCamera.startAnimation(fab_open);
fabGallery.startAnimation(fab_open);
fabCustomGallery.startAnimation(fab_open);
fabCamera.show();
fabGallery.show();
fabCustomGallery.show();
}
this.isFabOpen = !isFabOpen;
}
}

View file

@ -1,5 +1,7 @@
package fr.free.nrw.commons.filepicker;
import static fr.free.nrw.commons.filepicker.PickedFiles.singleFileList;
import android.app.Activity;
import android.content.ClipData;
import android.content.Context;
@ -8,13 +10,11 @@ import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import androidx.preference.PreferenceManager;
import android.provider.MediaStore;
import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.preference.PreferenceManager;
import fr.free.nrw.commons.customselector.model.Image;
import fr.free.nrw.commons.customselector.ui.selector.CustomSelectorActivity;
import java.io.File;
@ -23,8 +23,6 @@ import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
import static fr.free.nrw.commons.filepicker.PickedFiles.singleFileList;
public class FilePicker implements Constants {
private static final String KEY_PHOTO_URI = "photo_uri";

View file

@ -7,16 +7,13 @@ import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.provider.Settings;
import androidx.annotation.StringRes;
import androidx.core.content.ContextCompat;
import com.karumi.dexter.Dexter;
import com.karumi.dexter.MultiplePermissionsReport;
import com.karumi.dexter.PermissionToken;
import com.karumi.dexter.listener.PermissionRequest;
import com.karumi.dexter.listener.multi.MultiplePermissionsListener;
import fr.free.nrw.commons.CommonsApplication;
import fr.free.nrw.commons.R;
import java.util.List;

View file

@ -2,12 +2,11 @@
buildscript {
repositories {
google()
jcenter()
mavenCentral()
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath 'com.android.tools.build:gradle:4.0.1'
classpath 'com.android.tools.build:gradle:8.0.2'
classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$KOTLIN_VERSION"
classpath 'org.codehaus.groovy:groovy-all:2.4.15'
@ -15,10 +14,11 @@ buildscript {
}
allprojects {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }
maven { url "https://maven.google.com" }
}
repositories {
google()
mavenCentral()
gradlePluginPortal() // potential jcenter() replacement
maven { url "https://jitpack.io" }
maven { url "https://maven.google.com" }
}
}

View file

@ -1,31 +1,38 @@
// NOTE: This library is outdated, discontinued & will be replaced eventually.
// Please refrain from altering the library contents unless necessary
// Repository
// url - 'https://github.com/wikimedia/wikimedia-android-data-client'
// description - 'Android library for accessing the Wikimedia APIs.'
// Licenses
// name - 'The Apache Software License, Version 2.0'
// url - 'http://www.apache.org/licenses/LICENSE-2.0.txt'
// Author
// name - Dmitry Brant
// email - me@dmitrybrant.com
buildscript {
ext.kotlin_version = '1.7.20'
repositories {
jcenter()
mavenCentral()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.3'
classpath "com.github.dcendents:android-maven-gradle-plugin:2.1"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
plugins {
id "com.jfrog.bintray" version "1.7.3"
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
}
version = "${VERSION_NAME}"
@ -55,6 +62,7 @@ android {
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
}
namespace 'org.wikipedia.dataclient'
}
dependencies {
@ -82,67 +90,6 @@ dependencies {
testImplementation "commons-io:commons-io:2.6"
}
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
artifacts {
archives sourcesJar
}
Properties properties = new Properties()
if ( project.rootProject.file('local.properties').isFile() ) {
properties.load(project.rootProject.file('local.properties').newDataInputStream())
}
bintray {
user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")
println 'Bintray user: ' + user
configurations = ['archives']
pkg {
repo = 'maven'
name = "${ARTIFACT_ID}"
vcsUrl = 'https://github.com/wikimedia/wikimedia-android-data-client.git'
licenses = ['Apache-2.0']
version {
name = "${VERSION_NAME}"
}
publish = true
}
}
install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom {
project {
packaging 'aar'
name "${ARTIFACT_ID}"
artifactId "${ARTIFACT_ID}"
description 'Android library for accessing the Wikimedia APIs.'
url 'https://github.com/wikimedia/wikimedia-android-data-client'
inceptionYear '2019'
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id 'dmitrybrant'
name 'Dmitry Brant'
email 'me@dmitrybrant.com'
}
}
}
}
}
}
repositories {
mavenCentral()
}

View file

@ -1,6 +1,6 @@
#Fri Jun 07 09:14:55 EDT 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip

View file

@ -1,4 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.wikipedia.dataclient">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application android:allowBackup="true" android:label="@string/app_name" android:supportsRtl="true">
</application>
</manifest>

View file

@ -14,7 +14,7 @@
# org.gradle.parallel=true
#Thu Mar 01 15:28:48 IST 2018
org.gradle.jvmargs=-Xmx1536M
android.enableBuildCache=true
org.gradle.caching=true
KOTLIN_VERSION=1.7.20
BUTTERKNIFE_VERSION=10.1.0
@ -33,5 +33,7 @@ systemProp.http.proxyPort=0
systemProp.http.proxyHost=
android.useAndroidX=true
android.enableJetifier=true
android.enableR8=false
android.jetifier.blacklist=bcprov-jdk15on
android.jetifier.ignorelist=bcprov-jdk15on
android.defaults.buildfeatures.buildconfig=true
android.nonTransitiveRClass=false
android.nonFinalResIds=false

View file

@ -1,6 +1,6 @@
#Thu Dec 26 14:27:31 IST 2019
#Sun Apr 23 18:22:54 IST 2023
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https://services.gradle.org/distributions/gradle-6.9-all.zip

View file

@ -93,8 +93,12 @@ project.afterEvaluate {
description = "Generate Jacoco unified coverage reports for the ${variantName.capitalize()} build"
reports {
html.enabled = true
xml.enabled = true
html {
enabled true
}
xml {
enabled true
}
}
def javaClasses = fileTree(dir: variant.javaCompileProvider.get().destinationDir,
@ -127,8 +131,12 @@ project.afterEvaluate {
description = "Generate Jacoco coverage reports for the ${variantName.capitalize()} build"
reports {
html.enabled = true
xml.enabled = true
html {
enabled true
}
xml {
enabled true
}
}
def javaClasses = fileTree(dir: variant.javaCompileProvider.get().destinationDir,