Example usage for android.os PersistableBundle putInt

List of usage examples for android.os PersistableBundle putInt

Introduction

In this page you can find the example usage for android.os PersistableBundle putInt.

Prototype

public void putInt(@Nullable String key, int value) 

Source Link

Document

Inserts an int value into the mapping of this Bundle, replacing any existing value for the given key.

Usage

From source file:eu.faircode.netguard.ServiceJob.java

public static void submit(Rule rule, int version, int protocol, String daddr, int dport, int blocked,
        Context context) {//from   ww w .  j a v  a 2s  . com
    PersistableBundle bundle = new PersistableBundle();
    bundle.putString("type", "host");

    bundle.putInt("version", version);
    bundle.putInt("protocol", protocol);
    bundle.putString("daddr", daddr);
    bundle.putInt("dport", dport);
    bundle.putInt("blocked", blocked);

    submit(rule, bundle, context);
}

From source file:eu.faircode.netguard.ServiceJob.java

public static void submit(Rule rule, Context context) {
    PersistableBundle bundle = new PersistableBundle();
    bundle.putString("type", "rule");

    bundle.putInt("wifi_default", rule.wifi_default ? 1 : 0);
    bundle.putInt("other_default", rule.other_default ? 1 : 0);
    bundle.putInt("screen_wifi_default", rule.screen_wifi_default ? 1 : 0);
    bundle.putInt("screen_other_default", rule.screen_other_default ? 1 : 0);
    bundle.putInt("roaming_default", rule.roaming_default ? 1 : 0);

    bundle.putInt("wifi_blocked", rule.wifi_blocked ? 1 : 0);
    bundle.putInt("other_blocked", rule.other_blocked ? 1 : 0);
    bundle.putInt("screen_wifi", rule.screen_wifi ? 1 : 0);
    bundle.putInt("screen_other", rule.screen_other ? 1 : 0);
    bundle.putInt("roaming", rule.roaming ? 1 : 0);

    bundle.putInt("apply", rule.apply ? 1 : 0);
    bundle.putInt("notify", rule.notify ? 1 : 0);

    submit(rule, bundle, context);/*from   w  ww.  j a  v a  2  s  .c  o  m*/
}

From source file:Main.java

@TargetApi(Build.VERSION_CODES.LOLLIPOP_MR1)
public static PersistableBundle bundleToPersistableBundle(Bundle bundle) {
    Set<String> keySet = bundle.keySet();
    PersistableBundle persistableBundle = new PersistableBundle();
    for (String key : keySet) {
        Object value = bundle.get(key);
        if (value instanceof Boolean) {
            persistableBundle.putBoolean(key, (boolean) value);
        } else if (value instanceof Integer) {
            persistableBundle.putInt(key, (int) value);
        } else if (value instanceof String) {
            persistableBundle.putString(key, (String) value);
        } else if (value instanceof String[]) {
            persistableBundle.putStringArray(key, (String[]) value);
        } else if (value instanceof Bundle) {
            PersistableBundle innerBundle = bundleToPersistableBundle((Bundle) value);
            persistableBundle.putPersistableBundle(key, innerBundle);
        }/*from w  w  w .j av a2  s.  c o  m*/
    }
    return persistableBundle;
}

From source file:eu.faircode.netguard.ServiceJob.java

