diff --git a/C5/app/src/main/AndroidManifest.xml b/C5/app/src/main/AndroidManifest.xml index 2441972..d405802 100644 --- a/C5/app/src/main/AndroidManifest.xml +++ b/C5/app/src/main/AndroidManifest.xml @@ -3,7 +3,7 @@ xmlns:tools="http://schemas.android.com/tools" package="com.sunvote.xpadapp" android:versionCode="70" - android:versionName="1.3.0.0"> + android:versionName="1.3.0.2"> diff --git a/C5/app/src/main/java/com/sunvote/xpadapp/MainActivity.java b/C5/app/src/main/java/com/sunvote/xpadapp/MainActivity.java index b723513..f6dc11d 100644 --- a/C5/app/src/main/java/com/sunvote/xpadapp/MainActivity.java +++ b/C5/app/src/main/java/com/sunvote/xpadapp/MainActivity.java @@ -1272,7 +1272,7 @@ public class MainActivity extends BaseActivity implements ComListener { LogUtil.i(TAG, "baseEvent:" + info); meetingId = info.confId; //attrib bit 6 1 表示服务可以申请,0,表示服务关闭 - if((mBaseInfo.attrib & 0x20) != 0){ + if((mBaseInfo.attrib & 0x40) != 0){ runOnUiThread(new Runnable() { @Override public void run() { diff --git a/C5/app/src/main/java/com/sunvote/xpadapp/dialog/ToastAlertDialog.java b/C5/app/src/main/java/com/sunvote/xpadapp/dialog/ToastAlertDialog.java index 54fd8ac..0c9fb3b 100644 --- a/C5/app/src/main/java/com/sunvote/xpadapp/dialog/ToastAlertDialog.java +++ b/C5/app/src/main/java/com/sunvote/xpadapp/dialog/ToastAlertDialog.java @@ -2,6 +2,8 @@ package com.sunvote.xpadapp.dialog; import android.app.AlertDialog; import android.content.Context; +import android.content.DialogInterface; +import android.os.Build; import android.os.Handler; import android.os.Looper; import android.view.LayoutInflater; @@ -9,6 +11,7 @@ import android.view.View; import android.view.WindowManager; import android.widget.TextView; +import com.sunvote.xpadapp.MainActivity; import com.sunvote.xpadapp.R; public class ToastAlertDialog { @@ -16,8 +19,8 @@ public class ToastAlertDialog { private AlertDialog dialog; private AlertDialog.Builder builder; private TextView messageView ; - private TextView confirm; private Handler handler; + private Context context; public ToastAlertDialog setMessage(CharSequence message) { messageView.setText(message); @@ -25,12 +28,18 @@ public class ToastAlertDialog { } public ToastAlertDialog(Context context){ + this.context = context; builder = new AlertDialog.Builder(context); handler = new Handler(Looper.getMainLooper()); builder.setCancelable(true); + builder.setOnDismissListener(new DialogInterface.OnDismissListener() { + @Override + public void onDismiss(DialogInterface d) { + handler.postDelayed(hideMenu,10); + } + }); View rootView = LayoutInflater.from(context).inflate(R.layout.toast_dialog,null); messageView = rootView.findViewById(R.id.message); - confirm = rootView.findViewById(R.id.confirm); rootView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -61,10 +70,33 @@ public class ToastAlertDialog { lp.alpha = 0.6f; dialog.getWindow().setAttributes(lp); dialog.show(); + hideBottomUIMenu(); handler.postDelayed(close,2000); } public static ToastAlertDialog makeText(Context context, CharSequence text){ return new ToastAlertDialog(context).setMessage(text); } + + private Runnable hideMenu = new Runnable() { + @Override + public void run() { + hideBottomUIMenu(); + } + }; + + public void hideBottomUIMenu(){ + if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower + View v = dialog.getWindow().getDecorView(); + v.setSystemUiVisibility(View.GONE); + } else if (Build.VERSION.SDK_INT >= 19) { + View decorView = dialog.getWindow().getDecorView(); + if(context instanceof MainActivity){ + MainActivity mainActivity = (MainActivity)context; + decorView = mainActivity.getWindow().getDecorView(); + } + int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | 0x00002000; + decorView.setSystemUiVisibility(uiOptions); + } + } } diff --git a/C5/app/src/main/java/com/sunvote/xpadapp/fragments/MultiTitleFragment.java b/C5/app/src/main/java/com/sunvote/xpadapp/fragments/MultiTitleFragment.java index 4320ec3..24d84a6 100644 --- a/C5/app/src/main/java/com/sunvote/xpadapp/fragments/MultiTitleFragment.java +++ b/C5/app/src/main/java/com/sunvote/xpadapp/fragments/MultiTitleFragment.java @@ -126,6 +126,12 @@ public class MultiTitleFragment extends BaseFragment implements TitleVoteOnBack tvConfirmText = (TextView) view.findViewById(R.id.multivote_confirm_text); // tvPage = (TextView) view.findViewById(R.id.multivote_page); + confirmLayout.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + + } + }); btnConfirm = (Button) view.findViewById(R.id.multivote_btn_submit); @@ -142,7 +148,7 @@ public class MultiTitleFragment extends BaseFragment implements TitleVoteOnBack if (voteInfo.mode2_modify == 1) { doSubmitAllOk(); } else { - tvConfirmText.setText("投票后不可修改,确定提交吗?"); + tvConfirmText.setText("应投" + aryContent.size()+"项,已投" +votedCount+"项,确定提交吗?"); confirmLayout.setVisibility(View.VISIBLE); } @@ -154,7 +160,7 @@ public class MultiTitleFragment extends BaseFragment implements TitleVoteOnBack if (voteInfo.mode2_modify == 1) { doSubmitAllOk(); } else { - tvConfirmText.setText("投票后不可修改,确定提交吗?"); + tvConfirmText.setText("应投" + aryContent.size()+"项,已投" +votedCount+"项,确定提交吗?"); confirmLayout.setVisibility(View.VISIBLE); } } @@ -402,11 +408,13 @@ public class MultiTitleFragment extends BaseFragment implements TitleVoteOnBack if (voteInfo.mode2_modify == 1) { btnModify.setVisibility(View.VISIBLE); // tvInfo.setText(getString(R.string.submited)); + tvInfo.setText(""); tvInfo.setBackgroundResource(R.drawable.voted); tvInfoLayout.setVisibility(View.VISIBLE); } else { disableVote(); // tvInfo.setText(getString(R.string.submited)); + tvInfo.setText(""); tvInfo.setBackgroundResource(R.drawable.voted); tvInfoLayout.setVisibility(View.VISIBLE); // tvInfo.setText(getString(R.string.submited_no_modify)); @@ -615,8 +623,9 @@ public class MultiTitleFragment extends BaseFragment implements TitleVoteOnBack holder.ivResult.setBackgroundResource(R.drawable.voted_empty); } else { - holder.ivResult.setText(""); - holder.ivResult.setBackgroundResource(R.drawable.voted); + holder.ivResult.setText("已投票"); + holder.ivResult.setBackgroundResource(R.drawable.voted_empty); +// holder.ivResult.setBackgroundResource(R.drawable.voted); } } else { holder.ivResult.setVisibility(View.INVISIBLE); diff --git a/C5/app/src/main/java/com/sunvote/xpadapp/fragments/ResultVoteFragment.java b/C5/app/src/main/java/com/sunvote/xpadapp/fragments/ResultVoteFragment.java index 2dce17c..8b78e4d 100644 --- a/C5/app/src/main/java/com/sunvote/xpadapp/fragments/ResultVoteFragment.java +++ b/C5/app/src/main/java/com/sunvote/xpadapp/fragments/ResultVoteFragment.java @@ -219,6 +219,11 @@ public class ResultVoteFragment extends BaseFragment { dataTitleLayout3.setVisibility(View.VISIBLE); ((TextView)(dataTitleLayout3.findViewById(R.id.data_title_layout3_text1))).setText(getString(R.string.abstant)); } + if (pass == 0) { + fragmentResultMemo.setText(getString(R.string.no_pass)); + } else { + fragmentResultMemo.setText(getString(R.string.pass)); + } } else if (voteInfo.resultInfo.resultType == 4) { fragmentMemo.setText(getString(R.string.ceping_result)); if (voteInfo.resultInfo.num4 != 0xffff) { @@ -233,6 +238,13 @@ public class ResultVoteFragment extends BaseFragment { dataTitleLayout3.setVisibility(View.VISIBLE); ((TextView)(dataTitleLayout3.findViewById(R.id.data_title_layout3_text1))).setText(getString(R.string.bumanyi)); } + if (pass == 0) { + fragmentResultMemo.setText(getString(R.string.manyi)); + } else if (pass == 1) { + fragmentResultMemo.setText(getString(R.string.jbmanyi)); + } else { + fragmentResultMemo.setText(getString(R.string.bumanyi)); + } } else if (voteInfo.resultInfo.resultType == 12) { fragmentMemo.setText(getString(R.string.ceping_result)); if (voteInfo.resultInfo.num4 != 0xffff) { @@ -247,6 +259,13 @@ public class ResultVoteFragment extends BaseFragment { dataTitleLayout3.setVisibility(View.VISIBLE); ((TextView)(dataTitleLayout3.findViewById(R.id.data_title_layout3_text1))).setText(getString(R.string.fcbumanyi)); } + if (pass == 0) { + fragmentResultMemo.setText(getString(R.string.manyi)); + } else if (pass == 1) { + fragmentResultMemo.setText(getString(R.string.bumanyi)); + } else { + fragmentResultMemo.setText(getString(R.string.fcbumanyi)); + } } if(voteInfo.resultInfo.num3 != 0xffff){ double opt4 = voteInfo.resultInfo.num3 * 1.0 / fenmu * 100; @@ -260,5 +279,8 @@ public class ResultVoteFragment extends BaseFragment { ((TextView)(dataTitleLayout4.findViewById(R.id.data_title_layout4_text2))).setText(text); } } + if (pass == 0xf) { + fragmentResultMemo.setText(""); + } } } diff --git a/C5/app/src/main/java/com/sunvote/xpadapp/fragments/SingleTitleFragment.java b/C5/app/src/main/java/com/sunvote/xpadapp/fragments/SingleTitleFragment.java index c568bd4..c1ade56 100644 --- a/C5/app/src/main/java/com/sunvote/xpadapp/fragments/SingleTitleFragment.java +++ b/C5/app/src/main/java/com/sunvote/xpadapp/fragments/SingleTitleFragment.java @@ -527,13 +527,14 @@ public class SingleTitleFragment extends BaseFragment implements ContentVoteOnBa } private void disableVote() { - if(voteInfo.mode4==customVote){ - setBtnModle(2,false); - }else{ - btnA.setEnabled(false); - btnB.setEnabled(false); - btnC.setEnabled(false); - } +// if(voteInfo.mode4==customVote){ +// setBtnModle(2,false); +// }else{ +// btnA.setEnabled(false); +// btnB.setEnabled(false); +// btnC.setEnabled(false); +// } + hideVote(); } private void showModifyOrDisable() { diff --git a/C5/app/src/main/java/com/sunvote/xpadapp/fragments/UserResultVoteFragment.java b/C5/app/src/main/java/com/sunvote/xpadapp/fragments/UserResultVoteFragment.java index 48d4cb1..a17c464 100644 --- a/C5/app/src/main/java/com/sunvote/xpadapp/fragments/UserResultVoteFragment.java +++ b/C5/app/src/main/java/com/sunvote/xpadapp/fragments/UserResultVoteFragment.java @@ -6,7 +6,10 @@ import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.BaseAdapter; import android.widget.LinearLayout; +import android.widget.ListView; +import android.widget.RelativeLayout; import android.widget.TextView; import com.sunvote.xpadapp.MainActivity; @@ -17,6 +20,7 @@ import com.sunvote.xpadapp.db.modal.MultiTitleItem; import java.text.DecimalFormat; import java.util.ArrayList; +import java.util.List; public class UserResultVoteFragment extends BaseFragment { @@ -27,6 +31,9 @@ public class UserResultVoteFragment extends BaseFragment { this.data = data; } + private UserAdapter userAdapter; + private List dataList; + public void setOptions(String[] options) { this.options = options; } @@ -36,26 +43,29 @@ public class UserResultVoteFragment extends BaseFragment { // 表決结果 private TextView fragmentResultMemo; private TextView fragmentMemo; - // -// private LinearLayout tResult; -// private LinearLayout dResult; -// private LinearLayout pResult; + private ListView listView; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View root = inflater.inflate(R.layout.fragment_result_vote, container, false); + View root = inflater.inflate(R.layout.fragment_result_user, container, false); yingdaoresult = root.findViewById(R.id.yingdaoresult); shidaoresult = root.findViewById(R.id.shidaoresult); fragmentResultMemo = root.findViewById(R.id.fragment_result_memo); fragmentMemo = root.findViewById(R.id.fragment_memo); - -// tResult = root.findViewById(R.id.t_result); -// dResult = root.findViewById(R.id.d_result); -// pResult = root.findViewById(R.id.p_result); + listView = root.findViewById(R.id.multi_vote_result_listview); + dataList = new ArrayList<>(); + userAdapter = new UserAdapter(dataList); + listView.setAdapter(userAdapter); showResult(); return root; } - private View createView(String txt,int color) { + @Override + public void onResume() { + super.onResume(); + ((MainActivity)getActivity()).setBackgroundColor(Color.parseColor("#042148")); + } + + private View createView(String txt, int color) { TextView tv1 = new TextView(getActivity()); ViewGroup.LayoutParams vlp = new ViewGroup.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, @@ -130,9 +140,7 @@ public class UserResultVoteFragment extends BaseFragment { } private void setView(int pos, int digiters, int bitNum, int type) { -// tResult.removeAllViews(); -// dResult.removeAllViews(); -// pResult.removeAllViews(); + dataList.clear(); LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.WRAP_CONTENT,1.0f); for(int i = 1; i <= options.length ; i++) { if (options.length >= i) { @@ -142,34 +150,48 @@ public class UserResultVoteFragment extends BaseFragment { } else { value1 = (data[pos++] << 8 | data[pos++]) & 0xffff; } -// tResult.addView(createView(options[i - 1], Color.YELLOW), lp); -// dResult.addView(createView("" + value1, Color.WHITE), lp); + String szc = "" ; if (type == 1) { //分母 if ((fenmu > 0 && fenmu != 0xff)) { double pzc = value1 * 1.0 / fenmu * 100; - String szc = formatDoubleToString(pzc, digiters, false); -// pResult.addView(createView(szc + "%", Color.WHITE), lp); + szc = formatDoubleToString(pzc, digiters, false); } } else { //分母 if ((fenmu > 0 && fenmu != 0xffff)) { double pzc = value1 * 1.0 / fenmu * 100; - String szc = formatDoubleToString(pzc, digiters, false); -// pResult.addView(createView(szc + "%", Color.WHITE), lp); + szc = formatDoubleToString(pzc, digiters, false); } } + + + String text = "" + value1 ; + if(szc != null && !"".equals(szc)){ + text += "(" + szc + "%)" ; + } + UserData userData = new UserData(); + userData.name = options[i -1]; + userData.desc = text; + dataList.add(userData); } } if (notVote != 0xff) { -// tResult.addView(createView(getString(R.string.weian), Color.YELLOW), lp); -// dResult.addView(createView("" + notVote, Color.WHITE), lp); + String strOpt4 = "" ; if ((fenmu > 0 && fenmu != 0xff)) { -// pResult.addView(createView("0%", Color.WHITE), lp); + strOpt4 = "0%" ; }else{ -// pResult.setVisibility(View.GONE); } + String text = "" + notVote ; + if(strOpt4 != null && !"".equals(strOpt4)){ + text += "(" + strOpt4 + "%)" ; + } + UserData userData = new UserData(); + userData.name = getString(R.string.weian); + userData.desc = text; + dataList.add(userData); } + userAdapter.notifyDataSetChanged(); } public static String formatDoubleToString(double value, Integer digits, boolean remove) { @@ -197,4 +219,58 @@ public class UserResultVoteFragment extends BaseFragment { } } + class UserData{ + String name; + String desc; + } + + class UserAdapter extends BaseAdapter{ + + private List dataList; + + public UserAdapter(List dataList){ + this.dataList = dataList; + } + + + @Override + public int getCount() { + if(dataList != null){ + return dataList.size(); + } + return 0; + } + + @Override + public Object getItem(int position) { + return position; + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + ViewHolder viewHolder = null; + if(convertView == null){ + viewHolder = new ViewHolder(); + convertView = LayoutInflater.from(getActivity()).inflate(R.layout.item_user_vote_result,null); + viewHolder.nameTextView = convertView.findViewById(R.id.name); + viewHolder.descTextView = convertView.findViewById(R.id.desc); + convertView.setTag(viewHolder); + }else{ + viewHolder = (ViewHolder) convertView.getTag(); + } + viewHolder.nameTextView.setText(dataList.get(position).name); + viewHolder.descTextView.setText(dataList.get(position).desc); + return convertView; + } + } + + class ViewHolder{ + TextView nameTextView; + TextView descTextView; + } } diff --git a/C5/app/src/main/res/drawable-xhdpi/btn_election_abstain.png b/C5/app/src/main/res/drawable-xhdpi/btn_election_abstain.png deleted file mode 100644 index 18325f2..0000000 --- a/C5/app/src/main/res/drawable-xhdpi/btn_election_abstain.png +++ /dev/null diff --git a/C5/app/src/main/res/drawable-xhdpi/btn_election_abstain_s.png b/C5/app/src/main/res/drawable-xhdpi/btn_election_abstain_s.png deleted file mode 100644 index 950d877..0000000 --- a/C5/app/src/main/res/drawable-xhdpi/btn_election_abstain_s.png +++ /dev/null diff --git a/C5/app/src/main/res/drawable-xxhdpi/btn_modify_disable.xml b/C5/app/src/main/res/drawable/btn_modify_disable.xml index 720ed46..720ed46 100644 --- a/C5/app/src/main/res/drawable-xxhdpi/btn_modify_disable.xml +++ b/C5/app/src/main/res/drawable/btn_modify_disable.xml diff --git a/C5/app/src/main/res/drawable-xxhdpi/btn_modify_enable.xml b/C5/app/src/main/res/drawable/btn_modify_enable.xml index 3fd8f37..3fd8f37 100644 --- a/C5/app/src/main/res/drawable-xxhdpi/btn_modify_enable.xml +++ b/C5/app/src/main/res/drawable/btn_modify_enable.xml diff --git a/C5/app/src/main/res/drawable/connect_server.xml b/C5/app/src/main/res/drawable/connect_server.xml new file mode 100644 index 0000000..e89f83e --- /dev/null +++ b/C5/app/src/main/res/drawable/connect_server.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/C5/app/src/main/res/drawable/download_fail.xml b/C5/app/src/main/res/drawable/download_fail.xml index 5d8b5a3..14dd01d 100644 --- a/C5/app/src/main/res/drawable/download_fail.xml +++ b/C5/app/src/main/res/drawable/download_fail.xml @@ -5,5 +5,5 @@ android:height="292.9dp"> + android:fillColor="@color/white" /> \ No newline at end of file diff --git a/C5/app/src/main/res/drawable/downloading.xml b/C5/app/src/main/res/drawable/downloading.xml index 8a11cac..42bc3d8 100644 --- a/C5/app/src/main/res/drawable/downloading.xml +++ b/C5/app/src/main/res/drawable/downloading.xml @@ -5,5 +5,5 @@ android:height="260.1dp"> + android:fillColor="@color/white" /> \ No newline at end of file diff --git a/C5/app/src/main/res/drawable/file_not_exsit.xml b/C5/app/src/main/res/drawable/file_not_exsit.xml index 2dd4f39..6bd5939 100644 --- a/C5/app/src/main/res/drawable/file_not_exsit.xml +++ b/C5/app/src/main/res/drawable/file_not_exsit.xml @@ -5,5 +5,5 @@ android:height="255.1dp"> + android:fillColor="@color/white" /> \ No newline at end of file diff --git a/C5/app/src/main/res/drawable-xxhdpi/modify_selector_new.xml b/C5/app/src/main/res/drawable/modify_selector_new.xml index b996032..b996032 100644 --- a/C5/app/src/main/res/drawable-xxhdpi/modify_selector_new.xml +++ b/C5/app/src/main/res/drawable/modify_selector_new.xml diff --git a/C5/app/src/main/res/layout/fragment_download.xml b/C5/app/src/main/res/layout/fragment_download.xml index d2b65d6..9c6bc77 100644 --- a/C5/app/src/main/res/layout/fragment_download.xml +++ b/C5/app/src/main/res/layout/fragment_download.xml @@ -12,11 +12,11 @@ + android:src="@drawable/connect_server"/> - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/C5/app/src/main/res/layout/item_user_vote_result.xml b/C5/app/src/main/res/layout/item_user_vote_result.xml new file mode 100644 index 0000000..b2951be --- /dev/null +++ b/C5/app/src/main/res/layout/item_user_vote_result.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + diff --git a/C5/settings.gradle b/C5/settings.gradle index c64486c..c3852a4 100644 --- a/C5/settings.gradle +++ b/C5/settings.gradle @@ -1,2 +1,2 @@ -include ':app', ':udpmodule', ':xpadprotocal', ':util', ':sunvoteadapter', 'txpad', 'sunvotesdk','testproject' +include ':app', ':udpmodule', ':xpadprotocal', ':util', ':sunvoteadapter', 'txpad', 'sunvotesdk','testproject','statusBar' \ No newline at end of file diff --git a/C5/xpadprotocal/build/libs/xpadprotocal.jar b/C5/xpadprotocal/build/libs/xpadprotocal.jar deleted file mode 100644 index 70767cc..0000000 --- a/C5/xpadprotocal/build/libs/xpadprotocal.jar +++ /dev/null diff --git a/C5/xpadprotocal/build/tmp/jar/MANIFEST.MF b/C5/xpadprotocal/build/tmp/jar/MANIFEST.MF deleted file mode 100644 index 59499bc..0000000 --- a/C5/xpadprotocal/build/tmp/jar/MANIFEST.MF +++ /dev/null @@ -1,2 +0,0 @@ -Manifest-Version: 1.0 -