Skip to content

Commit

Permalink
chore: Release v1.5.0 (#1841)
Browse files Browse the repository at this point in the history
chore: Release v1.5.0
  • Loading branch information
iamareebjamal authored Jul 27, 2019
2 parents 9c25c7e + 2a31296 commit 1c019ac
Show file tree
Hide file tree
Showing 67 changed files with 813 additions and 524 deletions.
4 changes: 4 additions & 0 deletions .github/issue_label_bot.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
label-alias:
bug: 'bug'
feature_request: 'feature'
question: 'question'
4 changes: 2 additions & 2 deletions .github/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name-template: v$NEXT_PATCH_VERSION 🌈
tag-template: v$NEXT_PATCH_VERSION
name-template: Release v$NEXT_MINOR_VERSION 🌈
tag-template: v$NEXT_MINOR_VERSION
categories:
- title: 🚀 Features and Enhancements
label: feature
Expand Down
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
language: android
dist: trusty
sudo: false
jdk:
- oraclejdk8
Expand Down
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
[![Codacy Grade](https://img.shields.io/codacy/grade/d6ae120356c94c0d94d6449ec540f520.svg)](https://www.codacy.com/app/mb/open-event-organizer-android)
[![Codecov Coverage](https://img.shields.io/codecov/c/github/fossasia/open-event-organizer-android/development.svg)](https://codecov.io/gh/fossasia/open-event-organizer-android)
[![Appetize Preview](https://img.shields.io/badge/Preview-appetize.io-673AB7.svg)](https://appetize.io/app/w8v8z7pc9aewargb2uuyf108f0)
[![Gitter](https://img.shields.io/badge/chat-on%20gitter-ff006f.svg)](https://gitter.im/fossasia/open-event-orga-app)
[![Gitter](https://img.shields.io/badge/chat-on%20gitter-ff006f.svg)](https://gitter.im/fossasia/open-event-organizer-android)
[![Twitter Follow](https://img.shields.io/twitter/follow/eventyay.svg?style=social&label=Follow&maxAge=2592000?style=flat-square)](https://twitter.com/eventyay)

Event management app for organizers using Open Event Platform
Expand All @@ -25,7 +25,7 @@ Currently, the application is released in alpha phase and available here:
[Google Play](https://play.google.com/store/apps/details?id=com.eventyay.organizer) and [F-Droid](https://f-droid.org/en/packages/com.eventyay.organizer/).

<a href='https://play.google.com/store/apps/details?id=com.eventyay.organizer'><img alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png' height="80"/></a>
<a href='https://f-droid.org/en/packages/com.eventyay.organizer/'><img alt='Get it on F-Droid' src='https://f-droid.org/assets/fdroid-logo.svg' height="80"/></a>
<a href='https://f-droid.org/en/packages/com.eventyay.organizer/'><img alt='Get it on F-Droid' src='https://fdroid.gitlab.io/artwork/badge/get-it-on.png' height="80"/></a>

## Roadmap

Expand All @@ -44,19 +44,19 @@ Our chat channel is on gitter here: https://gitter.im/fossasia/open-event-orga-a

<table>
<tr>
<td><img src="docs/images/login.png"></td>
<td><img src="docs/images/dashboard_one.png"></td>
<td><img src="docs/images/dashboard_two.png"></td>
<td><img src="fastlane/metadata/android/en-US/images/phoneScreenshots/login.png"></td>
<td><img src="fastlane/metadata/android/en-US/images/phoneScreenshots/dashboard_one.png"></td>
<td><img src="fastlane/metadata/android/en-US/images/phoneScreenshots/dashboard_two.png"></td>
</tr>
<tr>
<td><img src="docs/images/attendees.png"></td>
<td><img src="docs/images/checkin.png"></td>
<td><img src="docs/images/order_checkin.png"></td>
<td><img src="fastlane/metadata/android/en-US/images/phoneScreenshots/checkin.png"></td>
<td><img src="fastlane/metadata/android/en-US/images/phoneScreenshots/order_checkin.png"></td>
</tr>
<tr>
<td><img src="docs/images/create_ticket.png"></td>
<td><img src="docs/images/navigation.png"></td>
<td><img src="docs/images/organizer.png"></td>
<td><img src="fastlane/metadata/android/en-US/images/phoneScreenshots/create_ticket.png"></td>
<td><img src="fastlane/metadata/android/en-US/images/phoneScreenshots/navigation.png"></td>
<td><img src="fastlane/metadata/android/en-US/images/phoneScreenshots/organizer.png"></td>
</tr>
</table>

Expand Down
19 changes: 13 additions & 6 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ apply plugin: "com.github.b3er.local.properties"

def app_name = System.getenv('app_name') ?: "Eventyay Organizer"
def GOOGLE_PLACES_API_KEY = System.getenv('GOOGLE_PLACES_API_KEY') ?: "YOUR_API_KEY"
def MAPBOX_ACCESS_TOKEN = System.getenv('MAPBOX_ACCESS_TOKEN') ?: "YOUR_ACCESS_TOKEN"

def LOCAL_KEY_PRESENT = project.hasProperty('SIGNING_KEY_FILE') && rootProject.file(SIGNING_KEY_FILE).exists()

Expand All @@ -27,13 +28,14 @@ android {
applicationId "com.eventyay.organizer"
minSdkVersion versions.minSdk
targetSdkVersion versions.targetSdk
versionCode 14
versionName "1.4.0"
versionCode 15
versionName "1.5.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
manifestPlaceholders = [
appName: app_name,
GOOGLE_PLACES_API_KEY: GOOGLE_PLACES_API_KEY
GOOGLE_PLACES_API_KEY: GOOGLE_PLACES_API_KEY,
MAPBOX_ACCESS_TOKEN: MAPBOX_ACCESS_TOKEN
]
}

Expand Down Expand Up @@ -63,6 +65,7 @@ android {

buildConfigField "String", "DEFAULT_BASE_URL", '"https://api.eventyay.com/v1/"'
resValue "string", "default_base_url", '"https://api.eventyay.com/v1/"'
resValue "string", "FRONTEND_HOST", "eventyay.com"

if (LOCAL_KEY_PRESENT || TRAVIS_BUILD)
signingConfig signingConfigs.release
Expand All @@ -71,6 +74,7 @@ android {
testCoverageEnabled = true
buildConfigField "String", "DEFAULT_BASE_URL", '"https://open-event-api-dev.herokuapp.com/v1/"'
resValue "string", "default_base_url", '"https://open-event-api-dev.herokuapp.com/v1/"'
resValue "string", "FRONTEND_HOST", "open-event-fe.netlify.com"
}
}

Expand Down Expand Up @@ -144,7 +148,7 @@ dependencies {
implementation "androidx.appcompat:appcompat:1.1.0-rc01"
implementation "androidx.cardview:cardview:1.0.0"
implementation "androidx.recyclerview:recyclerview:1.1.0-beta01"
implementation "com.google.android.material:material:1.1.0-alpha07"
implementation "com.google.android.material:material:1.1.0-alpha08"
implementation "androidx.browser:browser:1.0.0"
implementation "androidx.palette:palette:1.0.0"
implementation "com.takisoft.fix:preference-v7:${versions.support_lib}.0"
Expand Down Expand Up @@ -190,7 +194,7 @@ dependencies {
implementation "com.squareup.retrofit2:retrofit:${versions.retrofit}"
implementation "com.squareup.retrofit2:converter-jackson:${versions.retrofit}"
implementation "com.squareup.retrofit2:adapter-rxjava2:${versions.retrofit}"
implementation 'com.squareup.okhttp3:logging-interceptor:4.0.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.0.1'
implementation 'com.github.jasminb:jsonapi-converter:0.9'

// RxJava
Expand Down Expand Up @@ -255,6 +259,9 @@ dependencies {
// QR Code Scanner
fdroidImplementation 'com.github.blikoon:QRCodeScanner:0.1.2'

// Mapbox
fdroidImplementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-places-v8:0.9.0'

//Testing
androidTestImplementation('androidx.test.espresso:espresso-core:3.2.0', {
exclude group: 'com.android.support', module: 'support-annotations'
Expand All @@ -265,7 +272,7 @@ dependencies {
exclude group: 'com.android.support', module: 'support-core-utils'
})
testImplementation 'junit:junit:4.12'
testImplementation 'org.mockito:mockito-inline:2.28.2'
testImplementation 'org.mockito:mockito-inline:3.0.0'
testImplementation 'org.json:json:20180130'
testImplementation "org.robolectric:robolectric:${versions.roboelectric}"
testImplementation "org.robolectric:shadows-multidex:${versions.roboelectric}"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,30 @@
package com.eventyay.organizer.core.event.create;

import androidx.lifecycle.ViewModelProvider;
import androidx.lifecycle.ViewModelProviders;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import androidx.databinding.DataBindingUtil;
import android.graphics.Color;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.databinding.DataBindingUtil;
import androidx.lifecycle.ViewModelProvider;
import androidx.lifecycle.ViewModelProviders;

import com.eventyay.organizer.R;
import com.eventyay.organizer.common.mvp.view.BaseBottomSheetFragment;
import com.eventyay.organizer.data.event.Event;
import com.eventyay.organizer.databinding.EventDetailsStepOneBinding;
import com.eventyay.organizer.ui.ViewUtils;
import com.mapbox.api.geocoding.v5.models.CarmenFeature;
import com.mapbox.mapboxsdk.plugins.places.autocomplete.model.PlaceOptions;
import com.mapbox.mapboxsdk.plugins.places.autocomplete.ui.PlaceAutocompleteFragment;
import com.mapbox.mapboxsdk.plugins.places.autocomplete.ui.PlaceSelectionListener;

import java.util.Arrays;
import java.util.List;
Expand All @@ -27,17 +33,13 @@

import timber.log.Timber;

import static android.app.Activity.RESULT_OK;

public class EventDetailsStepOne extends BaseBottomSheetFragment implements EventDetailsStepOneView {

@Inject
ViewModelProvider.Factory viewModelFactory;

private CreateEventViewModel createEventViewModel;
private EventDetailsStepOneBinding binding;
private static final int PLACE_PICKER_REQUEST = 1;
private final LocationPicker locationPicker = new LocationPicker();

public static EventDetailsStepOne newInstance() {
return new EventDetailsStepOne();
Expand All @@ -58,7 +60,7 @@ public void onStart() {
int timezoneIndex = createEventViewModel.setTimeZoneList(getTimeZoneList());
setupSpinner();
setDefaultTimeZone(timezoneIndex);
setupPlacePicker();
setupPlacesAutocomplete();
}

private void setupSpinner() {
Expand All @@ -82,50 +84,52 @@ public void onNothingSelected(AdapterView<?> parent) {
});
}

private void setupPlacePicker() {
//check if there's a google places API key
private void setupPlacesAutocomplete() {

ApplicationInfo applicationInfo = null;
try {
ApplicationInfo ai = getContext().getPackageManager().getApplicationInfo(getContext().getPackageName(), PackageManager.GET_META_DATA);
Bundle bundle = ai.metaData;
String placesApiKey = bundle.getString("com.google.android.geo.API_KEY");
if ("YOUR_API_KEY".equals(placesApiKey)) {
Timber.d("Add Google Places API key in AndroidManifest.xml file to use Place Picker.");
binding.buttonPlacePicker.setVisibility(View.GONE);
showLocationLayouts();
}
applicationInfo = getContext().getPackageManager().getApplicationInfo(getContext().getPackageName(), PackageManager.GET_META_DATA);
} catch (PackageManager.NameNotFoundException e) {
Timber.e(e, "Package name not found");
Timber.e(e);
}
Bundle bundle = applicationInfo.metaData;

binding.buttonPlacePicker.setOnClickListener(view -> {
boolean success = locationPicker.launchPicker(getActivity());
if (locationPicker.shouldShowLocationLayout() || !success)
showLocationLayouts();
});
}
String mapboxAccessToken = bundle.getString(getString(R.string.mapbox_access_token));

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PLACE_PICKER_REQUEST && resultCode == RESULT_OK) {
//once place is picked from map, make location fields visible for confirmation by user
showLocationLayouts();
//set event attributes
Location location = locationPicker.getPlace(getActivity(), data);
Event event = binding.getEvent();
event.latitude = location.getLatitude();
event.longitude = location.getLongitude();

//auto-complete location fields for confirmation by user
binding.locationName.setText(location.getAddress());
binding.searchableLocationName.setText(
createEventViewModel.getSearchableLocationName(location.getAddress().toString()));
}
}
binding.selectLocationButton.setOnClickListener(view -> {

private void showLocationLayouts() {
binding.layoutSearchableLocation.setVisibility(View.VISIBLE);
binding.layoutLocationName.setVisibility(View.VISIBLE);
if (mapboxAccessToken.equals("YOUR_ACCESS_TOKEN")) {
ViewUtils.showSnackbar(binding.getRoot(), R.string.access_token_required);
return;
}

PlaceAutocompleteFragment autocompleteFragment = PlaceAutocompleteFragment.newInstance(
mapboxAccessToken, PlaceOptions.builder().backgroundColor(Color.WHITE).build());

getFragmentManager().beginTransaction()
.replace(R.id.fragment, autocompleteFragment)
.addToBackStack(null)
.commit();

autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
@Override
public void onPlaceSelected(CarmenFeature carmenFeature) {
Event event = binding.getEvent();
event.setLatitude(carmenFeature.center().latitude());
event.setLongitude(carmenFeature.center().longitude());
event.setLocationName(carmenFeature.placeName());
event.setSearchableLocationName(carmenFeature.text());
binding.layoutLocationName.setVisibility(View.VISIBLE);
binding.locationName.setText(event.getLocationName());
getFragmentManager().popBackStack();
}

@Override
public void onCancel() {
getFragmentManager().popBackStack();
}
});
});
}

@Override
Expand Down

This file was deleted.

Loading

0 comments on commit 1c019ac

Please sign in to comment.