package jp.mydns.sys1yagi.android.transfuse.fragments;
import android.os.NetworkOnMainThreadException;
import android.widget.TextView;
import org.androidtransfuse.annotations.Asynchronous;
import org.androidtransfuse.annotations.Fragment;
import org.androidtransfuse.annotations.Layout;
import org.androidtransfuse.annotations.RegisterListener;
import org.androidtransfuse.annotations.UIThread;
import org.androidtransfuse.annotations.View;
import org.apache.commons.io.IOUtils;
import java.net.URL;
import javax.inject.Inject;
import jp.mydns.sys1yagi.android.transfuse.R;
@Fragment
@Layout(R.layout.fragment_method_interceptors)
public class MethodInterceptors {
private static final String LOAD_URL = "https://dl.dropboxusercontent.com/s/4y6mn5ahg9qsf7j/sample.txt";
@Inject
@View(R.id.text)
TextView mTextView;
@RegisterListener(R.id.asynchronous)
android.view.View.OnClickListener mAsynchronous = new android.view.View.OnClickListener() {
@Override
public void onClick(android.view.View v) {
loadAsynchronous();
}
};
@RegisterListener(R.id.ui_thread)
android.view.View.OnClickListener mUiThead = new android.view.View.OnClickListener() {
@Override
public void onClick(android.view.View v) {
loadUiThread();
}
};
@Asynchronous
public void loadAsynchronous() {
try {
URL url = new URL(LOAD_URL);
String result = IOUtils.toString(url);
setResult(result);
} catch (Exception e) {
e.printStackTrace();
setResult(e.getMessage());
}
}
@UIThread
public void loadUiThread() {
try {
URL url = new URL(LOAD_URL);
String result = IOUtils.toString(url);
setResult(result);
} catch (NetworkOnMainThreadException e) {
e.printStackTrace();
setResult("NetworkOnMainThreadException");
} catch (Exception e) {
e.printStackTrace();
setResult(e.getMessage());
}
}
@UIThread
public void setResult(String text) {
mTextView.setText(text);
}
}