From ae789308088ab67554a306a4af9daba9805f1ee8 Mon Sep 17 00:00:00 2001 From: veyndan Date: Wed, 28 Jun 2017 21:39:10 +0100 Subject: [PATCH 1/9] Make the drawer prettier --- .../contributions/ContributionsActivity.java | 4 +- .../hamburger/HamburgerMenuContainer.java | 9 - .../hamburger/NavigationBaseFragment.java | 174 --------------- .../commons/theme/NavigationBaseActivity.java | 137 ++++++++---- .../main/res/drawable/hamburger_item_bg.xml | 15 -- app/src/main/res/layout/activity_about.xml | 16 +- .../res/layout/activity_contributions.xml | 16 +- app/src/main/res/layout/activity_nearby.xml | 16 +- app/src/main/res/layout/activity_settings.xml | 16 +- app/src/main/res/layout/drawer_header.xml | 8 + .../res/layout/navigation_drawer_menu.xml | 200 ------------------ app/src/main/res/menu/drawer.xml | 38 ++++ app/src/main/res/values/colors.xml | 2 - app/src/main/res/values/dimens.xml | 1 - 14 files changed, 162 insertions(+), 490 deletions(-) delete mode 100644 app/src/main/java/fr/free/nrw/commons/hamburger/HamburgerMenuContainer.java delete mode 100644 app/src/main/java/fr/free/nrw/commons/hamburger/NavigationBaseFragment.java delete mode 100644 app/src/main/res/drawable/hamburger_item_bg.xml create mode 100644 app/src/main/res/layout/drawer_header.xml delete mode 100644 app/src/main/res/layout/navigation_drawer_menu.xml create mode 100644 app/src/main/res/menu/drawer.xml diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java index 992f009b8..f1a4adfe2 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java @@ -35,7 +35,6 @@ import fr.free.nrw.commons.HandlerService; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; import fr.free.nrw.commons.auth.AuthenticatedActivity; -import fr.free.nrw.commons.hamburger.HamburgerMenuContainer; import fr.free.nrw.commons.media.MediaDetailPagerFragment; import fr.free.nrw.commons.settings.Prefs; import fr.free.nrw.commons.upload.UploadService; @@ -48,8 +47,7 @@ public class ContributionsActivity AdapterView.OnItemClickListener, MediaDetailPagerFragment.MediaDetailProvider, FragmentManager.OnBackStackChangedListener, - ContributionsListFragment.SourceRefresher, - HamburgerMenuContainer { + ContributionsListFragment.SourceRefresher { private Cursor allContributions; private ContributionsListFragment contributionsList; diff --git a/app/src/main/java/fr/free/nrw/commons/hamburger/HamburgerMenuContainer.java b/app/src/main/java/fr/free/nrw/commons/hamburger/HamburgerMenuContainer.java deleted file mode 100644 index 677200b54..000000000 --- a/app/src/main/java/fr/free/nrw/commons/hamburger/HamburgerMenuContainer.java +++ /dev/null @@ -1,9 +0,0 @@ -package fr.free.nrw.commons.hamburger; - -import android.support.v7.app.ActionBarDrawerToggle; - -public interface HamburgerMenuContainer { - void setDrawerListener(ActionBarDrawerToggle listener); - void toggleDrawer(); - boolean isDrawerVisible(); -} diff --git a/app/src/main/java/fr/free/nrw/commons/hamburger/NavigationBaseFragment.java b/app/src/main/java/fr/free/nrw/commons/hamburger/NavigationBaseFragment.java deleted file mode 100644 index 2d90783f5..000000000 --- a/app/src/main/java/fr/free/nrw/commons/hamburger/NavigationBaseFragment.java +++ /dev/null @@ -1,174 +0,0 @@ -package fr.free.nrw.commons.hamburger; - -import android.content.ActivityNotFoundException; -import android.content.DialogInterface; -import android.content.Intent; -import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.support.v4.widget.DrawerLayout; -import android.support.v7.app.ActionBarDrawerToggle; -import android.support.v7.app.AlertDialog; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.RelativeLayout; -import android.widget.Toast; - -import butterknife.BindView; -import butterknife.ButterKnife; -import butterknife.OnClick; -import fr.free.nrw.commons.AboutActivity; -import fr.free.nrw.commons.BuildConfig; -import fr.free.nrw.commons.CommonsApplication; -import fr.free.nrw.commons.R; -import fr.free.nrw.commons.WelcomeActivity; -import fr.free.nrw.commons.auth.LoginActivity; -import fr.free.nrw.commons.contributions.ContributionsActivity; -import fr.free.nrw.commons.nearby.NearbyActivity; -import fr.free.nrw.commons.settings.SettingsActivity; - - -public class NavigationBaseFragment extends Fragment { - @BindView(R.id.pictureOfTheDay) - ImageView pictureOfTheDay; - - @BindView(R.id.upload_item) - LinearLayout uploadItem; - - @BindView(R.id.nearby_item) - LinearLayout nearbyItem; - - @BindView(R.id.about_item) - LinearLayout aboutItem; - - @BindView(R.id.settings_item) - LinearLayout settingsItem; - - @BindView(R.id.feedback_item) - LinearLayout feedbackItem; - - @BindView(R.id.logout_item) - LinearLayout logoutItem; - - @BindView(R.id.introduction_item) - LinearLayout introductionItem; - - private DrawerLayout drawerLayout; - private RelativeLayout drawerPane; - - @Override - public View onCreateView(LayoutInflater inflater, - ViewGroup container, - Bundle savedInstanceState) { - View hamburgerView = inflater.inflate(R.layout.navigation_drawer_menu, container, false); - ButterKnife.bind(this, hamburgerView); - showPictureOfTheDay(); - setupHamburgerMenu(); - return hamburgerView; - } - - private void showPictureOfTheDay() { - pictureOfTheDay.setImageDrawable(getResources().getDrawable(R.drawable.commons_logo_large)); - } - - @Override - public void onResume() { - super.onResume(); - } - - private void setupHamburgerMenu() { - ActionBarDrawerToggle drawerToggle = new ActionBarDrawerToggle(getActivity(), - drawerLayout, R.string.ok, R.string.cancel); - if (getActivity() instanceof HamburgerMenuContainer) { - ((HamburgerMenuContainer) getActivity()).setDrawerListener(drawerToggle); - } - } - - @OnClick(R.id.upload_item) - protected void onUploadItemClicked() { - closeDrawer(); - ContributionsActivity.startYourself(getActivity()); - } - - @OnClick(R.id.settings_item) - protected void onSettingsItemClicked() { - closeDrawer(); - SettingsActivity.startYourself(getActivity()); - } - - @OnClick(R.id.about_item) - protected void onAboutItemClicked() { - closeDrawer(); - AboutActivity.startYourself(getActivity()); - } - - @OnClick(R.id.nearby_item) - protected void onNearbyItemClicked() { - closeDrawer(); - NearbyActivity.startYourself(getActivity()); - } - - @OnClick(R.id.introduction_item) - protected void onInfoItemClicked() { - closeDrawer(); - WelcomeActivity.startYourself(getActivity()); - } - - @OnClick(R.id.feedback_item) - protected void onFeedbackItemClicked() { - closeDrawer(); - Intent feedbackIntent = new Intent(Intent.ACTION_SEND); - feedbackIntent.setType("message/rfc822"); - feedbackIntent.putExtra(Intent.EXTRA_EMAIL, - new String[]{CommonsApplication.FEEDBACK_EMAIL}); - feedbackIntent.putExtra(Intent.EXTRA_SUBJECT, - String.format(CommonsApplication.FEEDBACK_EMAIL_SUBJECT, - BuildConfig.VERSION_NAME)); - try { - startActivity(feedbackIntent); - } catch (ActivityNotFoundException e) { - Toast.makeText(getActivity(), R.string.no_email_client, Toast.LENGTH_SHORT).show(); - } - } - - @OnClick(R.id.logout_item) - protected void onLogoutItemClicked() { - AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity()); - alertDialogBuilder.setMessage(R.string.logout_verification) - .setCancelable(false) - .setPositiveButton(R.string.yes, - new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - ((CommonsApplication)getActivity().getApplicationContext()) - .clearApplicationData(getContext()); - Intent nearbyIntent = new Intent - (getActivity(), LoginActivity.class); - nearbyIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); - nearbyIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - startActivity(nearbyIntent); - getActivity().finish(); - } - }); - alertDialogBuilder.setNegativeButton(R.string.no, - new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - dialog.cancel(); - } - }); - AlertDialog alert = alertDialogBuilder.create(); - alert.show(); - } - - private void closeDrawer() { - if (drawerLayout != null) { - drawerLayout.closeDrawer(drawerPane); - } - } - - public void setDrawerLayout(DrawerLayout drawerLayout, RelativeLayout drawerPane) { - this.drawerLayout = drawerLayout; - this.drawerPane = drawerPane; - } -} diff --git a/app/src/main/java/fr/free/nrw/commons/theme/NavigationBaseActivity.java b/app/src/main/java/fr/free/nrw/commons/theme/NavigationBaseActivity.java index e618cce5d..a9c27e5e3 100644 --- a/app/src/main/java/fr/free/nrw/commons/theme/NavigationBaseActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/theme/NavigationBaseActivity.java @@ -1,56 +1,52 @@ package fr.free.nrw.commons.theme; -import android.os.Bundle; +import android.content.ActivityNotFoundException; +import android.content.DialogInterface; +import android.content.Intent; +import android.support.annotation.NonNull; +import android.support.design.widget.NavigationView; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; +import android.support.v7.app.AlertDialog; import android.support.v7.widget.Toolbar; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.widget.RelativeLayout; +import android.widget.Toast; import butterknife.BindView; +import fr.free.nrw.commons.AboutActivity; +import fr.free.nrw.commons.BuildConfig; +import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.R; -import fr.free.nrw.commons.hamburger.HamburgerMenuContainer; -import fr.free.nrw.commons.hamburger.NavigationBaseFragment; -import fr.free.nrw.commons.utils.FragmentUtils; +import fr.free.nrw.commons.WelcomeActivity; +import fr.free.nrw.commons.auth.LoginActivity; +import fr.free.nrw.commons.contributions.ContributionsActivity; +import fr.free.nrw.commons.nearby.NearbyActivity; +import fr.free.nrw.commons.settings.SettingsActivity; -import static android.support.v4.view.GravityCompat.START; +public class NavigationBaseActivity extends BaseActivity + implements NavigationView.OnNavigationItemSelectedListener { -public class NavigationBaseActivity extends BaseActivity implements HamburgerMenuContainer { @BindView(R.id.toolbar) Toolbar toolbar; + @BindView(R.id.navigation_view) + NavigationView navigationView; + @BindView(R.id.drawer_layout) DrawerLayout drawerLayout; - @BindView(R.id.drawer_pane) - RelativeLayout drawerPane; - private ActionBarDrawerToggle toggle; - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - } - public void initDrawer() { - initSubviews(); - NavigationBaseFragment baseFragment = new NavigationBaseFragment(); - baseFragment.setDrawerLayout(drawerLayout, drawerPane); - FragmentUtils.addAndCommitFragmentWithImmediateExecution(getSupportFragmentManager(), - R.id.drawer_fragment, - baseFragment); - } + navigationView.setNavigationItemSelectedListener(this); - public void initSubviews() { setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); - toggle = new ActionBarDrawerToggle(this, - drawerLayout, - toolbar, - R.string.navigation_drawer_open, - R.string.navigation_drawer_close); - drawerLayout.setDrawerListener(toggle); + toggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, + R.string.navigation_drawer_open, R.string.navigation_drawer_close); + drawerLayout.addDrawerListener(toggle); toggle.setDrawerIndicatorEnabled(true); toggle.syncState(); setDrawerPaneWidth(); @@ -74,28 +70,77 @@ public class NavigationBaseActivity extends BaseActivity implements HamburgerMen } private void setDrawerPaneWidth() { - ViewGroup.LayoutParams params = drawerPane.getLayoutParams(); + ViewGroup.LayoutParams params = navigationView.getLayoutParams(); // set width to lowerBound of 80% of the screen size params.width = (getResources().getDisplayMetrics().widthPixels * 70) / 100; - drawerPane.setLayoutParams(params); + navigationView.setLayoutParams(params); } @Override - public void setDrawerListener(ActionBarDrawerToggle listener) { - drawerLayout.setDrawerListener(listener); - } - - @Override - public void toggleDrawer() { - if (drawerLayout.isDrawerVisible(START)) { - drawerLayout.closeDrawer(START); - } else { - drawerLayout.openDrawer(START); + public boolean onNavigationItemSelected(@NonNull final MenuItem item) { + switch (item.getItemId()) { + case R.id.action_home: + drawerLayout.closeDrawer(navigationView); + ContributionsActivity.startYourself(this); + return true; + case R.id.action_nearby: + drawerLayout.closeDrawer(navigationView); + NearbyActivity.startYourself(this); + return true; + case R.id.action_about: + drawerLayout.closeDrawer(navigationView); + AboutActivity.startYourself(this); + return true; + case R.id.action_settings: + drawerLayout.closeDrawer(navigationView); + SettingsActivity.startYourself(this); + return true; + case R.id.action_introduction: + drawerLayout.closeDrawer(navigationView); + WelcomeActivity.startYourself(this); + return true; + case R.id.action_feedback: + drawerLayout.closeDrawer(navigationView); + Intent feedbackIntent = new Intent(Intent.ACTION_SEND); + feedbackIntent.setType("message/rfc822"); + feedbackIntent.putExtra(Intent.EXTRA_EMAIL, + new String[]{CommonsApplication.FEEDBACK_EMAIL}); + feedbackIntent.putExtra(Intent.EXTRA_SUBJECT, + String.format(CommonsApplication.FEEDBACK_EMAIL_SUBJECT, + BuildConfig.VERSION_NAME)); + try { + startActivity(feedbackIntent); + } catch (ActivityNotFoundException e) { + Toast.makeText(this, R.string.no_email_client, Toast.LENGTH_SHORT).show(); + } + return true; + case R.id.action_logout: + new AlertDialog.Builder(this) + .setMessage(R.string.logout_verification) + .setCancelable(false) + .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + ((CommonsApplication) getApplicationContext()) + .clearApplicationData(NavigationBaseActivity.this); + Intent nearbyIntent = new Intent( + NavigationBaseActivity.this, LoginActivity.class); + nearbyIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); + nearbyIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(nearbyIntent); + finish(); + } + }) + .setNegativeButton(R.string.no, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.cancel(); + } + }) + .show(); + return true; + default: + return false; } } - - @Override - public boolean isDrawerVisible() { - return drawerLayout.isDrawerVisible(START); - } } diff --git a/app/src/main/res/drawable/hamburger_item_bg.xml b/app/src/main/res/drawable/hamburger_item_bg.xml deleted file mode 100644 index cdd545602..000000000 --- a/app/src/main/res/drawable/hamburger_item_bg.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml index bb053e860..89049d10d 100644 --- a/app/src/main/res/layout/activity_about.xml +++ b/app/src/main/res/layout/activity_about.xml @@ -1,5 +1,6 @@ @@ -89,17 +90,12 @@ - - - - + app:headerLayout="@layout/drawer_header" + app:menu="@menu/drawer"/> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_contributions.xml b/app/src/main/res/layout/activity_contributions.xml index 106f1ff20..9065618f2 100644 --- a/app/src/main/res/layout/activity_contributions.xml +++ b/app/src/main/res/layout/activity_contributions.xml @@ -1,6 +1,7 @@ @@ -32,17 +33,12 @@ - - - - + app:headerLayout="@layout/drawer_header" + app:menu="@menu/drawer"/> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_nearby.xml b/app/src/main/res/layout/activity_nearby.xml index e17c49a07..6f74e8a60 100644 --- a/app/src/main/res/layout/activity_nearby.xml +++ b/app/src/main/res/layout/activity_nearby.xml @@ -1,5 +1,6 @@ @@ -35,17 +36,12 @@ - - - - + app:headerLayout="@layout/drawer_header" + app:menu="@menu/drawer"/> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 739621929..f82f499f0 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -1,6 +1,7 @@ @@ -24,17 +25,12 @@ android:layout_below="@id/toolbar"/> - - - - + app:headerLayout="@layout/drawer_header" + app:menu="@menu/drawer"/> \ No newline at end of file diff --git a/app/src/main/res/layout/drawer_header.xml b/app/src/main/res/layout/drawer_header.xml new file mode 100644 index 000000000..5ea1160d9 --- /dev/null +++ b/app/src/main/res/layout/drawer_header.xml @@ -0,0 +1,8 @@ + + diff --git a/app/src/main/res/layout/navigation_drawer_menu.xml b/app/src/main/res/layout/navigation_drawer_menu.xml deleted file mode 100644 index 60e29d934..000000000 --- a/app/src/main/res/layout/navigation_drawer_menu.xml +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/menu/drawer.xml b/app/src/main/res/menu/drawer.xml new file mode 100644 index 000000000..bf6d3760e --- /dev/null +++ b/app/src/main/res/menu/drawer.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 60164d6bf..01401aa47 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -21,6 +21,4 @@ #B0000000 #77000000 #44000000 - - #f5f5f5 diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 171db028a..fe2674a9a 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -3,6 +3,5 @@ 4dp 8dp 240dp - 18sp 48dp From 5d6bada4c84c266dba37b7e630e833e2f9821da3 Mon Sep 17 00:00:00 2001 From: veyndan Date: Mon, 19 Jun 2017 01:34:46 +0100 Subject: [PATCH 2/9] Use an enum for the place description --- .../nrw/commons/nearby/NearbyInfoDialog.java | 2 +- .../free/nrw/commons/nearby/NearbyPlaces.java | 4 +- .../nrw/commons/nearby/NearbyViewHolder.java | 11 ++- .../fr/free/nrw/commons/nearby/Place.java | 79 +++++++++++++++- .../free/nrw/commons/utils/ResourceUtils.java | 89 ------------------- 5 files changed, 84 insertions(+), 101 deletions(-) delete mode 100644 app/src/main/java/fr/free/nrw/commons/utils/ResourceUtils.java diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyInfoDialog.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyInfoDialog.java index f2c7674b6..85edcfb77 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyInfoDialog.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyInfoDialog.java @@ -121,7 +121,7 @@ public class NearbyInfoDialog extends OverlayDialog { NearbyInfoDialog mDialog = new NearbyInfoDialog(); Bundle bundle = new Bundle(); bundle.putString(ARG_TITLE, place.name); - bundle.putString(ARG_DESC, place.description); + bundle.putString(ARG_DESC, place.getDescription().getText()); bundle.putDouble(ARG_LATITUDE, place.location.getLatitude()); bundle.putDouble(ARG_LONGITUDE, place.location.getLongitude()); bundle.putParcelable(ARG_SITE_LINK, place.siteLinks); diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java index 94f0ac005..6f64afea6 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java @@ -122,7 +122,7 @@ public class NearbyPlaces { places.add(new Place( name, - type, // list + Place.Description.fromText(type), // list type, // details Uri.parse(icon), new LatLng(latitude, longitude, 0), @@ -184,7 +184,7 @@ public class NearbyPlaces { places.add(new Place( name, - type, // list + Place.Description.fromText(type), // list type, // details null, new LatLng(latitude, longitude, 0), diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyViewHolder.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyViewHolder.java index 11ebca46d..e5cc6f547 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyViewHolder.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyViewHolder.java @@ -9,7 +9,6 @@ import butterknife.BindView; import butterknife.ButterKnife; import fr.free.nrw.commons.R; import fr.free.nrw.commons.ViewHolder; -import fr.free.nrw.commons.utils.ResourceUtils; public class NearbyViewHolder implements ViewHolder { @BindView(R.id.tvName) TextView tvName; @@ -25,12 +24,12 @@ public class NearbyViewHolder implements ViewHolder { public void bindModel(Context context, Place place) { // Populate the data into the template view using the data object tvName.setText(place.name); - String description = place.description; - if ( description == null || description.isEmpty() || description.equals("?")) { - description = context.getString(R.string.no_description_found); + String descriptionText = place.getDescription().getText(); + if (descriptionText.equals("?")) { + descriptionText = context.getString(R.string.no_description_found); } - tvDesc.setText(description); + tvDesc.setText(descriptionText); distance.setText(place.distance); - icon.setImageResource(ResourceUtils.getDescriptionIcon(place.description)); + icon.setImageResource(place.getDescription().getIcon()); } } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/Place.java b/app/src/main/java/fr/free/nrw/commons/nearby/Place.java index dcc7fd74f..94c6f40be 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/Place.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/Place.java @@ -2,13 +2,18 @@ package fr.free.nrw.commons.nearby; import android.graphics.Bitmap; import android.net.Uri; +import android.support.annotation.DrawableRes; +import java.util.HashMap; +import java.util.Map; + +import fr.free.nrw.commons.R; import fr.free.nrw.commons.location.LatLng; public class Place { public final String name; - public final String description; + private final Description description; public final String longDescription; public final Uri secondaryImageUrl; public final LatLng location; @@ -19,7 +24,7 @@ public class Place { public Sitelinks siteLinks; - public Place(String name, String description, String longDescription, + public Place(String name, Description description, String longDescription, Uri secondaryImageUrl, LatLng location, Sitelinks siteLinks) { this.name = name; this.description = description; @@ -29,6 +34,10 @@ public class Place { this.siteLinks = siteLinks; } + public Description getDescription() { + return description; + } + public void setDistance(String distance) { this.distance = distance; } @@ -36,7 +45,7 @@ public class Place { @Override public boolean equals(Object o) { if (o instanceof Place) { - Place that = (Place)o; + Place that = (Place) o; return this.name.equals(that.name) && this.location.equals(that.location); } else { return false; @@ -53,4 +62,68 @@ public class Place { return String.format("Place(%s@%s)", name, location); } + /** + * See https://github.com/commons-app/apps-android-commons/issues/250 + * Most common types of desc: building, house, cottage, farmhouse, + * village, civil parish, church, railway station, + * gatehouse, milestone, inn, secondary school, hotel + * + * TODO Give a more accurate class name (see issue #742). + */ + public enum Description { + + BUILDING("building", R.drawable.round_icon_generic_building), + HOUSE("house", R.drawable.round_icon_house), + COTTAGE("cottage", R.drawable.round_icon_house), + FARMHOUSE("farmhouse", R.drawable.round_icon_house), + CHURCH("church", R.drawable.round_icon_church), + RAILWAY_STATION("railway station", R.drawable.round_icon_railway_station), + GATEHOUSE("gatehouse", R.drawable.round_icon_gatehouse), + MILESTONE("milestone", R.drawable.round_icon_milestone), + INN("inn", R.drawable.round_icon_house), + CITY("city", R.drawable.round_icon_city), + SECONDARY_SCHOOL("secondary school", R.drawable.round_icon_school), + EDU("edu", R.drawable.round_icon_school), + ISLE("isle", R.drawable.round_icon_island), + MOUNTAIN("mountain", R.drawable.round_icon_mountain), + AIRPORT("airport", R.drawable.round_icon_airport), + BRIDGE("bridge", R.drawable.round_icon_bridge), + ROAD("road", R.drawable.round_icon_road), + FOREST("forest", R.drawable.round_icon_forest), + PARK("park", R.drawable.round_icon_park), + RIVER("river", R.drawable.round_icon_river), + WATERFALL("waterfall", R.drawable.round_icon_waterfall), + UNKNOWN("?", R.drawable.round_icon_unknown); + + private static final Map TEXT_TO_DESCRIPTION + = new HashMap<>(Description.values().length); + + static { + for (Description description : values()) { + TEXT_TO_DESCRIPTION.put(description.text, description); + } + } + + private final String text; + @DrawableRes private final int icon; + + Description(String text, @DrawableRes int icon) { + this.text = text; + this.icon = icon; + } + + public String getText() { + return text; + } + + @DrawableRes + public int getIcon() { + return icon; + } + + public static Description fromText(String text) { + Description description = TEXT_TO_DESCRIPTION.get(text); + return description == null ? UNKNOWN : description; + } + } } diff --git a/app/src/main/java/fr/free/nrw/commons/utils/ResourceUtils.java b/app/src/main/java/fr/free/nrw/commons/utils/ResourceUtils.java deleted file mode 100644 index 715673149..000000000 --- a/app/src/main/java/fr/free/nrw/commons/utils/ResourceUtils.java +++ /dev/null @@ -1,89 +0,0 @@ -package fr.free.nrw.commons.utils; - -import android.support.annotation.DrawableRes; - -import fr.free.nrw.commons.R; - -public class ResourceUtils { - - /** - * See https://github.com/commons-app/apps-android-commons/issues/250 - * Most common types of desc: building, house, cottage, farmhouse, - * village, civil parish, church, railway station, - * gatehouse, milestone, inn, secondary school, hotel - * @param description Place description - * @return icon res id - */ - @DrawableRes - public static int getDescriptionIcon(String description) { - int resourceId; - switch (description) { - case "building": - resourceId = R.drawable.round_icon_generic_building; - break; - case "house": - resourceId = R.drawable.round_icon_house; - break; - case "cottage": - resourceId = R.drawable.round_icon_house; - break; - case "farmhouse": - resourceId = R.drawable.round_icon_house; - break; - case "church": - resourceId = R.drawable.round_icon_church; - break; - case "railway station": - resourceId = R.drawable.round_icon_railway_station; - break; - case "gatehouse": - resourceId = R.drawable.round_icon_gatehouse; - break; - case "milestone": - resourceId = R.drawable.round_icon_milestone; - break; - case "inn": - resourceId = R.drawable.round_icon_house; - break; - case "city": - resourceId = R.drawable.round_icon_city; - break; - case "secondary school": - resourceId = R.drawable.round_icon_school; - break; - case "edu": - resourceId = R.drawable.round_icon_school; - break; - case "isle": - resourceId = R.drawable.round_icon_island; - break; - case "mountain": - resourceId = R.drawable.round_icon_mountain; - break; - case "airport": - resourceId = R.drawable.round_icon_airport; - break; - case "bridge": - resourceId = R.drawable.round_icon_bridge; - break; - case "road": - resourceId = R.drawable.round_icon_road; - break; - case "forest": - resourceId = R.drawable.round_icon_forest; - break; - case "park": - resourceId = R.drawable.round_icon_park; - break; - case "river": - resourceId = R.drawable.round_icon_river; - break; - case "waterfall": - resourceId = R.drawable.round_icon_waterfall; - break; - default: - resourceId = R.drawable.round_icon_unknown; - } - return resourceId; - } -} From 3509b0a413865138656a43ff243a858fe0eff0ec Mon Sep 17 00:00:00 2001 From: veyndan Date: Fri, 30 Jun 2017 20:19:25 +0100 Subject: [PATCH 3/9] Remove redundant call to method --- .../main/java/fr/free/nrw/commons/nearby/NearbyActivity.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java index f2d3b6726..731d9af87 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java @@ -56,9 +56,6 @@ public class NearbyActivity extends NavigationBaseActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_nearby); ButterKnife.bind(this); - if (getSupportActionBar() != null) { - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - } checkLocationPermission(); bundle = new Bundle(); initDrawer(); From b0f877f21841b36c302c1b7f8dcaa741d926e713 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 3 Jul 2017 07:33:38 +0200 Subject: [PATCH 4/9] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-pl/strings.xml | 2 +- app/src/main/res/values-qq/strings.xml | 2 +- app/src/main/res/values-roa-tara/error.xml | 7 +++++++ 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/values-roa-tara/error.xml diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index c8f812731..9b4dddab2 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -24,7 +24,7 @@ Przesyłanie %d pliku Przesyłanie %d plików - Wysłane przeze mnie pliki + Niedawno przesłane W kolejce Porażka %1$d%% zakończone diff --git a/app/src/main/res/values-qq/strings.xml b/app/src/main/res/values-qq/strings.xml index 9a1adfafc..a32d64b55 100644 --- a/app/src/main/res/values-qq/strings.xml +++ b/app/src/main/res/values-qq/strings.xml @@ -101,7 +101,7 @@ An animal. See [[:d:Q42569|Wikidata item Q42569]] for a list of possible translations. A bridge in Japan. See [[:d:Q1046736|Wikidata item Q1046736]] for a list of possible translations. A flower. See [[:d:Q93201|Wikidata item Q93201]] for a list of possible translations. - Witaj na Wikipedii + Welcome Wikipedia A building in the city of Sydney. See [[:d:Q45178|Wikidata item Q45178]] for a list of possible translations. {{Identical|Cancel}} {{Identical|Open}} diff --git a/app/src/main/res/values-roa-tara/error.xml b/app/src/main/res/values-roa-tara/error.xml new file mode 100644 index 000000000..7a575379f --- /dev/null +++ b/app/src/main/res/values-roa-tara/error.xml @@ -0,0 +1,7 @@ + + + Commons ha sckattate + Mudu. Quacchecose ha sciute male! + Fanne sapé ce ste facive e mannale pe email. Quiste ne pò dà \'na màne a resolvere \'u probbleme! + Grazie \'mbà + From 6c47fa3c897ea9882eef5a91873051c303d8b6c6 Mon Sep 17 00:00:00 2001 From: veyndan Date: Mon, 3 Jul 2017 07:10:22 +0100 Subject: [PATCH 5/9] Fix crashes where R.id.navigation_view wasn't found --- .../res/layout/activity_multiple_uploads.xml | 20 ++++++++----------- app/src/main/res/layout/activity_share.xml | 17 ++++++---------- 2 files changed, 14 insertions(+), 23 deletions(-) diff --git a/app/src/main/res/layout/activity_multiple_uploads.xml b/app/src/main/res/layout/activity_multiple_uploads.xml index a83ce3429..8095a5dce 100644 --- a/app/src/main/res/layout/activity_multiple_uploads.xml +++ b/app/src/main/res/layout/activity_multiple_uploads.xml @@ -1,5 +1,6 @@ @@ -22,17 +23,12 @@ android:orientation="vertical"> - + app:headerLayout="@layout/drawer_header" + app:menu="@menu/drawer" /> - - - - \ No newline at end of file + diff --git a/app/src/main/res/layout/activity_share.xml b/app/src/main/res/layout/activity_share.xml index 2e53e2c76..a75012077 100644 --- a/app/src/main/res/layout/activity_share.xml +++ b/app/src/main/res/layout/activity_share.xml @@ -36,17 +36,12 @@ - + app:headerLayout="@layout/drawer_header" + app:menu="@menu/drawer" /> - - - - \ No newline at end of file + From 0204e72e5c9294d6ee33637e7573bfb203efb7b6 Mon Sep 17 00:00:00 2001 From: Yusuke Matsubara Date: Mon, 3 Jul 2017 22:45:51 +0900 Subject: [PATCH 6/9] Move values-roa-tara to values-b+roa+tara Fixes https://github.com/commons-app/apps-android-commons/commit/b0f877f21841b36c302c1b7f8dcaa741d926e713. See also https://gerrit.wikimedia.org/r/#/c/362954/ and #349. --- app/src/main/res/{values-roa-tara => values-b+roa+tara}/error.xml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename app/src/main/res/{values-roa-tara => values-b+roa+tara}/error.xml (100%) diff --git a/app/src/main/res/values-roa-tara/error.xml b/app/src/main/res/values-b+roa+tara/error.xml similarity index 100% rename from app/src/main/res/values-roa-tara/error.xml rename to app/src/main/res/values-b+roa+tara/error.xml From 501962d3c5becdd4dd3cb1ee57ec17c3c716aa0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Sch=C3=B6nberg?= Date: Mon, 3 Jul 2017 22:38:00 +0200 Subject: [PATCH 7/9] Update mapbox to 5.1 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 567be9b70..6aceefe73 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,7 +17,7 @@ dependencies { compile "com.jakewharton:butterknife:$BUTTERKNIFE_VERSION" annotationProcessor "com.jakewharton:butterknife-compiler:$BUTTERKNIFE_VERSION" compile 'com.jakewharton.timber:timber:4.5.1' - compile ('com.mapbox.mapboxsdk:mapbox-android-sdk:5.0.2@aar'){ + compile ('com.mapbox.mapboxsdk:mapbox-android-sdk:5.1.0@aar'){ transitive=true } compile 'com.facebook.fresco:fresco:1.3.0' From 4281cd30275100dfc8608b9c71878a7812fd316f Mon Sep 17 00:00:00 2001 From: Yusuke Matsubara Date: Wed, 5 Jul 2017 08:34:49 +0900 Subject: [PATCH 8/9] Attempts to reduce timeout (for Travis-CI) --- .travis.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3e2380e5f..898b0a8cf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,10 +3,15 @@ addons: apt: packages: - w3m +cache: + directories: + - ${TRAVIS_BUILD_DIR}/gradle/caches/ + - ${TRAVIS_BUILD_DIR}/gradle/wrapper/dists/ env: global: - ANDROID_TARGET=android-22 - ANDROID_ABI=armeabi-v7a + - ADB_INSTALL_TIMEOUT=12 # in minutes android: components: - platform-tools @@ -19,10 +24,10 @@ android: - sys-img-${ANDROID_ABI}-${ANDROID_TARGET} before_script: - echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI - - emulator -avd test -no-audio -no-window & + - emulator -avd test -no-audio -no-window -no-boot-anim & - android-wait-for-emulator script: - - ./gradlew check connectedCheck jacocoTestReport -stacktrace + - ./gradlew clean check connectedCheck jacocoTestReport --stacktrace after_success: - bash <(curl -s https://codecov.io/bash) after_failure: From 717ed6727c3290eb76935b96bd3f22a1a9e0f4c9 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 6 Jul 2017 11:07:50 +0200 Subject: [PATCH 9/9] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-ja/strings.xml | 36 +++++++++++++++++++++----- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 38b0a39ca..cdd6dbbc3 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -20,10 +20,10 @@ %1$s のアップロードを完了中 %1$s のアップロードに失敗しました 閲覧するにはタップしてください - + %d 件のファイルをアップロード中 - 自分のアップロード + 自分の最近のアップロードファイル 順番待ち中 失敗しました %1$d%% 完了 @@ -49,14 +49,14 @@ 検索するカテゴリ 保存 更新 - - アップロードしたファイルはありません + + \@string/contributions_subtitle_zero %d 件のアップロード - + %d 件のアップロードを開始中 - + %d 件のアップロード %1$s に一致するカテゴリが見つかりません @@ -70,7 +70,7 @@ <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Apache ライセンス v2</a> のもとで公開されているオープン ソース ソフトウェアです。Wikimedia Commons ならびにそのロゴはウィキメディア財団の商標であり、ウィキメディア財団の許可により使用しています。このサイトはウィキメディア財団の公認3でも提携先でもありません。 ソースは <a href=\"https://github.com/commons-app/apps-android-commons\">GitHub</a> にあります。バグとアイディアは <a href=\"https://github.com/commons-app/apps-android-commons/issues\">Github</a> へ。 <a href=\"https://wikimediafoundation.org/wiki/プライバシー・ポリシー\">プライバシー・ポリシー</a> - <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/CREDITS\">CREDITS</a> + <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/CREDITS\">クレジット</a> このアプリについて フィードバックをメールで送信 メールアプリケーションが見つかりません @@ -139,8 +139,30 @@ メディアのタイトル 記述 ここにメディアの説明が入ります。かなり長文になる場合には数行にわたることがあります。それでも見栄えがよいと願っています。 + アップロード日時 ベータ版を使ってみましょう! Google Playのベータ版チャンネルにオプトインして、新機能やバグ修正プログラムに早期にアクセス ウィキデータを使用してください (警告:これを無効にすると、モバイルデータを大量に消費する可能性があります) + 最近のアップロードファイルに表示する最大件数 + 背景画像 + 画像がありません + 画像をアップロード + 蔵王連峰 + リャマ + レインボーブリッジ + チューリップ + ウィキペディアへようこそ + キャンセル + 開く + 閉じる + ホーム + アップロード + このアプリについて + 設定 + フィードバック + ログアウト + チュートリアル + 説明がありません + ウィキデータ項目