package de.andlabs.teleporter;
import java.net.URLDecoder;
import java.util.Map.Entry;
import de.andlabs.teleporter.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.SearchManager;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.ContentObserver;
import android.database.Cursor;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.os.Vibrator;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.Toast;
public class Main extends Activity {
private static final String TAG = "Teleporter";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if (getSharedPreferences("autocompletion", MODE_PRIVATE).getAll().isEmpty())
startActivity(new Intent(this, DownloadsActivity.class));
}
@Override
protected void onNewIntent(Intent intent) {
Log.d(TAG, "newIntent: "+intent.toString());
String destination = null;
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
destination = "\n\n\n"+intent.getStringExtra(SearchManager.QUERY);
} else if (Intent.ACTION_VIEW.equals(intent.getAction())) {
String query = URLDecoder.decode(getIntent().getDataString().substring(10));
String[] q = query.split(",");
if (Character.isDigit(query.charAt(0))) {
destination = q[0].substring(q[0].indexOf(" ")+1) +" "+ q[0].substring(0, q[0].indexOf(" "))+", "+q[1].split(" ")[1];
} else {
destination = q[0]+", "+ q[1].split(" ")[2];
}
}
if (destination != null) {
MediaPlayer.create(this, R.raw.sound_long).start();
TextView view = (TextView)findViewById(R.id.text);
float factor = (((ViewGroup)view.getParent()).getWidth()-42) / view.getPaint().measureText(destination);
view.setTextSize(view.getTextSize()*factor);
view.setText(destination);
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
((Vibrator)getSystemService(VIBRATOR_SERVICE)).vibrate(300);
new AlertDialog.Builder(Main.this)
.setTitle("Error")
.setMessage("Teleportation failed. \n battery status too low!")
.show();
}
});
}
super.onNewIntent(intent);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.search:
onSearchRequested();
break;
case R.id.settings:
startActivity(new Intent(this, SettingsActivity.class));
break;
case R.id.feedback:
LogCollector.feedback(this, "flo@andlabs.de", "bla bla");
break;
}
return super.onOptionsItemSelected(item);
}
}