android.content.res.TypedArray#getNonConfigurationString()源码实例Demo

下面列出了android.content.res.TypedArray#getNonConfigurationString() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: AndroidComponentPlugin   文件: PackageParser.java
private boolean parsePackageItemInfo(Package owner, PackageItemInfo outInfo,
        String[] outError, String tag, TypedArray sa,
        int nameRes, int labelRes, int iconRes, int logoRes) {
    String name = sa.getNonConfigurationString(nameRes, 0);
    if (name == null) {
        outError[0] = tag + " does not specify android:name";
        return false;
    }

    outInfo.name
        = buildClassName(owner.applicationInfo.packageName, name, outError);
    if (outInfo.name == null) {
        return false;
    }

    int iconVal = sa.getResourceId(iconRes, 0);
    if (iconVal != 0) {
        outInfo.icon = iconVal;
        outInfo.nonLocalizedLabel = null;
    }
    
    int logoVal = sa.getResourceId(logoRes, 0);
    if (logoVal != 0) {
        outInfo.logo = logoVal;
    }

    TypedValue v = sa.peekValue(labelRes);
    if (v != null && (outInfo.labelRes=v.resourceId) == 0) {
        outInfo.nonLocalizedLabel = v.coerceToString();
    }

    outInfo.packageName = owner.packageName;

    return true;
}
 
源代码2 项目: AndroidComponentPlugin   文件: PackageParser.java
private boolean parsePackageItemInfo(Package owner, PackageItemInfo outInfo,
        String[] outError, String tag, TypedArray sa,
        int nameRes, int labelRes, int iconRes, int logoRes) {
    String name = sa.getNonConfigurationString(nameRes, 0);
    if (name == null) {
        outError[0] = tag + " does not specify android:name";
        return false;
    }

    outInfo.name
        = buildClassName(owner.applicationInfo.packageName, name, outError);
    if (outInfo.name == null) {
        return false;
    }

    int iconVal = sa.getResourceId(iconRes, 0);
    if (iconVal != 0) {
        outInfo.icon = iconVal;
        outInfo.nonLocalizedLabel = null;
    }
    
    int logoVal = sa.getResourceId(logoRes, 0);
    if (logoVal != 0) {
        outInfo.logo = logoVal;
    }

    TypedValue v = sa.peekValue(labelRes);
    if (v != null && (outInfo.labelRes=v.resourceId) == 0) {
        outInfo.nonLocalizedLabel = v.coerceToString();
    }

    outInfo.packageName = owner.packageName;

    return true;
}
 
源代码3 项目: AndroidComponentPlugin   文件: PackageParser.java
private boolean parsePackageItemInfo(Package owner, PackageItemInfo outInfo,
        String[] outError, String tag, TypedArray sa,
        int nameRes, int labelRes, int iconRes, int logoRes) {
    String name = sa.getNonConfigurationString(nameRes, 0);
    if (name == null) {
        outError[0] = tag + " does not specify android:name";
        return false;
    }

    outInfo.name
        = buildClassName(owner.applicationInfo.packageName, name, outError);
    if (outInfo.name == null) {
        return false;
    }

    int iconVal = sa.getResourceId(iconRes, 0);
    if (iconVal != 0) {
        outInfo.icon = iconVal;
        outInfo.nonLocalizedLabel = null;
    }
    
    int logoVal = sa.getResourceId(logoRes, 0);
    if (logoVal != 0) {
        outInfo.logo = logoVal;
    }

    TypedValue v = sa.peekValue(labelRes);
    if (v != null && (outInfo.labelRes=v.resourceId) == 0) {
        outInfo.nonLocalizedLabel = v.coerceToString();
    }

    outInfo.packageName = owner.packageName;

    return true;
}
 
源代码4 项目: AndroidComponentPlugin   文件: PackageParser.java
private boolean parsePackageItemInfo(Package owner, PackageItemInfo outInfo,
        String[] outError, String tag, TypedArray sa,
        int nameRes, int labelRes, int iconRes, int logoRes) {
    String name = sa.getNonConfigurationString(nameRes, 0);
    if (name == null) {
        outError[0] = tag + " does not specify android:name";
        return false;
    }

    outInfo.name
        = buildClassName(owner.applicationInfo.packageName, name, outError);
    if (outInfo.name == null) {
        return false;
    }

    int iconVal = sa.getResourceId(iconRes, 0);
    if (iconVal != 0) {
        outInfo.icon = iconVal;
        outInfo.nonLocalizedLabel = null;
    }
    
    int logoVal = sa.getResourceId(logoRes, 0);
    if (logoVal != 0) {
        outInfo.logo = logoVal;
    }

    TypedValue v = sa.peekValue(labelRes);
    if (v != null && (outInfo.labelRes=v.resourceId) == 0) {
        outInfo.nonLocalizedLabel = v.coerceToString();
    }

    outInfo.packageName = owner.packageName;

    return true;
}
 