private static void submit(Rule rule, PersistableBundle bundle, Context context) {
    PackageManager pm = context.getPackageManager();
    JobScheduler scheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);

    // Get english application label
    String label = null;//from   www  . j  a va  2  s.  co m
    try {
        Configuration config = new Configuration();
        config.setLocale(new Locale("en"));
        Resources res = pm.getResourcesForApplication(rule.info.packageName);
        res.updateConfiguration(config, res.getDisplayMetrics());
        label = res.getString(rule.info.applicationInfo.labelRes);
    } catch (Throwable ex) {
        Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
        CharSequence cs = rule.info.applicationInfo.loadLabel(pm);
        if (cs != null)
            label = cs.toString();
    }

    // Add application data
    bundle.putInt("uid", rule.info.applicationInfo.uid);
    bundle.putString("package", rule.info.packageName);
    bundle.putInt("version_code", rule.info.versionCode);
    bundle.putString("version_name", rule.info.versionName);
    bundle.putString("label", label);
    bundle.putInt("system", rule.system ? 1 : 0);
    try {
        bundle.putString("installer", pm.getInstallerPackageName(rule.info.packageName));
    } catch (Throwable ex) {
        Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
        bundle.putString("installer", null);
    }

    // Cancel overlapping jobs
    for (JobInfo pending : scheduler.getAllPendingJobs()) {
        String type = pending.getExtras().getString("type");
        if (type != null && type.equals(bundle.getString("type"))) {
            if (type.equals("rule")) {
                int uid = pending.getExtras().getInt("uid");
                if (uid == bundle.getInt("uid")) {
                    Log.i(TAG, "Canceling id=" + pending.getId());
                    scheduler.cancel(pending.getId());
                }
            } else if (type.equals("host")) {
                int uid = pending.getExtras().getInt("uid");
                int version = pending.getExtras().getInt("version");
                int protocol = pending.getExtras().getInt("protocol");
                String daddr = pending.getExtras().getString("daddr");
                int dport = pending.getExtras().getInt("dport");
                if (uid == bundle.getInt("uid") && version == bundle.getInt("version")
                        && protocol == bundle.getInt("protocol") && daddr != null
                        && daddr.equals(bundle.getString("daddr")) && dport == bundle.getInt("dport")) {
                    Log.i(TAG, "Canceling id=" + pending.getId());
                    scheduler.cancel(pending.getId());
                }
            }
        }
    }

    // Schedule job
    ComponentName serviceName = new ComponentName(context, ServiceJob.class);
    JobInfo job = new JobInfo.Builder(++id, serviceName).setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)
            .setMinimumLatency(Util.isDebuggable(context) ? 10 * 1000 : 60 * 1000).setExtras(bundle)
            .setPersisted(true).build();
    if (scheduler.schedule(job) == JobScheduler.RESULT_SUCCESS)
        Log.i(TAG, "Scheduled job=" + job.getId() + " success");
    else
        Log.e(TAG, "Scheduled job=" + job.getId() + " failed");
}

From source file:com.android.contacts.DynamicShortcuts.java

@VisibleForTesting
ShortcutInfo getActionShortcutInfo(String id, String label, Intent action, Icon icon) {
    if (id == null || label == null) {
        return null;
    }//from   w  ww  .j ava  2 s. com
    final PersistableBundle extras = new PersistableBundle();
    extras.putInt(EXTRA_SHORTCUT_TYPE, SHORTCUT_TYPE_ACTION_URI);

    final ShortcutInfo.Builder builder = new ShortcutInfo.Builder(mContext, id).setIntent(action).setIcon(icon)
            .setExtras(extras)
            .setDisabledMessage(mContext.getString(R.string.dynamic_shortcut_disabled_message));

    setLabel(builder, label);
    return builder.build();
}

From source file:com.android.contacts.DynamicShortcuts.java

@VisibleForTesting
ShortcutInfo.Builder builderForContactShortcut(long id, String lookupKey, String displayName) {
    if (lookupKey == null || displayName == null) {
        return null;
    }//w ww .  java 2s .  c o m
    final PersistableBundle extras = new PersistableBundle();
    extras.putLong(Contacts._ID, id);
    extras.putInt(EXTRA_SHORTCUT_TYPE, SHORTCUT_TYPE_CONTACT_URI);

    final ShortcutInfo.Builder builder = new ShortcutInfo.Builder(mContext, lookupKey)
            .setIntent(ImplicitIntentsUtil.getIntentForQuickContactLauncherShortcut(mContext,
                    Contacts.getLookupUri(id, lookupKey)))
            .setDisabledMessage(mContext.getString(R.string.dynamic_shortcut_disabled_message))
            .setExtras(extras);

    setLabel(builder, displayName);
    return builder;
}

