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