mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-04-20 22:23:37 +00:00
Show app version in the app #5
This commit is contained in:
parent
064606fb47
commit
15ae8cd2e8
5 changed files with 93 additions and 54 deletions
|
|
@ -1,6 +1,5 @@
|
|||
package com.geeksville.mesh
|
||||
|
||||
// import kotlinx.android.synthetic.main.tabs.*
|
||||
import android.Manifest
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Activity
|
||||
|
|
@ -12,6 +11,7 @@ import android.content.BroadcastReceiver
|
|||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import android.content.pm.PackageInfo
|
||||
import android.content.pm.PackageManager
|
||||
import android.hardware.usb.UsbDevice
|
||||
import android.hardware.usb.UsbManager
|
||||
|
|
@ -22,10 +22,11 @@ import android.os.RemoteException
|
|||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
import android.widget.Toast
|
||||
import androidx.activity.viewModels
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.widget.TooltipCompat
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
|
|
@ -121,6 +122,8 @@ class MainActivity : AppCompatActivity(), Logging,
|
|||
bluetoothManager.adapter
|
||||
}
|
||||
|
||||
private var actionBarMenu: Menu? = null
|
||||
|
||||
val model: UIViewModel by viewModels()
|
||||
|
||||
data class TabInfo(val text: String, val icon: Int, val content: Fragment)
|
||||
|
|
@ -390,6 +393,8 @@ class MainActivity : AppCompatActivity(), Logging,
|
|||
} */
|
||||
setContentView(R.layout.activity_main)
|
||||
|
||||
initToolbar()
|
||||
|
||||
pager.adapter = tabsAdapter
|
||||
pager.isUserInputEnabled =
|
||||
false // Gestures for screen switching doesn't work so good with the map view
|
||||
|
|
@ -409,8 +414,18 @@ class MainActivity : AppCompatActivity(), Logging,
|
|||
askToRate()
|
||||
}
|
||||
|
||||
private fun initToolbar() {
|
||||
val toolbar =
|
||||
findViewById<View>(R.id.toolbar) as Toolbar
|
||||
setSupportActionBar(toolbar)
|
||||
supportActionBar?.setDisplayShowTitleEnabled(false)
|
||||
}
|
||||
|
||||
private fun updateConnectionStatusImage(connected: MeshService.ConnectionState) {
|
||||
|
||||
if (actionBarMenu==null)
|
||||
return
|
||||
|
||||
val (image, tooltip) = when (connected) {
|
||||
MeshService.ConnectionState.CONNECTED -> Pair(R.drawable.cloud_on, R.string.connected)
|
||||
MeshService.ConnectionState.DEVICE_SLEEP -> Pair(
|
||||
|
|
@ -424,8 +439,11 @@ class MainActivity : AppCompatActivity(), Logging,
|
|||
else -> Pair(R.drawable.cloud_off, R.string.disconnected)
|
||||
}
|
||||
|
||||
connectStatusImage.setImageResource(image)
|
||||
TooltipCompat.setTooltipText(connectStatusImage, getString(tooltip))
|
||||
val item = actionBarMenu?.findItem(R.id.connectStatusImage)
|
||||
if (item != null) {
|
||||
item.setIcon(image)
|
||||
item.setTitle(tooltip)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -804,6 +822,7 @@ class MainActivity : AppCompatActivity(), Logging,
|
|||
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||
// Inflate the menu; this adds items to the action bar if it is present.
|
||||
menuInflater.inflate(R.menu.menu_main, menu)
|
||||
actionBarMenu = menu
|
||||
return true
|
||||
}
|
||||
|
||||
|
|
@ -812,10 +831,27 @@ class MainActivity : AppCompatActivity(), Logging,
|
|||
// automatically handle clicks on the Home/Up button, so long
|
||||
// as you specify a parent activity in AndroidManifest.xml.
|
||||
return when (item.itemId) {
|
||||
R.id.action_settings -> true
|
||||
R.id.about -> {
|
||||
getVersionInfo()
|
||||
return true
|
||||
}
|
||||
R.id.connectStatusImage -> {
|
||||
Toast.makeText(this, item.title, Toast.LENGTH_SHORT).show()
|
||||
return true
|
||||
}
|
||||
else -> super.onOptionsItemSelected(item)
|
||||
}
|
||||
}
|
||||
|
||||
private fun getVersionInfo() {
|
||||
try {
|
||||
val packageInfo: PackageInfo = packageManager.getPackageInfo(packageName, 0)
|
||||
val versionName = packageInfo.versionName
|
||||
Toast.makeText(this, versionName, Toast.LENGTH_LONG).show()
|
||||
} catch (e: PackageManager.NameNotFoundException) {
|
||||
errormsg("Can not find the version: ${e.message}")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue