kopia lustrzana https://github.com/ge0rg/aprsdroid
make UIHelper handle as much menus as possible
rodzic
8f20340724
commit
2417c5398b
|
@ -6,7 +6,7 @@
|
|||
<item android:id="@+id/clear"
|
||||
android:title="@string/clear_log"
|
||||
android:alphabeticShortcut="c"
|
||||
android:icon="@android:drawable/ic_menu_close_clear_cancel" />
|
||||
android:icon="@android:drawable/ic_menu_delete" />
|
||||
<item android:id="@+id/about"
|
||||
android:title="@string/about"
|
||||
android:alphabeticShortcut="a"
|
||||
|
|
|
@ -1,12 +1,31 @@
|
|||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:id="@+id/preferences"
|
||||
android:title="@string/preferences"
|
||||
android:alphabeticShortcut="p"
|
||||
android:icon="@android:drawable/ic_menu_preferences" />
|
||||
<item android:id="@+id/hub"
|
||||
android:title="@string/show_hub"
|
||||
android:alphabeticShortcut="h"
|
||||
android:icon="@android:drawable/ic_menu_mylocation" />
|
||||
<item android:id="@+id/map"
|
||||
android:title="@string/show_map"
|
||||
android:alphabeticShortcut="m"
|
||||
android:icon="@android:drawable/ic_menu_mapmode" />
|
||||
<item android:id="@+id/log"
|
||||
android:title="@string/show_log"
|
||||
android:alphabeticShortcut="l"
|
||||
android:icon="@android:drawable/ic_menu_revert" />
|
||||
android:icon="@android:drawable/ic_menu_recent_history" />
|
||||
<item android:id="@+id/age"
|
||||
android:title="@string/age"
|
||||
android:alphabeticShortcut="a"
|
||||
android:icon="@android:drawable/ic_menu_today" >
|
||||
<menu>
|
||||
<group android:checkableBehavior="single">
|
||||
<item android:id="@+id/age_10"
|
||||
android:title="@string/age_10" />
|
||||
<item android:id="@+id/age_30"
|
||||
android:title="@string/age_30" />
|
||||
<item android:id="@+id/age_1d"
|
||||
android:title="@string/age_1d" />
|
||||
</group>
|
||||
</menu>
|
||||
</item>
|
||||
<item android:id="@+id/overlays"
|
||||
android:title="@string/map_overlays"
|
||||
android:alphabeticShortcut="o"
|
||||
|
@ -22,7 +41,11 @@
|
|||
</item>
|
||||
<item android:id="@+id/startstopbtn"
|
||||
android:title="@string/startlog"
|
||||
android:alphabeticShortcut="s"
|
||||
android:alphabeticShortcut="t"
|
||||
android:icon="@android:drawable/ic_menu_compass" />
|
||||
<item android:id="@+id/preferences"
|
||||
android:title="@string/preferences"
|
||||
android:alphabeticShortcut="p"
|
||||
android:icon="@android:drawable/ic_menu_preferences" />
|
||||
</menu>
|
||||
|
||||
|
|
|
@ -59,9 +59,16 @@
|
|||
<string name="map_satellite">Satellite</string>
|
||||
<string name="map_objects">APRS Objects</string>
|
||||
|
||||
<!-- map view -->
|
||||
<string name="age">Show last...</string>
|
||||
<string name="age_10">10 minutes</string>
|
||||
<string name="age_30">30 minutes</string>
|
||||
<string name="age_1d">1 day</string>
|
||||
|
||||
|
||||
<!-- options menu -->
|
||||
<string name="about">About</string>
|
||||
<string name="show_hub">Show Hub</string>
|
||||
<string name="show_map">Show Map</string>
|
||||
<string name="show_log">Show Log</string>
|
||||
<string name="clear_log">Clear Log</string>
|
||||
|
|
|
@ -24,7 +24,7 @@ class APRSdroid extends Activity with OnClickListener
|
|||
val TAG = "APRSdroid"
|
||||
|
||||
lazy val prefs = new PrefsWrapper(this)
|
||||
lazy val uihelper = new UIHelper(this, prefs)
|
||||
lazy val uihelper = new UIHelper(this, R.id.log, prefs)
|
||||
lazy val storage = StorageDatabase.open(this)
|
||||
lazy val postcursor = storage.getPosts("100")
|
||||
|
||||
|
@ -97,12 +97,13 @@ class APRSdroid extends Activity with OnClickListener
|
|||
}
|
||||
|
||||
override def onCreateOptionsMenu(menu : Menu) : Boolean = {
|
||||
getMenuInflater().inflate(R.menu.options, menu);
|
||||
getMenuInflater().inflate(R.menu.options_map, menu);
|
||||
true
|
||||
}
|
||||
override def onPrepareOptionsMenu(menu : Menu) = uihelper.onPrepareOptionsMenu(menu)
|
||||
|
||||
def setupButtons(running : Boolean) {
|
||||
singleBtn.setEnabled(!running)
|
||||
//singleBtn.setEnabled(!running)
|
||||
if (running) {
|
||||
startstopBtn.setText(R.string.stoplog)
|
||||
} else {
|
||||
|
|
|
@ -15,6 +15,8 @@ import scala.collection.JavaConversions._
|
|||
class MapAct extends MapActivity {
|
||||
val TAG = "MapAct"
|
||||
|
||||
lazy val prefs = new PrefsWrapper(this)
|
||||
lazy val uihelper = new UIHelper(this, R.id.map, prefs)
|
||||
lazy val mapview = findViewById(R.id.mapview).asInstanceOf[MapView]
|
||||
lazy val allicons = this.getResources().getDrawable(R.drawable.allicons)
|
||||
lazy val db = StorageDatabase.open(this)
|
||||
|
@ -55,29 +57,10 @@ class MapAct extends MapActivity {
|
|||
getMenuInflater().inflate(R.menu.options_map, menu);
|
||||
true
|
||||
}
|
||||
override def onPrepareOptionsMenu(menu : Menu) : Boolean = {
|
||||
val mi = menu.findItem(R.id.startstopbtn)
|
||||
mi.setTitle(if (AprsService.running) R.string.stoplog else R.string.startlog)
|
||||
mi.setIcon(if (AprsService.running) android.R.drawable.ic_menu_close_clear_cancel else android.R.drawable.ic_menu_compass)
|
||||
true
|
||||
}
|
||||
override def onPrepareOptionsMenu(menu : Menu) = uihelper.onPrepareOptionsMenu(menu)
|
||||
|
||||
override def onOptionsItemSelected(mi : MenuItem) : Boolean = {
|
||||
mi.getItemId match {
|
||||
case R.id.preferences =>
|
||||
startActivity(new Intent(this, classOf[PrefsAct]));
|
||||
true
|
||||
case R.id.map =>
|
||||
finish();
|
||||
true
|
||||
case R.id.startstopbtn =>
|
||||
val is_running = AprsService.running
|
||||
if (!is_running) {
|
||||
startService(AprsService.intent(this, AprsService.SERVICE))
|
||||
} else {
|
||||
stopService(AprsService.intent(this, AprsService.SERVICE))
|
||||
}
|
||||
true
|
||||
case R.id.objects =>
|
||||
mi.setChecked(!mi.isChecked())
|
||||
showObjects = mi.isChecked()
|
||||
|
@ -88,11 +71,7 @@ class MapAct extends MapActivity {
|
|||
mi.setChecked(!mi.isChecked())
|
||||
mapview.setSatellite(mi.isChecked())
|
||||
true
|
||||
case R.id.quit =>
|
||||
stopService(AprsService.intent(this, AprsService.SERVICE))
|
||||
finish();
|
||||
true
|
||||
case _ => false
|
||||
case _ => uihelper.optionsItemAction(mi)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,11 +5,12 @@ import _root_.android.content._
|
|||
import _root_.android.database.Cursor
|
||||
import _root_.android.os.{Bundle, Handler}
|
||||
import _root_.android.util.Log
|
||||
import _root_.android.view.View
|
||||
import _root_.android.view.{Menu, MenuItem, View}
|
||||
import _root_.android.widget.ListView
|
||||
|
||||
class StationActivity extends ListActivity {
|
||||
lazy val prefs = new PrefsWrapper(this)
|
||||
lazy val uihelper = new UIHelper(this, R.id.hub, prefs)
|
||||
|
||||
var targetcall = ""
|
||||
lazy val pla = getIntentPLA()
|
||||
|
@ -39,6 +40,17 @@ class StationActivity extends ListActivity {
|
|||
pla.onDestroy()
|
||||
}
|
||||
|
||||
override def onCreateOptionsMenu(menu : Menu) : Boolean = {
|
||||
getMenuInflater().inflate(R.menu.options_map, menu);
|
||||
true
|
||||
}
|
||||
|
||||
override def onPrepareOptionsMenu(menu : Menu) = uihelper.onPrepareOptionsMenu(menu)
|
||||
|
||||
override def onOptionsItemSelected(mi : MenuItem) : Boolean = {
|
||||
uihelper.optionsItemAction(mi)
|
||||
}
|
||||
|
||||
|
||||
override def onListItemClick(l : ListView, v : View, position : Int, id : Long) {
|
||||
//super.onListItemClick(l, v, position, id)
|
||||
|
|
|
@ -8,7 +8,7 @@ import _root_.android.net.Uri
|
|||
import _root_.android.view.{LayoutInflater, Menu, MenuItem, View}
|
||||
import _root_.android.widget.Toast
|
||||
|
||||
class UIHelper(ctx : Activity, prefs : PrefsWrapper) {
|
||||
class UIHelper(ctx : Activity, menu_id : Int, prefs : PrefsWrapper) {
|
||||
|
||||
def openPrefs(toastId : Int) {
|
||||
ctx.startActivity(new Intent(ctx, classOf[PrefsAct]));
|
||||
|
@ -72,6 +72,17 @@ class UIHelper(ctx : Activity, prefs : PrefsWrapper) {
|
|||
def showFirstRunDialog() {
|
||||
}
|
||||
|
||||
def onPrepareOptionsMenu(menu : Menu) : Boolean = {
|
||||
val mi = menu.findItem(R.id.startstopbtn)
|
||||
mi.setTitle(if (AprsService.running) R.string.stoplog else R.string.startlog)
|
||||
mi.setIcon(if (AprsService.running) android.R.drawable.ic_menu_close_clear_cancel else android.R.drawable.ic_menu_compass)
|
||||
// disable the "own" menu
|
||||
Array(R.id.hub, R.id.map, R.id.log).map((id) => {
|
||||
menu.findItem(id).setVisible(id != menu_id)
|
||||
})
|
||||
menu.findItem(R.id.overlays).setVisible(R.id.map == menu_id)
|
||||
true
|
||||
}
|
||||
|
||||
def optionsItemAction(mi : MenuItem) : Boolean = {
|
||||
mi.getItemId match {
|
||||
|
@ -85,9 +96,20 @@ class UIHelper(ctx : Activity, prefs : PrefsWrapper) {
|
|||
case R.id.about =>
|
||||
aboutDialog()
|
||||
true
|
||||
// switch between activities
|
||||
case R.id.hub =>
|
||||
ctx.startActivity(new Intent(ctx, classOf[StationActivity]));
|
||||
ctx.finish()
|
||||
true
|
||||
case R.id.map =>
|
||||
ctx.startActivity(new Intent(ctx, classOf[MapAct]));
|
||||
ctx.finish()
|
||||
true
|
||||
case R.id.log =>
|
||||
ctx.startActivity(new Intent(ctx, classOf[APRSdroid]));
|
||||
ctx.finish()
|
||||
true
|
||||
// toggle service
|
||||
case R.id.startstopbtn =>
|
||||
val is_running = AprsService.running
|
||||
if (!is_running) {
|
||||
|
@ -96,6 +118,7 @@ class UIHelper(ctx : Activity, prefs : PrefsWrapper) {
|
|||
ctx.stopService(AprsService.intent(ctx, AprsService.SERVICE))
|
||||
}
|
||||
true
|
||||
// quit the app
|
||||
case R.id.quit =>
|
||||
// XXX deprecated!
|
||||
ctx.stopService(AprsService.intent(ctx, AprsService.SERVICE))
|
||||
|
|
Ładowanie…
Reference in New Issue