mirror of
				https://github.com/nerzhul/ownCloud-SMS-App.git
				synced 2025-10-28 00:49:00 +00:00 
			
		
		
		
	
							parent
							
								
									6759409188
								
							
						
					
					
						commit
						b3be3130b3
					
				| @ -0,0 +1,32 @@ | ||||
| package fr.unix_experience.owncloud_sms.enums; | ||||
| 
 | ||||
| /* | ||||
|  * Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr> | ||||
|  * All rights reserved. | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions | ||||
|  * are met: | ||||
|  * 1. Redistributions of source code must retain the above copyright | ||||
|  *    notice, this list of conditions and the following disclaimer. | ||||
|  * 2. Redistributions in binary form must reproduce the above copyright | ||||
|  *    notice, this list of conditions and the following disclaimer in the | ||||
|  *    documentation and/or other materials provided with the distribution. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||||
|  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||
|  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||||
|  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||||
|  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||||
|  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||||
|  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||||
|  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||||
|  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||||
|  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||||
|  * SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| public enum PermissionID { | ||||
|     REQUEST_SMS, | ||||
|     REQUEST_CONTACTS, | ||||
|     REQUEST_MAX, | ||||
| } | ||||
| @ -0,0 +1,87 @@ | ||||
| package fr.unix_experience.owncloud_sms.prefs; | ||||
| 
 | ||||
| /* | ||||
|  * Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr> | ||||
|  * All rights reserved. | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions | ||||
|  * are met: | ||||
|  * 1. Redistributions of source code must retain the above copyright | ||||
|  *    notice, this list of conditions and the following disclaimer. | ||||
|  * 2. Redistributions in binary form must reproduce the above copyright | ||||
|  *    notice, this list of conditions and the following disclaimer in the | ||||
|  *    documentation and/or other materials provided with the distribution. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||||
|  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||
|  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||||
|  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||||
|  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||||
|  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||||
|  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||||
|  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||||
|  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||||
|  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||||
|  * SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| import android.app.Activity; | ||||
| import android.app.AlertDialog; | ||||
| import android.content.Context; | ||||
| import android.content.DialogInterface; | ||||
| import android.content.pm.PackageManager; | ||||
| import android.support.v4.app.ActivityCompat; | ||||
| import android.support.v4.content.ContextCompat; | ||||
| 
 | ||||
| import fr.unix_experience.owncloud_sms.R; | ||||
| import fr.unix_experience.owncloud_sms.enums.OCSMSNotificationType; | ||||
| import fr.unix_experience.owncloud_sms.enums.PermissionID; | ||||
| import fr.unix_experience.owncloud_sms.notifications.OCSMSNotificationUI; | ||||
| 
 | ||||
| public class PermissionChecker { | ||||
|     public static boolean checkPermission(final Context context, final String permissionName, | ||||
|             final PermissionID permissionId) { | ||||
|         int hasWriteContactsPermission = ContextCompat.checkSelfPermission(context, permissionName); | ||||
|         if (hasWriteContactsPermission != PackageManager.PERMISSION_GRANTED) { | ||||
|             // Check if we only have a context or a full activity | ||||
|             final Activity activity = (context instanceof Activity) ? ((Activity) context) : null; | ||||
|             if (activity != null) { | ||||
|                 // For activity notify directly the user | ||||
|                 if (!ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionName)) { | ||||
|                     PermissionChecker.showMessageOKCancel(activity, "You need to fix application permissions.", | ||||
|                             new DialogInterface.OnClickListener() { | ||||
|                                 @Override | ||||
|                                 public void onClick(DialogInterface dialog, int which) { | ||||
|                                     ActivityCompat.requestPermissions(activity, | ||||
|                                             new String[]{permissionName}, permissionId.ordinal()); | ||||
|                                 } | ||||
|                             }); | ||||
|                     return false; | ||||
|                 } | ||||
| 
 | ||||
|                 ActivityCompat.requestPermissions(activity, new String[]{permissionName}, | ||||
|                         permissionId.ordinal()); | ||||
|                 return false; | ||||
|             } | ||||
| 
 | ||||
|             // For context only show a notification | ||||
|             OCSMSNotificationUI.notify(context, context.getString(R.string.notif_permission_required), | ||||
|                     context.getString(R.string.notif_permission_required_content), | ||||
|                     OCSMSNotificationType.PERMISSION.ordinal()); | ||||
| 
 | ||||
|             return false; | ||||
|         } | ||||
| 
 | ||||
|         return true; | ||||
|     } | ||||
| 
 | ||||
|     private static void showMessageOKCancel(Activity activity, String message, | ||||
|         DialogInterface.OnClickListener okListener) { | ||||
|         new AlertDialog.Builder(activity) | ||||
|                 .setMessage(message) | ||||
|                 .setPositiveButton(R.string.understood, okListener) | ||||
|                 .setNegativeButton(R.string.cancel, null) | ||||
|                 .create() | ||||
|                 .show(); | ||||
|     } | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user