kopia lustrzana https://github.com/ge0rg/aprsdroid
implemented load indicator for all activities
rodzic
705a86966c
commit
ba66837fe0
|
@ -1,6 +1,5 @@
|
|||
package org.aprsdroid.app
|
||||
|
||||
import _root_.android.app.Activity
|
||||
import _root_.android.app.AlertDialog
|
||||
import _root_.android.content._
|
||||
import _root_.android.content.pm.PackageInfo;
|
||||
|
@ -20,7 +19,7 @@ import _root_.android.widget.TextView
|
|||
import _root_.android.widget.Toast
|
||||
import _root_.java.util.Date
|
||||
|
||||
class APRSdroid extends Activity with OnClickListener {
|
||||
class APRSdroid extends LoadingListActivity with OnClickListener {
|
||||
val TAG = "APRSdroid"
|
||||
|
||||
lazy val prefs = new PrefsWrapper(this)
|
||||
|
@ -28,7 +27,7 @@ class APRSdroid extends Activity with OnClickListener {
|
|||
lazy val storage = StorageDatabase.open(this)
|
||||
lazy val postcursor = storage.getPosts("100")
|
||||
|
||||
lazy val postlist = findViewById(R.id.postlist).asInstanceOf[ListView]
|
||||
lazy val postlist = getListView()
|
||||
|
||||
lazy val singleBtn = findViewById(R.id.singlebtn).asInstanceOf[Button]
|
||||
lazy val startstopBtn = findViewById(R.id.startstopbtn).asInstanceOf[Button]
|
||||
|
@ -41,7 +40,6 @@ class APRSdroid extends Activity with OnClickListener {
|
|||
|
||||
override def onCreate(savedInstanceState: Bundle) {
|
||||
super.onCreate(savedInstanceState)
|
||||
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS)
|
||||
setContentView(R.layout.main)
|
||||
|
||||
Log.d(TAG, "starting " + getString(R.string.build_version))
|
||||
|
@ -49,7 +47,7 @@ class APRSdroid extends Activity with OnClickListener {
|
|||
singleBtn.setOnClickListener(this);
|
||||
startstopBtn.setOnClickListener(this);
|
||||
|
||||
setProgressBarIndeterminateVisibility(true)
|
||||
onStartLoading()
|
||||
|
||||
la.setViewBinder(new PostViewBinder())
|
||||
la.setFilterQueryProvider(storage.getPostFilter("100"))
|
||||
|
@ -138,10 +136,15 @@ class APRSdroid extends Activity with OnClickListener {
|
|||
}
|
||||
def replace_cursor(c : Cursor) {
|
||||
la.changeCursor(c)
|
||||
setupButtons(AprsService.running)
|
||||
setProgressBarIndeterminateVisibility(false)
|
||||
onStopLoading()
|
||||
}
|
||||
def cancel_cursor(c : Cursor) {
|
||||
c.close()
|
||||
}
|
||||
|
||||
override def onStopLoading() {
|
||||
super.onStopLoading()
|
||||
setupButtons(AprsService.running)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -6,26 +6,38 @@ import _root_.android.database.Cursor
|
|||
import _root_.android.os.{Bundle, Handler}
|
||||
import _root_.android.util.Log
|
||||
import _root_.android.view.{Menu, MenuItem, View, Window}
|
||||
import _root_.android.view.View.OnClickListener
|
||||
import _root_.android.widget.Button
|
||||
import _root_.android.widget.ListView
|
||||
|
||||
class HubActivity extends ListActivity {
|
||||
class HubActivity extends LoadingListActivity with OnClickListener {
|
||||
lazy val prefs = new PrefsWrapper(this)
|
||||
lazy val uihelper = new UIHelper(this, R.id.hub, prefs)
|
||||
|
||||
lazy val singleBtn = findViewById(R.id.singlebtn).asInstanceOf[Button]
|
||||
lazy val startstopBtn = findViewById(R.id.startstopbtn).asInstanceOf[Button]
|
||||
|
||||
lazy val mycall = prefs.getCallSsid()
|
||||
lazy val pla = new PositionListAdapter(this, prefs, mycall, mycall, PositionListAdapter.NEIGHBORS)
|
||||
|
||||
override def onCreate(savedInstanceState: Bundle) {
|
||||
super.onCreate(savedInstanceState)
|
||||
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS)
|
||||
setContentView(R.layout.hubactivity)
|
||||
setProgressBarIndeterminateVisibility(true)
|
||||
setContentView(R.layout.main)
|
||||
|
||||
singleBtn.setOnClickListener(this);
|
||||
startstopBtn.setOnClickListener(this);
|
||||
|
||||
getListView().setOnCreateContextMenuListener(this);
|
||||
|
||||
onStartLoading()
|
||||
setListAdapter(pla)
|
||||
}
|
||||
|
||||
override def onResume() {
|
||||
super.onResume()
|
||||
setupButtons(AprsService.running)
|
||||
}
|
||||
|
||||
override def onDestroy() {
|
||||
super.onDestroy()
|
||||
pla.onDestroy()
|
||||
|
@ -42,6 +54,32 @@ class HubActivity extends ListActivity {
|
|||
uihelper.optionsItemAction(mi)
|
||||
}
|
||||
|
||||
def setupButtons(running : Boolean) {
|
||||
//singleBtn.setEnabled(!running)
|
||||
if (running) {
|
||||
startstopBtn.setText(R.string.stoplog)
|
||||
} else {
|
||||
startstopBtn.setText(R.string.startlog)
|
||||
}
|
||||
}
|
||||
|
||||
override def onClick(view : View) {
|
||||
view.getId match {
|
||||
case R.id.singlebtn =>
|
||||
uihelper.passcodeWarning(prefs.getCallsign(), prefs.getPasscode())
|
||||
startService(AprsService.intent(this, AprsService.SERVICE_ONCE))
|
||||
setupButtons(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))
|
||||
}
|
||||
setupButtons(!is_running)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override def onListItemClick(l : ListView, v : View, position : Int, id : Long) {
|
||||
//super.onListItemClick(l, v, position, id)
|
||||
|
@ -51,4 +89,10 @@ class HubActivity extends ListActivity {
|
|||
|
||||
startActivity(new Intent(this, classOf[StationActivity]).putExtra("call", call));
|
||||
}
|
||||
|
||||
override def onStopLoading() {
|
||||
super.onStopLoading()
|
||||
setupButtons(AprsService.running)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
package org.aprsdroid.app
|
||||
|
||||
trait LoadingIndicator {
|
||||
|
||||
def onStartLoading()
|
||||
|
||||
def onStopLoading()
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
package org.aprsdroid.app
|
||||
|
||||
import _root_.android.app.ListActivity
|
||||
import _root_.android.os.Bundle
|
||||
import _root_.android.view.Window
|
||||
|
||||
class LoadingListActivity extends ListActivity with LoadingIndicator {
|
||||
|
||||
override def onCreate(savedInstanceState: Bundle) {
|
||||
super.onCreate(savedInstanceState)
|
||||
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS)
|
||||
}
|
||||
|
||||
override def onStartLoading() {
|
||||
setProgressBarIndeterminateVisibility(true)
|
||||
}
|
||||
|
||||
override def onStopLoading() {
|
||||
setProgressBarIndeterminateVisibility(false)
|
||||
}
|
||||
}
|
|
@ -14,7 +14,7 @@ import _root_.java.util.ArrayList
|
|||
// to make scala-style iterating over arraylist possible
|
||||
import scala.collection.JavaConversions._
|
||||
|
||||
class MapAct extends MapActivity {
|
||||
class MapAct extends MapActivity with LoadingIndicator {
|
||||
val TAG = "MapAct"
|
||||
|
||||
lazy val prefs = new PrefsWrapper(this)
|
||||
|
@ -63,7 +63,7 @@ class MapAct extends MapActivity {
|
|||
val newState = prefs.toggleBoolean("show_objects", true)
|
||||
mi.setChecked(newState)
|
||||
showObjects = newState
|
||||
loading.setVisibility(View.VISIBLE)
|
||||
onStartLoading()
|
||||
locReceiver.startTask(null)
|
||||
true
|
||||
case R.id.satellite =>
|
||||
|
@ -93,10 +93,18 @@ class MapAct extends MapActivity {
|
|||
}
|
||||
|
||||
def onPostLoad() {
|
||||
loading.setVisibility(View.GONE)
|
||||
mapview.invalidate()
|
||||
onStopLoading()
|
||||
animateToCall()
|
||||
}
|
||||
|
||||
override def onStartLoading() {
|
||||
loading.setVisibility(View.VISIBLE)
|
||||
}
|
||||
|
||||
override def onStopLoading() {
|
||||
loading.setVisibility(View.GONE)
|
||||
}
|
||||
}
|
||||
|
||||
class Station(val movelog : ArrayBuffer[GeoPoint], val point : GeoPoint,
|
||||
|
@ -271,4 +279,5 @@ class StationOverlay(icons : Drawable, context : MapAct, db : StorageDatabase) e
|
|||
}
|
||||
def cancel_stations(s : ArrayList[Station]) {
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ import _root_.android.view.{Menu, MenuItem, View, Window}
|
|||
import _root_.android.view.View.OnClickListener
|
||||
import _root_.android.widget.{ListView,SimpleCursorAdapter}
|
||||
|
||||
class StationActivity extends ListActivity with OnClickListener {
|
||||
class StationActivity extends LoadingListActivity with OnClickListener {
|
||||
lazy val prefs = new PrefsWrapper(this)
|
||||
lazy val uihelper = new UIHelper(this, -1, prefs)
|
||||
|
||||
|
@ -26,12 +26,11 @@ class StationActivity extends ListActivity with OnClickListener {
|
|||
|
||||
override def onCreate(savedInstanceState: Bundle) {
|
||||
super.onCreate(savedInstanceState)
|
||||
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS)
|
||||
setContentView(R.layout.stationactivity)
|
||||
setProgressBarIndeterminateVisibility(true)
|
||||
|
||||
getListView().setOnCreateContextMenuListener(this);
|
||||
|
||||
onStartLoading()
|
||||
setListAdapter(pla)
|
||||
startManagingCursor(postcursor)
|
||||
val la = new SimpleCursorAdapter(this, R.layout.listitem,
|
||||
|
@ -97,4 +96,5 @@ class StationActivity extends ListActivity with OnClickListener {
|
|||
//status.setText(view.asInstanceOf[Button].getText)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue