diff options
author | Christian Schneppe <christian@pix-art.de> | 2018-04-29 15:31:04 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2018-04-29 15:31:04 +0200 |
commit | b5b6b934b768b4c4f29f6e63d5de9f308dcd3cba (patch) | |
tree | 162aecf8450f26dfd7bc37a1f253294bff237162 /src/main | |
parent | f5809e56c6c7bf78b6af7273ee3abf3e676bacb2 (diff) |
Use native snackbar on map view
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/ShareLocationActivity.java | 31 | ||||
-rw-r--r-- | src/main/res/layout/activity_share_locaction.xml | 121 |
2 files changed, 64 insertions, 88 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/ShareLocationActivity.java b/src/main/java/de/pixart/messenger/ui/ShareLocationActivity.java index 2620d91c6..0abfd1708 100644 --- a/src/main/java/de/pixart/messenger/ui/ShareLocationActivity.java +++ b/src/main/java/de/pixart/messenger/ui/ShareLocationActivity.java @@ -12,12 +12,11 @@ import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; import android.provider.Settings; +import android.support.design.widget.CoordinatorLayout; +import android.support.design.widget.Snackbar; import android.text.TextUtils; -import android.view.View; import android.webkit.WebView; import android.widget.Button; -import android.widget.RelativeLayout; -import android.widget.TextView; import org.jetbrains.annotations.Nullable; @@ -35,7 +34,7 @@ public class ShareLocationActivity extends LocationActivity implements LocationL private Button mCancelButton; private Button mShareButton; private String mLocationName; - private RelativeLayout mSnackbar; + private Snackbar snackBar; private static String getAddress(Context context, Location location) { double longitude = location.getLongitude(); @@ -101,12 +100,20 @@ public class ShareLocationActivity extends LocationActivity implements LocationL } }); - mSnackbar = findViewById(R.id.snackbar); - TextView snackbarAction = findViewById(R.id.snackbar_action); - snackbarAction.setOnClickListener(view -> startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS))); - showLocation(null, null); - setShareButtonEnabled(false); - requestLocationUpdates(); + final CoordinatorLayout snackBarCoordinator = findViewById(R.id.snackbarCoordinator); + if (snackBarCoordinator != null) { + this.snackBar = Snackbar.make(snackBarCoordinator, R.string.location_sharing_disabled, Snackbar.LENGTH_INDEFINITE); + snackBar.setAction(R.string.enable, view -> { + if (isLocationEnabled()) { + requestLocationUpdates(); + } else { + showLocation(null, null); + setShareButtonEnabled(false); + requestLocationUpdates(); + startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS)); + } + }); + } } @Override @@ -128,10 +135,10 @@ public class ShareLocationActivity extends LocationActivity implements LocationL public void onResume() { super.onResume(); if (isLocationEnabled()) { - this.mSnackbar.setVisibility(View.GONE); + this.snackBar.dismiss(); showLocation(null, null); } else { - this.mSnackbar.setVisibility(View.VISIBLE); + this.snackBar.show(); } setShareButtonEnabled(false); } diff --git a/src/main/res/layout/activity_share_locaction.xml b/src/main/res/layout/activity_share_locaction.xml index 055db4178..2131bb0f3 100644 --- a/src/main/res/layout/activity_share_locaction.xml +++ b/src/main/res/layout/activity_share_locaction.xml @@ -1,95 +1,64 @@ <?xml version="1.0" encoding="utf-8"?> -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" +<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/snackbarCoordinator" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/color_background_secondary"> - <include - android:id="@+id/toolbar" - layout="@layout/toolbar" /> - - <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" + <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" - tools:context="ui.ShareLocationActivity"> + tools:context=".ui.ShareLocationActivity"> + + <include + android:id="@+id/toolbar" + layout="@layout/toolbar" /> - <WebView - android:id="@+id/webView" + <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_above="@+id/snackbar"></WebView> + android:layout_below="@id/toolbar" + tools:context="ui.ShareLocationActivity"> - <RelativeLayout - android:id="@+id/snackbar" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:layout_above="@+id/button_bar" - android:layout_marginBottom="4dp" - android:layout_marginLeft="8dp" - android:layout_marginRight="8dp" - android:layout_marginTop="4dp" - android:background="@drawable/snackbar" - android:minHeight="48dp" - android:visibility="visible"> + <WebView + android:id="@+id/webView" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_above="@id/button_bar" /> - <TextView + <LinearLayout + android:id="@+id/button_bar" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" - android:layout_centerVertical="true" - android:layout_toLeftOf="@+id/snackbar_action" - android:paddingLeft="24dp" - android:text="@string/location_sharing_disabled" - android:textAppearance="@style/TextAppearance.Conversations.Body1.OnDark" /> - - <TextView - android:id="@+id/snackbar_action" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_alignParentEnd="true" - android:layout_alignParentRight="true" - android:layout_alignParentTop="true" - android:paddingBottom="16dp" - android:paddingLeft="24dp" - android:paddingRight="24dp" - android:paddingTop="16dp" - android:text="@string/enable" - android:textAllCaps="true" - android:textAppearance="@style/TextAppearance.Conversations.Body1.OnDark" - android:textStyle="bold" /> - </RelativeLayout> - - <LinearLayout - android:id="@+id/button_bar" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_alignParentBottom="true" - android:layout_alignParentLeft="true" - android:layout_alignParentRight="true"> + android:layout_alignParentRight="true"> - <Button - android:id="@+id/cancel_button" - style="?android:attr/borderlessButtonStyle" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_weight="1" - android:text="@string/cancel" /> + <Button + android:id="@+id/cancel_button" + style="?android:attr/borderlessButtonStyle" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="@string/cancel" /> - <View - android:layout_width="1dp" - android:layout_height="fill_parent" - android:layout_marginBottom="7dp" - android:layout_marginTop="7dp" /> + <View + android:layout_width="1dp" + android:layout_height="fill_parent" + android:layout_marginBottom="7dp" + android:layout_marginTop="7dp" /> - <Button - android:id="@+id/share_button" - style="?android:attr/borderlessButtonStyle" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_weight="1" - android:enabled="false" - android:text="@string/share" /> - </LinearLayout> + <Button + android:id="@+id/share_button" + style="?android:attr/borderlessButtonStyle" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:enabled="false" + android:text="@string/share" /> + </LinearLayout> + </RelativeLayout> </RelativeLayout> -</RelativeLayout>
\ No newline at end of file +</android.support.design.widget.CoordinatorLayout>
\ No newline at end of file |