implemented load indicator for all activities

precision_debug
Georg Lukas 2011-04-16 23:33:37 +02:00
rodzic 705a86966c
commit ba66837fe0
6 zmienionych plików z 102 dodań i 17 usunięć

Wyświetl plik

@ -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)
}
}

Wyświetl plik

@ -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)
}
}

Wyświetl plik

@ -0,0 +1,8 @@
package org.aprsdroid.app
trait LoadingIndicator {
def onStartLoading()
def onStopLoading()
}

Wyświetl plik

@ -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)
}
}

Wyświetl plik

@ -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]) {
}
}

Wyświetl plik

@ -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)
}
}
}