待补充 @lbt05
Activity
[-]review建议[/-][+]review 建议[/+]lzwjava commentedon Nov 4, 2014
@jwfing
jwfing commentedon Nov 4, 2014
1,LoginActivity 里面放一个 LoginBroadcastReceiver 有什么用?
2,UserService.java L128 public static User signUp(String name, boolean isMale, String password) throws AVException, FileNotFoundException 这里什么时候会抛出FileNotFoundException?
3,com.avoscloud.chat.service 这个包下面的类需要整理一下,GroupMsgReceiver这是一个receiver,EmotionService这应该只是一个工具类,PrefDao这应该是本地序列化存储的类,GroupService/UserService这应该相当于DAO的一些功能类,现在这样全部放在service里面,容易和Android的Service混淆,结构也不清晰。
4,com.avoscloud.chat.db 这个包下面的DBHelper类,对版本升级支持不够,本地缓存的数据不能直接清掉的。
jwfing commentedon Nov 4, 2014
1,MainActivity private Activity ctx; 变量声明和父类冲突
2,MainActivity L72 private void testSavaAvatar() 请删掉
3,MainActivity 注释掉的测试代码请删掉
4,UpdateService L59 public static void createUpdateInfoInBackground()/L173 public static void createUpdateInfo() throws AVException 请删掉
jwfing commentedon Nov 4, 2014
1,public class App extends Application 这里singleton的机制应该不需要,通过 activity/context 可以得到唯一的application。并且这里在构造函数中给static变量赋值,也违反一些使用规范。
2,ChatActivity 类 public static ChatActivity instance 可以删掉;
3,MainActivity L122 PrefDao prefDao = new PrefDao(ctx, user.getObjectId()); 这一行应该在下面的if (user != null) {}语句块中。
4,MySpaceFragment L184 PhotoUtil.saveBitmap(PathUtils.getAvatarDir(), filename,
bitmap, true); 应该先判断bitmap是否为null
lbt05 commentedon Nov 5, 2014
1.ViewHolder类其实并不是一个ViewHolder,而是一个工具类。与Android文档的出入比较大,推荐改名并且移到Util包中。
2.推荐用gender来替换Sex。。。sex虽然也有性别的意思,但是在语义上过分宽泛。
3.PixelUtil中间,请将重复的方法去除。在使用getResources().getDisplayMetrics()时,值的变化仅仅与当前的系统有关,与activity或者application无关。所以没有必要存在有无Context的两个重写方法
lzwjava:
2、3已修复。
lzwjava commentedon Nov 5, 2014
持续改进中。https://github.com/leancloud/leanchat-android/commit/10a983df959d8492bbcf117def77009a420d0ec4
lbt05 commentedon Nov 5, 2014
1.UpdateService里面的createUpdateInfo相关代码是用来干嘛的,看着跟本意格格不入
2.搜索一下你的代码库,找一下“Activity ctx”,全部替换成Context ctx
3.String.length()>0这种还是用!String.isEmpty()替换一下
4.PersonInfoActivity里面的updateView方法内,头像加载的代码既写了UserService.displayAvatar又写了ImageLoader.displayImage,重复。
5.AddFriendAdapter里面放着一个static的方法来runAddFriendTask,不是很合适。可以迁移到AddRequestService里面去。
6.GroupAddDialog的调用是不是已经被去除了
lzwjava:
1.createUpdateInfo为了生成一行记录,这样就不用在管理台设置字段了,为了用在自动更新组件中。
2.其它已修复。
lbt05 commentedon Nov 5, 2014
1.ContactFragment 为啥一定要调用一个空的findView.
lzwjava: fixed
jwfing commentedon Nov 5, 2014
1.public class Msg {
public enum Status{
...}}
Status应该声明成 static 的。
2. public class Msg {
public enum Type{
Text(0), Response(1), Image(2), Audio(3), Location(4);
}}
这里 Response 这个类型应该删掉。结合现在最新的SDK,看看以前实现中有哪些workaround的地方,都改过来吧。
lzwjava:第一点已改正,第二点等待sdk上线
jwfing commentedon Nov 25, 2014
1,com.avoscloud.chat.avobject 这个作为包名是不合适的,avobject 会被认为是一个类的名字,建议和 com.avoscloud.chat.entity 合并起来;
2,com.avoscloud.chat.avobject.AddRequest 这个作为类名是不合适的,AddRequest 会被认为是一个动宾短语,不像名词。
3,类名不需要缩写,譬如 Msg/C 这样的类名都需要改掉;