diff options
Diffstat (limited to 'src/net/cbaines/suma/BuildingActivity.java')
-rw-r--r-- | src/net/cbaines/suma/BuildingActivity.java | 120 |
1 files changed, 66 insertions, 54 deletions
diff --git a/src/net/cbaines/suma/BuildingActivity.java b/src/net/cbaines/suma/BuildingActivity.java index 930c2d1..45babbc 100644 --- a/src/net/cbaines/suma/BuildingActivity.java +++ b/src/net/cbaines/suma/BuildingActivity.java @@ -23,38 +23,30 @@ import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; -import java.util.Iterator; +import java.sql.SQLException; import android.content.Context; +import android.content.SharedPreferences; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.util.Log; +import android.view.Display; import android.view.View; +import android.view.WindowManager; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.ImageButton; +import android.widget.ImageView.ScaleType; import android.widget.TextView; -import com.hp.hpl.jena.query.Query; -import com.hp.hpl.jena.query.QueryExecution; -import com.hp.hpl.jena.query.QueryExecutionFactory; -import com.hp.hpl.jena.query.QueryFactory; -import com.hp.hpl.jena.query.QuerySolution; -import com.hp.hpl.jena.query.ResultSet; -import com.hp.hpl.jena.rdf.model.Literal; -import com.hp.hpl.jena.rdf.model.Model; -import com.hp.hpl.jena.rdf.model.RDFNode; -import com.hp.hpl.jena.rdf.model.Resource; -import com.hp.hpl.jena.tdb.TDBFactory; import com.j256.ormlite.android.apptools.OrmLiteBaseActivity; +import com.j256.ormlite.dao.Dao; -public class BuildingActivity extends OrmLiteBaseActivity<DatabaseHelper> implements OnCheckedChangeListener { +public class BuildingActivity extends OrmLiteBaseActivity<DatabaseHelper> implements OnCheckedChangeListener, Preferences { final static String TAG = "BusTimeActivity"; - private boolean dataChanged; - private Context instance; private ImageButton imageButton; @@ -62,6 +54,8 @@ public class BuildingActivity extends OrmLiteBaseActivity<DatabaseHelper> implem private TextView buildingName; private TextView buildingID; + private Building building; + private CheckBox favouritesCheckBox; public void onCreate(Bundle savedInstanceState) { @@ -71,8 +65,10 @@ public class BuildingActivity extends OrmLiteBaseActivity<DatabaseHelper> implem String ID = getIntent().getExtras().getString("buildingID"); + final SharedPreferences favouritesPrefs = instance.getSharedPreferences(FAVOURITES_PREFERENCES, 0); + favouritesCheckBox = (CheckBox) findViewById(R.id.buildingActivityFavouriteCheckBox); - // favouritesCheckBox.setChecked(busStop.favourite); + favouritesCheckBox.setChecked(favouritesPrefs.getBoolean(ID, false)); favouritesCheckBox.setOnCheckedChangeListener(this); buildingName = (TextView) findViewById(R.id.buildingActivityName); @@ -80,17 +76,61 @@ public class BuildingActivity extends OrmLiteBaseActivity<DatabaseHelper> implem Log.i(TAG, "Building id " + ID); - buildingID.setText(ID); + try { + Dao<Building, String> buildingDao = getHelper().getBuildingDao(); + + building = buildingDao.queryForId(ID); + + buildingName.setText(building.name); + } catch (SQLException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + buildingID.setText(ID); try { - URL url = new URL("http://data.southampton.ac.uk/images/buildings/600/" + ID + ".jpg"); - InputStream is = (InputStream) url.getContent(); + /* First, get the Display from the WindowManager */ + Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay(); + + /* Now we can retrieve all display-related infos */ + int orientation = display.getOrientation(); + Log.i(TAG, "orientation " + orientation); + Log.i(TAG, "width " + display.getWidth() + " height " + display.getHeight()); + int width; + // if (orientation == 0) { + width = display.getWidth(); + // } else { + // width = display.getHeight(); + // } + + URL imageURL; + Log.i(TAG, "Screen width " + width); + if (width >= 1000) { + imageURL = new URL("http://data.southampton.ac.uk/images/buildings/1000/" + ID + ".jpg"); + } else if (width >= 800) { + imageURL = new URL("http://data.southampton.ac.uk/images/buildings/1000/" + ID + ".jpg"); + } else if (width >= 600) { + imageURL = new URL("http://data.southampton.ac.uk/images/buildings/600/" + ID + ".jpg"); + } else if (width >= 400) { + imageURL = new URL("http://data.southampton.ac.uk/images/buildings/600/" + ID + ".jpg"); + } else if (width >= 300) { + imageURL = new URL("http://data.southampton.ac.uk/images/buildings/300/" + ID + ".jpg"); + } else if (width >= 200) { + imageURL = new URL("http://data.southampton.ac.uk/images/buildings/200/" + ID + ".jpg"); + } else { + imageURL = new URL("http://data.southampton.ac.uk/images/buildings/100/" + ID + ".jpg"); + } + Log.i(TAG, "URL " + imageURL); + + InputStream is = (InputStream) imageURL.getContent(); Drawable image = Drawable.createFromStream(is, "src"); imageButton = new ImageButton(this); imageButton = (ImageButton) findViewById(R.id.buildingActivityImage); imageButton.setImageDrawable(image); + imageButton.setScaleType(ScaleType.CENTER_INSIDE); imageButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { @@ -105,51 +145,18 @@ public class BuildingActivity extends OrmLiteBaseActivity<DatabaseHelper> implem e.printStackTrace(); } - String directory = "/data/data/net.cbaines.suma/databases"; - Model model = TDBFactory.createModel(directory); - - String queryString = ID; - Query query = QueryFactory.create(queryString); - QueryExecution qexec = QueryExecutionFactory.create(query, model); - try { - ResultSet results = qexec.execSelect(); - for (; results.hasNext();) { - QuerySolution soln = results.nextSolution(); - - Log.i(TAG, "solution " + soln.toString()); - - for (Iterator<String> iter = soln.varNames(); iter.hasNext();) { - Log.i(TAG, "solnVarName " + iter.next()); - } - - // RDFNode x = soln.get("varName"); // Get a result variable by - // name. - // Resource r = soln.getResource("VarR"); // Get a result - // variable - // - must be a resource - // Literal l = soln.getLiteral("VarL"); // Get a result variable - // - - // must be a literal - } - } finally { - qexec.close(); - } - } public void onResume() { super.onResume(); - } public void onPause() { - super.onPause(); } public void finish() { setResult(RESULT_OK, getIntent()); - super.finish(); } @@ -158,9 +165,14 @@ public class BuildingActivity extends OrmLiteBaseActivity<DatabaseHelper> implem return null; } - public void onCheckedChanged(CompoundButton arg0, boolean arg1) { - // TODO Auto-generated method stub + public void onCheckedChanged(CompoundButton button, boolean checked) { + SharedPreferences favouritesPreferences = getSharedPreferences(FAVOURITES_PREFERENCES, 0); + if (checked) { + favouritesPreferences.edit().putBoolean(building.id, true).commit(); + } else { + favouritesPreferences.edit().remove(building.id).commit(); + } } } |