From source file:nuclei.task.TaskScheduler.java

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void onScheduleJobL(Context context) {
    JobInfo.Builder builder = new JobInfo.Builder(mBuilder.mTask.getTaskId(),
            new ComponentName(context, TaskJobService.class));

    ArrayMap<String, Object> map = new ArrayMap<>();
    mBuilder.mTask.serialize(map);//from   w ww.j  a v  a  2 s.c om
    PersistableBundle extras = new PersistableBundle();
    for (Map.Entry<String, Object> entry : map.entrySet()) {
        Object v = entry.getValue();
        if (v == null)
            continue;
        if (v instanceof Integer)
            extras.putInt(entry.getKey(), (int) v);
        else if (v instanceof Double)
            extras.putDouble(entry.getKey(), (double) v);
        else if (v instanceof Long)
            extras.putLong(entry.getKey(), (long) v);
        else if (v instanceof String)
            extras.putString(entry.getKey(), (String) v);
        else if (v instanceof String[])
            extras.putStringArray(entry.getKey(), (String[]) v);
        else if (v instanceof boolean[] && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1)
            extras.putBooleanArray(entry.getKey(), (boolean[]) v);
        else if (v instanceof double[])
            extras.putDoubleArray(entry.getKey(), (double[]) v);
        else if (v instanceof long[])
            extras.putLongArray(entry.getKey(), (long[]) v);
        else if (v instanceof int[])
            extras.putIntArray(entry.getKey(), (int[]) v);
        else
            throw new IllegalArgumentException("Invalid Type: " + entry.getKey());
    }
    extras.putString(TASK_NAME, mBuilder.mTask.getClass().getName());

    switch (mBuilder.mTaskType) {
    case TASK_ONE_OFF:
        if (mBuilder.mWindowStartDelaySecondsSet)
            builder.setMinimumLatency(mBuilder.mWindowStartDelaySeconds * 1000);
        if (mBuilder.mWindowEndDelaySecondsSet)
            builder.setOverrideDeadline(mBuilder.mWindowEndDelaySeconds * 1000);
        break;
    case TASK_PERIODIC:
        builder.setPeriodic(mBuilder.mPeriodInSeconds * 1000);
        break;
    default:
        throw new IllegalArgumentException();
    }

    builder.setExtras(extras).setPersisted(mBuilder.mPersisted).setRequiresCharging(mBuilder.mRequiresCharging)
            .setRequiresDeviceIdle(mBuilder.mRequiresDeviceIdle);

    switch (mBuilder.mNetworkState) {
    case NETWORK_STATE_ANY:
        builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_NONE);
        break;
    case NETWORK_STATE_CONNECTED:
        builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
        break;
    case NETWORK_STATE_UNMETERED:
        builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED);
        break;
    }

    switch (mBuilder.mBackoffPolicy) {
    case BACKOFF_POLICY_EXPONENTIAL:
        builder.setBackoffCriteria(mBuilder.mInitialBackoffMillis, JobInfo.BACKOFF_POLICY_EXPONENTIAL);
        break;
    case BACKOFF_POLICY_LINEAR:
        builder.setBackoffCriteria(mBuilder.mInitialBackoffMillis, JobInfo.BACKOFF_POLICY_LINEAR);
        break;
    }

    JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
    jobScheduler.schedule(builder.build());
}

From source file:com.google.android.car.kitchensink.job.JobSchedulerFragment.java

private void scheduleJob() {
    ComponentName jobComponentName = new ComponentName(getContext(), DishService.class);
    SharedPreferences prefs = getContext().getSharedPreferences(PREFS_NEXT_JOB_ID, Context.MODE_PRIVATE);
    int jobId = prefs.getInt(PREFS_NEXT_JOB_ID, 0);
    PersistableBundle bundle = new PersistableBundle();
    int count = 50;
    try {//from w  ww  . ja v a2  s .  co  m
        count = Integer.valueOf(mDishNum.getText().toString());
    } catch (NumberFormatException e) {
        Log.e(TAG, "NOT A NUMBER!!!");
    }

    int selected = mNetworkGroup.getCheckedRadioButtonId();
    int networkType = JobInfo.NETWORK_TYPE_ANY;
    switch (selected) {
    case R.id.network_none:
        networkType = JobInfo.NETWORK_TYPE_NONE;
        break;
    case R.id.network_unmetered:
        networkType = JobInfo.NETWORK_TYPE_UNMETERED;
        break;
    case R.id.network_any:
        networkType = JobInfo.NETWORK_TYPE_ANY;
        break;
    }
    bundle.putInt(DishService.EXTRA_DISH_COUNT, count);
    JobInfo jobInfo = new JobInfo.Builder(jobId, jobComponentName)
            .setRequiresCharging(mRequireCharging.isChecked()).setRequiresDeviceIdle(mRequireIdle.isChecked())
            // TODO: figure out why we crash here even we hold
            // the RECEIVE_BOOT_COMPLETE permission
            //.setPersisted(mRequirePersisted.isChecked())
            .setExtras(bundle).setRequiredNetworkType(networkType).build();

    mJobScheduler.schedule(jobInfo);
    Toast.makeText(getContext(), "Scheduled: " + jobInfo, Toast.LENGTH_LONG).show();

    Log.d(TAG, "Scheduled a job: " + jobInfo);
    SharedPreferences.Editor editor = prefs.edit();
    editor.putInt(PREFS_NEXT_JOB_ID, jobId + 1);
    editor.commit();

    refreshCurrentJobs();
}