Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#3222 Merge Structured Data branch into master #3553

Merged
merged 39 commits into from
Apr 21, 2020
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
942cef5
#3222 Merge master into Structured Data branch, fix conflicts (#3447)
macgills Mar 10, 2020
66e195d
#3482 Use Room in Structured Data branch - remove unused code (#3483)
macgills Mar 18, 2020
fb751c6
#3490 Depiction Search in upload shows No Results before it gets resu…
macgills Mar 19, 2020
719f32c
Merge remote-tracking branch 'origin/master' into structured-data
macgills Mar 20, 2020
e992ed4
fix unit test compilation
macgills Mar 20, 2020
02a0042
Merge remote-tracking branch 'origin/master' into structured-data
macgills Mar 20, 2020
bc8b29b
#3222 remove lingering reference to depiction content provider
macgills Mar 20, 2020
f1f0f4a
Fix Crash
macgills Mar 20, 2020
1404bb0
Merge remote-tracking branch 'origin/master' into structured-data
macgills Mar 20, 2020
895b343
#3222 Merge master into Structured Data branch, fix conflicts - revie…
macgills Mar 23, 2020
2e43995
Merge remote-tracking branch 'origin/master' into structured-data
macgills Mar 24, 2020
d5b62be
Merge remote-tracking branch 'origin/master' into structured-data
macgills Mar 24, 2020
2854f6a
Fix method invocations
macgills Mar 24, 2020
587d977
Merge branch 'master' into structured-data
macgills Mar 25, 2020
23b8c2e
#3529 Captions/depictions are not saved to Commons (#3574)
macgills Mar 25, 2020
dec68ed
#3503 Remove Title/Caption From MediaUploadDetail and only use Captio…
macgills Mar 26, 2020
00e9357
fix thumbnail issue 3526 (#3617)
vvijayalakshmi21 Apr 2, 2020
5d2c786
Merge remote-tracking branch 'origin/master' into structured-data
macgills Apr 7, 2020
a9797a7
#3222 Merge master into Structured Data branch, fix conflicts - fix b…
macgills Apr 7, 2020
3f6d26c
Merge branch 'master' into structured-data
macgills Apr 9, 2020
628a605
#3529 Captions/depictions are not saved to Commons (#3588)
macgills Apr 9, 2020
62f1764
Fix issue 3526 Unlike "Items" tab, "child classes" tab does not displ…
vvijayalakshmi21 Apr 10, 2020
46847f0
Fix issue 3137 (#3637)
vvijayalakshmi21 Apr 10, 2020
94da061
#3222 Merge master into Structured Data branch, fix conflicts - rever…
macgills Apr 10, 2020
752d634
Merge branch 'master' into structured-data
maskaravivek Apr 14, 2020
dee9638
Fix build
maskaravivek Apr 15, 2020
d8f9809
#3661 No Depictions Selected Dialog has reversed buttons - fix button…
macgills Apr 16, 2020
e9cd3b4
Revert "#3661 No Depictions Selected Dialog has reversed buttons - fi…
macgills Apr 16, 2020
c9e6788
Merge branch 'master' into structured-data
macgills Apr 16, 2020
92d6848
#3222 Merge master into Structured Data branch, fix conflicts - remov…
macgills Apr 16, 2020
d2e7652
#3661 No Depictions Selected Dialog has reversed buttons - fix button…
macgills Apr 16, 2020
b7384b3
#3653 Many Mnull requests - stop requesting captions for null ids (#3…
macgills Apr 16, 2020
590a7ed
#3633 [structured-data branch] In depictions selection screen, sugges…
macgills Apr 16, 2020
194d31e
#3666 Crash when uploading on structured-data branch - revert cleanup…
macgills Apr 17, 2020
41f3076
Merge branch 'master' into structured-data
macgills Apr 20, 2020
25bcff2
#3222 Merge Structured Data branch into master - fix caption renderin…
macgills Apr 20, 2020
fe9d6ca
Merge remote-tracking branch 'origin/master' into structured-data
macgills Apr 20, 2020
b20dec0
#3222 Merge Structured Data branch into master - upgrade retrofit + o…
macgills Apr 20, 2020
f7b1b14
#3664 Stop using JsonObject on StructuredData (#3672)
macgills Apr 20, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ dependencies {
implementation 'com.dinuscxj:circleprogressbar:1.1.1'
implementation 'com.karumi:dexter:5.0.0'
implementation "com.jakewharton:butterknife:$BUTTERKNIFE_VERSION"

kapt "com.jakewharton:butterknife-compiler:$BUTTERKNIFE_VERSION"

// Logging
Expand All @@ -65,7 +66,7 @@ dependencies {

//Mocking
testImplementation 'com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0'
testImplementation 'org.mockito:mockito-inline:2.8.47'
testImplementation 'org.mockito:mockito-inline:2.13.0'
testImplementation 'org.mockito:mockito-core:2.23.0'
testImplementation "org.powermock:powermock-module-junit4:2.0.0-beta.5"
testImplementation "org.powermock:powermock-api-mockito2:2.0.0-beta.5"
Expand Down Expand Up @@ -107,9 +108,10 @@ dependencies {

//Room
implementation "androidx.room:room-runtime:$ROOM_VERSION"
implementation "androidx.room:room-ktx:$ROOM_VERSION"
implementation "androidx.room:room-rxjava2:$ROOM_VERSION"
kapt "androidx.room:room-compiler:$ROOM_VERSION" // For Kotlin use kapt instead of annotationProcessor
implementation 'com.squareup.retrofit2:retrofit:2.7.1'
implementation "androidx.room:room-rxjava2:$ROOM_VERSION"
testImplementation "androidx.arch.core:core-testing:2.1.0"

// Pref
Expand Down Expand Up @@ -207,6 +209,7 @@ android {
buildConfigField "String", "WIKIMEDIA_API_POTD", "\"https://commons.wikimedia.org/w/api.php?action=featuredfeed&feed=potd&feedformat=rss&language=en\""
buildConfigField "String", "WIKIMEDIA_API_HOST", "\"https://commons.wikimedia.org/w/api.php\""
buildConfigField "String", "WIKIDATA_API_HOST", "\"https://www.wikidata.org/w/api.php\""
buildConfigField "String", "WIKIDATA_URL", "\"https://www.wikidata.org\""
buildConfigField "String", "WIKIMEDIA_FORGE_API_HOST", "\"https://tools.wmflabs.org/\""
buildConfigField "String", "WIKIMEDIA_CAMPAIGNS_URL", "\"https://raw.githubusercontent.com/commons-app/campaigns/master/campaigns.json\""
buildConfigField "String", "IMAGE_URL_BASE", "\"https://upload.wikimedia.org/wikipedia/commons\""
Expand All @@ -228,6 +231,7 @@ android {
buildConfigField "String", "COMMIT_SHA", "\"" + getBuildVersion().toString() + "\""
buildConfigField "String", "TEST_USERNAME", "\"" + System.getenv("test_user_name") + "\""
buildConfigField "String", "TEST_PASSWORD", "\"" + System.getenv("test_user_password") + "\""
buildConfigField "String", "DEPICTS_PROPERTY", "\"P180\""

dimension 'tier'
}
Expand All @@ -239,6 +243,7 @@ android {
buildConfigField "String", "WIKIMEDIA_API_POTD", "\"https://commons.wikimedia.org/w/api.php?action=featuredfeed&feed=potd&feedformat=rss&language=en\""
buildConfigField "String", "WIKIMEDIA_API_HOST", "\"https://commons.wikimedia.beta.wmflabs.org/w/api.php\""
buildConfigField "String", "WIKIDATA_API_HOST", "\"https://www.wikidata.org/w/api.php\""
buildConfigField "String", "WIKIDATA_URL", "\"https://www.wikidata.org\""
buildConfigField "String", "WIKIMEDIA_FORGE_API_HOST", "\"https://tools.wmflabs.org/\""
buildConfigField "String", "WIKIMEDIA_CAMPAIGNS_URL", "\"https://raw.githubusercontent.com/commons-app/campaigns/master/campaigns_beta_active.json\""
buildConfigField "String", "IMAGE_URL_BASE", "\"https://upload.beta.wmflabs.org/wikipedia/commons\""
Expand All @@ -260,6 +265,7 @@ android {
buildConfigField "String", "COMMIT_SHA", "\"" + getBuildVersion().toString() + "\""
buildConfigField "String", "TEST_USERNAME", "\"" + System.getenv("test_user_name") + "\""
buildConfigField "String", "TEST_PASSWORD", "\"" + System.getenv("test_user_password") + "\""
buildConfigField "String", "DEPICTS_PROPERTY", "\"P245962\""

dimension 'tier'
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package fr.free.nrw.commons

import androidx.test.runner.AndroidJUnit4
import org.junit.Rule
import org.junit.runner.RunWith
import android.net.Uri
import androidx.test.espresso.Espresso
import androidx.test.espresso.action.ViewActions
import androidx.test.espresso.matcher.ViewMatchers
import androidx.test.rule.ActivityTestRule
import fr.free.nrw.commons.upload.UploadActivity
import org.hamcrest.Matchers
import org.hamcrest.core.AllOf
import org.junit.Test

@RunWith(AndroidJUnit4::class)
class DepictionSearchTest {
@get:Rule
var activityRule = ActivityTestRule(UploadActivity::class.java)

@Test
fun TestForCaptionsAndDepictions() {
val imageUri = Uri.parse("file://mnt/sdcard/image.jpg")

// Build a result to return from the Camera app


// Stub out the File picker. When an intent is sent to the File picker, this tells
// Espresso to respond with the ActivityResult we just created

Espresso.onView(ViewMatchers.withId(R.id.caption_item_edit_text))
.perform(ViewActions.typeText("caption in english"))
Espresso.onView(ViewMatchers.withId(R.id.description_item_edit_text))
.perform(ViewActions.typeText("description in english"))
Espresso.onView(ViewMatchers.withId(R.id.spinner_description_languages))
.perform(ViewActions.click())
Espresso.onView(ViewMatchers.withId(R.id.spinner_description_languages)).perform(ViewActions.click());
Espresso.onData(AllOf.allOf(Matchers.anything("spinner text"))).atPosition(1).perform(ViewActions.click());
Espresso.onView(ViewMatchers.withId(R.id.caption_item_edit_text))
.perform(ViewActions.typeText("caption in some other language"))
Espresso.onView(ViewMatchers.withId(R.id.description_item_edit_text))
.perform(ViewActions.typeText("description in some other language"))
Espresso.onView(ViewMatchers.withId(R.id.btn_next))
.perform(ViewActions.click())
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
package fr.free.nrw.commons

import android.net.Uri
import androidx.test.espresso.Espresso
import androidx.test.espresso.action.ViewActions
import androidx.test.espresso.intent.Intents
import androidx.test.espresso.intent.matcher.IntentMatchers
import androidx.test.espresso.matcher.ViewMatchers
import androidx.test.rule.ActivityTestRule
import androidx.test.runner.AndroidJUnit4
import fr.free.nrw.commons.upload.UploadActivity
import fr.free.nrw.commons.upload.depicts.DepictsFragment
import org.hamcrest.Matchers
import org.hamcrest.core.AllOf
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
Expand All @@ -16,4 +25,25 @@ class UploadActivityTest {
fun orientationChange() {
UITestHelper.changeOrientation(activityRule)
}
}

@Test
fun TestForCaptionsAndDepictions() {
val imageUri = Uri.parse("file://mnt/sdcard/image.jpg")

Espresso.onView(ViewMatchers.withId(R.id.caption_item_edit_text))
.perform(ViewActions.typeText("caption in english"))
Espresso.onView(ViewMatchers.withId(R.id.description_item_edit_text))
.perform(ViewActions.typeText("description in english"))
Espresso.onView(ViewMatchers.withId(R.id.spinner_description_languages))
.perform(ViewActions.click())
Espresso.onView(ViewMatchers.withId(R.id.spinner_description_languages)).perform(ViewActions.click());
Espresso.onData(AllOf.allOf(Matchers.anything("spinner text"))).atPosition(1).perform(ViewActions.click());
Espresso.onView(ViewMatchers.withId(R.id.caption_item_edit_text))
.perform(ViewActions.typeText("caption in some other language"))
Espresso.onView(ViewMatchers.withId(R.id.description_item_edit_text))
.perform(ViewActions.typeText("description in some other language"))
Espresso.onView(ViewMatchers.withId(R.id.btn_next))
.perform(ViewActions.click())
Intents.intended(IntentMatchers.hasComponent(DepictsFragment::class.java.name))
}
}
7 changes: 6 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,11 @@
android:label="@string/title_activity_featured_images"
android:parentActivityName=".contributions.MainActivity" />

<activity
android:name=".depictions.WikidataItemDetailsActivity"
android:label="@string/title_activity_featured_images"
android:parentActivityName=".contributions.MainActivity" />

<activity
android:name=".explore.categories.ExploreActivity"
android:label="@string/title_activity_explore"
Expand Down Expand Up @@ -178,7 +183,7 @@
android:authorities="${applicationId}.categories.contentprovider"
android:exported="false"
android:label="@string/provider_categories"
android:syncable="false" />
android:syncable="false" />

<provider
android:name=".explore.recentsearches.RecentSearchesContentProvider"
Expand Down
54 changes: 23 additions & 31 deletions app/src/main/java/fr/free/nrw/commons/CommonsApplication.java
Original file line number Diff line number Diff line change
@@ -1,48 +1,37 @@
package fr.free.nrw.commons;

import static fr.free.nrw.commons.data.DBOpenHelper.CONTRIBUTIONS_TABLE;
import static org.acra.ReportField.ANDROID_VERSION;
import static org.acra.ReportField.APP_VERSION_CODE;
import static org.acra.ReportField.APP_VERSION_NAME;
import static org.acra.ReportField.PHONE_MODEL;
import static org.acra.ReportField.STACK_TRACE;
import static org.acra.ReportField.USER_COMMENT;

import android.annotation.SuppressLint;
import android.app.Application;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.Build;
import android.os.Process;
import android.util.Log;

import androidx.annotation.NonNull;

import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.imagepipeline.core.ImagePipeline;
import com.facebook.imagepipeline.core.ImagePipelineConfig;
import com.mapbox.mapboxsdk.Mapbox;
import com.squareup.leakcanary.LeakCanary;
import com.squareup.leakcanary.RefWatcher;

import org.acra.ACRA;
import org.acra.annotation.AcraCore;
import org.acra.annotation.AcraDialog;
import org.acra.annotation.AcraMailSender;
import org.acra.data.StringFormat;
import org.wikipedia.AppAdapter;
import org.wikipedia.language.AppLanguageLookUpTable;

import java.io.File;
import java.util.HashSet;
import java.util.Set;

import javax.inject.Inject;
import javax.inject.Named;

import fr.free.nrw.commons.auth.SessionManager;
import fr.free.nrw.commons.bookmarks.locations.BookmarkLocationsDao;
import fr.free.nrw.commons.bookmarks.pictures.BookmarkPicturesDao;
import fr.free.nrw.commons.category.CategoryDao;
import fr.free.nrw.commons.concurrency.BackgroundPoolExceptionHandler;
import fr.free.nrw.commons.concurrency.ThreadPoolService;
import fr.free.nrw.commons.contributions.ContributionDao;
import fr.free.nrw.commons.data.DBOpenHelper;
import fr.free.nrw.commons.db.AppDatabase;
import fr.free.nrw.commons.di.ApplicationlessInjection;
import fr.free.nrw.commons.kvstore.JsonKvStore;
import fr.free.nrw.commons.logging.FileLoggingTree;
Expand All @@ -54,16 +43,20 @@
import io.reactivex.internal.functions.Functions;
import io.reactivex.plugins.RxJavaPlugins;
import io.reactivex.schedulers.Schedulers;
import java.io.File;
import java.util.HashSet;
import java.util.Set;
import javax.inject.Inject;
import javax.inject.Named;
import org.acra.ACRA;
import org.acra.annotation.AcraCore;
import org.acra.annotation.AcraDialog;
import org.acra.annotation.AcraMailSender;
import org.acra.data.StringFormat;
import org.wikipedia.AppAdapter;
import org.wikipedia.language.AppLanguageLookUpTable;
import timber.log.Timber;

import static fr.free.nrw.commons.data.DBOpenHelper.CONTRIBUTIONS_TABLE;
import static org.acra.ReportField.ANDROID_VERSION;
import static org.acra.ReportField.APP_VERSION_CODE;
import static org.acra.ReportField.APP_VERSION_NAME;
import static org.acra.ReportField.PHONE_MODEL;
import static org.acra.ReportField.STACK_TRACE;
import static org.acra.ReportField.USER_COMMENT;

@AcraCore(
buildConfigClass = BuildConfig.class,
resReportSendSuccessToast = R.string.crash_dialog_ok_toast,
Expand Down Expand Up @@ -120,8 +113,7 @@ public AppLanguageLookUpTable getLanguageLookUpTable() {
return languageLookUpTable;
}

@Inject
AppDatabase appDatabase;
@Inject ContributionDao contributionDao;

/**
* Used to declare and initialize various components and dependencies
Expand Down Expand Up @@ -298,7 +290,7 @@ private void updateAllDatabases() {

CategoryDao.Table.onDelete(db);
dbOpenHelper.deleteTable(db,CONTRIBUTIONS_TABLE);//Delete the contributions table in the existing db on older versions
appDatabase.getContributionDao().deleteAll();
contributionDao.deleteAll();
BookmarkPicturesDao.Table.onDelete(db);
BookmarkLocationsDao.Table.onDelete(db);
}
Expand Down
Loading