Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ val viewModelModule = applicationContext {
viewModel { ProfileFragmentViewModel(get()) }
viewModel { SignUpFragmentViewModel(get(), get()) }
viewModel { EventDetailsViewModel(get()) }
viewModel { SearchViewModel(get(), get()) }
viewModel { SearchViewModel(get(), get(), get()) }
viewModel { AttendeeViewModel(get(), get(), get(), get(), get(), get()) }
viewModel { SearchLocationViewModel(get()) }
viewModel { SearchTimeViewModel(get()) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import android.support.v7.widget.SearchView
import android.text.TextUtils
import android.view.*
import android.widget.Toast
import kotlinx.android.synthetic.main.fragment_search.*
import kotlinx.android.synthetic.main.fragment_search.view.*
import org.fossasia.openevent.general.R
import org.fossasia.openevent.general.event.*
Expand Down Expand Up @@ -83,6 +84,10 @@ class SearchFragment : Fragment() {
it?.let { Utils.showProgressBar(rootView.progressBar, it) }
})

searchViewModel.showNoInternetError.observe(this, Observer {
it?.let { showNoInternetError(it) }
})

rootView.timeTextView.setOnClickListener {
val intent = Intent(activity, SearchTimeActivity::class.java)
startActivity(intent)
Expand All @@ -107,6 +112,10 @@ class SearchFragment : Fragment() {
return rootView
}

private fun showNoInternetError(show: Boolean) {
errorTextView.visibility = if (show) View.VISIBLE else View.GONE
}

override fun onOptionsItemSelected(item: MenuItem?): Boolean {
when (item?.getItemId()) {
R.id.search_item -> {
Expand Down Expand Up @@ -144,6 +153,9 @@ class SearchFragment : Fragment() {
rootView.fabSearch.setOnClickListener {
queryListener.onQueryTextSubmit(searchView.query.toString())
}
rootView.errorTextView.setOnClickListener {
queryListener.onQueryTextSubmit(searchView.query.toString())
}
super.onPrepareOptionsMenu(menu)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@ import android.text.TextUtils
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.schedulers.Schedulers
import org.fossasia.openevent.general.data.Network
import org.fossasia.openevent.general.data.Preference
import org.fossasia.openevent.general.event.Event
import org.fossasia.openevent.general.event.EventService
import timber.log.Timber

class SearchViewModel(private val eventService: EventService, private val preference: Preference) : ViewModel() {
class SearchViewModel(private val eventService: EventService, private val preference: Preference, private val network: Network) : ViewModel() {

private val compositeDisposable = CompositeDisposable()
private val tokenKey = "LOCATION"
Expand All @@ -21,12 +22,14 @@ class SearchViewModel(private val eventService: EventService, private val prefer
val progress = MutableLiveData<Boolean>()
val events = MutableLiveData<List<Event>>()
val error = MutableLiveData<String>()
val showNoInternetError = MutableLiveData<Boolean>()
var searchEvent: String? = null
val savedLocation by lazy { preference.getString(tokenKey) }
val savedDate by lazy { preference.getString(tokenKeyDate) }
val savedNextDate by lazy { preference.getString(tokenKeyNextDate) }

fun loadEvents(location: String, time: String) {
if (!isConnected()) return
preference.putString(tokenKey, location)
val query: String = if (TextUtils.isEmpty(location))
"[{\"name\":\"name\",\"op\":\"ilike\",\"val\":\"%$searchEvent%\"}]"
Expand Down Expand Up @@ -65,6 +68,12 @@ class SearchViewModel(private val eventService: EventService, private val prefer
}))
}

fun isConnected(): Boolean {
val isConnected = network.isNetworkConnected()
showNoInternetError.value = !isConnected
return isConnected
}

override fun onCleared() {
super.onCleared()
compositeDisposable.clear()
Expand Down
12 changes: 12 additions & 0 deletions app/src/main/res/layout/fragment_search.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,18 @@
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
android:id="@+id/errorTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_margin_extreme_large"
android:gravity="center_horizontal"
android:text="@string/error_message"
android:textColor="@color/black"
android:textSize="@dimen/text_size_large"
android:textStyle="bold"
android:visibility="gone" />

<LinearLayout
android:id="@+id/searchLinearLayout"
android:layout_width="match_parent"
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values/dimens.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
<dimen name="layout_margin_moderate">10dp</dimen>
<dimen name="layout_margin_large">16dp</dimen>
<dimen name="layout_margin_extra_large">32dp</dimen>
<dimen name="layout_margin_extreme_large">56dp</dimen>

<!-- padding specifics -->
<dimen name="padding_extra_small">2dp</dimen>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
<string name="no_search_results">Hmmm, we\'\re not getting\nany results. Our bad - try\nanother search</string>
<string name="event_details">Event details</string>
<string name="see_maps">See maps</string>
<string name="error_message">There was an error. Tap here to try again.</string>

<!--profile details-->
<string name="user_name">Username</string>
Expand Down