源代码5 项目: AndroidComponentPlugin   文件: PackageParser.java
private boolean parsePackageItemInfo(Package owner, PackageItemInfo outInfo,
        String[] outError, String tag, TypedArray sa,
        int nameRes, int labelRes, int iconRes, int logoRes) {
    String name = sa.getNonConfigurationString(nameRes, 0);
    if (name == null) {
        outError[0] = tag + " does not specify android:name";
        return false;
    }

    outInfo.name
        = buildClassName(owner.applicationInfo.packageName, name, outError);
    if (outInfo.name == null) {
        return false;
    }

    int iconVal = sa.getResourceId(iconRes, 0);
    if (iconVal != 0) {
        outInfo.icon = iconVal;
        outInfo.nonLocalizedLabel = null;
    }
    
    int logoVal = sa.getResourceId(logoRes, 0);
    if (logoVal != 0) {
        outInfo.logo = logoVal;
    }

    TypedValue v = sa.peekValue(labelRes);
    if (v != null && (outInfo.labelRes=v.resourceId) == 0) {
        outInfo.nonLocalizedLabel = v.coerceToString();
    }

    outInfo.packageName = owner.packageName;

    return true;
}
 
源代码6 项目: AndroidComponentPlugin   文件: PackageParser.java
private Provider parseProvider(Package owner, Resources res,
        XmlPullParser parser, AttributeSet attrs, int flags, String[] outError)
        throws XmlPullParserException, IOException {
    TypedArray sa = res.obtainAttributes(attrs,
            com.android.internal.R.styleable.AndroidManifestProvider);

    if (mParseProviderArgs == null) {
        mParseProviderArgs = new ParseComponentArgs(owner, outError,
                com.android.internal.R.styleable.AndroidManifestProvider_name,
                com.android.internal.R.styleable.AndroidManifestProvider_label,
                com.android.internal.R.styleable.AndroidManifestProvider_icon,
                com.android.internal.R.styleable.AndroidManifestProvider_logo,
                mSeparateProcesses,
                com.android.internal.R.styleable.AndroidManifestProvider_process,
                com.android.internal.R.styleable.AndroidManifestProvider_description,
                com.android.internal.R.styleable.AndroidManifestProvider_enabled);
        mParseProviderArgs.tag = "<provider>";
    }
    
    mParseProviderArgs.sa = sa;
    mParseProviderArgs.flags = flags;
    
    Provider p = new Provider(mParseProviderArgs, new ProviderInfo());
    if (outError[0] != null) {
        sa.recycle();
        return null;
    }

    p.info.exported = sa.getBoolean(
            com.android.internal.R.styleable.AndroidManifestProvider_exported, true);

    String cpname = sa.getNonConfigurationString(
            com.android.internal.R.styleable.AndroidManifestProvider_authorities, 0);

    p.info.isSyncable = sa.getBoolean(
            com.android.internal.R.styleable.AndroidManifestProvider_syncable,
            false);

    String permission = sa.getNonConfigurationString(
            com.android.internal.R.styleable.AndroidManifestProvider_permission, 0);
    String str = sa.getNonConfigurationString(
            com.android.internal.R.styleable.AndroidManifestProvider_readPermission, 0);
    if (str == null) {
        str = permission;
    }
    if (str == null) {
        p.info.readPermission = owner.applicationInfo.permission;
    } else {
        p.info.readPermission =
            str.length() > 0 ? str.toString().intern() : null;
    }
    str = sa.getNonConfigurationString(
            com.android.internal.R.styleable.AndroidManifestProvider_writePermission, 0);
    if (str == null) {
        str = permission;
    }
    if (str == null) {
        p.info.writePermission = owner.applicationInfo.permission;
    } else {
        p.info.writePermission =
            str.length() > 0 ? str.toString().intern() : null;
    }

    p.info.grantUriPermissions = sa.getBoolean(
            com.android.internal.R.styleable.AndroidManifestProvider_grantUriPermissions,
            false);

    p.info.multiprocess = sa.getBoolean(
            com.android.internal.R.styleable.AndroidManifestProvider_multiprocess,
            false);

    p.info.initOrder = sa.getInt(
            com.android.internal.R.styleable.AndroidManifestProvider_initOrder,
            0);

    sa.recycle();

    if ((owner.applicationInfo.flags&ApplicationInfo.FLAG_CANT_SAVE_STATE) != 0) {
        // A heavy-weight application can not have providers in its main process
        // We can do direct compare because we intern all strings.
        if (p.info.processName == owner.packageName) {
            outError[0] = "Heavy-weight applications can not have providers in main process";
            return null;
        }
    }
    
    if (cpname == null) {
        outError[0] = "<provider> does not incude authorities attribute";
        return null;
    }
    p.info.authority = cpname.intern();

    if (!parseProviderTags(res, parser, attrs, p, outError)) {
        return null;
    }

    return p;
}
 
源代码7 项目: AndroidComponentPlugin   文件: PackageParser.java
private Provider parseProvider(Package owner, Resources res,
        XmlPullParser parser, AttributeSet attrs, int flags, String[] outError)
        throws XmlPullParserException, IOException {
    TypedArray sa = res.obtainAttributes(attrs,
            com.android.internal.R.styleable.AndroidManifestProvider);

    if (mParseProviderArgs == null) {
        mParseProviderArgs = new ParseComponentArgs(owner, outError,
                com.android.internal.R.styleable.AndroidManifestProvider_name,
                com.android.internal.R.styleable.AndroidManifestProvider_label,
                com.android.internal.R.styleable.AndroidManifestProvider_icon,
                com.android.internal.R.styleable.AndroidManifestProvider_logo,
                mSeparateProcesses,
                com.android.internal.R.styleable.AndroidManifestProvider_process,
                com.android.internal.R.styleable.AndroidManifestProvider_description,
                com.android.internal.R.styleable.AndroidManifestProvider_enabled);
        mParseProviderArgs.tag = "<provider>";
    }
    
    mParseProviderArgs.sa = sa;
    mParseProviderArgs.flags = flags;
    
    Provider p = new Provider(mParseProviderArgs, new ProviderInfo());
    if (outError[0] != null) {
        sa.recycle();
        return null;
    }

    p.info.exported = sa.getBoolean(
            com.android.internal.R.styleable.AndroidManifestProvider_exported, true);

    String cpname = sa.getNonConfigurationString(
            com.android.internal.R.styleable.AndroidManifestProvider_authorities, 0);

    p.info.isSyncable = sa.getBoolean(
            com.android.internal.R.styleable.AndroidManifestProvider_syncable,
            false);

    String permission = sa.getNonConfigurationString(
            com.android.internal.R.styleable.AndroidManifestProvider_permission, 0);
    String str = sa.getNonConfigurationString(
            com.android.internal.R.styleable.AndroidManifestProvider_readPermission, 0);
    if (str == null) {
        str = permission;
    }
    if (str == null) {
        p.info.readPermission = owner.applicationInfo.permission;
    } else {
        p.info.readPermission =
            str.length() > 0 ? str.toString().intern() : null;
    }
    str = sa.getNonConfigurationString(
            com.android.internal.R.styleable.AndroidManifestProvider_writePermission, 0);
    if (str == null) {
        str = permission;
    }
    if (str == null) {
        p.info.writePermission = owner.applicationInfo.permission;
    } else {
        p.info.writePermission =
            str.length() > 0 ? str.toString().intern() : null;
    }

    p.info.grantUriPermissions = sa.getBoolean(
            com.android.internal.R.styleable.AndroidManifestProvider_grantUriPermissions,
            false);

    p.info.multiprocess = sa.getBoolean(
            com.android.internal.R.styleable.AndroidManifestProvider_multiprocess,
            false);

    p.info.initOrder = sa.getInt(
            com.android.internal.R.styleable.AndroidManifestProvider_initOrder,
            0);

    sa.recycle();

    if ((owner.applicationInfo.flags&ApplicationInfo.FLAG_CANT_SAVE_STATE) != 0) {
        // A heavy-weight application can not have providers in its main process
        // We can do direct compare because we intern all strings.
        if (p.info.processName == owner.packageName) {
            outError[0] = "Heavy-weight applications can not have providers in main process";
            return null;
        }
    }
    
    if (cpname == null) {
        outError[0] = "<provider> does not incude authorities attribute";
        return null;
    }
    p.info.authority = cpname.intern();

    if (!parseProviderTags(res, parser, attrs, p, outError)) {
        return null;
    }

    return p;
}