diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java index 8766c6613..7a006a1fc 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java @@ -42,6 +42,7 @@ import fr.free.nrw.commons.R; import fr.free.nrw.commons.di.CommonsDaggerSupportFragment; import fr.free.nrw.commons.media.MediaDetailPagerFragment; import fr.free.nrw.commons.mwapi.MediaWikiApi; +import fr.free.nrw.commons.nearby.NearbyNoificationCardView; import fr.free.nrw.commons.nearby.NearbyPlaces; import fr.free.nrw.commons.notification.Notification; import fr.free.nrw.commons.notification.NotificationController; @@ -88,6 +89,9 @@ public class ContributionsFragment public static final String CONTRIBUTION_LIST_FRAGMENT_TAG = "ContributionListFragmentTag"; public static final String MEDIA_DETAIL_PAGER_FRAGMENT_TAG = "MediaDetailFragmentTag"; + public NearbyNoificationCardView nearbyNoificationCardView; + + /** * Since we will need to use parent activity on onAuthCookieAcquired, we have to wait * fragment to be attached. Latch will be responsible for this sync. @@ -111,7 +115,7 @@ public class ContributionsFragment @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_contributions, container, false); - + if (savedInstanceState != null) { mediaDetailPagerFragment = (MediaDetailPagerFragment)getChildFragmentManager().findFragmentByTag(MEDIA_DETAIL_PAGER_FRAGMENT_TAG); contributionsListFragment = (ContributionsListFragment) getChildFragmentManager().findFragmentByTag(CONTRIBUTION_LIST_FRAGMENT_TAG); diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyNoificationCardView.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyNoificationCardView.java new file mode 100644 index 000000000..9843a747a --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyNoificationCardView.java @@ -0,0 +1,54 @@ +package fr.free.nrw.commons.nearby; + +import android.content.Context; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v7.widget.CardView; +import android.util.AttributeSet; +import android.view.View; +import android.view.animation.AnimationUtils; +import android.widget.ImageView; +import android.widget.TextSwitcher; + +import java.util.ArrayList; +import java.util.List; + +import fr.free.nrw.commons.R; +import fr.free.nrw.commons.notification.Notification; + +/** + * Custom card view for nearby notification card view on main screen, above contributions list + */ +public class NearbyNoificationCardView extends CardView{ + + private Context context; + private TextSwitcher notificationTextSwitcher; + private TextSwitcher notificationTimeSwitcher; + private ImageView notificationIcon; + + public NearbyNoificationCardView(@NonNull Context context) { + super(context); + this.context = context; + init(); + } + + public NearbyNoificationCardView(@NonNull Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + this.context = context; + init(); + } + + public NearbyNoificationCardView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + this.context = context; + init(); + } + + private void init() { + View rootView = inflate(context, R.layout.nearby_card_view, this); + notificationTextSwitcher = rootView.findViewById(R.id.nearby_title); + notificationTimeSwitcher = rootView.findViewById(R.id.nearby_distance); + + notificationIcon = rootView.findViewById(R.id.nearby_icon); + } +} diff --git a/app/src/main/res/drawable/ic_location_white_24dp.xml b/app/src/main/res/drawable/ic_location_white_24dp.xml new file mode 100644 index 000000000..aea56cb5a --- /dev/null +++ b/app/src/main/res/drawable/ic_location_white_24dp.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/nearby_card_view.xml b/app/src/main/res/layout/nearby_card_view.xml new file mode 100644 index 000000000..f64c8a84e --- /dev/null +++ b/app/src/main/res/layout/nearby_card_view.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 261ff2801..9ceb726a3 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -18,6 +18,8 @@ + + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 98a49fb4a..d17e0435d 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -21,6 +21,7 @@ @color/pressed_button_dark @color/disabled_button_text_color_dark @color/enabled_button_text_color_dark + @color/main_background_dark