From 737b98076ad991bdea74d92ead5cabbca57791e4 Mon Sep 17 00:00:00 2001 From: geeksville Date: Wed, 8 Apr 2020 11:57:31 -0700 Subject: [PATCH] show connection status in appbar --- .../java/com/geeksville/mesh/MainActivity.kt | 12 ++-- .../java/com/geeksville/mesh/ui/Channel.kt | 6 +- app/src/main/res/layout/activity_main.xml | 56 ++++++++++++++++--- app/src/main/res/layout/channel_fragment.xml | 15 ++--- app/src/main/res/values/strings.xml | 7 +++ 5 files changed, 72 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/MainActivity.kt b/app/src/main/java/com/geeksville/mesh/MainActivity.kt index 7f278bb9c..c0c68e8bf 100644 --- a/app/src/main/java/com/geeksville/mesh/MainActivity.kt +++ b/app/src/main/java/com/geeksville/mesh/MainActivity.kt @@ -21,8 +21,8 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment +import androidx.lifecycle.Observer import androidx.viewpager2.adapter.FragmentStateAdapter -import androidx.viewpager2.widget.ViewPager2 import com.geeksville.android.Logging import com.geeksville.android.ServiceClient import com.geeksville.mesh.model.TextMessage @@ -35,8 +35,8 @@ import com.geeksville.util.exceptionReporter import com.google.android.gms.auth.api.signin.GoogleSignIn import com.google.android.gms.auth.api.signin.GoogleSignInAccount import com.google.android.gms.tasks.Task -import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayoutMediator +import kotlinx.android.synthetic.main.activity_main.* import java.nio.charset.Charset /* @@ -280,8 +280,6 @@ class MainActivity : AppCompatActivity(), Logging, } */ setContentView(R.layout.activity_main) - val tab_layout = findViewById(R.id.tab_layout) - val pager = findViewById(R.id.pager) pager.adapter = tabsAdapter pager.isUserInputEnabled = false // Gestures for screen switching doesn't work so good with the map view @@ -289,6 +287,12 @@ class MainActivity : AppCompatActivity(), Logging, // tab.text = tabInfos[position].text // I think it looks better with icons only tab.icon = getDrawable(tabInfos[position].icon) }.attach() + + model.isConnected.observe(this, Observer { connected -> + val image = + if (connected != MeshService.ConnectionState.DISCONNECTED) R.drawable.cloud_on else R.drawable.cloud_off + connectStatusImage.setImageDrawable(getDrawable(image)) + }) } diff --git a/app/src/main/java/com/geeksville/mesh/ui/Channel.kt b/app/src/main/java/com/geeksville/mesh/ui/Channel.kt index 12cf13e74..ec8a66a2a 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/Channel.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/Channel.kt @@ -1,7 +1,6 @@ package com.geeksville.mesh.ui import android.content.Intent -import android.graphics.drawable.BitmapDrawable import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -68,9 +67,8 @@ class ChannelFragment : ScreenFragment("Channel"), Logging { channelNameEdit.visibility = View.VISIBLE channelNameEdit.setText(channel.name) editableCheckbox.isEnabled = true - - val d = BitmapDrawable(resources, channel.getChannelQR()) - qrView.setImageDrawable(d) + + qrView.setImageBitmap(channel.getChannelQR()) // Share this particular channel if someone clicks share shareButton.setOnClickListener { GeeksvilleApplication.analytics.track( diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index c850876d6..8ce3f8bda 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -11,15 +11,53 @@ android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> - + + + + + + + + @@ -21,8 +21,8 @@ android:id="@+id/channelNameEdit" android:layout_width="match_parent" android:layout_height="wrap_content" - android:hint="channel name" - android:text="Unset" /> + android:hint="@string/channel_name" + android:text="@string/unset" /> @@ -98,7 +98,7 @@ android:layout_marginStart="64dp" android:layout_marginTop="8dp" android:layout_marginEnd="64dp" - android:hint="Channel options" + android:hint="@string/channel_options" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -107,7 +107,8 @@ + android:layout_height="wrap_content" + android:hint="@string/channel_options" /> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 14f0f21d7..9d2806129 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,4 +1,11 @@ Meshtastic Settings + Channel Name + Channel options + Share button + QR code + Unset + Connection status + application icon