Skip to content
Snippets Groups Projects
Commit 58d5b744 authored by John Carlson's avatar John Carlson
Browse files

Make AttachActivity a bit prettier and background the RequestBody generation

parent 3fa4fd18
No related branches found
No related tags found
No related merge requests found
Pipeline #
Loading
Loading
@@ -95,8 +95,8 @@ dependencies {
compile 'io.reactivex:rxjava:1.1.9'
compile 'com.artemzin.rxjava:proguard-rules:1.1.9.0'
compile 'io.reactivex:rxandroid:1.2.1'
compile 'com.jakewharton:butterknife:8.2.1'
apt 'com.jakewharton:butterknife-compiler:8.2.1'
compile 'com.jakewharton:butterknife:8.3.0'
apt 'com.jakewharton:butterknife-compiler:8.3.0'
compile 'com.jakewharton.timber:timber:4.3.0'
apt 'com.bluelinelabs:logansquare-compiler:1.3.7'
compile 'com.bluelinelabs:logansquare:1.3.7'
Loading
Loading
@@ -115,7 +115,7 @@ dependencies {
compile 'com.github.Commit451:EasyCallback:1.1.0'
compile 'com.github.Commit451:ForegroundViews:2.1.0'
compile 'me.zhanghai.android.materialprogressbar:library:1.1.7'
compile 'com.github.Jawnnypoo:PhysicsLayout:2.0.0'
compile 'com.github.Jawnnypoo:PhysicsLayout:2.1.0'
compile 'com.alexgwyn.recyclerviewsquire:recyclerviewsquire:0.0.5'
compile 'com.github.ivbaranov:materiallettericon:0.2.2'
compile 'com.github.johnkil.android-robototextview:robototextview:2.5.0'
Loading
Loading
Loading
Loading
@@ -6,23 +6,29 @@ import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.View;
import android.view.ViewGroup;
 
import com.commit451.easycallback.EasyCallback;
import com.commit451.gitlab.App;
import com.commit451.gitlab.R;
import com.commit451.gitlab.model.api.FileUploadResponse;
import com.commit451.gitlab.model.api.Project;
import com.commit451.gitlab.util.FileUtil;
import com.commit451.gitlab.observable.FileObservableFactory;
 
import org.parceler.Parcels;
 
import java.io.File;
 
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import okhttp3.MultipartBody;
import pl.aprilapps.easyphotopicker.DefaultCallback;
import pl.aprilapps.easyphotopicker.EasyImage;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action1;
import rx.schedulers.Schedulers;
import timber.log.Timber;
 
/**
Loading
Loading
@@ -40,7 +46,33 @@ public class AttachActivity extends BaseActivity {
return intent;
}
 
private Project mProject;
@BindView(R.id.root_buttons)
ViewGroup mRootButtons;
@BindView(R.id.progress)
View mProgress;
Project mProject;
private final EasyCallback<FileUploadResponse> mUploadCallback = new EasyCallback<FileUploadResponse>() {
@Override
public void success(@NonNull FileUploadResponse response) {
Intent data = new Intent();
data.putExtra(KEY_FILE_UPLOAD_RESPONSE, Parcels.wrap(response));
setResult(RESULT_OK, data);
finish();
}
@Override
public void failure(Throwable t) {
Timber.e(t);
finish();
}
};
@OnClick(R.id.root)
void onRootClicked() {
onBackPressed();
}
 
@OnClick(R.id.button_choose_photo)
void onChoosePhotoClicked() {
Loading
Loading
@@ -94,22 +126,16 @@ public class AttachActivity extends BaseActivity {
}
 
private void onPhotoReturned(File photo) {
MultipartBody.Part part = FileUtil.toPart(photo);
App.instance().getGitLab().uploadFile(mProject.getId(), part).enqueue(new EasyCallback<FileUploadResponse>() {
@Override
public void success(@NonNull FileUploadResponse response) {
Intent data = new Intent();
data.putExtra(KEY_FILE_UPLOAD_RESPONSE, Parcels.wrap(response));
setResult(RESULT_OK, data);
finish();
}
@Override
public void failure(Throwable t) {
Timber.e(t);
finish();
}
});
mProgress.setVisibility(View.VISIBLE);
mRootButtons.setVisibility(View.INVISIBLE);
FileObservableFactory.toPart(photo)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<MultipartBody.Part>() {
@Override
public void call(MultipartBody.Part part) {
App.instance().getGitLab().uploadFile(mProject.getId(), part).enqueue(mUploadCallback);
}
});
}
}
Loading
Loading
@@ -11,7 +11,7 @@ import com.commit451.gitlab.event.ReloadDataEvent;
import org.greenrobot.eventbus.Subscribe;
 
 
public class BaseFragment extends Fragment{
public class BaseFragment extends Fragment {
 
private EventReceiver mBaseEventReceiever;
 
Loading
Loading
package com.commit451.gitlab.fragment;
 
import android.app.ActivityOptions;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.NonNull;
Loading
Loading
@@ -15,11 +17,14 @@ import android.view.ViewGroup;
import com.commit451.easycallback.EasyCallback;
import com.commit451.gitlab.App;
import com.commit451.gitlab.R;
import com.commit451.gitlab.activity.AttachActivity;
import com.commit451.gitlab.adapter.MergeRequestDetailAdapter;
import com.commit451.gitlab.event.MergeRequestChangedEvent;
import com.commit451.gitlab.model.api.FileUploadResponse;
import com.commit451.gitlab.model.api.MergeRequest;
import com.commit451.gitlab.model.api.Note;
import com.commit451.gitlab.model.api.Project;
import com.commit451.gitlab.navigation.TransitionFactory;
import com.commit451.gitlab.util.PaginationUtil;
import com.commit451.gitlab.view.SendMessageView;
import com.commit451.teleprinter.Teleprinter;
Loading
Loading
@@ -32,6 +37,8 @@ import java.util.List;
import butterknife.BindView;
import timber.log.Timber;
 
import static android.app.Activity.RESULT_OK;
/**
* Shows the discussion of a merge request
*/
Loading
Loading
@@ -40,6 +47,8 @@ public class MergeRequestDiscussionFragment extends ButterKnifeFragment {
private static final String KEY_PROJECT = "project";
private static final String KEY_MERGE_REQUEST = "merge_request";
 
private static final int REQUEST_ATTACH = 1;
public static MergeRequestDiscussionFragment newInstance(Project project, MergeRequest mergeRequest) {
MergeRequestDiscussionFragment fragment = new MergeRequestDiscussionFragment();
Bundle args = new Bundle();
Loading
Loading
@@ -191,7 +200,9 @@ public class MergeRequestDiscussionFragment extends ButterKnifeFragment {
 
@Override
public void onAttachmentClicked() {
//TODO
Intent intent = AttachActivity.newIntent(getActivity(), mProject);
ActivityOptions activityOptions = TransitionFactory.createFadeInOptions(getActivity());
startActivityForResult(intent, REQUEST_ATTACH, activityOptions.toBundle());
}
});
 
Loading
Loading
@@ -207,6 +218,23 @@ public class MergeRequestDiscussionFragment extends ButterKnifeFragment {
App.bus().register(mEventReceiver);
}
 
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQUEST_ATTACH:
if (resultCode == RESULT_OK) {
FileUploadResponse response = Parcels.unwrap(data.getParcelableExtra(AttachActivity.KEY_FILE_UPLOAD_RESPONSE));
mProgress.setVisibility(View.GONE);
mSendMessageView.appendText(response.getMarkdown());
} else {
Snackbar.make(mRoot, R.string.failed_to_upload_file, Snackbar.LENGTH_LONG)
.show();
}
break;
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
Loading
Loading
Loading
Loading
@@ -234,6 +234,7 @@ public class Navigator {
public static void navigateToAttach(Activity activity, Project project, int requestCode) {
Intent intent = AttachActivity.newIntent(activity, project);
activity.startActivityForResult(intent, requestCode);
activity.overridePendingTransition(R.anim.fade_in, R.anim.do_nothing);
}
 
private static void startMorphActivity(Activity activity, View fab, Intent intent) {
Loading
Loading
package com.commit451.gitlab.navigation;
import android.app.ActivityOptions;
import android.content.Context;
import com.commit451.gitlab.R;
/**
* Creates transitions
*/
public class TransitionFactory {
public static ActivityOptions createFadeInOptions(Context context) {
return ActivityOptions.makeCustomAnimation(context, R.anim.fade_in, R.anim.do_nothing);
}
}
package com.commit451.gitlab.observable;
import com.commit451.gitlab.util.FileUtil;
import java.io.File;
import okhttp3.MultipartBody;
import rx.Observable;
import rx.functions.Func0;
/**
* Rx'ifies file util calls
*/
public class FileObservableFactory {
public static Observable<MultipartBody.Part> toPart(final File file) {
return Observable.defer(new Func0<Observable<MultipartBody.Part>>() {
@Override
public Observable<MultipartBody.Part> call() {
return Observable.just(FileUtil.toPart(file));
}
});
}
}
Loading
Loading
@@ -8,18 +8,19 @@
 
<android.support.v7.widget.CardView
style="@style/Card"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:padding="16dp"
android:clickable="true"
android:layout_gravity="bottom"
android:background="@color/window_background">
android:background="?attr/colorPrimary">
 
<LinearLayout
android:layout_width="match_parent"
android:id="@+id/root_buttons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
android:layout_gravity="center"
android:orientation="horizontal">
 
<ImageView
android:id="@+id/button_take_photo"
Loading
Loading
@@ -27,6 +28,7 @@
android:layout_height="wrap_content"
android:contentDescription="@null"
app:srcCompat="@drawable/ic_camera_24dp"
android:padding="16dp"
android:background="?attr/selectableItemBackgroundBorderless"/>
 
<ImageView
Loading
Loading
@@ -35,6 +37,7 @@
android:layout_height="wrap_content"
android:contentDescription="@null"
app:srcCompat="@drawable/ic_gallery_24dp"
android:padding="16dp"
android:background="?attr/selectableItemBackgroundBorderless"/>
 
<ImageView
Loading
Loading
@@ -43,10 +46,13 @@
android:layout_height="wrap_content"
android:contentDescription="@null"
app:srcCompat="@drawable/ic_file_24dp"
android:padding="16dp"
android:background="?attr/selectableItemBackgroundBorderless"/>
 
</LinearLayout>
 
<include layout="@layout/progress"/>
</android.support.v7.widget.CardView>
 
</FrameLayout>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment