Search in sources :

Example 1 with LongSparseArray

use of android.util.LongSparseArray in project android_frameworks_base by ResurrectionRemix.

the class AppWidgetServiceImpl method startListening.

@Override
public ParceledListSlice<PendingHostUpdate> startListening(IAppWidgetHost callbacks, String callingPackage, int hostId, int[] appWidgetIds) {
    final int userId = UserHandle.getCallingUserId();
    if (DEBUG) {
        Slog.i(TAG, "startListening() " + userId);
    }
    // Make sure the package runs under the caller uid.
    mSecurityPolicy.enforceCallFromPackage(callingPackage);
    synchronized (mLock) {
        ensureGroupStateLoadedLocked(userId);
        // NOTE: The lookup is enforcing security across users by making
        // sure the caller can only access hosts it owns.
        HostId id = new HostId(Binder.getCallingUid(), hostId, callingPackage);
        Host host = lookupOrAddHostLocked(id);
        host.callbacks = callbacks;
        int N = appWidgetIds.length;
        ArrayList<PendingHostUpdate> outUpdates = new ArrayList<>(N);
        LongSparseArray<PendingHostUpdate> updatesMap = new LongSparseArray<>();
        for (int i = 0; i < N; i++) {
            if (host.getPendingUpdatesForId(appWidgetIds[i], updatesMap)) {
                // We key the updates based on request id, so that the values are sorted in the
                // order they were received.
                int M = updatesMap.size();
                for (int j = 0; j < M; j++) {
                    outUpdates.add(updatesMap.valueAt(j));
                }
            }
        }
        return new ParceledListSlice<>(outUpdates);
    }
}
Also used : LongSparseArray(android.util.LongSparseArray) ArrayList(java.util.ArrayList) IAppWidgetHost(com.android.internal.appwidget.IAppWidgetHost) Point(android.graphics.Point) PendingHostUpdate(android.appwidget.PendingHostUpdate) ParceledListSlice(android.content.pm.ParceledListSlice)

Example 2 with LongSparseArray

use of android.util.LongSparseArray in project android_frameworks_base by ResurrectionRemix.

the class AbsListView method onSaveInstanceState.

@Override
public Parcelable onSaveInstanceState() {
    /*
         * This doesn't really make sense as the place to dismiss the
         * popups, but there don't seem to be any other useful hooks
         * that happen early enough to keep from getting complaints
         * about having leaked the window.
         */
    dismissPopup();
    Parcelable superState = super.onSaveInstanceState();
    SavedState ss = new SavedState(superState);
    if (mPendingSync != null) {
        // Just keep what we last restored.
        ss.selectedId = mPendingSync.selectedId;
        ss.firstId = mPendingSync.firstId;
        ss.viewTop = mPendingSync.viewTop;
        ss.position = mPendingSync.position;
        ss.height = mPendingSync.height;
        ss.filter = mPendingSync.filter;
        ss.inActionMode = mPendingSync.inActionMode;
        ss.checkedItemCount = mPendingSync.checkedItemCount;
        ss.checkState = mPendingSync.checkState;
        ss.checkIdState = mPendingSync.checkIdState;
        return ss;
    }
    boolean haveChildren = getChildCount() > 0 && mItemCount > 0;
    long selectedId = getSelectedItemId();
    ss.selectedId = selectedId;
    ss.height = getHeight();
    if (selectedId >= 0) {
        // Remember the selection
        ss.viewTop = mSelectedTop;
        ss.position = getSelectedItemPosition();
        ss.firstId = INVALID_POSITION;
    } else {
        if (haveChildren && mFirstPosition > 0) {
            // Remember the position of the first child.
            // We only do this if we are not currently at the top of
            // the list, for two reasons:
            // (1) The list may be in the process of becoming empty, in
            // which case mItemCount may not be 0, but if we try to
            // ask for any information about position 0 we will crash.
            // (2) Being "at the top" seems like a special case, anyway,
            // and the user wouldn't expect to end up somewhere else when
            // they revisit the list even if its content has changed.
            View v = getChildAt(0);
            ss.viewTop = v.getTop();
            int firstPos = mFirstPosition;
            if (firstPos >= mItemCount) {
                firstPos = mItemCount - 1;
            }
            ss.position = firstPos;
            ss.firstId = mAdapter.getItemId(firstPos);
        } else {
            ss.viewTop = 0;
            ss.firstId = INVALID_POSITION;
            ss.position = 0;
        }
    }
    ss.filter = null;
    if (mFiltered) {
        final EditText textFilter = mTextFilter;
        if (textFilter != null) {
            Editable filterText = textFilter.getText();
            if (filterText != null) {
                ss.filter = filterText.toString();
            }
        }
    }
    ss.inActionMode = mChoiceMode == CHOICE_MODE_MULTIPLE_MODAL && mChoiceActionMode != null;
    if (mCheckStates != null) {
        ss.checkState = mCheckStates.clone();
    }
    if (mCheckedIdStates != null) {
        final LongSparseArray<Integer> idState = new LongSparseArray<Integer>();
        final int count = mCheckedIdStates.size();
        for (int i = 0; i < count; i++) {
            idState.put(mCheckedIdStates.keyAt(i), mCheckedIdStates.valueAt(i));
        }
        ss.checkIdState = idState;
    }
    ss.checkedItemCount = mCheckedItemCount;
    if (mRemoteAdapter != null) {
        mRemoteAdapter.saveRemoteViewsCache();
    }
    return ss;
}
Also used : LongSparseArray(android.util.LongSparseArray) Editable(android.text.Editable) Parcelable(android.os.Parcelable) View(android.view.View)

