@@ -40,6 +40,7 @@ public class GroupActivity extends BaseActivity implements View.OnClickListener |
||
| 40 | 40 |
private GroupPhotoFragment photoFragment; |
| 41 | 41 |
private ImageButton cameraBtn; |
| 42 | 42 |
private static final int TAKE_PHOTO_REQUEST_CODE = 1; |
| 43 |
+ private static final int EXIT_GROUP_CODE = 2; |
|
| 43 | 44 |
|
| 44 | 45 |
@Override |
| 45 | 46 |
protected void onCreate(Bundle savedInstanceState) {
|
@@ -98,7 +99,7 @@ public class GroupActivity extends BaseActivity implements View.OnClickListener |
||
| 98 | 99 |
intent.putExtra("group_id", groupId);
|
| 99 | 100 |
intent.putExtra("avatar_id", defaultAvatarId);
|
| 100 | 101 |
intent.putExtra("group_name", groupName);
|
| 101 |
- startActivity(intent); |
|
| 102 |
+ startActivityForResult(intent,EXIT_GROUP_CODE); |
|
| 102 | 103 |
break; |
| 103 | 104 |
case R.id.floating_btn_camera: |
| 104 | 105 |
MobclickAgent.onEvent(this, UmengEvent.group_camera_btn_click); |
@@ -133,6 +134,7 @@ public class GroupActivity extends BaseActivity implements View.OnClickListener |
||
| 133 | 134 |
|
| 134 | 135 |
@Override |
| 135 | 136 |
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
| 137 |
+ super.onActivityResult(requestCode, resultCode, data); |
|
| 136 | 138 |
if (resultCode == Activity.RESULT_OK && requestCode == TAKE_PHOTO_REQUEST_CODE) {
|
| 137 | 139 |
if (photoFragment != null && photoFragment.isAdded()) {
|
| 138 | 140 |
// Intent intent = new Intent(this,PhotoUploadActivity.class); |
@@ -142,7 +144,10 @@ public class GroupActivity extends BaseActivity implements View.OnClickListener |
||
| 142 | 144 |
uploadPhoto(photoFile.getAbsolutePath()); |
| 143 | 145 |
} |
| 144 | 146 |
} |
| 145 |
- super.onActivityResult(requestCode, resultCode, data); |
|
| 147 |
+ if (resultCode == Activity.RESULT_OK && requestCode == EXIT_GROUP_CODE) {
|
|
| 148 |
+ finish(); |
|
| 149 |
+ return; |
|
| 150 |
+ } |
|
| 146 | 151 |
} |
| 147 | 152 |
|
| 148 | 153 |
private void uploadPhoto(String path) {
|
@@ -249,7 +249,8 @@ public class GroupSettingActivity extends BaseActivity implements View.OnClickLi |
||
| 249 | 249 |
break; |
| 250 | 250 |
case GroupService.GroupCommand.COMMAND_QUIT_GROUP: |
| 251 | 251 |
Toast.makeText(getApplicationContext(), R.string.quit_group_success, Toast.LENGTH_SHORT).show(); |
| 252 |
- DBService.getInstance(getApplicationContext()).deleteGroupByGroupId(groupId); |
|
| 252 |
+ DBService.getInstance(getApplicationContext()).deleteGroupRelated(groupId); |
|
| 253 |
+ setResult(RESULT_OK); |
|
| 253 | 254 |
finish(); |
| 254 | 255 |
break; |
| 255 | 256 |
} |
@@ -85,7 +85,7 @@ public class HistoryGroupAdapter extends RecyclerView.Adapter<HistoryGroupAdapte |
||
| 85 | 85 |
|
| 86 | 86 |
groupList.remove(holder.getAdapterPosition()); |
| 87 | 87 |
notifyItemRemoved(holder.getAdapterPosition()); |
| 88 |
- DBService.getInstance(context).deleteGroupByGroupId(info.groupId); |
|
| 88 |
+ DBService.getInstance(context).deleteGroupRelated(info.groupId); |
|
| 89 | 89 |
if(listener!=null){
|
| 90 | 90 |
listener.onGroupDeleted(info); |
| 91 | 91 |
} |
@@ -366,7 +366,7 @@ public class DBService {
|
||
| 366 | 366 |
addNewGroup(newGroupInfo); |
| 367 | 367 |
} |
| 368 | 368 |
|
| 369 |
- public void deleteGroupByGroupId(String groupId) {
|
|
| 369 |
+ private void deleteGroupByGroupId(String groupId) {
|
|
| 370 | 370 |
if (TextUtils.isEmpty(groupId)) {
|
| 371 | 371 |
return; |
| 372 | 372 |
} |
@@ -544,6 +544,67 @@ public class DBService {
|
||
| 544 | 544 |
return photoBean; |
| 545 | 545 |
} |
| 546 | 546 |
|
| 547 |
+ public void deleteGroupRelated(final String groupId){
|
|
| 548 |
+ new Thread(new Runnable() {
|
|
| 549 |
+ @Override |
|
| 550 |
+ public void run() {
|
|
| 551 |
+ deleteGroupByGroupId(groupId); |
|
| 552 |
+ deleteGroupPhotos(groupId); |
|
| 553 |
+ deleteRecentPhotos(groupId); |
|
| 554 |
+ } |
|
| 555 |
+ }).start(); |
|
| 556 |
+ } |
|
| 557 |
+ |
|
| 558 |
+ private void deleteGroupPhotos(String groupId){
|
|
| 559 |
+ if (TextUtils.isEmpty(groupId)) {
|
|
| 560 |
+ return; |
|
| 561 |
+ } |
|
| 562 |
+ SQLiteDatabase db = null; |
|
| 563 |
+ synchronized (DB_LOCK) {
|
|
| 564 |
+ try {
|
|
| 565 |
+ db = dbHelper.getReadableDatabase(); |
|
| 566 |
+ db.beginTransaction(); |
|
| 567 |
+ db.execSQL("delete from " + DBHelper.PHOTO_INFO_TABLE + " where "
|
|
| 568 |
+ + DBHelper.PHOTO_INFO_COLUMNS.PHOTO_GROUP_ID + " = '" + groupId + "'"); |
|
| 569 |
+ db.setTransactionSuccessful(); |
|
| 570 |
+ } catch (Exception e) {
|
|
| 571 |
+ LogHelper.d(TAG, "dbservice deleteGroupPhotos error happen " + e); |
|
| 572 |
+ } finally {
|
|
| 573 |
+ try {
|
|
| 574 |
+ db.endTransaction(); |
|
| 575 |
+ } catch (Exception e) {
|
|
| 576 |
+ e.printStackTrace(); |
|
| 577 |
+ } |
|
| 578 |
+ closeCursorAndDB(null, db); |
|
| 579 |
+ } |
|
| 580 |
+ } |
|
| 581 |
+ } |
|
| 582 |
+ |
|
| 583 |
+ private void deleteRecentPhotos(String groupId){
|
|
| 584 |
+ if (TextUtils.isEmpty(groupId)) {
|
|
| 585 |
+ return; |
|
| 586 |
+ } |
|
| 587 |
+ SQLiteDatabase db = null; |
|
| 588 |
+ synchronized (DB_LOCK) {
|
|
| 589 |
+ try {
|
|
| 590 |
+ db = dbHelper.getReadableDatabase(); |
|
| 591 |
+ db.beginTransaction(); |
|
| 592 |
+ db.execSQL("delete from " + DBHelper.RECENT_PHOTO_TABLE + " where "
|
|
| 593 |
+ + DBHelper.PHOTO_INFO_COLUMNS.PHOTO_GROUP_ID + " = '" + groupId + "'"); |
|
| 594 |
+ db.setTransactionSuccessful(); |
|
| 595 |
+ } catch (Exception e) {
|
|
| 596 |
+ LogHelper.d(TAG, "dbservice deleteGroupPhotos error happen " + e); |
|
| 597 |
+ } finally {
|
|
| 598 |
+ try {
|
|
| 599 |
+ db.endTransaction(); |
|
| 600 |
+ } catch (Exception e) {
|
|
| 601 |
+ e.printStackTrace(); |
|
| 602 |
+ } |
|
| 603 |
+ closeCursorAndDB(null, db); |
|
| 604 |
+ } |
|
| 605 |
+ } |
|
| 606 |
+ } |
|
| 607 |
+ |
|
| 547 | 608 |
public void clearDB(){
|
| 548 | 609 |
SQLiteDatabase db = null; |
| 549 | 610 |
try{
|