parent
8bb6b52250
commit
19a744db26
@ -0,0 +1,61 @@ |
||||
package com.android.base.permission; |
||||
|
||||
import android.content.Context; |
||||
import android.support.annotation.ColorInt; |
||||
import android.support.annotation.NonNull; |
||||
import android.text.SpannableStringBuilder; |
||||
import android.text.Spanned; |
||||
import android.text.style.ForegroundColorSpan; |
||||
|
||||
import com.android.base.R; |
||||
import com.blankj.utilcode.util.AppUtils; |
||||
|
||||
import java.util.Arrays; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @author Ztiany |
||||
* Email: ztiany3@gmail.com |
||||
* Date : 2019-08-22 14:17 |
||||
*/ |
||||
public class PermissionUtils { |
||||
|
||||
public static String createPermissionText(Context context, @NonNull List<String> perms) { |
||||
List<String> permList = Permission.transformText(context, perms); |
||||
String characterSeg = context.getString(R.string.Base_character_seg); |
||||
StringBuilder sb = new StringBuilder(); |
||||
int size = permList.size(); |
||||
for (int i = 0; i < size; i++) { |
||||
sb.append(permList.get(i)); |
||||
if (i < size - 1) { |
||||
sb.append(characterSeg); |
||||
} |
||||
} |
||||
return sb.toString(); |
||||
} |
||||
|
||||
static CharSequence createPermissionRationaleText(Context context, @NonNull String[] perms, @ColorInt int color) { |
||||
String permissionText = createPermissionText(context, Arrays.asList(perms)); |
||||
return tintText(context.getString(R.string.Base_request_permission_rationale, permissionText), permissionText, color); |
||||
} |
||||
|
||||
static CharSequence createPermissionAskAgainText(Context context, @NonNull String[] permission, @ColorInt int color) { |
||||
String permissionText = createPermissionText(context, Arrays.asList(permission)); |
||||
String appName = AppUtils.getAppName(); |
||||
String content = context.getString(R.string.Base_permission_denied_ask_again_rationale, appName, permissionText); |
||||
return tintText(content, permissionText, color); |
||||
} |
||||
|
||||
static CharSequence createPermissionDeniedTip(Context context, String[] permission, @ColorInt int color) { |
||||
String permissionText = createPermissionText(context, Arrays.asList(permission)); |
||||
return tintText(context.getString(R.string.Base_permission_denied, permissionText), permissionText, color); |
||||
} |
||||
|
||||
private static CharSequence tintText(String content, String perms, @ColorInt int color) { |
||||
SpannableStringBuilder ssb = new SpannableStringBuilder(content); |
||||
int indexPerm = content.indexOf(perms); |
||||
ssb.setSpan(new ForegroundColorSpan(color), indexPerm, indexPerm + perms.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); |
||||
return ssb; |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue