package net.coding.program.project.detail; 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.TextView; import net.coding.program.R; import net.coding.program.common.Global; import net.coding.program.common.base.MyJsonResponse; import net.coding.program.common.network.MyAsyncHttpClient; import net.coding.program.common.ui.BackActivity; import net.coding.program.model.TaskObject; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.Click; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.Extra; import org.androidannotations.annotations.OptionsItem; import org.androidannotations.annotations.OptionsMenu; import org.androidannotations.annotations.ViewById; import org.json.JSONObject; @EActivity(R.layout.activity_member_authority) @OptionsMenu(R.menu.member_authority) public class MemberAuthorityActivity extends BackActivity { @Extra TaskObject.Members member; @Extra TaskObject.Members me; @Extra int projectId; @ViewById DropdownListItemView projectManager, projectMember, projectMemberLimited; @ViewById View managerDivide; @AfterViews void initMemberAuthorityActivity() { if (me.getType() == TaskObject.Members.Type.manager) { projectManager.setVisibility(View.GONE); managerDivide.setVisibility(View.GONE); } projectManager.setText("项目管理员"); projectMember.setText("项目成员"); projectMemberLimited.setText("受限成员"); projectManager.setChecked(false); projectMember.setChecked(false); projectMemberLimited.setChecked(false); switch (member.getType()) { case manager: projectManager.setChecked(true); break; case member: projectMember.setChecked(true); break; case limited: projectMemberLimited.setChecked(true); break; } } @Click void projectManager() { modifyAuthority(TaskObject.Members.Type.manager.getType()); } @Click void projectMember() { modifyAuthority(TaskObject.Members.Type.member.getType()); } @Click void projectMemberLimited() { modifyAuthority(TaskObject.Members.Type.limited.getType()); } private void modifyAuthority(int id) { String url = String.format(Global.HOST_API + "/project/%d/member/%s/%d", projectId, member.user.global_key, id); MyAsyncHttpClient.post(this, url, new MyJsonResponse(MemberAuthorityActivity.this) { @Override public void onMySuccess(JSONObject response) { super.onMySuccess(response); setResult(RESULT_OK); finish(); } @Override public void onFinish() { super.onFinish(); showProgressBar(false); } }); showProgressBar(true); } @OptionsItem void action_about() { showPop("项目所有者:拥有对项目的所有权限。\n" + "项目管理员:拥有对项目的部分权限。不能删除,转让项目,不能对其他管理员进行操作。\n" + "普通成员:可以阅读和推送代码。\n" + "受限成员:不能进入与代码相关的页面。"); } private void showPop(String s) { android.support.v4.app.FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); android.support.v4.app.Fragment prev = getSupportFragmentManager().findFragmentByTag("dialog"); if (prev != null) { ft.remove(prev); } ft.addToBackStack(null); DialogFragment newFragment = MyDialogFragment.newInstance(s); newFragment.show(ft, "dialog"); } public static class MyDialogFragment extends DialogFragment { String mStringData; static MyDialogFragment newInstance(String data) { MyDialogFragment f = new MyDialogFragment(); // Supply data input as an argument. Bundle args = new Bundle(); args.putString("data", data); f.setArguments(args); return f; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mStringData = getArguments().getString("data", ""); setStyle(DialogFragment.STYLE_NORMAL, R.style.MyDialog); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.skill_workexp_tip, container, false); TextView textView = (TextView) v.findViewById(R.id.tipText); textView.setText(mStringData); v.setOnClickListener(v1 -> getActivity().getSupportFragmentManager().popBackStack()); return v; } } }