package dk.dr.radio.akt_v3;
import android.annotation.SuppressLint;
import android.app.ActionBar;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.widget.ScrollView;
import android.widget.TextView;
import com.androidquery.AQuery;
import dk.dr.radio.diverse.App;
import dk.dr.radio.diverse.Log;
public class BasisAktivitet extends FragmentActivity {
protected final AQuery aq = new AQuery(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
getActionBarSetDisplayHomeAsUpEnabledKompat(this, true);
}
@Override
protected void onResume() {
super.onResume();
if (App.udvikling) Log.d(this + " onResume()");
App.instans.onResume(this);
}
@Override
protected void onPause() {
super.onPause();
if (App.udvikling) Log.d(this + " onPause()");
App.instans.onPause();
}
@SuppressWarnings("UnusedDeclaration")
public static void invalidateOptionsMenuKompat(final FragmentActivity akt) {
if (akt != null && android.os.Build.VERSION.SDK_INT >= 11) { // separat klasse, for at undgå crash på tidl. versioner
new Runnable() {
@SuppressLint("NewApi")
public void run() {
akt.invalidateOptionsMenu();
}
}.run();
}
}
/**
* Tillader brugeren at navigere 'op' v.hj.a. actionbaren
*/
public static void getActionBarSetDisplayHomeAsUpEnabledKompat(final FragmentActivity akt, final boolean b) {
if (akt != null && android.os.Build.VERSION.SDK_INT >= 11) { // separat klasse, for at undgå crash på tidl. versioner
new Runnable() {
@SuppressLint("NewApi")
public void run() {
ActionBar ab = akt.getActionBar();
if (ab == null) return;
ab.setDisplayHomeAsUpEnabled(b);
}
}.run();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (App.udvikling) {
menu.add(0, 642, 0, "Udvikler");
menu.add(0, 643, 0, "Log");
menu.add(0, 644, 0, "Hent nyeste udvikler-version");
menu.add(0, 646, 0, "Send fejlrapport");
}
return super.onCreateOptionsMenu(menu);
}
protected Bundle putString(Bundle args, String key, String value) {
args = new Bundle(args);
args.putString(key, value);
return args;
}
@SuppressWarnings("deprecation")
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
//NavUtils.navigateUpTo(this, new Intent(this, HjemAkt.class));
finish();
return true;
case 642:
App.udvikling = !App.udvikling;
App.kortToast("Log.udvikling = " + App.udvikling);
return true;
case 644:
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://javabog.dk/privat/DRRadio-debug.apk")));
return true;
case 645:
case 643:
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
TextView tv = new TextView(this);
tv.setText(Log.getLog());
android.util.Log.i("", Log.getLog());
tv.setTextSize(10f);
tv.setBackgroundColor(0xFF000000);
tv.setTextColor(0xFFFFFFFF);
final ScrollView sv = new ScrollView(this);
sv.addView(tv);
dialog.setView(sv);
dialog.show();
sv.post(new Runnable() {
public void run() {
sv.fullScroll(View.FOCUS_DOWN);
}
});
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.setText(Log.getLog());
App.kortToast("Log kopieret til udklipsholder");
return true;
case 646:
Log.rapporterFejl(new Exception("Fejlrapport for enhed sendes"));
return true;
}
return super.onOptionsItemSelected(item);
}
}