Merge branch 'main' into issue5583

This commit is contained in:
Nicolas Raoul 2024-08-28 15:35:46 +09:00 committed by GitHub
commit 60288123cb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 122 additions and 100 deletions

View file

@ -47,6 +47,7 @@ dependencies {
implementation 'com.jakewharton.timber:timber:4.7.1' implementation 'com.jakewharton.timber:timber:4.7.1'
implementation 'com.github.deano2390:MaterialShowcaseView:1.2.0' implementation 'com.github.deano2390:MaterialShowcaseView:1.2.0'
implementation "com.google.android.material:material:1.9.0"
implementation 'com.karumi:dexter:5.0.0' implementation 'com.karumi:dexter:5.0.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'

View file

@ -306,9 +306,9 @@ public class AchievementsFragment extends CommonsDaggerSupportFragment {
if (uploadCount==0){ if (uploadCount==0){
setZeroAchievements(); setZeroAchievements();
}else { }else {
// binding.imagesUploadedProgressbar.setVisibility(View.VISIBLE); binding.imagesUploadedProgressbar.setVisibility(View.VISIBLE);
// binding.imagesUploadedProgressbar.setProgress binding.imagesUploadedProgressbar.setProgress
// (100*uploadCount/levelInfo.getMaxUploadCount()); (100*uploadCount/levelInfo.getMaxUploadCount());
binding.tvUploadedImages.setText binding.tvUploadedImages.setText
(uploadCount + "/" + levelInfo.getMaxUploadCount()); (uploadCount + "/" + levelInfo.getMaxUploadCount());
} }
@ -340,10 +340,10 @@ public class AchievementsFragment extends CommonsDaggerSupportFragment {
* @param notRevertPercentage * @param notRevertPercentage
*/ */
private void setImageRevertPercentage(int notRevertPercentage){ private void setImageRevertPercentage(int notRevertPercentage){
// binding.imageRevertsProgressbar.setVisibility(View.VISIBLE); binding.imageRevertsProgressbar.setVisibility(View.VISIBLE);
// binding.imageRevertsProgressbar.setProgress(notRevertPercentage); binding.imageRevertsProgressbar.setProgress(notRevertPercentage);
// String revertPercentage = Integer.toString(notRevertPercentage); final String revertPercentage = Integer.toString(notRevertPercentage);
// binding.imageRevertsProgressbar.setProgressTextFormatPattern(revertPercentage + "%%"); binding.tvRevertedImages.setText(revertPercentage + "%");
binding.imagesRevertLimitText.setText(getResources().getString(R.string.achievements_revert_limit_message)+ levelInfo.getMinNonRevertPercentage() + "%"); binding.imagesRevertLimitText.setText(getResources().getString(R.string.achievements_revert_limit_message)+ levelInfo.getMinNonRevertPercentage() + "%");
} }
@ -355,12 +355,10 @@ public class AchievementsFragment extends CommonsDaggerSupportFragment {
private void inflateAchievements(Achievements achievements) { private void inflateAchievements(Achievements achievements) {
// binding.imagesUsedByWikiProgressBar.setVisibility(View.VISIBLE); // binding.imagesUsedByWikiProgressBar.setVisibility(View.VISIBLE);
binding.thanksReceived.setText(String.valueOf(achievements.getThanksReceived())); binding.thanksReceived.setText(String.valueOf(achievements.getThanksReceived()));
// binding.imagesUsedByWikiProgressBar.setProgress binding.imagesUsedByWikiProgressBar.setProgress
// (100 * achievements.getUniqueUsedImages() / levelInfo.getMaxUniqueImages()); (100 * achievements.getUniqueUsedImages() / levelInfo.getMaxUniqueImages());
if(binding.tvWikiPb != null) { binding.tvWikiPb.setText(achievements.getUniqueUsedImages() + "/"
binding.tvWikiPb.setText + levelInfo.getMaxUniqueImages());
(achievements.getUniqueUsedImages() + "/" + levelInfo.getMaxUniqueImages());
}
binding.imageFeatured.setText(String.valueOf(achievements.getFeaturedImages())); binding.imageFeatured.setText(String.valueOf(achievements.getFeaturedImages()));
binding.qualityImages.setText(String.valueOf(achievements.getQualityImages())); binding.qualityImages.setText(String.valueOf(achievements.getQualityImages()));
String levelUpInfoString = getString(R.string.level).toUpperCase(); String levelUpInfoString = getString(R.string.level).toUpperCase();

View file

@ -65,10 +65,10 @@ public class QuizResultActivity extends AppCompatActivity {
* @param score * @param score
*/ */
public void setScore(int score) { public void setScore(int score) {
int per = score * MULTIPLIER_TO_GET_PERCENTAGE; final int scorePercent = score * MULTIPLIER_TO_GET_PERCENTAGE;
// binding.resultProgressBar.setProgress(per); binding.resultProgressBar.setProgress(scorePercent);
// binding.resultProgressBar.setProgressTextFormatPattern(score +" / " + NUMBER_OF_QUESTIONS); binding.tvResultProgress.setText(score +" / " + NUMBER_OF_QUESTIONS);
String message = getResources().getString(R.string.congratulatory_message_quiz,per + "%"); final String message = getResources().getString(R.string.congratulatory_message_quiz,scorePercent + "%");
binding.congratulatoryMessage.setText(message); binding.congratulatoryMessage.setText(message);
} }

View file

@ -15,7 +15,7 @@ import fr.free.nrw.commons.theme.BaseActivity;
public class SettingsActivity extends BaseActivity { public class SettingsActivity extends BaseActivity {
private ActivitySettingsBinding binding; private ActivitySettingsBinding binding;
private AppCompatDelegate settingsDelegate; // private AppCompatDelegate settingsDelegate;
/** /**
* to be called when the activity starts * to be called when the activity starts
* @param savedInstanceState the previously saved state * @param savedInstanceState the previously saved state
@ -39,10 +39,10 @@ public class SettingsActivity extends BaseActivity {
@Override @Override
protected void onPostCreate(Bundle savedInstanceState) { protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState); super.onPostCreate(savedInstanceState);
if (settingsDelegate == null) { // if (settingsDelegate == null) {
settingsDelegate = AppCompatDelegate.create(this, null); // settingsDelegate = AppCompatDelegate.create(this, null);
} // }
settingsDelegate.onPostCreate(savedInstanceState); // settingsDelegate.onPostCreate(savedInstanceState);
} }
@Override @Override

View file

@ -47,9 +47,9 @@ class WikiBaseClient @Inject constructor(
} }
} }
fun postDeleteClaims(entityId: String, data: String): Observable<Boolean> { fun postDeleteClaims(entityId: String, data: String?): Observable<Boolean> {
return csrfToken().switchMap { editToken -> return csrfToken().switchMap { editToken ->
wikiBaseInterface.postDeleteClaims(editToken, entityId, data) wikiBaseInterface.postDeleteClaims(editToken, entityId, data!!)
.map { response: MwPostResponse -> response.successVal == 1 } .map { response: MwPostResponse -> response.successVal == 1 }
} }
} }

View file

@ -41,20 +41,37 @@
android:textSize="32sp" android:textSize="32sp"
android:layout_marginTop="@dimen/activity_margin_vertical" /> android:layout_marginTop="@dimen/activity_margin_vertical" />
<!-- <com.dinuscxj.progressbar.CircleProgressBar--> <FrameLayout
<!-- android:layout_width="match_parent"--> android:layout_width="match_parent"
<!-- android:layout_height="@dimen/dimen_250"--> android:layout_height="@dimen/dimen_250"
<!-- android:layout_marginRight="@dimen/activity_margin_horizontal"--> android:layout_marginRight="@dimen/activity_margin_horizontal"
<!-- android:layout_marginLeft="@dimen/activity_margin_horizontal"--> android:layout_marginLeft="@dimen/activity_margin_horizontal"
<!-- android:layout_marginTop="@dimen/activity_margin_vertical"--> android:layout_marginTop="@dimen/activity_margin_vertical">
<!-- android:progress="50"-->
<!-- app:progress_end_color="#8C8B98"--> <com.google.android.material.progressindicator.CircularProgressIndicator
<!-- app:progress_start_color="#3A3381"--> android:id="@+id/result_progress_bar"
<!-- app:progress_stroke_width="@dimen/first_fab"--> android:layout_width="match_parent"
<!-- app:progress_text_size="@dimen/large_gap"--> android:layout_height="@dimen/dimen_250"
<!-- app:progress_text_format_pattern="4/5"--> android:layout_gravity="center"
<!-- app:style="solid_line"--> android:indeterminate="false"
<!-- android:id="@+id/result_progress_bar"/>--> app:showAnimationBehavior="outward"
app:indicatorColor="#3A3381"
app:indicatorSize="128dp"
app:trackThickness="@dimen/first_fab"
app:trackColor="#B7B6B6" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_result_progress"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/progressbar_padding"
android:gravity="center"
android:maxLines="1"
android:textColor="@color/secondaryColor"
app:autoSizeMaxTextSize="@dimen/large_gap"
app:autoSizeStepGranularity="1sp"
app:autoSizeTextType="uniform" />
</FrameLayout>
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -133,27 +133,20 @@
android:layout_width="@dimen/dimen_40" android:layout_width="@dimen/dimen_40"
android:layout_height="@dimen/dimen_40" android:layout_height="@dimen/dimen_40"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_alignParentRight="true" android:layout_marginEnd="32dp">
android:layout_marginEnd="32dp"
android:layout_marginRight="32dp">
<!-- <com.dinuscxj.progressbar.CircleProgressBar--> <com.google.android.material.progressindicator.CircularProgressIndicator
<!-- android:layout_width="@dimen/dimen_40"--> android:id="@+id/images_uploaded_progressbar"
<!-- android:layout_height="@dimen/dimen_40"--> android:layout_width="@dimen/dimen_40"
<!-- android:layout_alignParentRight="true"--> android:layout_height="@dimen/dimen_40"
<!-- android:layout_alignParentEnd="true"--> android:indeterminate="false"
<!-- android:layout_marginEnd="@dimen/large_gap"--> android:layout_marginEnd="@dimen/large_gap"
<!-- android:layout_marginRight="@dimen/large_gap"--> app:showAnimationBehavior="outward"
<!-- android:id="@+id/images_uploaded_progressbar"--> app:indicatorColor="@color/primaryColor"
<!-- android:progress="50"--> app:indicatorSize="32dp"
<!-- app:progress_text_size="@dimen/progressbar_text"--> app:trackThickness="@dimen/progressbar_stroke"
<!-- app:progress_end_color="#8C8B98"--> app:trackColor="#B7B6B6"
<!-- app:progress_start_color="#3A3381"--> android:visibility="gone"/>
<!-- app:progress_stroke_width="@dimen/progressbar_stroke"-->
<!-- app:progress_text_format_pattern=""-->
<!-- android:visibility="gone"-->
<!-- app:progress_text_color="@color/secondaryColor"-->
<!-- app:style="solid_line" />-->
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_uploaded_images" android:id="@+id/tv_uploaded_images"
@ -228,24 +221,38 @@
android:layout_marginStart="@dimen/activity_margin_horizontal" android:layout_marginStart="@dimen/activity_margin_horizontal"
android:layout_below="@id/images_reverted_info"/> android:layout_below="@id/images_reverted_info"/>
<!-- <com.dinuscxj.progressbar.CircleProgressBar--> <FrameLayout
<!-- android:layout_width="@dimen/dimen_40"--> android:layout_width="@dimen/dimen_40"
<!-- android:layout_height="@dimen/dimen_40"--> android:layout_height="@dimen/dimen_40"
<!-- android:layout_alignParentRight="true"--> android:layout_alignParentEnd="true"
<!-- android:layout_alignParentEnd="true"--> android:layout_marginEnd="32dp">
<!-- android:layout_marginRight="@dimen/large_gap"-->
<!-- android:layout_marginEnd="@dimen/large_gap"-->
<!-- android:progress="50"-->
<!-- android:visibility="gone"-->
<!-- android:id="@+id/image_reverts_progressbar"-->
<!-- app:progress_end_color="#8C8B98"-->
<!-- app:progress_start_color="#3A3381"-->
<!-- app:progress_text_size="@dimen/progressbar_text"-->
<!-- app:progress_stroke_width="@dimen/progressbar_stroke"-->
<!-- app:progress_text_format_pattern="92%%"-->
<!-- app:progress_text_color="@color/secondaryColor"-->
<!-- app:style="solid_line" />-->
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/image_reverts_progressbar"
android:layout_width="@dimen/dimen_40"
android:layout_height="@dimen/dimen_40"
android:indeterminate="false"
android:layout_marginEnd="@dimen/large_gap"
app:showAnimationBehavior="outward"
app:indicatorColor="@color/primaryColor"
app:indicatorSize="32dp"
app:trackThickness="@dimen/progressbar_stroke"
app:trackColor="#B7B6B6"
android:visibility="gone"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_reverted_images"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/progressbar_padding"
android:gravity="center"
android:maxLines="1"
android:textColor="@color/secondaryColor"
app:autoSizeMaxTextSize="@dimen/progressbar_text"
app:autoSizeMinTextSize="2sp"
app:autoSizeStepGranularity="1sp"
app:autoSizeTextType="uniform" />
</FrameLayout>
</RelativeLayout> </RelativeLayout>
<RelativeLayout <RelativeLayout
@ -295,27 +302,20 @@
android:layout_width="@dimen/dimen_40" android:layout_width="@dimen/dimen_40"
android:layout_height="@dimen/dimen_40" android:layout_height="@dimen/dimen_40"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_alignParentRight="true" android:layout_marginEnd="32dp">
android:layout_marginEnd="32dp"
android:layout_marginRight="32dp">
<!-- <com.dinuscxj.progressbar.CircleProgressBar--> <com.google.android.material.progressindicator.CircularProgressIndicator
<!-- android:layout_width="@dimen/dimen_40"--> android:id="@+id/images_used_by_wiki_progress_bar"
<!-- android:layout_height="@dimen/dimen_40"--> android:layout_width="@dimen/dimen_40"
<!-- android:layout_alignParentRight="true"--> android:layout_height="@dimen/dimen_40"
<!-- android:layout_alignParentEnd="true"--> android:indeterminate="false"
<!-- android:layout_marginRight="@dimen/large_gap"--> android:layout_marginEnd="@dimen/large_gap"
<!-- android:layout_marginEnd="@dimen/large_gap"--> app:showAnimationBehavior="outward"
<!-- android:progress="50"--> app:indicatorColor="@color/primaryColor"
<!-- app:progress_text_size="@dimen/progressbar_text"--> app:indicatorSize="32dp"
<!-- android:id="@+id/images_used_by_wiki_progress_bar"--> app:trackThickness="@dimen/progressbar_stroke"
<!-- app:progress_end_color="#8C8B98"--> app:trackColor="#B7B6B6"
<!-- app:progress_start_color="#3A3381"--> android:visibility="gone"/>
<!-- app:progress_stroke_width="2.5dp"-->
<!-- android:visibility="gone"-->
<!-- app:progress_text_color="@color/secondaryColor"-->
<!-- app:progress_text_format_pattern=""-->
<!-- app:style="solid_line" />-->
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_wiki_pb" android:id="@+id/tv_wiki_pb"

View file

@ -8,6 +8,7 @@ import com.nhaarman.mockitokotlin2.whenever
import fr.free.nrw.commons.kvstore.JsonKvStore import fr.free.nrw.commons.kvstore.JsonKvStore
import fr.free.nrw.commons.upload.UploadResult import fr.free.nrw.commons.upload.UploadResult
import fr.free.nrw.commons.upload.WikidataPlace import fr.free.nrw.commons.upload.WikidataPlace
import fr.free.nrw.commons.wikidata.model.RemoveClaim
import io.reactivex.Observable import io.reactivex.Observable
import org.junit.Before import org.junit.Before
import org.junit.Test import org.junit.Test
@ -18,8 +19,6 @@ import org.mockito.Mock
import org.mockito.Mockito import org.mockito.Mockito
import org.mockito.Mockito.verifyNoInteractions import org.mockito.Mockito.verifyNoInteractions
import org.mockito.MockitoAnnotations import org.mockito.MockitoAnnotations
import fr.free.nrw.commons.wikidata.model.EditClaim
import org.junit.Ignore
class WikidataEditServiceTest { class WikidataEditServiceTest {
@Mock @Mock
@ -54,9 +53,16 @@ class WikidataEditServiceTest {
@Test @Test
fun testUpdateDepictsProperty() { fun testUpdateDepictsProperty() {
whenever(wikibaseClient.postEditEntityByFilename("Test.jpg", val fileEntityId = "12345"
gson.toJson(Mockito.mock(EditClaim::class.java)))).thenReturn(Observable.just(true))
wikidataEditService.updateDepictsProperty("Test.jpg", listOf()) whenever(wikibaseClient.getClaimIdsByProperty("M" + fileEntityId,
WikidataProperties.DEPICTS.propertyName))
.thenReturn(Observable.just(emptyList()))
whenever(wikibaseClient.postDeleteClaims("M" + fileEntityId,
gson.toJson(Mockito.mock(RemoveClaim::class.java)))
).thenReturn(Observable.just(true))
wikidataEditService.updateDepictsProperty(fileEntityId, listOf())
} }
@Test @Test