Skip to content

Commit c95b571

Browse files
committed
Client:新增扫码查看用户;优化二维码展示数据;SettingFragment重命名为MineFragment;删除comment_view无用的代码;删除无用的assets文件
1 parent 8406bac commit c95b571

File tree

9 files changed

+244
-49
lines changed

9 files changed

+244
-49
lines changed
Binary file not shown.

APIJSON(Android)/APIJSON(ADT)/APIJSONApp/APIJSONApp/assets/demo.cer

Whitespace-only changes.

APIJSON(Android)/APIJSON(ADT)/APIJSONApp/APIJSONApp/res/layout/comment_view.xml

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -67,17 +67,6 @@
6767
android:id="@+id/llCommentContainer"
6868
style="@style/ll_vertical_match_wrap" >
6969
</LinearLayout>
70-
71-
<TextView
72-
android:id="@+id/tvCommentMore"
73-
style="@style/text_small_blue"
74-
android:layout_width="match_parent"
75-
android:background="@drawable/bg_item_to_alpha"
76-
android:gravity="left|center_vertical"
77-
android:paddingBottom="4dp"
78-
android:paddingTop="4dp"
79-
android:text="查看所有"
80-
android:visibility="gone" />
8170
</LinearLayout>
8271
</RelativeLayout>
8372

APIJSON(Android)/APIJSON(ADT)/APIJSONApp/APIJSONApp/res/layout/setting_fragment.xml renamed to APIJSON(Android)/APIJSON(ADT)/APIJSONApp/APIJSONApp/res/layout/mine_fragment.xml

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -66,20 +66,6 @@
6666
style="@style/divider_horizontal_1px"
6767
android:layout_marginBottom="30dp" />
6868

69-
<LinearLayout
70-
android:id="@+id/llSettingSetting"
71-
style="@style/content_item_white" >
72-
73-
<TextView
74-
style="@style/content_item_lf_tv"
75-
android:layout_weight="1"
76-
android:text="个人设置" />
77-
78-
<ImageView style="@style/content_item_rt_img" />
79-
</LinearLayout>
80-
81-
<View style="@style/divider_horizontal_1px" />
82-
8369
<LinearLayout
8470
android:id="@+id/llSettingAbout"
8571
style="@style/content_item_white" >

APIJSON(Android)/APIJSON(ADT)/APIJSONApp/APIJSONApp/src/apijson/demo/client/activity_fragment/MainTabActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ protected Fragment getFragment(int position) {
130130
fragment.setSearchType(EditTextInfoWindow.TYPE_NAME);
131131
return fragment;
132132
case 2:
133-
return SettingFragment.createInstance();
133+
return MineFragment.createInstance();
134134
default:
135135
return MomentListFragment.createInstance();
136136
}
Lines changed: 121 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,20 @@
1919
import zuo.biao.apijson.JSONResponse;
2020
import zuo.biao.apijson.StringUtil;
2121
import zuo.biao.library.base.BaseView.OnDataChangedListener;
22+
import zuo.biao.library.interfaces.OnBottomDragListener;
2223
import zuo.biao.library.manager.HttpManager.OnHttpResponseListener;
2324
import zuo.biao.library.ui.AlertDialog;
2425
import zuo.biao.library.ui.AlertDialog.OnDialogButtonClickListener;
26+
import zuo.biao.library.ui.WebViewActivity;
27+
import zuo.biao.library.util.CommonUtil;
2528
import zuo.biao.library.util.DownloadUtil;
2629
import zuo.biao.library.util.ImageLoaderUtil;
2730
import zuo.biao.library.util.Log;
31+
import android.annotation.SuppressLint;
32+
import android.app.Activity;
2833
import android.content.Intent;
2934
import android.os.Bundle;
35+
import android.view.Gravity;
3036
import android.view.LayoutInflater;
3137
import android.view.View;
3238
import android.view.View.OnClickListener;
@@ -36,25 +42,26 @@
3642
import apijson.demo.client.R;
3743
import apijson.demo.client.application.APIJSONApplication;
3844
import apijson.demo.client.base.BaseFragment;
45+
import apijson.demo.client.interfaces.TopBarMenuCallback;
3946
import apijson.demo.client.model.Login;
4047
import apijson.demo.client.model.User;
4148
import apijson.demo.client.util.HttpRequest;
4249

4350
/**设置fragment
4451
* @author Lemon
45-
* @use new SettingFragment(),详细使用见.DemoFragmentActivity(initData方法内)
52+
* @use new MineFragment(),详细使用见.DemoFragmentActivity(initData方法内)
4653
*/
47-
public class SettingFragment extends BaseFragment implements OnClickListener, OnDialogButtonClickListener
48-
, OnHttpResponseListener, OnDataChangedListener {
49-
private static final String TAG = "SettingFragment";
54+
public class MineFragment extends BaseFragment implements OnClickListener, OnDialogButtonClickListener
55+
, OnHttpResponseListener, OnBottomDragListener, TopBarMenuCallback, OnDataChangedListener {
56+
private static final String TAG = "MineFragment";
5057

5158
//与Activity通信<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
5259

5360
/**创建一个Fragment实例
5461
* @return
5562
*/
56-
public static SettingFragment createInstance() {
57-
return new SettingFragment();
63+
public static MineFragment createInstance() {
64+
return new MineFragment();
5865
}
5966

6067
//与Activity通信>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -65,17 +72,17 @@ public static SettingFragment createInstance() {
6572
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
6673
//类相关初始化,必须使用<<<<<<<<<<<<<<<<
6774
super.onCreateView(inflater, container, savedInstanceState);
68-
setContentView(R.layout.setting_fragment);
75+
setContentView(R.layout.mine_fragment);
6976
//类相关初始化,必须使用>>>>>>>>>>>>>>>>
7077

7178
registerObserver(this);
72-
79+
7380
//功能归类分区方法,必须调用<<<<<<<<<<
7481
initView();
7582
initData();
7683
initEvent();
7784
//功能归类分区方法,必须调用>>>>>>>>>>
78-
85+
7986
return view;
8087
}
8188

@@ -114,6 +121,43 @@ public void run() {
114121
}
115122

116123

124+
private TextView leftMenu;
125+
@SuppressLint("InflateParams")
126+
@Override
127+
public View getLeftMenu(Activity activity) {
128+
if (leftMenu == null) {
129+
leftMenu = (TextView) LayoutInflater.from(activity).inflate(R.layout.top_right_tv, null);
130+
leftMenu.setGravity(Gravity.CENTER);
131+
leftMenu.setText("扫一扫");
132+
leftMenu.setOnClickListener(new OnClickListener() {
133+
134+
@Override
135+
public void onClick(View v) {
136+
onDragBottom(false);
137+
}
138+
});
139+
}
140+
return leftMenu;
141+
}
142+
143+
private TextView rightMenu;
144+
@SuppressLint("InflateParams")
145+
@Override
146+
public View getRightMenu(Activity activity) {
147+
if (rightMenu == null) {
148+
rightMenu = (TextView) LayoutInflater.from(activity).inflate(R.layout.top_right_tv, null);
149+
rightMenu.setGravity(Gravity.CENTER);
150+
rightMenu.setText("设置");
151+
rightMenu.setOnClickListener(new OnClickListener() {
152+
153+
@Override
154+
public void onClick(View v) {
155+
onDragBottom(true);
156+
}
157+
});
158+
}
159+
return rightMenu;
160+
}
117161

118162
//UI显示区(操作UI,但不存在数据获取或处理代码,也不存在事件监听代码)>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
119163

@@ -131,15 +175,15 @@ public void run() {
131175
@Override
132176
public void initData() {//必须调用
133177
super.initData();
134-
178+
135179
}
136180

137181
@Override
138182
public void onDataChanged() {
139183
setUser(APIJSONApplication.getInstance().getCurrentUser());
140184
}
141185

142-
186+
143187
/**下载应用
144188
*/
145189
private void downloadApp() {
@@ -184,13 +228,30 @@ public void initEvent() {//必须调用
184228
findViewById(R.id.llSettingMoment).setOnClickListener(this);
185229
findViewById(R.id.llSettingWallet).setOnClickListener(this);
186230

187-
findViewById(R.id.llSettingSetting).setOnClickListener(this);
188231
findViewById(R.id.llSettingAbout).setOnClickListener(this);
189232
findViewById(R.id.llSettingTest).setOnClickListener(this);
190233
findViewById(R.id.llSettingLogout).setOnClickListener(this);
191234
}
192235

193236

237+
@Override
238+
public void onDragBottom(boolean rightToLeft) {
239+
if (isAlive() == false) {
240+
return;
241+
}
242+
243+
if (rightToLeft) {
244+
245+
toActivity(SettingActivity.createIntent(context));
246+
return;
247+
}
248+
249+
startActivityForResult(ScanActivity.createIntent(context), REQUEST_TO_SCAN);
250+
context.overridePendingTransition(R.anim.bottom_push_in, R.anim.fade);
251+
}
252+
253+
254+
194255
@Override
195256
public void onDialogButtonClick(int requestCode, boolean isPositive) {
196257
if (! isPositive) {
@@ -218,9 +279,6 @@ public void onDialogButtonClick(int requestCode, boolean isPositive) {
218279
@Override
219280
public void onClick(View v) {//直接调用不会显示v被点击效果
220281
switch (v.getId()) {
221-
case R.id.llSettingSetting:
222-
toActivity(SettingActivity.createIntent(context));
223-
break;
224282
case R.id.llSettingAbout:
225283
toActivity(AboutActivity.createIntent(context));
226284
break;
@@ -276,6 +334,54 @@ public void onHttpResponse(int requestCode, String resultJson, Exception e) {
276334

277335
//类相关监听<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
278336

337+
private static final int REQUEST_TO_SCAN = 1;
338+
@Override
339+
public void onActivityResult(int requestCode, int resultCode, Intent data) {
340+
super.onActivityResult(requestCode, resultCode, data);
341+
if (resultCode != RESULT_OK) {
342+
return;
343+
}
344+
switch (requestCode) {
345+
case REQUEST_TO_SCAN:
346+
String result = data == null ? null : data.getStringExtra(ScanActivity.RESULT_QRCODE_STRING);
347+
if (StringUtil.isEmpty(result, true) == false) {
348+
if (StringUtil.isUrl(result)) {
349+
int index = result.indexOf("{\"User\":{");
350+
if (index > 0) {
351+
JSONResponse response = new JSONResponse(result.substring(index));
352+
User user = response.getObject(User.class);
353+
long id = user == null ? 0 : user.getId();
354+
if (id > 0) {
355+
toActivity(UserActivity.createIntent(context, id));
356+
break;
357+
}
358+
}
359+
toActivity(WebViewActivity.createIntent(context, "扫描结果", result));
360+
} else {
361+
CommonUtil.copyText(context, result);
362+
}
363+
}
364+
break;
365+
default:
366+
break;
367+
}
368+
}
369+
370+
371+
372+
@Override
373+
public void onDestroy() {
374+
if (leftMenu != null) {
375+
leftMenu.destroyDrawingCache();
376+
leftMenu = null;
377+
}
378+
if (rightMenu != null) {
379+
rightMenu.destroyDrawingCache();
380+
rightMenu = null;
381+
}
382+
383+
super.onDestroy();
384+
}
279385

280386

281387
//类相关监听>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

APIJSON(Android)/APIJSON(ADT)/APIJSONApp/APIJSONApp/src/apijson/demo/client/activity_fragment/QRCodeActivity.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
package apijson.demo.client.activity_fragment;
1616

17+
import zuo.biao.apijson.JSONRequest;
1718
import zuo.biao.library.base.BaseActivity;
1819
import zuo.biao.library.interfaces.OnBottomDragListener;
1920
import zuo.biao.library.manager.CacheManager;
@@ -31,6 +32,7 @@
3132
import android.widget.TextView;
3233
import apijson.demo.client.R;
3334
import apijson.demo.client.model.User;
35+
import apijson.demo.client.util.HttpRequest;
3436

3537
import com.google.zxing.WriterException;
3638
import com.zxing.encoding.EncodingHandler;
@@ -145,14 +147,16 @@ public void run() {
145147

146148
private Bitmap qRCodeBitmap;
147149
protected void setQRCode(User user) {
148-
if (user == null) {
149-
Log.e(TAG, "setQRCode user == null" +
150-
" || StringUtil.isNotEmpty(user.getPhone(), true) == false >> return;");
151-
return;
152-
}
150+
// if (user == null) {
151+
// Log.e(TAG, "setQRCode user == null" +
152+
// " || StringUtil.isNotEmpty(user.getPhone(), true) == false >> return;");
153+
// return;
154+
// }
153155

154156
try {
155-
qRCodeBitmap = EncodingHandler.createQRCode(JSON.toJSONString(user)
157+
//不能暴露用户隐私
158+
qRCodeBitmap = EncodingHandler.createQRCode(HttpRequest.URL_GET
159+
+ JSON.toJSONString(new JSONRequest(new apijson.demo.server.model.User(userId)))
156160
, (int) (2 * getResources().getDimension(R.dimen.qrcode_size)));
157161
} catch (WriterException e) {
158162
e.printStackTrace();

APIJSON(Android)/APIJSON(ADT)/APIJSONApp/APIJSONApp/src/apijson/demo/client/activity_fragment/ScanActivity.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import android.view.View;
2525
import android.view.View.OnClickListener;
2626
import apijson.demo.client.R;
27+
import apijson.demo.client.application.APIJSONApplication;
2728

2829
import com.zxing.activity.CaptureActivity;
2930
import com.zxing.view.ViewfinderView;
@@ -119,10 +120,11 @@ public void initEvent() {//必须调用
119120
@Override
120121
public void onReturnClick(View v) {
121122
finish();
122-
}
123+
}
123124
@Override
124125
public void onForwardClick(View v) {
125-
CommonUtil.toActivity(context, QRCodeActivity.createIntent(context, 1));
126+
CommonUtil.toActivity(context, QRCodeActivity.createIntent(context
127+
, APIJSONApplication.getInstance().getCurrentUserId()));
126128
}
127129

128130
//系统自带监听方法<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

0 commit comments

Comments
 (0)