summaryrefslogtreecommitdiff
path: root/client/Piztor/src/com/macaroon/piztor/SubscribeSettings.java
diff options
context:
space:
mode:
Diffstat (limited to 'client/Piztor/src/com/macaroon/piztor/SubscribeSettings.java')
-rw-r--r--client/Piztor/src/com/macaroon/piztor/SubscribeSettings.java119
1 files changed, 95 insertions, 24 deletions
diff --git a/client/Piztor/src/com/macaroon/piztor/SubscribeSettings.java b/client/Piztor/src/com/macaroon/piztor/SubscribeSettings.java
index 74d1b83..ff7c00d 100644
--- a/client/Piztor/src/com/macaroon/piztor/SubscribeSettings.java
+++ b/client/Piztor/src/com/macaroon/piztor/SubscribeSettings.java
@@ -3,8 +3,10 @@ package com.macaroon.piztor;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.Vector;
import android.app.Activity;
@@ -33,7 +35,6 @@ public class SubscribeSettings extends PiztorAct {
static class ReCall extends Handler {
WeakReference<SubscribeSettings> outerClass;
-
ReCall(SubscribeSettings activity) {
outerClass = new WeakReference<SubscribeSettings>(activity);
}
@@ -109,6 +110,7 @@ public class SubscribeSettings extends PiztorAct {
private EditText edit_company;
private EditText edit_section;
private Vector<RGroup> listGroup;
+ private Set<Integer> recSubcribe;
void upMapInfo(Vector<RLocation> l) {
@@ -142,28 +144,48 @@ public class SubscribeSettings extends PiztorAct {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.subscribe_settings);
+ mShowInfo = (TextView) findViewById(R.id.textView1);
+ mShowInfo.setText("若要关注整个连请将班级号留空");
+
listGroup = new Vector<RGroup>();
+ recSubcribe = new HashSet<Integer>();
+
app = (myApp) getApplication();
app.transam.setHandler(handler);
mListView = (ListView) findViewById(R.id.listView1);
edit_company = (EditText) findViewById(R.id.subscribe_company);
edit_section = (EditText) findViewById(R.id.subscribe_section);
mList = new ArrayList<HashMap<String, Object>>();
+
final MySimpleAdapter simpleAdapter = new MySimpleAdapter(this, mList,
R.layout.subscribe_item, new String[] { "subscribe_text",
"btnadd" },
new int[] { R.id.textView1, R.id.button_add });
+
mListView.setAdapter(simpleAdapter);
// TODO get current subscribe
+
for (RGroup i : ((myApp) getApplication()).sublist) {
+ if (i.section == 255)
+ recSubcribe.add(i.company);
+ }
+ for (int i : recSubcribe) {
+ HashMap<String, Object> map = new HashMap<String, Object>();
+ map.put("subscribe_text", i + "连");
+ mList.add(map);
+
+ RGroup listItem = new RGroup(i, 255);
+ listGroup.add(listItem);
+ simpleAdapter.notifyDataSetChanged();
+ }
+ for (RGroup i : ((myApp) getApplication()).sublist) {
+ if (i.section == 255) continue;
+ //else
HashMap<String, Object> map = new HashMap<String, Object>();
- int cc = i.company;
- int ss = i.section;
-
- map.put("subscribe_text", cc + "连 " + ss + "班");
+ map.put("subscribe_text", i.company + "连 " + i.section + "班");
mList.add(map);
- RGroup listItem = new RGroup(cc, ss);
+ RGroup listItem = new RGroup(i.company, i.section);
listGroup.add(listItem);
simpleAdapter.notifyDataSetChanged();
}
@@ -172,21 +194,75 @@ public class SubscribeSettings extends PiztorAct {
@Override
public void onClick(View v) {
- int cc = Integer.parseInt(edit_company.getText().toString());
- int ss = Integer.parseInt(edit_section.getText().toString());
- HashMap<String, Object> map = new HashMap<String, Object>();
- map.put("subscribe_text", cc + "连 " + ss + "班");
- mList.add(map);
+
+ int cc,ss;
+ //Log.d("sub", edit_company.getText().toString() + " " + edit_section.getText().toString());
+ if (edit_company.getText().toString().length() == 0) {
+ mShowInfo.setText("连号为空,请输入正确的连队、班级号(关注整个连,则班号留空)");
+ Log.d("sub", "连号为空");
+ return;
+ } else {
+ cc = Integer.parseInt(edit_company.getText().toString());
+ if (cc <= 0 || cc > 40) {
+ mShowInfo.setText("连号超限,请输入正确的连队、班级号(关注整个连,则班号留空)");
+ Log.d("sub", "连号超限" + cc);
+ return;
+ }
+ }
+
+ if (edit_section.getText().toString().length() == 0) {
+ ss = 255;
+ Log.d("sub", "订阅全连" + cc);
+ } else {
+ ss = Integer.parseInt(edit_section.getText().toString());
+ if (ss <= 0 || ss > 20) {
+ mShowInfo.setText("班号超限,请输入正确的连队、班级号(关注整个连,则班号留空)");
+ Log.d("sub", "班号超限" + ss);
+ return;
+ }
+ }
+
+ // TODO get real company and section number
+ if (recSubcribe.contains(cc)) return;
+ if (ss == 255) {
+ recSubcribe.add(cc);
+ for (int i = 0; i < listGroup.size(); i++) {
+ if (listGroup.get(i).company == cc) {
+ listGroup.remove(i);
+ mList.remove(i);
+ i--;
+ simpleAdapter.notifyDataSetChanged();
+ }
+ }
+
+ RGroup listItem = new RGroup(cc, 255);
+ listGroup.add(listItem);
+ HashMap<String, Object> map = new HashMap<String, Object>();
+ map.put("subscribe_text", cc + "连");
+ mList.add(map);
+ simpleAdapter.notifyDataSetChanged();
+ subscribe();
+ mShowInfo.setText("已关注第" + cc + "连");
+ return;
+ }
RGroup listItem = new RGroup(cc, ss);
- listGroup.add(listItem);
- subscribe();
+ for (RGroup i : listGroup) {
+ if (i.company == cc && i.section == ss)
+ return;
+ }
+ listGroup.add(listItem);
+
+ HashMap<String, Object> map = new HashMap<String, Object>();
+ map.put("subscribe_text", cc + "连 " + ss + "班");
+ mList.add(map);
- simpleAdapter.notifyDataSetChanged();
- mShowInfo.setText("添加了一条订阅");
+ subscribe();
+
+ simpleAdapter.notifyDataSetChanged();
+ mShowInfo.setText("已关注第" + cc + "连" + ss + "班");
}
});
- mShowInfo = (TextView) findViewById(R.id.textView1);
}
private class MySimpleAdapter extends SimpleAdapter {
@@ -223,19 +299,14 @@ public class SubscribeSettings extends PiztorAct {
// TODO Auto-generated method stub
super.handleMessage(msg);
switch (msg.what) {
- case BUTTON_ADD:
- HashMap<String, Object> map = new HashMap<String, Object>();
- mList.add(map);
- notifyDataSetChanged();
- break;
-
case BUTTON_DELETE:
+ if (listGroup.get(msg.arg1).section == 255)
+ recSubcribe.remove(listGroup.get(msg.arg1).company);
mList.remove(msg.arg1);
- RGroup listItem = listGroup.get(msg.arg1);
listGroup.remove(msg.arg1);
subscribe();
notifyDataSetChanged();
- mShowInfo.setText("删除了第" + (msg.arg1 + 1) + "条订阅");
+ mShowInfo.setText("删除了第" + (msg.arg1 + 1) + "条关注");
break;
}
}