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

Create intermediate activity to show when loading project/whatever it is you...

Create intermediate activity to show when loading project/whatever it is you wish to view. Parse commit urls and load them
parent 55c8e48f
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -50,6 +50,8 @@
<activity android:name=".activity.AddMilestoneActivity"/>
<activity android:name=".activity.SettingsActivity"/>
<activity android:name=".activity.BuildActivity"/>
<activity android:name=".activity.LoadSomeInfoActivity"
android:theme="@style/Activity.Translucent"/>
 
<activity
android:name=".activity.RoutingActivity"
Loading
Loading
package com.commit451.gitlab.activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;
import com.commit451.gitlab.R;
import com.commit451.gitlab.api.EasyCallback;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.api.Project;
import com.commit451.gitlab.model.api.RepositoryCommit;
import com.commit451.gitlab.util.NavigationManager;
import butterknife.Bind;
import butterknife.ButterKnife;
import butterknife.OnClick;
import timber.log.Timber;
/**
* Intermediate activity when deep linking to another activity and things need to load
*/
public class LoadSomeInfoActivity extends AppCompatActivity {
private static final String EXTRA_LOAD_TYPE = "load_type";
private static final String EXTRA_PROJECT_NAMESPACE = "project_namespace";
private static final String EXTRA_PROJECT_NAME = "project_name";
private static final String EXTRA_COMMIT_SHA = "extra_commit_sha";
private static final int LOAD_TYPE_DIFF = 0;
public static Intent newInstance(Context context, String namespace, String projectName, String commitSha) {
Intent intent = new Intent(context, LoadSomeInfoActivity.class);
intent.putExtra(EXTRA_PROJECT_NAMESPACE, namespace);
intent.putExtra(EXTRA_PROJECT_NAME, projectName);
intent.putExtra(EXTRA_COMMIT_SHA, commitSha);
intent.putExtra(EXTRA_LOAD_TYPE, LOAD_TYPE_DIFF);
return intent;
}
@Bind(R.id.progress)
View mProgress;
private int mLoadType;
private Project mProject;
@OnClick(R.id.root)
void onRootClicked() {
finish();
}
private final EasyCallback<Project> mProjectCallback = new EasyCallback<Project>() {
@Override
public void onResponse(@NonNull Project response) {
mProject = response;
String sha = getIntent().getStringExtra(EXTRA_COMMIT_SHA);
GitLabClient.instance().getCommit(response.getId(), sha).enqueue(mCommitCallback);
}
@Override
public void onAllFailure(Throwable t) {
Timber.e(t, null);
onError();
}
};
private final EasyCallback<RepositoryCommit> mCommitCallback = new EasyCallback<RepositoryCommit>() {
@Override
public void onResponse(@NonNull RepositoryCommit response) {
NavigationManager.navigateToDiffActivity(LoadSomeInfoActivity.this, mProject, response);
finish();
}
@Override
public void onAllFailure(Throwable t) {
Timber.e(t, null);
onError();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loading);
ButterKnife.bind(this);
mProgress.setVisibility(View.VISIBLE);
mLoadType = getIntent().getIntExtra(EXTRA_LOAD_TYPE, -1);
Timber.d("Loading some info type: %d", mLoadType);
switch (mLoadType) {
case LOAD_TYPE_DIFF:
String namespace = getIntent().getStringExtra(EXTRA_PROJECT_NAMESPACE);
String project = getIntent().getStringExtra(EXTRA_PROJECT_NAME);
GitLabClient.instance().getProject(namespace, project).enqueue(mProjectCallback);
break;
}
}
private void onError() {
Toast.makeText(LoadSomeInfoActivity.this, R.string.failed_to_load, Toast.LENGTH_SHORT)
.show();
finish();
}
@Override
public void finish() {
super.finish();
overridePendingTransition(R.anim.do_nothing, R.anim.fade_out);
}
}
Loading
Loading
@@ -52,7 +52,6 @@ public class RoutingActivity extends Activity {
handled = true;
} else if (link.getPathSegments().size() == 4) {
//this is good, it means it is a link to an actual issue
handled = true;
String projectNamespace = link.getPathSegments().get(0);
String projectName = link.getPathSegments().get(1);
String lastSegment = link.getPathSegments().get(3);
Loading
Loading
@@ -62,7 +61,24 @@ public class RoutingActivity extends Activity {
String issueIid = stuff[0];
Timber.d("Navigating to project %s with issue number %s", projectName, issueIid);
NavigationManager.navigateToIssue(this, projectNamespace, projectName, issueIid);
handled = true;
}
} else if (link.getPath().contains("commit")) {
if (link.getPathSegments().size() == 4) {
String projectNamespace = link.getPathSegments().get(0);
String projectName = link.getPathSegments().get(1);
String commitSha = link.getPathSegments().get(3);
startActivity(LoadSomeInfoActivity.newInstance(this, projectNamespace, projectName, commitSha));
overridePendingTransition(R.anim.fade_in, R.anim.do_nothing);
handled = true;
}
} else if (link.getPath().contains("commits")) {
launchProject(link);
handled = true;
} else if (link.getPath().contains("compare")) {
//comparing two commit shas
String[] shas = link.getLastPathSegment().split("...");
//TODO do the rest
}
 
if (!handled) {
Loading
Loading
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.CardView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:padding="16dp"
android:clickable="true"
android:layout_gravity="center">
<include layout="@layout/progress"/>
</android.support.v7.widget.CardView>
</FrameLayout>
\ No newline at end of file
Loading
Loading
@@ -36,10 +36,14 @@
</style>
 
<style name="Activity.Translucent">
<!-- using a semi-transparent window background for the drag-back gesture -->
<item name="android:windowBackground">@color/scrim</item>
<item name="windowBackground">@color/background_material_dark</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
</style>
 
<!-- Light theme -->
Loading
Loading
@@ -78,7 +82,7 @@
 
<style name="ActivityLight.Translucent">
<item name="android:windowBackground">@color/scrim</item>
<item name="windowBackground">@color/background_material_light</item>
<item name="windowBackground">@color/scrim</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@null</item>
</style>
Loading
Loading
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