Example 3 with LongSparseArray

use of android.util.LongSparseArray in project android_frameworks_base by ResurrectionRemix.

the class KeySetUtils method getKeySetRefCount.

public static int getKeySetRefCount(KeySetManagerService ksms, long keysetId) throws NoSuchFieldException, IllegalAccessException {
    Field ksField = ksms.getClass().getDeclaredField("mKeySets");
    ksField.setAccessible(true);
    LongSparseArray<KeySetHandle> mKeySets = (LongSparseArray<KeySetHandle>) ksField.get(ksms);
    KeySetHandle ksh = mKeySets.get(keysetId);
    if (ksh == null) {
        return 0;
    } else {
        return ksh.getRefCountLPr();
    }
}
Also used : Field(java.lang.reflect.Field) LongSparseArray(android.util.LongSparseArray)

Example 4 with LongSparseArray

use of android.util.LongSparseArray in project android_frameworks_base by ResurrectionRemix.

the class KeySetUtils method getKeySetMapping.

public static LongSparseArray<ArraySet<Long>> getKeySetMapping(KeySetManagerService ksms) throws NoSuchFieldException, IllegalAccessException {
    Field ksField = ksms.getClass().getDeclaredField("mKeySetMapping");
    ksField.setAccessible(true);
    return (LongSparseArray<ArraySet<Long>>) ksField.get(ksms);
}
Also used : Field(java.lang.reflect.Field) LongSparseArray(android.util.LongSparseArray)

Example 5 with LongSparseArray

use of android.util.LongSparseArray in project android_frameworks_base by ResurrectionRemix.

the class KeySetUtils method getPubKey.

public static PublicKey getPubKey(KeySetManagerService ksms, long pkId) throws NoSuchFieldException, IllegalAccessException {
    Field pkField = ksms.getClass().getDeclaredField("mPublicKeys");
    pkField.setAccessible(true);
    LongSparseArray<KeySetManagerService.PublicKeyHandle> mPublicKeys = (LongSparseArray<KeySetManagerService.PublicKeyHandle>) pkField.get(ksms);
    KeySetManagerService.PublicKeyHandle pkh = mPublicKeys.get(pkId);
    if (pkh == null) {
        return null;
    } else {
        return pkh.getKey();
    }
}
Also used : Field(java.lang.reflect.Field) LongSparseArray(android.util.LongSparseArray)

Aggregations

LongSparseArray (android.util.LongSparseArray)45 Field (java.lang.reflect.Field)23 ArrayList (java.util.ArrayList)11 Parcelable (android.os.Parcelable)7 Editable (android.text.Editable)7 View (android.view.View)7 PendingHostUpdate (android.appwidget.PendingHostUpdate)5 ParceledListSlice (android.content.pm.ParceledListSlice)5 Point (android.graphics.Point)5 IAppWidgetHost (com.android.internal.appwidget.IAppWidgetHost)5 Resources (android.content.res.Resources)4 SparseArray (android.util.SparseArray)4 Method (java.lang.reflect.Method)4 ContactEntry (com.android.contacts.common.list.ContactEntry)2 Element (de.westnordost.osmapi.map.data.Element)2 OsmLatLon (de.westnordost.osmapi.map.data.OsmLatLon)2 List (java.util.List)2 SuppressLint (android.annotation.SuppressLint)1 AttributedOpEntry (android.app.AppOpsManager.AttributedOpEntry)1 NoteOpEvent (android.app.AppOpsManager.NoteOpEvent)1