微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android.support.annotation.BinderThread的实例源码

项目:chromium-for-android-56-debug-video    文件BookmarkWidgetService.java   
@BinderThread
private BookmarkFolder loadBookmarks(final BookmarkId folderId) {
    final LinkedBlockingQueue<BookmarkFolder> resultQueue = new LinkedBlockingQueue<>(1);
    //A reference of BookmarkLoader is needed in binder thread to
    //prevent it from being garbage collected.
    final BookmarkLoader bookmarkLoader = new BookmarkLoader();
    ThreadUtils.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            bookmarkLoader.initialize(mContext,folderId,new BookmarkLoaderCallback() {
                @Override
                public void onBookmarksLoaded(BookmarkFolder folder) {
                    resultQueue.add(folder);
                }
            });
        }
    });
    try {
        return resultQueue.take();
    } catch (InterruptedException e) {
        return null;
    }
}
项目:chromium-for-android-56-debug-video    文件BookmarkWidgetService.java   
@BinderThread
@Override
public int getCount() {
    //On some Sony devices,getCount() Could be called before onDatasetChanged()
    //returns. If it happens,refresh widget until the bookmarks are all loaded.
    if (mCurrentFolder == null || !mPreferences.getString(PREF_CURRENT_FOLDER,"")
            .equals(mCurrentFolder.folder.id.toString())) {
        ThreadUtils.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                refreshWidget();
            }
        });
    }
    if (mCurrentFolder == null) {
        return 0;
    }
    return mCurrentFolder.children.size() + (mCurrentFolder.parent != null ? 1 : 0);
}
项目:AndroidChromium    文件BookmarkWidgetService.java   
@BinderThread
private BookmarkFolder loadBookmarks(final BookmarkId folderId) {
    final LinkedBlockingQueue<BookmarkFolder> resultQueue = new LinkedBlockingQueue<>(1);
    //A reference of BookmarkLoader is needed in binder thread to
    //prevent it from being garbage collected.
    final BookmarkLoader bookmarkLoader = new BookmarkLoader();
    ThreadUtils.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            bookmarkLoader.initialize(mContext,new BookmarkLoaderCallback() {
                @Override
                public void onBookmarksLoaded(BookmarkFolder folder) {
                    resultQueue.add(folder);
                }
            });
        }
    });
    try {
        return resultQueue.take();
    } catch (InterruptedException e) {
        return null;
    }
}
项目:AndroidChromium    文件BookmarkWidgetService.java   
@BinderThread
@Override
public int getCount() {
    //On some Sony devices,"")
            .equals(mCurrentFolder.folder.id.toString())) {
        ThreadUtils.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                refreshWidget();
            }
        });
    }
    if (mCurrentFolder == null) {
        return 0;
    }
    return mCurrentFolder.children.size() + (mCurrentFolder.parent != null ? 1 : 0);
}
项目:365browser    文件BookmarkWidgetService.java   
@BinderThread
private BookmarkFolder loadBookmarks(final BookmarkId folderId) {
    final LinkedBlockingQueue<BookmarkFolder> resultQueue = new LinkedBlockingQueue<>(1);
    //A reference of BookmarkLoader is needed in binder thread to
    //prevent it from being garbage collected.
    final BookmarkLoader bookmarkLoader = new BookmarkLoader();
    ThreadUtils.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            bookmarkLoader.initialize(mContext,new BookmarkLoaderCallback() {
                @Override
                public void onBookmarksLoaded(BookmarkFolder folder) {
                    resultQueue.add(folder);
                }
            });
        }
    });
    try {
        return resultQueue.take();
    } catch (InterruptedException e) {
        return null;
    }
}
项目:365browser    文件BookmarkWidgetService.java   
@BinderThread
private Bookmark getBookmarkForPosition(int position) {
    if (mCurrentFolder == null) return null;

    // The position 0 is saved for an entry of the current folder used to go up.
    // This is not the case when the current node has no parent (it's the root node).
    if (mCurrentFolder.parent != null) {
        if (position == 0) return mCurrentFolder.folder;
        position--;
    }

    // This is necessary because when Chrome is cleared from Application settings,Bookmark
    // widget will not be notified and it causes inconsistency between model and widget.
    // Then if the widget is quickly scrolled down,this has an IndexOutOfBound error.
    if (mCurrentFolder.children.size() <= position) return null;

    return mCurrentFolder.children.get(position);
}
项目:365browser    文件BookmarkWidgetService.java   
@BinderThread
@Override
public int getCount() {
    //On some Sony devices,"")
            .equals(mCurrentFolder.folder.id.toString())) {
        ThreadUtils.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                refreshWidget();
            }
        });
    }
    if (mCurrentFolder == null) {
        return 0;
    }
    return mCurrentFolder.children.size() + (mCurrentFolder.parent != null ? 1 : 0);
}
项目:chromium-for-android-56-debug-video    文件BookmarkWidgetService.java   
@BinderThread
@Override
public void onDestroy() {
    ThreadUtils.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            if (mBookmarkModel != null) mBookmarkModel.destroy();
        }
    });
    deleteWidgetState(mContext,mWidgetId);
}
项目:chromium-for-android-56-debug-video    文件BookmarkWidgetService.java   
@BinderThread
private void updateBookmarkList() {
    BookmarkId folderId = BookmarkId
            .getBookmarkIdFromString(mPreferences.getString(PREF_CURRENT_FOLDER,null));
    mCurrentFolder = loadBookmarks(folderId);
    mPreferences.edit().putString(PREF_CURRENT_FOLDER,mCurrentFolder.folder.id.toString())
            .apply();
}
项目:chromium-for-android-56-debug-video    文件BookmarkWidgetService.java   
@BinderThread
private Bookmark getBookmarkForPosition(int position) {
    if (mCurrentFolder == null) return null;

    // The position 0 is saved for an entry of the current folder used to go up.
    // This is not the case when the current node has no parent (it's the root node).
    if (mCurrentFolder.parent != null) {
        if (position == 0) return mCurrentFolder.folder;
        position--;
    }
    return mCurrentFolder.children.get(position);
}
项目:AndroidChromium    文件BookmarkWidgetService.java   
@BinderThread
@Override
public void onDestroy() {
    ThreadUtils.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            if (mBookmarkModel != null) mBookmarkModel.destroy();
        }
    });
    deleteWidgetState(mContext,mWidgetId);
}
项目:AndroidChromium    文件BookmarkWidgetService.java   
@BinderThread
private void updateBookmarkList() {
    BookmarkId folderId = BookmarkId
            .getBookmarkIdFromString(mPreferences.getString(PREF_CURRENT_FOLDER,mCurrentFolder.folder.id.toString())
            .apply();
}
项目:AndroidChromium    文件BookmarkWidgetService.java   
@BinderThread
private Bookmark getBookmarkForPosition(int position) {
    if (mCurrentFolder == null) return null;

    // The position 0 is saved for an entry of the current folder used to go up.
    // This is not the case when the current node has no parent (it's the root node).
    if (mCurrentFolder.parent != null) {
        if (position == 0) return mCurrentFolder.folder;
        position--;
    }
    return mCurrentFolder.children.get(position);
}
项目:365browser    文件BookmarkWidgetService.java   
@BinderThread
@Override
public void onDestroy() {
    ThreadUtils.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            if (mBookmarkModel != null) mBookmarkModel.destroy();
        }
    });
    deleteWidgetState(mContext,mWidgetId);
}
项目:365browser    文件BookmarkWidgetService.java   
@BinderThread
private void updateBookmarkList() {
    BookmarkId folderId = BookmarkId
            .getBookmarkIdFromString(mPreferences.getString(PREF_CURRENT_FOLDER,mCurrentFolder.folder.id.toString())
            .apply();
}
项目:365browser    文件BookmarkWidgetService.java   
@BinderThread
@Override
public long getItemId(int position) {
    Bookmark bookmark = getBookmarkForPosition(position);
    if (bookmark == null) return BookmarkId.INVALID_FOLDER_ID;
    return bookmark.id.getId();
}
项目:flitchio-sdk    文件FlitchioController.java   
@Override
@BinderThread
public void onButtonEvent(ButtonEvent event) throws remoteexception {
    synchronized (lockListener) {
        if (eventListenerThreadHandler != null) {
            eventListenerThreadHandler.post(new ButtonEventRunnable(event));

        }
    }
}
项目:flitchio-sdk    文件FlitchioController.java   
@Override
@BinderThread
public void onJoystickEvent(JoystickEvent event) throws remoteexception {
    // Todo link the chain of events in order to receive ButtonEvents for Dpad only if the
    // corresponding joystick has been ignored

    synchronized (lockListener) {
        if (eventListenerThreadHandler != null) {
            eventListenerThreadHandler.post(new JoystickEventRunnable(event));
        }
    }
}
项目:chromium-for-android-56-debug-video    文件BookmarkWidgetService.java   
@BinderThread
@Override
public void onDataSetChanged() {
    updateBookmarkList();
}
项目:chromium-for-android-56-debug-video    文件BookmarkWidgetService.java   
@BinderThread
@Override
public int getViewTypeCount() {
    return 2;
}
项目:chromium-for-android-56-debug-video    文件BookmarkWidgetService.java   
@BinderThread
@Override
public boolean hasstableIds() {
    return false;
}
项目:chromium-for-android-56-debug-video    文件BookmarkWidgetService.java   
@BinderThread
@Override
public long getItemId(int position) {
    return getBookmarkForPosition(position).id.getId();
}
项目:chromium-for-android-56-debug-video    文件BookmarkWidgetService.java   
@BinderThread
@Override
public RemoteViews getLoadingView() {
    return new RemoteViews(mContext.getPackageName(),R.layout.bookmark_widget_item);
}
项目:AndroidChromium    文件BookmarkWidgetService.java   
@BinderThread
@Override
public void onDataSetChanged() {
    updateBookmarkList();
}
项目:AndroidChromium    文件BookmarkWidgetService.java   
@BinderThread
@Override
public int getViewTypeCount() {
    return 2;
}
项目:AndroidChromium    文件BookmarkWidgetService.java   
@BinderThread
@Override
public boolean hasstableIds() {
    return false;
}
项目:AndroidChromium    文件BookmarkWidgetService.java   
@BinderThread
@Override
public long getItemId(int position) {
    return getBookmarkForPosition(position).id.getId();
}
项目:AndroidChromium    文件BookmarkWidgetService.java   
@BinderThread
@Override
public RemoteViews getLoadingView() {
    return new RemoteViews(mContext.getPackageName(),R.layout.bookmark_widget_item);
}
项目:AndroidChromium    文件BookmarkWidgetService.java   
@BinderThread
@Override
public RemoteViews getViewAt(int position) {
    if (mCurrentFolder == null) {
        Log.w(TAG,"No current folder data available.");
        return null;
    }

    Bookmark bookmark = getBookmarkForPosition(position);
    if (bookmark == null) {
        Log.w(TAG,"Couldn't get bookmark for position %d",position);
        return null;
    }

    String title = bookmark.title;
    String url = bookmark.url;
    BookmarkId id = (bookmark == mCurrentFolder.folder)
            ? mCurrentFolder.parent.id
            : bookmark.id;

    RemoteViews views = new RemoteViews(mContext.getPackageName(),R.layout.bookmark_widget_item);

    // Set the title of the bookmark. Use the url as a backup.
    views.setTextViewText(R.id.title,TextUtils.isEmpty(title) ? url : title);

    if (bookmark == mCurrentFolder.folder) {
        views.setimageViewResource(R.id.favicon,R.drawable.back_normal);
    } else if (bookmark.isFolder) {
        views.setimageViewResource(R.id.favicon,R.drawable.bookmark_folder);
    } else {
        views.setimageViewBitmap(R.id.favicon,bookmark.favicon);
    }

    Intent fillIn;
    if (bookmark.isFolder) {
        fillIn = new Intent(getChangeFolderAction(mContext))
                .putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,mWidgetId)
                .putExtra(EXTRA_FOLDER_ID,id.toString());
    } else {
        fillIn = new Intent(Intent.ACTION_VIEW);
        if (!TextUtils.isEmpty(url)) {
            fillIn = fillIn.addCategory(Intent.CATEGORY_broWSABLE)
                    .setData(Uri.parse(url));
        } else {
            fillIn = fillIn.addCategory(Intent.CATEGORY_LAUNCHER);
        }
    }
    views.setonClickFillInIntent(R.id.list_item,fillIn);
    return views;
}
项目:365browser    文件BookmarkWidgetService.java   
@BinderThread
@Override
public void onDataSetChanged() {
    updateBookmarkList();
}
项目:365browser    文件BookmarkWidgetService.java   
@BinderThread
@Override
public int getViewTypeCount() {
    return 2;
}
项目:365browser    文件BookmarkWidgetService.java   
@BinderThread
@Override
public boolean hasstableIds() {
    return false;
}
项目:365browser    文件BookmarkWidgetService.java   
@BinderThread
@Override
public RemoteViews getLoadingView() {
    return new RemoteViews(mContext.getPackageName(),R.layout.bookmark_widget_item);
}
项目:365browser    文件BookmarkWidgetService.java   
@BinderThread
@Override
public RemoteViews getViewAt(int position) {
    if (mCurrentFolder == null) {
        Log.w(TAG,fillIn);
    return views;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。