System directories
Method | Result |
---|---|
Environment.getDataDirectory() | /data |
Environment.getDownloadCacheDirectory() | /cache |
Environment.getRootDirectory() | /system |
External storage directories
System directories
Method | Result |
---|---|
Environment.getDataDirectory() | /data |
Environment.getDownloadCacheDirectory() | /cache |
Environment.getRootDirectory() | /system |
External storage directories
<?xml version="1.0" encoding="utf-8"?> | |
<RelativeLayout | |
xmlns:android="http://schemas.android.com/apk/res/android" | |
xmlns:tools="http://schemas.android.com/tools" | |
android:id="@+id/activity_main" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
android:paddingBottom="@dimen/activity_vertical_margin" | |
android:paddingLeft="@dimen/activity_horizontal_margin" | |
android:paddingRight="@dimen/activity_horizontal_margin" |
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
xmlns:tools="http://schemas.android.com/tools" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
android:paddingBottom="@dimen/activity_vertical_margin" | |
android:paddingLeft="@dimen/activity_horizontal_margin" | |
android:paddingRight="@dimen/activity_horizontal_margin" | |
android:paddingTop="@dimen/activity_vertical_margin" | |
tools:context="kr.mindwing.helloworld.MainActivity"> |
public class AsyncOperatorRepository<P, R> extends BaseObservable | |
implements Repository<Result<R>>, Callback<R>, Updatable { | |
private final AsyncOperator<P, R> asyncOperator; | |
private final Repository<P> paramRepository; | |
private Result<R> result; | |
private Cancellable cancellable; | |
public AsyncOperatorRepository(AsyncOperator<P, R> asyncOperator, |
public class AsyncOperatorRepository<P, R> extends BaseObservable | |
implements Repository<Result<R>>, Callback<R> { | |
private final AsyncOperator<P, R> asyncOperator; | |
private final Supplier<P> paramSupplier; | |
private Result<R> result; | |
private Cancellable cancellable; | |
public AsyncOperatorRepository(AsyncOperator<P, R> asyncOperator, |
interface AsyncOperator<P, R> { | |
Cancellable request(P param, Callback<R> callback); | |
} | |
interface Callback<R> { | |
void onResponse(R response); // Can be called from any thread | |
} | |
interface Cancellable { | |
void cancel(); |
Result<ResponseBlob> noResponse = Result.absent(); | |
Function<Throwable, Result<ResponseBlob>> withNoResponse = | |
Functions.staticFunction(noResponse); | |
Repository<Result<ResponseBlob>> responseRepository = | |
Repositories.repositoryWithInitialValue(noResponse) | |
.observe(requestVariable) | |
.onUpdatesPerLoop() | |
// .getFrom(requestVariable) if it does not supply Result, OR: | |
.attemptGetFrom(requestVariable).orEnd(withNoResponse) | |
.goTo(networkingExecutor) |
public class NetworkCallingFunction | |
implements Function<RequestBlob, Result<ResponseBlob>> { | |
@Override | |
public Result<ResponseBlob> apply(RequestBlob request) { | |
try { | |
ResponseBlob blob = networkStack.execute(request); | |
return Result.success(blob); | |
} catch (Throwable e) { | |
return Result.failure(e); | |
} |
// MutableRepository<RequestBlob> requestVariable = | |
// mutableRepository(firstRequest); | |
// OR: | |
MutableRepository<Result<RequestBlob>> requestVariable = | |
mutableRepository(Result.<RequestBlob>absent()); |
public class NetworkCallingSupplier implements Supplier<Result<ResponseBlob>> { | |
private final RequestBlob request = …; | |
@Override | |
public Result<ResponseBlob> get() { | |
try { | |
ResponseBlob blob = networkStack.execute(request); // blocking call | |
return Result.success(blob); | |
} catch (Throwable e) { | |
return Result.failure(e); |