Skip to content
Snippets Groups Projects
Commit 96e895a5 authored by Jawnnypoo's avatar Jawnnypoo
Browse files

No more progress dialogs! Yay!

parent 0859d5f7
No related branches found
No related tags found
No related merge requests found
package com.commit451.gitlab.dialogs;
import android.content.Context;
import android.support.v7.app.AppCompatDialog;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
import com.commit451.gitlab.R;
import com.commit451.gitlab.adapter.UserAdapter;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.User;
import com.commit451.gitlab.tools.Repository;
import butterknife.Bind;
import butterknife.ButterKnife;
import butterknife.OnClick;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;
import timber.log.Timber;
/**
* Collabs FTW
* Created by Jawn on 8/16/2015.
*/
public class NewUserDialog extends AppCompatDialog {
@Bind(R.id.user_spinner) Spinner userSpinner;
@Bind(R.id.role_spinner) Spinner roleSpinner;
@Bind(R.id.progress) View progress;
public NewUserDialog(Context context) {
super(context);
setContentView(R.layout.dialog_add_user);
ButterKnife.bind(this);
UserAdapter adapter = new UserAdapter(getContext(), Repository.users);
userSpinner.setAdapter(adapter);
ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(getContext(),
R.array.role_names,
android.R.layout.simple_spinner_dropdown_item);
roleSpinner.setAdapter(adapter2);
}
@OnClick(R.id.add_button)
public void onAddClick() {
if(Repository.selectedProject.getGroup() == null) {
return;
}
progress.setVisibility(View.VISIBLE);
progress.setAlpha(0.0f);
progress.animate().alpha(1.0f);
long userId = ((User) userSpinner.getSelectedItem()).getId();
String accessLevel = getContext().getResources().getStringArray(R.array.role_values)[roleSpinner.getSelectedItemPosition()];
GitLabClient.instance().addGroupMember(Repository.selectedProject.getGroup().getId(), userId, accessLevel, "", userCallback);
}
private Callback<User> userCallback = new Callback<User>() {
@Override
public void success(User user, Response resp) {
progress.setVisibility(View.GONE);
if(user.getId() != 0) {
//TODO tell the parent to add the user to the list
}
else {
Toast.makeText(getContext(), getContext().getString(R.string.user_error), Toast.LENGTH_SHORT)
.show();
}
dismiss();
}
@Override
public void failure(RetrofitError e) {
Timber.e(e.toString());
progress.setVisibility(View.GONE);
Toast.makeText(getContext(), getContext().getString(R.string.user_error), Toast.LENGTH_SHORT)
.show();
dismiss();
}
};
@OnClick(R.id.cancel_button)
public void onCancelClick() {
this.dismiss();
}
}
package com.commit451.gitlab.fragments;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.Toast;
import com.commit451.gitlab.IssueActivity;
import com.commit451.gitlab.R;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.Issue;
import com.commit451.gitlab.tools.Repository;
import butterknife.Bind;
import butterknife.ButterKnife;
import butterknife.OnClick;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;
import timber.log.Timber;
public class AddIssueDialogFragment extends DialogFragment {
@Bind(R.id.title_input)
EditText titleInput;
@Bind(R.id.description_input)
EditText descriptionInput;
private ProgressDialog pd;
/**
* Create a new instance of AddDialogFragment
**/
static AddIssueDialogFragment newInstance() {
return new AddIssueDialogFragment();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.dialog_add_issue, container, false);
ButterKnife.bind(this, view);
getDialog().setTitle(getString(R.string.add_issue_dialog_title));
return view;
}
@Override
public void onDestroyView() {
super.onDestroyView();
ButterKnife.unbind(this);
}
@OnClick(R.id.save_button)
public void onSaveClick() {
if(titleInput.getText().toString().trim().length() > 0) {
pd = ProgressDialog.show(AddIssueDialogFragment.this.getActivity(), "", getResources().getString(R.string.progress_dialog), true);
GitLabClient.instance().postIssue(Repository.selectedProject.getId(), titleInput.getText().toString().trim(), descriptionInput.getText().toString().trim(), "", issueCallback);
}
else {
Toast.makeText(getActivity(), getString(R.string.connection_error), Toast.LENGTH_SHORT)
.show();
}
}
@OnClick(R.id.cancel_button)
public void onCancelClick() {
this.dismiss();
}
private Callback<Issue> issueCallback = new Callback<Issue>() {
@Override
public void success(Issue issue, Response resp) {
if(pd != null && pd.isShowing()) {
pd.cancel();
}
//TODO update the parent list when a new issue is created
startActivity(IssueActivity.newInstance(getActivity(), issue));
AddIssueDialogFragment.this.dismiss();
}
@Override
public void failure(RetrofitError e) {
Timber.e(e.toString());
if(pd != null && pd.isShowing()) {
pd.cancel();
}
Toast.makeText(getActivity(), getString(R.string.connection_error), Toast.LENGTH_SHORT)
.show();
}
};
}
package com.commit451.gitlab.fragments;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
import com.commit451.gitlab.R;
import com.commit451.gitlab.adapter.UserAdapter;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.User;
import com.commit451.gitlab.tools.Repository;
import butterknife.Bind;
import butterknife.ButterKnife;
import butterknife.OnClick;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;
import timber.log.Timber;
public class AddUserDialogFragment extends DialogFragment {
@Bind(R.id.user_spinner)
Spinner userSpinner;
@Bind(R.id.role_spinner)
Spinner roleSpinner;
private ProgressDialog pd;
/**
* Create a new instance of AddDialogFragment
**/
static AddUserDialogFragment newInstance() {
return new AddUserDialogFragment();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.dialog_add_user, container, false);
ButterKnife.bind(this, view);
getDialog().setTitle(getString(R.string.add_user_dialog_title));
UserAdapter adapter = new UserAdapter(this.getActivity(), Repository.users);
userSpinner.setAdapter(adapter);
ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(this.getActivity(), R.array.role_names, android.R.layout.simple_spinner_dropdown_item);
roleSpinner.setAdapter(adapter2);
return view;
}
@Override
public void onDestroyView() {
super.onDestroyView();
ButterKnife.unbind(this);
}
@OnClick(R.id.add_button)
public void onAddClick() {
if(Repository.selectedProject.getGroup() == null)
return;
pd = ProgressDialog.show(AddUserDialogFragment.this.getActivity(), "", getResources().getString(R.string.progress_dialog), true);
long userId = ((User) userSpinner.getSelectedItem()).getId();
String accessLevel = getActivity().getResources().getStringArray(R.array.role_values)[roleSpinner.getSelectedItemPosition()];
GitLabClient.instance().addGroupMember(Repository.selectedProject.getGroup().getId(), userId, accessLevel, "", userCallback);
}
private Callback<User> userCallback = new Callback<User>() {
@Override
public void success(User user, Response resp) {
if(pd != null && pd.isShowing())
pd.cancel();
if(user.getId() != 0) {
//TODO tell the parent to add the user to the list
}
else {
Toast.makeText(getActivity(), getString(R.string.user_error), Toast.LENGTH_SHORT)
.show();
}
AddUserDialogFragment.this.dismiss();
}
@Override
public void failure(RetrofitError e) {
Timber.e(e.toString());
if(pd != null && pd.isShowing())
pd.cancel();
Toast.makeText(getActivity(), getString(R.string.user_error), Toast.LENGTH_SHORT)
.show();
AddUserDialogFragment.this.dismiss();
}
};
@OnClick(R.id.cancel_button)
public void onCancelClick() {
this.dismiss();
}
}
Loading
Loading
@@ -2,9 +2,7 @@ package com.commit451.gitlab.fragments;
 
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
Loading
Loading
@@ -17,6 +15,7 @@ import com.commit451.gitlab.GitLabApp;
import com.commit451.gitlab.R;
import com.commit451.gitlab.adapter.NewUserAdapter;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.dialogs.NewUserDialog;
import com.commit451.gitlab.events.ProjectChangedEvent;
import com.commit451.gitlab.model.User;
import com.commit451.gitlab.tools.Repository;
Loading
Loading
@@ -129,9 +128,7 @@ public class UsersFragment extends Fragment implements SwipeRefreshLayout.OnRefr
@OnClick(R.id.add_user_button)
public void onAddUserClick() {
FragmentTransaction ft = getFragmentManager().beginTransaction();
DialogFragment newFragment = AddUserDialogFragment.newInstance();
newFragment.show(ft, "dialog");
new NewUserDialog(getActivity()).show();
}
 
