Skip to content

Commit

Permalink
重构部分代码
Browse files Browse the repository at this point in the history
  • Loading branch information
sadaharusong committed Jul 15, 2018
1 parent b5d13e6 commit 8dcd4ee
Show file tree
Hide file tree
Showing 13 changed files with 119 additions and 95 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import android.view.WindowManager;

import com.github.sadaharusong.wolfkillassistant.R;
import com.github.sadaharusong.wolfkillassistant.fragment.FragmentJumpManager;
import com.github.sadaharusong.wolfkillassistant.fragment.GameFragmentManager;
import com.github.sadaharusong.wolfkillassistant.fragment.WolfFragment;
import com.github.sadaharusong.wolfkillassistant.util.MediaPlayUtils;

Expand All @@ -21,6 +21,8 @@
*/

public class GameActivity extends AppCompatActivity {
GameFragmentManager mGameFragmentManager;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Expand All @@ -31,13 +33,13 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
fragmentTransaction.add(R.id.game_activity, fragment);
fragmentTransaction.commit();

mGameFragmentManager = new GameFragmentManager(fragmentManager);

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//游戏时,APP常亮不息屏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

hideNavigationBar();

FragmentJumpManager.getInstance().init(fragmentManager);
}

@Override
Expand All @@ -59,4 +61,8 @@ private void hideNavigationBar() {
| View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
}

