diff --git a/.travis.yml b/.travis.yml index 88e4656f07..ed0fa3b72b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,6 +17,10 @@ cache: - "${TRAVIS_BUILD_DIR}/gradle/wrapper/dists/" - "$HOME/.gradle/caches/" - "$HOME/.gradle/wrapper/" + +licenses: + - '.+' + before_script: - bash scripts/prep-key.sh script: @@ -25,7 +29,9 @@ script: after_success: - bash scripts/update-apk.sh + branches: only: - master - development + diff --git a/app/build.gradle b/app/build.gradle index 0295beb4a2..9991e9ad6e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,14 +17,16 @@ def LOCAL_KEY_PRESENT = project.hasProperty('SIGNING_KEY_FILE') && rootProject.f android { dataBinding { enabled = true + + } compileSdkVersion 28 defaultConfig { applicationId "com.eventyay.attendee" minSdkVersion 21 targetSdkVersion 28 - versionCode 17 - versionName "0.9.1" + versionCode 18 + versionName "0.9.2" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true multiDexEnabled true diff --git a/app/src/main/java/org/fossasia/openevent/general/MainActivity.kt b/app/src/main/java/org/fossasia/openevent/general/MainActivity.kt index d30f90dee1..65218a888e 100644 --- a/app/src/main/java/org/fossasia/openevent/general/MainActivity.kt +++ b/app/src/main/java/org/fossasia/openevent/general/MainActivity.kt @@ -3,6 +3,7 @@ package org.fossasia.openevent.general import android.app.Activity import android.content.Intent import android.os.Bundle +import android.util.Log import androidx.appcompat.app.AppCompatActivity import androidx.navigation.NavController import androidx.navigation.fragment.NavHostFragment @@ -31,10 +32,10 @@ class MainActivity : AppCompatActivity() { setTheme(R.style.AppTheme) super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) - val hostFragment = supportFragmentManager.findFragmentById(R.id.frameContainer) if (hostFragment is NavHostFragment) navController = hostFragment.navController + setupBottomNavigationMenu(navController) navController.addOnDestinationChangedListener { _, destination, _ -> diff --git a/app/src/main/java/org/fossasia/openevent/general/event/EventsFragment.kt b/app/src/main/java/org/fossasia/openevent/general/event/EventsFragment.kt index b5c55abf54..a7590fce7c 100644 --- a/app/src/main/java/org/fossasia/openevent/general/event/EventsFragment.kt +++ b/app/src/main/java/org/fossasia/openevent/general/event/EventsFragment.kt @@ -4,6 +4,7 @@ import android.graphics.Color import android.os.Bundle import android.text.Editable import android.text.TextWatcher +import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -53,6 +54,7 @@ import org.fossasia.openevent.general.utils.extensions.setStartPostponedEnterTra import org.fossasia.openevent.general.utils.extensions.showWithFading import org.jetbrains.anko.design.longSnackbar import org.koin.androidx.viewmodel.ext.android.viewModel +import timber.log.Timber const val BEEN_TO_WELCOME_SCREEN = "beenToWelcomeScreen" const val EVENTS_FRAGMENT = "eventsFragment" @@ -81,6 +83,7 @@ class EventsFragment : Fragment(), BottomIconDoubleClick { val progressDialog = progressDialog(context, getString(R.string.loading_message)) val token = arguments?.getString(RESET_PASSWORD_TOKEN) + if (token != null) showResetPasswordAlertDialog(token) @@ -116,10 +119,8 @@ class EventsFragment : Fragment(), BottomIconDoubleClick { eventsViewModel.pagedEvents .nonNull() - .observe(viewLifecycleOwner, Observer { list -> - eventsListAdapter.submitList(list) - if (!rootView.shimmerEvents.isVisible) - showEmptyMessage(eventsListAdapter.currentList?.isEmpty() ?: true) + .observe( viewLifecycleOwner, Observer { + eventsListAdapter.submitList(it) }) eventsViewModel.progress @@ -130,6 +131,12 @@ class EventsFragment : Fragment(), BottomIconDoubleClick { showEmptyMessage(false) showNoInternetScreen(false) } else { + if(eventsListAdapter.currentList?.isEmpty() != false ){ + showEmptyMessage(true) + } + else{ + showEmptyMessage(false) + } rootView.shimmerEvents.stopShimmer() rootView.swiperefresh.isRefreshing = false } @@ -146,6 +153,7 @@ class EventsFragment : Fragment(), BottomIconDoubleClick { rootView.notificationToolbar.isVisible = eventsViewModel.isLoggedIn() eventsViewModel.loadLocation() + if (rootView.locationTextView.text == getString(R.string.enter_location)) { rootView.emptyEventsText.text = getString(R.string.choose_preferred_location_message) } else { diff --git a/app/src/main/java/org/fossasia/openevent/general/event/EventsViewModel.kt b/app/src/main/java/org/fossasia/openevent/general/event/EventsViewModel.kt index c1843bf6b9..c8f86a13f0 100644 --- a/app/src/main/java/org/fossasia/openevent/general/event/EventsViewModel.kt +++ b/app/src/main/java/org/fossasia/openevent/general/event/EventsViewModel.kt @@ -1,5 +1,6 @@ package org.fossasia.openevent.general.event +import android.util.Log import androidx.lifecycle.LiveData import androidx.lifecycle.MediatorLiveData import androidx.lifecycle.MutableLiveData @@ -21,6 +22,7 @@ import org.fossasia.openevent.general.favorite.FavoriteEvent import org.fossasia.openevent.general.search.location.SAVED_LOCATION import org.fossasia.openevent.general.utils.extensions.withDefaultSchedulers import timber.log.Timber +import java.lang.NullPointerException const val NEW_NOTIFICATIONS = "newNotifications" @@ -34,7 +36,6 @@ class EventsViewModel( ) : ViewModel() { private val compositeDisposable = CompositeDisposable() - val connection: LiveData = mutableConnectionLiveData private val mutableProgress = MediatorLiveData() val progress: MediatorLiveData = mutableProgress @@ -59,7 +60,6 @@ class EventsViewModel( mutableProgress.value = false return } - sourceFactory = EventsDataSourceFactory( compositeDisposable, eventService, @@ -89,6 +89,7 @@ class EventsViewModel( Timber.e(it, "Error fetching events") mutableMessage.value = resource.getString(R.string.error_fetching_events_message) }) + } fun isConnected(): Boolean = mutableConnectionLiveData.value ?: false diff --git a/app/src/main/java/org/fossasia/openevent/general/event/paging/EventsDataSource.kt b/app/src/main/java/org/fossasia/openevent/general/event/paging/EventsDataSource.kt index 1763f27207..6609699df0 100644 --- a/app/src/main/java/org/fossasia/openevent/general/event/paging/EventsDataSource.kt +++ b/app/src/main/java/org/fossasia/openevent/general/event/paging/EventsDataSource.kt @@ -43,9 +43,11 @@ class EventsDataSource( eventService.getEventsByLocationPaged(query, requestedPage) .withDefaultSchedulers() .subscribe({ response -> - if (response.isEmpty()) mutableProgress.value = false initialCallback?.onResult(response, null, adjacentPage) callback?.onResult(response, adjacentPage) + if (response.isEmpty()) { + mutableProgress.value = false + } }, { error -> Timber.e(error, "Fail on fetching page of events") } diff --git a/app/src/main/java/org/fossasia/openevent/general/utils/AppLinkUtils.kt b/app/src/main/java/org/fossasia/openevent/general/utils/AppLinkUtils.kt index ef18c5b11d..0c4f1b12a7 100644 --- a/app/src/main/java/org/fossasia/openevent/general/utils/AppLinkUtils.kt +++ b/app/src/main/java/org/fossasia/openevent/general/utils/AppLinkUtils.kt @@ -29,5 +29,6 @@ object AppLinkUtils { val bundle = Bundle() bundle.putString(data.argumentKey, data.argumentValue) navController.navigate(data.destinationId, bundle) + } } diff --git a/app/src/main/res/layout/fragment_events.xml b/app/src/main/res/layout/fragment_events.xml index 9be690fac6..813d445154 100644 --- a/app/src/main/res/layout/fragment_events.xml +++ b/app/src/main/res/layout/fragment_events.xml @@ -145,7 +145,7 @@ app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" android:visibility="gone" - tools:visibility="visible"> + tools:visibility="invisible">