private class EventReceiver {
Loading
Loading
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
android:layout_height="match_parent">
 
<Spinner
android:id="@+id/user_spinner"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp" />
android:layout_height="match_parent"
android:orientation="vertical">
 
<Spinner
android:id="@+id/role_spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp" />
<Spinner
android:id="@+id/user_spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp" />
 
<View
android:id="@+id/lsep"
android:layout_width="match_parent"
android:layout_height="1dip"
android:background="?android:attr/dividerHorizontal" />
<Spinner
android:id="@+id/role_spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp" />
 
<LinearLayout
android:id="@+id/lin"
style="?android:attr/buttonBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<View
android:id="@+id/lsep"
android:layout_width="match_parent"
android:layout_height="1dip"
android:background="?android:attr/dividerHorizontal" />
 
<Button
android:id="@+id/cancel_button"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="true"
android:text="@string/cancel_button" />
<Button
android:id="@+id/add_button"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dip"
<LinearLayout
android:id="@+id/lin"
style="?android:attr/buttonBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="true"
android:text="@string/add_button" />
android:orientation="horizontal">
<Button
android:id="@+id/cancel_button"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="true"
android:text="@string/cancel_button" />
<Button
android:id="@+id/add_button"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="true"
android:text="@string/add_button" />
</LinearLayout>
</LinearLayout>
 
</LinearLayout>
\ No newline at end of file
<include layout="@layout/progress" />
</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