From c53d8e5a8b7a0db7cbaf7224849dd24c7b40fd50 Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Tue, 21 May 2019 20:59:51 -0700 Subject: [PATCH] initial changes to set status bar change color --- .../places/AutocompleteFragmentActivity.kt | 2 ++ .../places/AutocompleteLauncherActivity.kt | 1 + .../autocomplete/model/PlaceOptions.java | 19 +++++++++++++++++++ .../ui/PlaceAutocompleteActivity.java | 1 - .../ui/PlaceAutocompleteFragment.java | 7 +++++++ 5 files changed, 29 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/mapbox/mapboxsdk/plugins/testapp/activity/places/AutocompleteFragmentActivity.kt b/app/src/main/java/com/mapbox/mapboxsdk/plugins/testapp/activity/places/AutocompleteFragmentActivity.kt index b87c3d8b4..5c3f5548e 100644 --- a/app/src/main/java/com/mapbox/mapboxsdk/plugins/testapp/activity/places/AutocompleteFragmentActivity.kt +++ b/app/src/main/java/com/mapbox/mapboxsdk/plugins/testapp/activity/places/AutocompleteFragmentActivity.kt @@ -1,5 +1,6 @@ package com.mapbox.mapboxsdk.plugins.testapp.activity.places +import android.graphics.Color import android.os.Bundle import android.support.v4.content.ContextCompat import android.support.v7.app.AppCompatActivity @@ -23,6 +24,7 @@ class AutocompleteFragmentActivity : AppCompatActivity() { if (savedInstanceState == null) { val placeOptions = PlaceOptions.builder() .toolbarColor(ContextCompat.getColor(this, R.color.colorPrimary)) + .statusbarColor(Color.YELLOW) .hint("Begin searching...") .build() diff --git a/app/src/main/java/com/mapbox/mapboxsdk/plugins/testapp/activity/places/AutocompleteLauncherActivity.kt b/app/src/main/java/com/mapbox/mapboxsdk/plugins/testapp/activity/places/AutocompleteLauncherActivity.kt index a3437aa57..7bbbcee7c 100644 --- a/app/src/main/java/com/mapbox/mapboxsdk/plugins/testapp/activity/places/AutocompleteLauncherActivity.kt +++ b/app/src/main/java/com/mapbox/mapboxsdk/plugins/testapp/activity/places/AutocompleteLauncherActivity.kt @@ -71,6 +71,7 @@ class AutocompleteLauncherActivity : AppCompatActivity(), OnMapReadyCallback { .backgroundColor(Color.WHITE) .addInjectedFeature(home) .addInjectedFeature(work) + .statusbarColor(Color.MAGENTA) .build()) .build(this@AutocompleteLauncherActivity) startActivityForResult(intent, REQUEST_CODE_AUTOCOMPLETE) diff --git a/plugin-places/src/main/java/com/mapbox/mapboxsdk/plugins/places/autocomplete/model/PlaceOptions.java b/plugin-places/src/main/java/com/mapbox/mapboxsdk/plugins/places/autocomplete/model/PlaceOptions.java index 8e1fd7690..5a02c6019 100644 --- a/plugin-places/src/main/java/com/mapbox/mapboxsdk/plugins/places/autocomplete/model/PlaceOptions.java +++ b/plugin-places/src/main/java/com/mapbox/mapboxsdk/plugins/places/autocomplete/model/PlaceOptions.java @@ -169,6 +169,15 @@ public abstract class PlaceOptions implements Parcelable { */ public abstract int toolbarColor(); + /** + * Set the autocomplete's layout status bar color. Defaults {@link Color#BLACK}. + * + * @return the status bar color as a ColorInt + * @since 0.9.0 + */ + @ColorInt + public abstract int statusbarColor(); + /** * Optionally set the hint string which is shown before the user inputs a search term inside the * top edit text. @@ -191,6 +200,7 @@ public static Builder builder() { return new AutoValue_PlaceOptions.Builder() .backgroundColor(Color.TRANSPARENT) .toolbarColor(Color.WHITE) + .statusbarColor(Color.BLACK) .limit(10); } @@ -398,6 +408,15 @@ public Builder addInjectedFeature(CarmenFeature carmenFeature) { */ public abstract Builder toolbarColor(@ColorInt int toolbarColor); + /** + * Set the autocomplete's layout status bar color. Defaults {@link Color#BLACK}. + * + * @param statusbarColor the views status bar color as a ColorInt + * @return this builder instance for chaining options together + * @since 0.9.0 + */ + public abstract Builder statusbarColor(@ColorInt int statusbarColor); + /** * Optionally set the hint string which is shown before the user inputs a search term inside the * top edit text. diff --git a/plugin-places/src/main/java/com/mapbox/mapboxsdk/plugins/places/autocomplete/ui/PlaceAutocompleteActivity.java b/plugin-places/src/main/java/com/mapbox/mapboxsdk/plugins/places/autocomplete/ui/PlaceAutocompleteActivity.java index 9be2ccd5e..800e4c563 100644 --- a/plugin-places/src/main/java/com/mapbox/mapboxsdk/plugins/places/autocomplete/ui/PlaceAutocompleteActivity.java +++ b/plugin-places/src/main/java/com/mapbox/mapboxsdk/plugins/places/autocomplete/ui/PlaceAutocompleteActivity.java @@ -29,7 +29,6 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { } else { fragment = PlaceAutocompleteFragment.newInstance(accessToken); } - getSupportFragmentManager().beginTransaction() .add(R.id.fragment_container, fragment, PlaceAutocompleteFragment.TAG).commit(); diff --git a/plugin-places/src/main/java/com/mapbox/mapboxsdk/plugins/places/autocomplete/ui/PlaceAutocompleteFragment.java b/plugin-places/src/main/java/com/mapbox/mapboxsdk/plugins/places/autocomplete/ui/PlaceAutocompleteFragment.java index eb3520211..af3edaa2e 100644 --- a/plugin-places/src/main/java/com/mapbox/mapboxsdk/plugins/places/autocomplete/ui/PlaceAutocompleteFragment.java +++ b/plugin-places/src/main/java/com/mapbox/mapboxsdk/plugins/places/autocomplete/ui/PlaceAutocompleteFragment.java @@ -1,7 +1,9 @@ package com.mapbox.mapboxsdk.plugins.places.autocomplete.ui; +import android.app.Activity; import android.arch.lifecycle.Observer; import android.arch.lifecycle.ViewModelProviders; +import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -105,6 +107,11 @@ private void styleView() { toolbar.setBackgroundColor(placeOptions.toolbarColor()); } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + Activity context = (Activity) rootView.getContext(); + context.getWindow().setStatusBarColor(placeOptions.statusbarColor()); + } + searchView = rootView.findViewById(R.id.searchView); searchView.setHint(placeOptions.hint() == null ? getString(R.string.mapbox_plugins_autocomplete_search_hint) : placeOptions.hint());