@@ -33,7 +33,6 @@ import com.android.views.indicators.SpringBar; |
||
33 | 33 |
|
34 | 34 |
import java.io.File; |
35 | 35 |
|
36 |
-import ai.pai.client.BuildConfig; |
|
37 | 36 |
import ai.pai.client.R; |
38 | 37 |
import ai.pai.client.beans.GroupInfo; |
39 | 38 |
import ai.pai.client.db.DBService; |
@@ -44,7 +43,6 @@ import ai.pai.client.services.GroupService; |
||
44 | 43 |
import ai.pai.client.services.MyLocationService; |
45 | 44 |
import ai.pai.client.utils.Constants; |
46 | 45 |
import ai.pai.client.utils.PhotoLoader; |
47 |
-import ai.pai.client.utils.UrlContainer; |
|
48 | 46 |
import ai.pai.client.views.GroupSelectPopup; |
49 | 47 |
import ai.pai.client.views.PersonInfoPopup; |
50 | 48 |
|
@@ -100,7 +98,7 @@ public class MainActivity extends AppCompatActivity |
||
100 | 98 |
protected void onResume() { |
101 | 99 |
super.onResume(); |
102 | 100 |
callGuideBtn.setVisibility(TextUtils.isEmpty(Preferences.getInstance(this).getTourGuidePhone()) ? View.INVISIBLE : View.VISIBLE); |
103 |
- if(Preferences.getInstance(this).isTourMode()|| BuildConfig.DEBUG){ |
|
101 |
+ if(Preferences.getInstance(this).isTourMode()){ |
|
104 | 102 |
Intent intent = new Intent(this, MyLocationService.class); |
105 | 103 |
intent.putExtra("command",MyLocationService.COMMAND_START_LOCATION); |
106 | 104 |
startService(intent); |
@@ -121,9 +119,6 @@ public class MainActivity extends AppCompatActivity |
||
121 | 119 |
@Override |
122 | 120 |
protected void onDestroy() { |
123 | 121 |
super.onDestroy(); |
124 |
- Intent intent = new Intent(this, MyLocationService.class); |
|
125 |
- intent.putExtra("command",MyLocationService.COMMAND_DESTROY_LOCATION); |
|
126 |
- startService(intent); |
|
127 | 122 |
} |
128 | 123 |
|
129 | 124 |
@Override |
@@ -349,6 +344,9 @@ public class MainActivity extends AppCompatActivity |
||
349 | 344 |
public void onCommandCommitSuccess(int command, Object response) { |
350 | 345 |
if(command == GroupService.GroupCommand.COMMAND_JOIN_GUIDE_GROUP){ |
351 | 346 |
Preferences.getInstance(this).setTourMode(true); |
347 |
+ Intent intent = new Intent(this, MyLocationService.class); |
|
348 |
+ intent.putExtra("command",MyLocationService.COMMAND_START_LOCATION); |
|
349 |
+ startService(intent); |
|
352 | 350 |
} |
353 | 351 |
if (command == GroupService.GroupCommand.COMMAND_JOIN_GROUP||command == GroupService.GroupCommand.COMMAND_JOIN_GUIDE_GROUP) { |
354 | 352 |
GroupInfo info = (GroupInfo) response; |
@@ -51,6 +51,14 @@ public class Preferences { |
||
51 | 51 |
return mPrefs.getString("tour_phone",NullStr); |
52 | 52 |
} |
53 | 53 |
|
54 |
+ public void setGatherTime(long gatherTime){ |
|
55 |
+ mPrefs.edit().putLong("gatherTime",gatherTime).commit(); |
|
56 |
+ } |
|
57 |
+ |
|
58 |
+ public long getGatherTime(){ |
|
59 |
+ return mPrefs.getLong("gatherTime",0); |
|
60 |
+ } |
|
61 |
+ |
|
54 | 62 |
public boolean isTourMode(){ |
55 | 63 |
return mPrefs.getBoolean("isTourMode",false); |
56 | 64 |
} |
@@ -1,12 +1,14 @@ |
||
1 | 1 |
package ai.pai.client.fragments; |
2 | 2 |
|
3 | 3 |
import android.content.Context; |
4 |
+import android.content.Intent; |
|
4 | 5 |
import android.os.AsyncTask; |
5 | 6 |
import android.os.Bundle; |
6 | 7 |
import android.support.v4.widget.SwipeRefreshLayout; |
7 | 8 |
import android.support.v7.widget.DefaultItemAnimator; |
8 | 9 |
import android.support.v7.widget.RecyclerView; |
9 | 10 |
import android.support.v7.widget.StaggeredGridLayoutManager; |
11 |
+import android.text.TextUtils; |
|
10 | 12 |
import android.view.LayoutInflater; |
11 | 13 |
import android.view.View; |
12 | 14 |
import android.view.ViewGroup; |
@@ -15,6 +17,7 @@ import android.widget.Toast; |
||
15 | 17 |
|
16 | 18 |
import com.android.common.executors.ThreadExecutor; |
17 | 19 |
import com.android.common.utils.LogHelper; |
20 |
+import com.android.common.utils.TimeUtils; |
|
18 | 21 |
import com.android.views.banner.CBViewHolderCreator; |
19 | 22 |
import com.android.views.banner.ConvenientBanner; |
20 | 23 |
import com.android.views.banner.Holder; |
@@ -30,13 +33,13 @@ import java.util.ArrayList; |
||
30 | 33 |
import java.util.Arrays; |
31 | 34 |
import java.util.HashMap; |
32 | 35 |
|
33 |
-import ai.pai.client.BuildConfig; |
|
34 | 36 |
import ai.pai.client.R; |
35 | 37 |
import ai.pai.client.adapter.RecentPhotoStaggeredAdapter; |
36 | 38 |
import ai.pai.client.beans.BannerBean; |
37 | 39 |
import ai.pai.client.beans.GroupPhotoItem; |
38 | 40 |
import ai.pai.client.db.DBService; |
39 | 41 |
import ai.pai.client.db.Preferences; |
42 |
+import ai.pai.client.services.MyLocationService; |
|
40 | 43 |
import ai.pai.client.utils.HttpPostTask; |
41 | 44 |
import ai.pai.client.utils.UrlContainer; |
42 | 45 |
import ai.pai.client.views.FullScreenImgPopup; |
@@ -58,15 +61,8 @@ public class TabRecentPhotoFragment extends BaseFragment implements SwipeRefresh |
||
58 | 61 |
private static final int num = 10; |
59 | 62 |
|
60 | 63 |
private ConvenientBanner banner; |
61 |
- private ArrayList<BannerBean> bannerBeanList; |
|
62 | 64 |
|
63 |
- private String[] images = {"http://img2.imgtn.bdimg.com/it/u=3093785514,1341050958&fm=21&gp=0.jpg", |
|
64 |
- "http://img2.3lian.com/2014/f2/37/d/40.jpg", |
|
65 |
- "http://img2.3lian.com/2014/f2/37/d/39.jpg", |
|
66 |
- "http://www.8kmm.com/UploadFiles/2012/8/201208140920132659.jpg", |
|
67 |
- "http://f.hiphotos.baidu.com/image/h%3D200/sign=1478eb74d5a20cf45990f9df460b4b0c/d058ccbf6c81800a5422e5fdb43533fa838b4779.jpg", |
|
68 |
- "http://f.hiphotos.baidu.com/image/pic/item/09fa513d269759ee50f1971ab6fb43166c22dfba.jpg" |
|
69 |
- }; |
|
65 |
+ private String[] images = new String[2]; |
|
70 | 66 |
|
71 | 67 |
@Override |
72 | 68 |
public void onCreate( Bundle savedInstanceState) { |
@@ -122,24 +118,9 @@ public class TabRecentPhotoFragment extends BaseFragment implements SwipeRefresh |
||
122 | 118 |
} |
123 | 119 |
|
124 | 120 |
private void fetchTourInfo(){ |
125 |
- if(!Preferences.getInstance(getActivity()).isTourMode() && !BuildConfig.DEBUG){ |
|
126 |
- return; |
|
127 |
- } |
|
128 | 121 |
if(fetchTourInfoTask!=null && fetchTourInfoTask.getStatus()== AsyncTask.Status.RUNNING){ |
129 | 122 |
return; |
130 | 123 |
} |
131 |
- if(BuildConfig.DEBUG){ |
|
132 |
- Preferences.getInstance(getActivity()).setTourGuidePhone("13811443340"); |
|
133 |
- bannerBeanList = new ArrayList<>(); |
|
134 |
- for(int k =0;k<6;k++){ |
|
135 |
- BannerBean bean = new BannerBean(); |
|
136 |
- bean.title = "title"+k; |
|
137 |
- bean.url = images[k]; |
|
138 |
- bannerBeanList.add(bean); |
|
139 |
- } |
|
140 |
- initBanner(); |
|
141 |
- return; |
|
142 |
- } |
|
143 | 124 |
HashMap<String,String> params = new HashMap<String,String>(); |
144 | 125 |
String userId = Preferences.getInstance(getActivity()).getUserId(); |
145 | 126 |
if(userId.length()==0){ |
@@ -156,8 +137,23 @@ public class TabRecentPhotoFragment extends BaseFragment implements SwipeRefresh |
||
156 | 137 |
JSONObject json = new JSONObject(response); |
157 | 138 |
int status = json.getInt("status"); |
158 | 139 |
if(status == 200){ |
159 |
- JSONObject info = json.getJSONObject("data"); |
|
160 |
- |
|
140 |
+ JSONObject data = json.getJSONObject("data"); |
|
141 |
+ String groupId = data.getString("group_id"); |
|
142 |
+ if(!TextUtils.isEmpty(groupId)){ |
|
143 |
+ Preferences.getInstance(context).setTourMode(true); |
|
144 |
+ JSONObject group = data.getJSONObject("group"); |
|
145 |
+ String phone = group.getString("phone"); |
|
146 |
+ Preferences.getInstance(context).setTourGuidePhone(phone); |
|
147 |
+ String gatherTimeStr = group.getString("gather_at"); |
|
148 |
+ Preferences.getInstance(context).setGatherTime(TimeUtils.getStandardTimeInMiliSec(gatherTimeStr)); |
|
149 |
+ JSONObject banners = group.getJSONObject("banners"); |
|
150 |
+ images[0] = banners.getString("attentions"); |
|
151 |
+ images[1] = banners.getString("schedules"); |
|
152 |
+ }else{ |
|
153 |
+ Preferences.getInstance(context).setTourMode(false); |
|
154 |
+ Preferences.getInstance(context).setTourGuidePhone(""); |
|
155 |
+ Preferences.getInstance(context).setGatherTime(0); |
|
156 |
+ } |
|
161 | 157 |
return true; |
162 | 158 |
} |
163 | 159 |
}catch (Exception e){ |
@@ -174,6 +170,16 @@ public class TabRecentPhotoFragment extends BaseFragment implements SwipeRefresh |
||
174 | 170 |
@Override |
175 | 171 |
protected void onPostSuccess(Context context) { |
176 | 172 |
super.onPostSuccess(context); |
173 |
+ initBanner(); |
|
174 |
+ if(Preferences.getInstance(context).isTourMode()){ |
|
175 |
+ Intent intent = new Intent(context, MyLocationService.class); |
|
176 |
+ intent.putExtra("command",MyLocationService.COMMAND_START_LOCATION); |
|
177 |
+ context.startService(intent); |
|
178 |
+ }else{ |
|
179 |
+ Intent intent = new Intent(context, MyLocationService.class); |
|
180 |
+ intent.putExtra("command",MyLocationService.COMMAND_DESTROY_LOCATION); |
|
181 |
+ context.startService(intent); |
|
182 |
+ } |
|
177 | 183 |
} |
178 | 184 |
}; |
179 | 185 |
fetchTourInfoTask.executeOnExecutor(ThreadExecutor.getInstance().getExecutor(), UrlContainer.TOUR_INFO_URL); |
@@ -181,7 +187,12 @@ public class TabRecentPhotoFragment extends BaseFragment implements SwipeRefresh |
||
181 | 187 |
} |
182 | 188 |
|
183 | 189 |
private void initBanner(){ |
190 |
+ if(TextUtils.isEmpty(images[0]) && TextUtils.isEmpty(images[1])){ |
|
191 |
+ banner.setVisibility(View.GONE); |
|
192 |
+ return; |
|
193 |
+ } |
|
184 | 194 |
banner.setVisibility(View.VISIBLE); |
195 |
+ |
|
185 | 196 |
banner.setPages(new CBViewHolderCreator<NetworkImageHolderView>() { |
186 | 197 |
@Override |
187 | 198 |
public NetworkImageHolderView createHolder() { |
@@ -219,7 +230,6 @@ public class TabRecentPhotoFragment extends BaseFragment implements SwipeRefresh |
||
219 | 230 |
protected void onPreExecute() { |
220 | 231 |
super.onPreExecute(); |
221 | 232 |
scrollListener.setLoading(true); |
222 |
-// swipeRefreshLayout.setRefreshing(true); |
|
223 | 233 |
} |
224 | 234 |
|
225 | 235 |
@Override |
@@ -293,14 +303,13 @@ public class TabRecentPhotoFragment extends BaseFragment implements SwipeRefresh |
||
293 | 303 |
|
294 | 304 |
@Override |
295 | 305 |
public void onItemClick(int position) { |
296 |
- new FullScreenImgPopup(getActivity(),bannerBeanList.get(position).url).showPopupWindow(); |
|
306 |
+ new FullScreenImgPopup(getActivity(),images[position]).showPopupWindow(); |
|
297 | 307 |
} |
298 | 308 |
|
299 | 309 |
public class NetworkImageHolderView implements Holder<String> { |
300 | 310 |
private ImageView imageView; |
301 | 311 |
@Override |
302 | 312 |
public View createView(Context context) { |
303 |
- //你可以通过layout文件来创建,也可以像我一样用代码创建,不一定是Image,任何控件都可以进行翻页 |
|
304 | 313 |
imageView = new ImageView(context); |
305 | 314 |
imageView.setScaleType(ImageView.ScaleType.FIT_XY); |
306 | 315 |
return imageView; |
@@ -71,13 +71,7 @@ public class MyLocationService extends Service { |
||
71 | 71 |
destroyLocation(); |
72 | 72 |
} |
73 | 73 |
|
74 |
- /** |
|
75 |
- * 初始化定位 |
|
76 |
- * |
|
77 |
- * @since 2.8.0 |
|
78 |
- * @author hongming.wang |
|
79 |
- * |
|
80 |
- */ |
|
74 |
+ |
|
81 | 75 |
private void initLocation(){ |
82 | 76 |
if(locationClient!=null){ |
83 | 77 |
return; |
@@ -91,12 +85,7 @@ public class MyLocationService extends Service { |
||
91 | 85 |
status = 0; |
92 | 86 |
} |
93 | 87 |
|
94 |
- /** |
|
95 |
- * 默认的定位参数 |
|
96 |
- * @since 2.8.0 |
|
97 |
- * @author hongming.wang |
|
98 |
- * |
|
99 |
- */ |
|
88 |
+ |
|
100 | 89 |
private AMapLocationClientOption getDefaultOption(){ |
101 | 90 |
AMapLocationClientOption mOption = new AMapLocationClientOption(); |
102 | 91 |
mOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);//可选,设置定位模式,可选的模式有高精度、仅设备、仅网络。默认为高精度模式 |
@@ -112,9 +101,6 @@ public class MyLocationService extends Service { |
||
112 | 101 |
return mOption; |
113 | 102 |
} |
114 | 103 |
|
115 |
- /** |
|
116 |
- * 定位监听 |
|
117 |
- */ |
|
118 | 104 |
AMapLocationListener locationListener = new AMapLocationListener() { |
119 | 105 |
@Override |
120 | 106 |
public void onLocationChanged(AMapLocation loc) { |
@@ -125,13 +111,6 @@ public class MyLocationService extends Service { |
||
125 | 111 |
}; |
126 | 112 |
|
127 | 113 |
|
128 |
- /** |
|
129 |
- * 开始定位 |
|
130 |
- * |
|
131 |
- * @since 2.8.0 |
|
132 |
- * @author hongming.wang |
|
133 |
- * |
|
134 |
- */ |
|
135 | 114 |
private void startLocation(){ |
136 | 115 |
if(status==1){ |
137 | 116 |
return; |
@@ -144,13 +123,6 @@ public class MyLocationService extends Service { |
||
144 | 123 |
status = 1; |
145 | 124 |
} |
146 | 125 |
|
147 |
- /** |
|
148 |
- * 停止定位 |
|
149 |
- * |
|
150 |
- * @since 2.8.0 |
|
151 |
- * @author hongming.wang |
|
152 |
- * |
|
153 |
- */ |
|
154 | 126 |
private void stopLocation(){ |
155 | 127 |
if(status == 2){ |
156 | 128 |
return; |
@@ -160,13 +132,6 @@ public class MyLocationService extends Service { |
||
160 | 132 |
status = 2; |
161 | 133 |
} |
162 | 134 |
|
163 |
- /** |
|
164 |
- * 销毁定位 |
|
165 |
- * |
|
166 |
- * @since 2.8.0 |
|
167 |
- * @author hongming.wang |
|
168 |
- * |
|
169 |
- */ |
|
170 | 135 |
private void destroyLocation(){ |
171 | 136 |
if (null != locationClient) { |
172 | 137 |
locationClient.onDestroy(); |
@@ -184,7 +149,7 @@ private void reportLocationWhenTourMode(double lat, double lon){ |
||
184 | 149 |
repeatTime = 0; |
185 | 150 |
lastLat = lat; |
186 | 151 |
lastLon = lon; |
187 |
- if(Preferences.getInstance(this).isTourMode()|| BuildConfig.DEBUG){ |
|
152 |
+ if(Preferences.getInstance(this).isTourMode()){ |
|
188 | 153 |
HashMap<String,String> params = new HashMap<String,String>(); |
189 | 154 |
String userId = Preferences.getInstance(this).getUserId(); |
190 | 155 |
if(userId.length()==0){ |
@@ -194,7 +159,7 @@ private void reportLocationWhenTourMode(double lat, double lon){ |
||
194 | 159 |
params.put("lon",String.valueOf(lon)); |
195 | 160 |
params.put("lat",String.valueOf(lat)); |
196 | 161 |
new HttpPostTask(this,params).executeOnExecutor(ThreadExecutor.getInstance().getExecutor(), UrlContainer.GEO_LOCATION_URL); |
197 |
- LogHelper.d("czy","reportLocationWhenTourMode lat = "+lat+"lon="+lon); |
|
162 |
+ LogHelper.dfile("czy","上报经纬度位置 lat = "+lat+"lon="+lon); |
|
198 | 163 |
} |
199 | 164 |
} |
200 | 165 |
|
@@ -84,5 +84,5 @@ public class UrlContainer { |
||
84 | 84 |
|
85 | 85 |
public static final String GEO_LOCATION_URL = HOST_URL+"geo/submit"; |
86 | 86 |
//TODO |
87 |
- public static final String TOUR_INFO_URL = HOST_URL +"tg/info"; |
|
87 |
+ public static final String TOUR_INFO_URL = HOST_URL +"pai2/tginfo"; |
|
88 | 88 |
} |
@@ -137,7 +137,7 @@ class FileLog { |
||
137 | 137 |
|
138 | 138 |
public FileLog() throws RuntimeException, IOException { |
139 | 139 |
File sdcard = new File(SD_CARD); |
140 |
- String fileName = "上传测试"+new SimpleDateFormat("MM-dd-HH-mm").format(new Date()) + ".log"; |
|
140 |
+ String fileName = "paiai-"+new SimpleDateFormat("MM-dd-HH-mm").format(new Date()) + ".log"; |
|
141 | 141 |
File logFile = new File(LOG_PATH+fileName); |
142 | 142 |
|
143 | 143 |
if (!sdcard.exists()) { |
@@ -1,6 +1,7 @@ |
||
1 | 1 |
package com.android.common.utils; |
2 | 2 |
|
3 | 3 |
import java.text.DateFormat; |
4 |
+import java.text.ParseException; |
|
4 | 5 |
import java.text.SimpleDateFormat; |
5 | 6 |
import java.util.Date; |
6 | 7 |
import java.util.TimeZone; |
@@ -53,6 +54,17 @@ public class TimeUtils { |
||
53 | 54 |
return utc2Local(utcTime, "yyyy-MM-dd'T'HH:mm:ss'Z'", "yyyy-MM-dd HH:mm"); |
54 | 55 |
} |
55 | 56 |
|
57 |
+ public static long getStandardTimeInMiliSec(String utcTime){ |
|
58 |
+ long time = 0; |
|
59 |
+ String standardTimeStr = getStandardTime(utcTime); |
|
60 |
+ try { |
|
61 |
+ Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(standardTimeStr); |
|
62 |
+ time = date.getTime(); |
|
63 |
+ } catch (ParseException e) { |
|
64 |
+ e.printStackTrace(); |
|
65 |
+ } |
|
66 |
+ return time; |
|
67 |
+ } |
|
56 | 68 |
|
57 | 69 |
public static String getFormattedTime(String utcTime) { |
58 | 70 |
String formattedTime = utc2Local(utcTime, "yyyy-MM-dd'T'HH:mm:ss'Z'", "yyyy-MM-dd HH:mm"); |