clean up in attachment chooser code. fixed #1168
This commit is contained in:
		
							parent
							
								
									e388c75452
								
							
						
					
					
						commit
						61fd5d6696
					
				|  | @ -398,61 +398,61 @@ public class ConversationActivity extends XmppActivity | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	private void selectPresenceToAttachFile(final int attachmentChoice, final int encryption) { | 	private void selectPresenceToAttachFile(final int attachmentChoice, final int encryption) { | ||||||
|  | 		final OnPresenceSelected callback = new OnPresenceSelected() { | ||||||
|  | 
 | ||||||
|  | 			@Override | ||||||
|  | 			public void onPresenceSelected() { | ||||||
|  | 				Intent intent = new Intent(); | ||||||
|  | 				boolean chooser = false; | ||||||
|  | 				String fallbackPackageId = null; | ||||||
|  | 				switch (attachmentChoice) { | ||||||
|  | 					case ATTACHMENT_CHOICE_CHOOSE_IMAGE: | ||||||
|  | 						intent.setAction(Intent.ACTION_GET_CONTENT); | ||||||
|  | 						if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { | ||||||
|  | 							intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE,true); | ||||||
|  | 						} | ||||||
|  | 						intent.setType("image/*"); | ||||||
|  | 						chooser = true; | ||||||
|  | 						break; | ||||||
|  | 					case ATTACHMENT_CHOICE_TAKE_PHOTO: | ||||||
|  | 						Uri uri = xmppConnectionService.getFileBackend().getTakePhotoUri(); | ||||||
|  | 						intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE); | ||||||
|  | 						intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); | ||||||
|  | 						mPendingImageUris.clear(); | ||||||
|  | 						mPendingImageUris.add(uri); | ||||||
|  | 						break; | ||||||
|  | 					case ATTACHMENT_CHOICE_CHOOSE_FILE: | ||||||
|  | 						chooser = true; | ||||||
|  | 						intent.setType("*/*"); | ||||||
|  | 						intent.addCategory(Intent.CATEGORY_OPENABLE); | ||||||
|  | 						intent.setAction(Intent.ACTION_GET_CONTENT); | ||||||
|  | 						break; | ||||||
|  | 					case ATTACHMENT_CHOICE_RECORD_VOICE: | ||||||
|  | 						intent.setAction(MediaStore.Audio.Media.RECORD_SOUND_ACTION); | ||||||
|  | 						break; | ||||||
|  | 					case ATTACHMENT_CHOICE_LOCATION: | ||||||
|  | 						intent.setAction("eu.siacs.conversations.location.request"); | ||||||
|  | 						fallbackPackageId = "eu.siacs.conversations.sharelocation"; | ||||||
|  | 						break; | ||||||
|  | 				} | ||||||
|  | 				if (intent.resolveActivity(getPackageManager()) != null) { | ||||||
|  | 					if (chooser) { | ||||||
|  | 						startActivityForResult( | ||||||
|  | 								Intent.createChooser(intent, getString(R.string.perform_action_with)), | ||||||
|  | 								attachmentChoice); | ||||||
|  | 					} else { | ||||||
|  | 						startActivityForResult(intent, attachmentChoice); | ||||||
|  | 					} | ||||||
|  | 				} else if (fallbackPackageId != null) { | ||||||
|  | 					startActivity(getInstallApkIntent(fallbackPackageId)); | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		}; | ||||||
| 		if (attachmentChoice == ATTACHMENT_CHOICE_LOCATION && encryption != Message.ENCRYPTION_OTR) { | 		if (attachmentChoice == ATTACHMENT_CHOICE_LOCATION && encryption != Message.ENCRYPTION_OTR) { | ||||||
| 			getSelectedConversation().setNextCounterpart(null); | 			getSelectedConversation().setNextCounterpart(null); | ||||||
| 			Intent intent = new Intent("eu.siacs.conversations.location.request"); | 			callback.onPresenceSelected(); | ||||||
| 			startActivityForResult(intent,attachmentChoice); |  | ||||||
| 		} else { | 		} else { | ||||||
| 			selectPresence(getSelectedConversation(), new OnPresenceSelected() { | 			selectPresence(getSelectedConversation(),callback); | ||||||
| 
 |  | ||||||
| 				@Override |  | ||||||
| 				public void onPresenceSelected() { |  | ||||||
| 					Intent intent = new Intent(); |  | ||||||
| 					boolean chooser = false; |  | ||||||
| 					String fallbackPackageId = null; |  | ||||||
| 					switch (attachmentChoice) { |  | ||||||
| 						case ATTACHMENT_CHOICE_CHOOSE_IMAGE: |  | ||||||
| 							intent.setAction(Intent.ACTION_GET_CONTENT); |  | ||||||
| 							if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { |  | ||||||
| 								intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE,true); |  | ||||||
| 							} |  | ||||||
| 							intent.setType("image/*"); |  | ||||||
| 							chooser = true; |  | ||||||
| 							break; |  | ||||||
| 						case ATTACHMENT_CHOICE_TAKE_PHOTO: |  | ||||||
| 							Uri uri = xmppConnectionService.getFileBackend().getTakePhotoUri(); |  | ||||||
| 							intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE); |  | ||||||
| 							intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); |  | ||||||
| 							mPendingImageUris.clear(); |  | ||||||
| 							mPendingImageUris.add(uri); |  | ||||||
| 							break; |  | ||||||
| 						case ATTACHMENT_CHOICE_CHOOSE_FILE: |  | ||||||
| 							chooser = true; |  | ||||||
| 							intent.setType("*/*"); |  | ||||||
| 							intent.addCategory(Intent.CATEGORY_OPENABLE); |  | ||||||
| 							intent.setAction(Intent.ACTION_GET_CONTENT); |  | ||||||
| 							break; |  | ||||||
| 						case ATTACHMENT_CHOICE_RECORD_VOICE: |  | ||||||
| 							intent.setAction(MediaStore.Audio.Media.RECORD_SOUND_ACTION); |  | ||||||
| 							break; |  | ||||||
| 						case ATTACHMENT_CHOICE_LOCATION: |  | ||||||
| 							intent.setAction("eu.siacs.conversations.location.request"); |  | ||||||
| 							fallbackPackageId = "eu.siacs.conversations.sharelocation"; |  | ||||||
| 							break; |  | ||||||
| 					} |  | ||||||
| 					if (intent.resolveActivity(getPackageManager()) != null) { |  | ||||||
| 						if (chooser) { |  | ||||||
| 							startActivityForResult( |  | ||||||
| 									Intent.createChooser(intent, getString(R.string.perform_action_with)), |  | ||||||
| 									attachmentChoice); |  | ||||||
| 						} else { |  | ||||||
| 							startActivityForResult(intent, attachmentChoice); |  | ||||||
| 						} |  | ||||||
| 					} else if (fallbackPackageId != null) { |  | ||||||
| 						startActivity(getInstallApkIntent(fallbackPackageId)); |  | ||||||
| 					} |  | ||||||
| 				} |  | ||||||
| 			}); |  | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Daniel Gultsch
						Daniel Gultsch