package com.example.hugo;
import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.util.Log;
import android.widget.TextView;
import hugo.weaving.DebugLog;
public class HugoActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Check logcat!");
setContentView(tv);
printArgs("The", "Quick", "Brown", "Fox");
Log.i("Fibonacci", "fibonacci's 4th number is " + fibonacci(4));
Greeter greeter = new Greeter("Jake");
Log.d("Greeting", greeter.sayHello());
Charmer charmer = new Charmer("Jake");
Log.d("Charming", charmer.askHowAreYou());
startSleepyThread();
}
@DebugLog
private void printArgs(String... args) {
for (String arg : args) {
Log.i("Args", arg);
}
}
@DebugLog
private int fibonacci(int number) {
if (number <= 0) {
throw new IllegalArgumentException("Number must be greater than zero.");
}
if (number == 1 || number == 2) {
return 1;
}
// NOTE: Don't ever do this. Use the iterative approach!
return fibonacci(number - 1) + fibonacci(number - 2);
}
private void startSleepyThread() {
new Thread(new Runnable() {
private static final long SOME_POINTLESS_AMOUNT_OF_TIME = 50;
@Override public void run() {
sleepyMethod(SOME_POINTLESS_AMOUNT_OF_TIME);
}
@DebugLog
private void sleepyMethod(long milliseconds) {
SystemClock.sleep(milliseconds);
}
}, "I'm a lazy thr.. bah! whatever!").start();
}
@DebugLog
static class Greeter {
private final String name;
Greeter(String name) {
this.name = name;
}
private String sayHello() {
return "Hello, " + name;
}
}
@DebugLog
static class Charmer {
private final String name;
private Charmer(String name) {
this.name = name;
}
public String askHowAreYou() {
return "How are you " + name + "?";
}
}
}