public GameFragmentManager getGameFragmentManager () {
return mGameFragmentManager;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
import com.github.sadaharusong.wolfkillassistant.listener.OnItemClickListener;
import com.github.sadaharusong.wolfkillassistant.model.GameInfo;
import com.github.sadaharusong.wolfkillassistant.model.Role;
import com.github.sadaharusong.wolfkillassistant.model.RoleMap;

import java.util.ArrayList;
import java.util.HashMap;
Expand Down Expand Up @@ -237,7 +236,7 @@ void onBtnClick(View v) {
}
break;
case R.id.start:
if (RoleMap.getInstance().getRoleMap().size() == mPlayerCount){
if (GameInfo.getInstance().getRoleMap().size() == mPlayerCount){
Intent intent = new Intent(this, GameActivity.class);
this.startActivity(intent);
}else {
Expand All @@ -252,7 +251,7 @@ private void confirmSetRole() {
if (mGameRole.getName().equals(getString(R.string.default_role))){
Toast.makeText(SetRoleActivity.this, getString(R.string.role_not , mCurrentPos + 1), Toast.LENGTH_SHORT).show();
}else {
RoleMap.getInstance().addRole(mCurrentPos, mGameRole);
GameInfo.getInstance().addRole(mCurrentPos, mGameRole);
mList.get(mCurrentPos).setName(getResources().getString(R.string.role_ok));
mList.get(mCurrentPos).setSetted(true);
mAdapter.notifyDataSetChanged();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ public void setOnItemClickListener(OnItemClickListener listener) {
}

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == ItemType.LEFT.ordinal()) {
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent,@ItemType.ItemPosition int viewType) {
if (viewType == ItemType.LEFT) {
return new ItemLeftViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_rv_role_1, parent, false));
}else {
return new ItemRightViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_rv_role_2, parent, false));
Expand Down Expand Up @@ -88,7 +88,7 @@ public int getItemCount() {

@Override
public int getItemViewType(int position) {
return position % 2 == 0 ? ItemType.LEFT.ordinal() : ItemType.RIGHT.ordinal();
return position % 2 == 0 ? ItemType.LEFT : ItemType.RIGHT;
}

public void setData(List<Role> list) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.github.sadaharusong.wolfkillassistant.fragment;

import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.os.Handler;
Expand All @@ -13,10 +14,11 @@
import android.widget.TextView;

import com.github.sadaharusong.wolfkillassistant.R;
import com.github.sadaharusong.wolfkillassistant.activity.GameActivity;
import com.github.sadaharusong.wolfkillassistant.adapter.GameAdapter;
import com.github.sadaharusong.wolfkillassistant.listener.OnItemClickListener;
import com.github.sadaharusong.wolfkillassistant.model.GameInfo;
import com.github.sadaharusong.wolfkillassistant.model.Role;
import com.github.sadaharusong.wolfkillassistant.model.RoleMap;
import com.github.sadaharusong.wolfkillassistant.util.DialogUtils;

import java.util.Map;
Expand All @@ -42,7 +44,7 @@ public abstract class BaseFragment extends Fragment{
RecyclerView mNumberView;

int mTime = setTime();
Map<Integer,Role> mPlayMap = RoleMap.getInstance().getRoleMap();
Map<Integer,Role> mPlayMap = GameInfo.getInstance().getRoleMap();

@Nullable
@Override
Expand Down Expand Up @@ -106,7 +108,10 @@ public void handleMessage(Message msg){
Message message = handler.obtainMessage(1);
handler.sendMessageDelayed(message, 1000);
}else{
FragmentJumpManager.getInstance().jumpToNextFragment(setFragmentFlag());
Activity activity = getActivity();
if (activity instanceof GameActivity) {
((GameActivity) activity).getGameFragmentManager().jumpToNextFragment(setFragmentFlag());
}
}
break;
default:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,9 @@ public void onClick(View view) {

private void resultDo(){
String result;
if (FragmentJumpManager.thisRoundPosition.size() > 0){
if (GameFragmentManager.thisRoundPosition.size() > 0){
StringBuilder resultNum = new StringBuilder();
for (int a : FragmentJumpManager.thisRoundPosition){
for (int a : GameFragmentManager.thisRoundPosition){
resultNum = resultNum.append("[ " +(a + 1) + "] ");
}
result = getString(R.string.final_result_dead, resultNum);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import android.app.FragmentTransaction;

import com.github.sadaharusong.wolfkillassistant.R;
import com.github.sadaharusong.wolfkillassistant.model.GameInfo;
import com.github.sadaharusong.wolfkillassistant.model.Role;
import com.github.sadaharusong.wolfkillassistant.model.RoleMap;

import java.util.ArrayList;
import java.util.List;
Expand All @@ -18,29 +18,20 @@
* Github : https://github.com/sadaharusong
* Email : [email protected]
*/
public class FragmentJumpManager {
private static FragmentJumpManager mManager;
private static Map<Integer,Role> mPlayMap = RoleMap.getInstance().getRoleMap();
public class GameFragmentManager {
private static GameFragmentManager mManager;
private static Map<Integer,Role> mPlayMap = GameInfo.getInstance().getRoleMap();
public static List<Integer> thisRoundPosition = new ArrayList<>();

FragmentManager mFragmentManager;
private FragmentManager mFragmentManager;

public static final int WOLF_FRAGMENT = 1;
public static final int WITCH_FRAGMENT = 2;
public static final int SEER_FRAGMENT = 3;
public static final int FNINAL_FRAGMENT = -1;

FragmentJumpManager(){}

public static FragmentJumpManager getInstance(){
if (mManager == null){
mManager = new FragmentJumpManager();
}
return mManager;
}

public void init(FragmentManager ft){
this.mFragmentManager = ft;
public GameFragmentManager(FragmentManager fragmentManager){
mFragmentManager = fragmentManager;
}

public void jumpToNextFragment(int flag){
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package com.github.sadaharusong.wolfkillassistant.fragment;

import android.app.Activity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.View;

import com.github.sadaharusong.wolfkillassistant.R;
import com.github.sadaharusong.wolfkillassistant.activity.GameActivity;
import com.github.sadaharusong.wolfkillassistant.listener.OnItemClickListener;
import com.github.sadaharusong.wolfkillassistant.util.DialogUtils;
import com.github.sadaharusong.wolfkillassistant.util.MediaPlayUtils;
Expand All @@ -30,7 +32,7 @@ public String setTitle() {

@Override
public int setFragmentFlag() {
return FragmentJumpManager.SEER_FRAGMENT;
return GameFragmentManager.SEER_FRAGMENT;
}

@Override
Expand Down Expand Up @@ -75,7 +77,10 @@ private void showRoleDialog(int position){
DialogUtils.showSingleDialog(getActivity(), result, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
FragmentJumpManager.getInstance().jumpToNextFragment(FragmentJumpManager.SEER_FRAGMENT);
Activity activity = getActivity();
if (activity instanceof GameActivity) {
((GameActivity) activity).getGameFragmentManager().jumpToNextFragment(GameFragmentManager.SEER_FRAGMENT);
}
}
});
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
package com.github.sadaharusong.wolfkillassistant.fragment;

import android.app.Activity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.View;

import com.github.sadaharusong.wolfkillassistant.R;
import com.github.sadaharusong.wolfkillassistant.activity.GameActivity;
import com.github.sadaharusong.wolfkillassistant.listener.OnItemClickListener;
import com.github.sadaharusong.wolfkillassistant.model.GameInfo;
import com.github.sadaharusong.wolfkillassistant.model.Role;
import com.github.sadaharusong.wolfkillassistant.model.RoleMap;
import com.github.sadaharusong.wolfkillassistant.util.DialogUtils;
import com.github.sadaharusong.wolfkillassistant.util.MediaPlayUtils;
import com.github.sadaharusong.wolfkillassistant.util.SoundConstant;
Expand All @@ -24,22 +26,22 @@ public class WitchFragment extends BaseFragment {
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (FragmentJumpManager.thisRoundPosition == null || FragmentJumpManager.thisRoundPosition.size() <= 0) {
if (GameFragmentManager.thisRoundPosition == null || GameFragmentManager.thisRoundPosition.size() <= 0) {
DialogUtils.showSingleDialog(getActivity(), getString(R.string.witch_save_nobody_title), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
showIsKill();
}
});
} else {
final int deadPosition = FragmentJumpManager.thisRoundPosition.get(0);
final int deadPosition = GameFragmentManager.thisRoundPosition.get(0);
DialogUtils.showNormalDialog(getActivity(), getString(R.string.witch_save_title, deadPosition + 1), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
FragmentJumpManager.thisRoundPosition.clear();
GameFragmentManager.thisRoundPosition.clear();
Role role = mPlayMap.get(deadPosition);
role.setisDead(false);
RoleMap.getInstance().addRole(deadPosition,role);
GameInfo.getInstance().addRole(deadPosition,role);
dialogInterface.dismiss();
showNotKill();
}
Expand All @@ -60,7 +62,7 @@ public String setTitle() {

@Override
public int setFragmentFlag() {
return FragmentJumpManager.WITCH_FRAGMENT;
return GameFragmentManager.WITCH_FRAGMENT;
}

@Override
Expand All @@ -81,11 +83,14 @@ public void onItemClick(final int position) {
DialogUtils.showNormalDialog(getActivity(), getString(R.string.witch_kill_person, position + 1), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
FragmentJumpManager.thisRoundPosition.add(position);
GameFragmentManager.thisRoundPosition.add(position);
Role role = mPlayMap.get(position);
role.setisDead(true);
RoleMap.getInstance().addRole(position,role);
FragmentJumpManager.getInstance().jumpToNextFragment(FragmentJumpManager.WITCH_FRAGMENT);
GameInfo.getInstance().addRole(position,role);
Activity activity = getActivity();
if (activity instanceof GameActivity) {
((GameActivity) activity).getGameFragmentManager().jumpToNextFragment(GameFragmentManager.WITCH_FRAGMENT);
}
}
}, new DialogInterface.OnClickListener() {
@Override
Expand All @@ -102,7 +107,10 @@ private void showNotKill(){
DialogUtils.showSingleDialog(getActivity(), getString(R.string.witch_not_kill_title), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
FragmentJumpManager.getInstance().jumpToNextFragment(FragmentJumpManager.WITCH_FRAGMENT);
Activity activity = getActivity();
if (activity instanceof GameActivity) {
((GameActivity) activity).getGameFragmentManager().jumpToNextFragment(GameFragmentManager.WITCH_FRAGMENT);
}
}
});
}
Expand All @@ -116,7 +124,10 @@ public void onClick(DialogInterface dialogInterface, int i) {
}, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
FragmentJumpManager.getInstance().jumpToNextFragment(FragmentJumpManager.WITCH_FRAGMENT);
Activity activity = getActivity();
if (activity instanceof GameActivity) {
((GameActivity) activity).getGameFragmentManager().jumpToNextFragment(GameFragmentManager.WITCH_FRAGMENT);
}
}
});
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
package com.github.sadaharusong.wolfkillassistant.fragment;


import android.app.Activity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.View;

import com.github.sadaharusong.wolfkillassistant.R;
import com.github.sadaharusong.wolfkillassistant.activity.GameActivity;
import com.github.sadaharusong.wolfkillassistant.listener.OnItemClickListener;
import com.github.sadaharusong.wolfkillassistant.model.GameInfo;
import com.github.sadaharusong.wolfkillassistant.model.Role;
import com.github.sadaharusong.wolfkillassistant.model.RoleMap;
import com.github.sadaharusong.wolfkillassistant.util.DialogUtils;
import com.github.sadaharusong.wolfkillassistant.util.MediaPlayUtils;
import com.github.sadaharusong.wolfkillassistant.util.SoundConstant;
Expand All @@ -25,7 +27,7 @@ public class WolfFragment extends BaseFragment {
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
FragmentJumpManager.thisRoundPosition.clear();
GameFragmentManager.thisRoundPosition.clear();
MediaPlayUtils.getInstance().play(SoundConstant.WOLF_OPEN);
}

Expand All @@ -36,7 +38,7 @@ public String setTitle() {

@Override
public int setFragmentFlag() {
return FragmentJumpManager.WOLF_FRAGMENT;
return GameFragmentManager.WOLF_FRAGMENT;
}

@Override
Expand All @@ -58,11 +60,14 @@ public void onItemClick(final int position) {
DialogUtils.showNormalDialog(getActivity(), kill, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
FragmentJumpManager.thisRoundPosition.add(position);
GameFragmentManager.thisRoundPosition.add(position);
Role role = mPlayMap.get(position);
role.setisDead(true);
RoleMap.getInstance().addRole(position,role);
FragmentJumpManager.getInstance().jumpToNextFragment(FragmentJumpManager.WOLF_FRAGMENT);
GameInfo.getInstance().addRole(position,role);
Activity activity = getActivity();
if (activity instanceof GameActivity) {
((GameActivity) activity).getGameFragmentManager().jumpToNextFragment(GameFragmentManager.WOLF_FRAGMENT);
}
}
}, new DialogInterface.OnClickListener() {
@Override
Expand Down
Loading

0 comments on commit 8dcd4ee

Please sign in to comment.