mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-29 05:43:55 +01:00
* Integrate WLM - Show monuments in maps along with nearby * BugFix in Monuments 1. Single preference for monuments and campaigns 2. Expand collapse chips container in nearby 3. Typo fix in Monuments card in Nearby 4. If a nearby place is a monument as well - do not show them separately, show it as a monument instead 5. Bug fix, monument radius, use the same one as that of nearby * More bug fixes 1. Possible NPE in nearby 2. Added column location_address in BookmarkLocationDao 3. Bug Fix - Display Date in WLM card 4. WLM card on click takes to nearby * Use lowercase country code in WLM uploads * Bug-Fix, WLM Campaign Icon * 1. Updated monuments query to use any of the following properties for monuments - [P1435, P2186, P1459, P1460, P1216, P709, P718, P5694] 2. Append WikiData QID to descriptions template * Updated WLM Banner String, Handle NPE in contributions callback * Added nearby-monuments query log lines * Handle WLM Query exception : - if an exception is thrown in WLM query, continue showing the nearby items if that succeeds * Fix BookmarkLocationDaoTest * Added Column Address in BookmarkLocationDaoTest * Use fallback description as usual nearby pins even for WLM pins, instead of relying on P6375 * Test fix in BookmarkLocationDao * Updated template for WLM, removed redundant feilds * Fixed WLM template * Removed categories from WLM template * Fixed BookmarkControllerTest * Fixed BookmarkLocationFragmentUnitTest * fix ModelFunctions * Fixed BookmarksDaoLocationTest * Fixed WLM template
This commit is contained in:
parent
67f5b6c271
commit
6588a6fd0e
39 changed files with 2906 additions and 185 deletions
|
|
@ -7,4 +7,5 @@ data class Campaign(var title: String? = null,
|
|||
var description: String? = null,
|
||||
var startDate: String? = null,
|
||||
var endDate: String? = null,
|
||||
var link: String? = null)
|
||||
var link: String? = null,
|
||||
var isWLMCampaign: Boolean = false)
|
||||
|
|
@ -4,11 +4,13 @@ import android.content.Context;
|
|||
import android.net.Uri;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import fr.free.nrw.commons.theme.BaseActivity;
|
||||
import org.wikipedia.util.DateUtil;
|
||||
|
||||
import java.text.ParseException;
|
||||
|
|
@ -27,9 +29,14 @@ import fr.free.nrw.commons.utils.ViewUtil;
|
|||
* A view which represents a single campaign
|
||||
*/
|
||||
public class CampaignView extends SwipableCardView {
|
||||
Campaign campaign = null;
|
||||
Campaign campaign;
|
||||
private ViewHolder viewHolder;
|
||||
|
||||
public static final String CAMPAIGNS_DEFAULT_PREFERENCE = "displayCampaignsCardView";
|
||||
public static final String WLM_CARD_PREFERENCE = "displayWLMCardView";
|
||||
|
||||
private String campaignPreference = CAMPAIGNS_DEFAULT_PREFERENCE;
|
||||
|
||||
public CampaignView(@NonNull Context context) {
|
||||
super(context);
|
||||
init();
|
||||
|
|
@ -45,37 +52,46 @@ public class CampaignView extends SwipableCardView {
|
|||
init();
|
||||
}
|
||||
|
||||
public void setCampaign(Campaign campaign) {
|
||||
public void setCampaign(final Campaign campaign) {
|
||||
this.campaign = campaign;
|
||||
if (campaign != null) {
|
||||
this.setVisibility(View.VISIBLE);
|
||||
if (campaign.isWLMCampaign()) {
|
||||
campaignPreference = WLM_CARD_PREFERENCE;
|
||||
}
|
||||
setVisibility(View.VISIBLE);
|
||||
viewHolder.init();
|
||||
} else {
|
||||
this.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override public boolean onSwipe(View view) {
|
||||
@Override public boolean onSwipe(final View view) {
|
||||
view.setVisibility(View.GONE);
|
||||
((MainActivity) getContext()).defaultKvStore
|
||||
.putBoolean("displayCampaignsCardView", false);
|
||||
((BaseActivity) getContext()).defaultKvStore
|
||||
.putBoolean(campaignPreference, false);
|
||||
ViewUtil.showLongToast(getContext(),
|
||||
getResources().getString(R.string.nearby_campaign_dismiss_message));
|
||||
return true;
|
||||
}
|
||||
|
||||
private void init() {
|
||||
View rootView = inflate(getContext(), R.layout.layout_campagin, this);
|
||||
final View rootView = inflate(getContext(), R.layout.layout_campagin, this);
|
||||
viewHolder = new ViewHolder(rootView);
|
||||
setOnClickListener(view -> {
|
||||
if (campaign != null) {
|
||||
Utils.handleWebUrl(getContext(), Uri.parse(campaign.getLink()));
|
||||
if (campaign.isWLMCampaign()) {
|
||||
((MainActivity)(getContext())).showNearby();
|
||||
} else {
|
||||
Utils.handleWebUrl(getContext(), Uri.parse(campaign.getLink()));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public class ViewHolder {
|
||||
|
||||
@BindView(R.id.iv_campaign)
|
||||
ImageView ivCampaign;
|
||||
@BindView(R.id.tv_title) TextView tvTitle;
|
||||
@BindView(R.id.tv_description) TextView tvDescription;
|
||||
@BindView(R.id.tv_dates) TextView tvDates;
|
||||
|
|
@ -86,14 +102,26 @@ public class CampaignView extends SwipableCardView {
|
|||
|
||||
public void init() {
|
||||
if (campaign != null) {
|
||||
ivCampaign.setImageDrawable(
|
||||
getResources().getDrawable(R.drawable.ic_campaign));
|
||||
|
||||
tvTitle.setText(campaign.getTitle());
|
||||
tvDescription.setText(campaign.getDescription());
|
||||
try {
|
||||
Date startDate = CommonsDateUtil.getIso8601DateFormatShort().parse(campaign.getStartDate());
|
||||
Date endDate = CommonsDateUtil.getIso8601DateFormatShort().parse(campaign.getEndDate());
|
||||
tvDates.setText(String.format("%1s - %2s", DateUtil.getExtraShortDateString(startDate),
|
||||
DateUtil.getExtraShortDateString(endDate)));
|
||||
} catch (ParseException e) {
|
||||
if (campaign.isWLMCampaign()) {
|
||||
tvDates.setText(
|
||||
String.format("%1s - %2s", campaign.getStartDate(),
|
||||
campaign.getEndDate()));
|
||||
} else {
|
||||
final Date startDate = CommonsDateUtil.getIso8601DateFormatShort()
|
||||
.parse(campaign.getStartDate());
|
||||
final Date endDate = CommonsDateUtil.getIso8601DateFormatShort()
|
||||
.parse(campaign.getEndDate());
|
||||
tvDates.setText(
|
||||
String.format("%1s - %2s", startDate,
|
||||
endDate));
|
||||
}
|
||||
} catch (final ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue