List of usage examples for android.os Looper getMainLooper
public static Looper getMainLooper()
From source file:ai.api.lejossample.MainActivity.java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); PreferenceManager.setDefaultValues(this, R.xml.preferences, false); commandText = (TextView) findViewById(R.id.commandText); connectButton = (Button) findViewById(R.id.connectButton); addressEdit = (EditText) findViewById(R.id.addressEdit); aiButton = (AIButton) findViewById(R.id.micButton); handler = new Handler(Looper.getMainLooper()); initTTS();//from w w w. ja v a 2 s. c o m }
From source file:com.fastbootmobile.encore.app.fragments.SongsFragment.java
public SongsFragment() { mHandler = new Handler(Looper.getMainLooper()); }
From source file:com.kescoode.android.yong.volley.toolbox.BasicNetwork.java
/** * @param httpStack HTTP stack to be used * @param pool a buffer pool that improves GC performance in copy operations *//*from w w w. j a v a 2 s. c om*/ public BasicNetwork(HttpStack httpStack, ByteArrayPool pool) { this(httpStack, pool, new ExecutorDelivery(new Handler(Looper.getMainLooper()))); }
From source file:com.android.deskclock.Utils.java
public static void enforceMainLooper() { if (Looper.getMainLooper() != Looper.myLooper()) { throw new IllegalAccessError("May only call from main thread."); }/*from w w w. ja va 2s . c om*/ }
From source file:com.murrayc.galaxyzoo.app.syncadapter.SyncAdapter.java
public SyncAdapter(final Context context, final boolean autoInitialize) { super(context, autoInitialize); mHandler = new Handler(Looper.getMainLooper()); mClient = new ZooniverseClient(context, Config.SERVER); mSubjectAdder = new SubjectAdder(context, mClient.getRequestQueue()); //We don't listen for the SharedPreferences changes here because it doesn't currently //work across processes, so our listener would never be called. }
From source file:com.ryan.ryanreader.fragments.UserProfileDialog.java
@Override public final void prepare(final Context context, final LinearLayout items) { final LoadingView loadingView = new LoadingView(context, R.string.download_waiting, true, true); items.addView(loadingView);//from ww w . j a v a 2 s. co m username = getArguments().getString("user"); final CacheManager cm = CacheManager.getInstance(context); RedditAPI.getUser(cm, username, new APIResponseHandler.UserResponseHandler(context) { @Override protected void onDownloadStarted() { if (!active) return; loadingView.setIndeterminate(R.string.download_connecting); } @Override protected void onSuccess(final RedditUser user, long timestamp) { new Handler(Looper.getMainLooper()).post(new Runnable() { public void run() { if (!active) return; loadingView.setDone(R.string.download_done); final LinearLayout karmaLayout = (LinearLayout) getLayoutInflater().inflate(R.layout.karma); items.addView(karmaLayout); final TextView linkKarma = (TextView) karmaLayout.findViewById(R.id.layout_karma_text_link); final TextView commentKarma = (TextView) karmaLayout .findViewById(R.id.layout_karma_text_comment); linkKarma.setText(String.valueOf(user.link_karma)); commentKarma.setText(String.valueOf(user.comment_karma)); items.addView(propView(context, R.string.userprofile_created, RRTime.formatDateTime(user.created_utc * 1000, context), false)); if (user.has_mail != null) { items.addView(propView(context, R.string.userprofile_hasmail, user.has_mail ? R.string.general_true : R.string.general_false, false)); } if (user.has_mod_mail != null) { items.addView(propView(context, R.string.userprofile_hasmodmail, user.has_mod_mail ? R.string.general_true : R.string.general_false, false)); } if (user.is_friend) { items.addView( propView(context, R.string.userprofile_isfriend, R.string.general_true, false)); } if (user.is_gold) { items.addView( propView(context, R.string.userprofile_isgold, R.string.general_true, false)); } if (user.is_mod) { items.addView(propView(context, R.string.userprofile_moderator, R.string.general_true, false)); } final Button commentsButton = new Button(context); commentsButton.setText(R.string.userprofile_viewcomments); commentsButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { final Intent intent = new Intent(context, CommentListingActivity.class); intent.setData(Uri.parse(Constants.Reddit .getUri("/user/" + username + "/comments.json").toString())); startActivity(intent); dismiss(); } }); items.addView(commentsButton); // TODO use margin? or framelayout? scale padding dp // TODO change button color commentsButton.setPadding(20, 20, 20, 20); final Button postsButton = new Button(context); postsButton.setText(R.string.userprofile_viewposts); postsButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { final Intent intent = new Intent(context, PostListingActivity.class); intent.putExtra("subreddit", new RedditSubreddit("/user/" + username + "/submitted", "Submitted by " + username, false)); startActivity(intent); dismiss(); } }); items.addView(postsButton); // TODO use margin? or framelayout? scale padding dp postsButton.setPadding(20, 20, 20, 20); } }); } @Override protected void onCallbackException(Throwable t) { BugReportActivity.handleGlobalError(context, t); } @Override protected void onFailure(final RequestFailureType type, final Throwable t, final StatusLine status, final String readableMessage) { new Handler(Looper.getMainLooper()).post(new Runnable() { public void run() { if (!active) return; loadingView.setDone(R.string.download_failed); final RRError error = General.getGeneralErrorForFailure(context, type, t, status); items.addView(new ErrorView(getSupportActivity(), error)); } }); } @Override protected void onFailure(final APIFailureType type) { new Handler(Looper.getMainLooper()).post(new Runnable() { public void run() { if (!active) return; loadingView.setDone(R.string.download_failed); final RRError error = General.getGeneralErrorForFailure(context, type); items.addView(new ErrorView(getSupportActivity(), error)); } }); } }, RedditAccountManager.getInstance(context).getDefaultAccount(), CacheRequest.DownloadType.FORCE, true, context); }
From source file:com.jerrellmardis.amphitheatre.task.DownloadTaskHelper.java
public static void traverseSmbFiles(SmbFile root, NtlmPasswordAuthentication auth) throws SmbException, MalformedURLException { int fileCount = 0; boolean video_folder = false; final Video v = new Video(); Handler h = new Handler(Looper.getMainLooper()) { @Override//from www .j a v a 2s .com public void handleMessage(Message msg) { // super.handleMessage(msg); Video vid = (Video) msg.getData().getSerializable("VIDEO"); Log.d(TAG, "Handle " + msg.getData().getInt("WHEN") + " " + vid.getName()); updateSingleVideo(vid, null); } }; for (SmbFile f : root.listFiles()) { if (f.getParent().contains("Entertainment Media")) { // Log.d(TAG, "Discovered "+f.getPath()+" "+f.isDirectory()); } if (f.isDirectory()) { try { //TODO Port VOB folder support to USB and internal storage SmbFile[] directoryContents = f.listFiles(); // Log.d(TAG, "Going into directory "+f.getPath()); //If this works, then we can explore //Let's do some quick name checking to for time savings if (f.getName().contains("Entertainment Media")) { // Log.d(TAG, Arrays.asList(f.listFiles()).toString()); } if (!f.getName().contains("iTunes") && !f.getName().contains("Digi Pix") && !f.getName().contains("AppData") && !f.getName().startsWith(".") && !f.getName().contains("Avid") && !f.getName().contains("Spotify") && !f.getName().contains("audacity_temp") && !f.getName().contains("Media_previews") && !f.getName().contains("GFX_previews") && !f.getName().contains("Samsung Install Files") && !f.getName().contains("AE Renders") && !f.getName().contains("LocalData") && !f.getName().contains("$RECYCLE") && !f.getName().contains("Encore DVD") && !f.getName().contains("16 GB Photo card") && !f.getName().contains("Ignore") && !f.getName().contains("Documents") //TEMP && !f.getName().contains("Downloads") //TEMP && !f.getName().contains("TypeGEMs") //TEMP && !f.getName().contains("KofC7032Web") //TEMP && !f.getName().contains("hype mobile docs") //TEMP && !f.getName().contains("Thrive Music Video") //TEMP /*&& f.getPath().contains("Entertainment") //TEMP*/ && !f.getName().contains("Preview Files")) { Log.d(TAG, "Check " + f.getPath()); traverseSmbFiles(f, auth); } else { // Log.d(TAG, "Don't check " + f.getPath()); } } catch (Exception e) { //This folder isn't accessible Log.d(TAG, "Inaccessible: " + f.getName() + " " + e.getMessage()); //This will save us time in the traversal } } else/* if(f.getPath().contains("Films"))*/ { //TEMP //Is this something we want to add? // Log.d(TAG, "Non-directory "+f.getPath()); if (VideoUtils.isVideoFile(f.getPath())) { Log.d(TAG, f.getName() + " is a video"); //Perhaps. Let's do some checking. /* VOB check If the files are in a structure like: { Movie Name } -> VIDEO_TS -> VTS_nn_n.vob Then use the movie name as the source, and each vob url will be added in a comma-separated list to the video url string */ if (f.getPath().contains("VIDEO_TS")) { Log.d(TAG, "Special case for " + f.getPath()); //We have a special case! String grandparentPath = f.getPath().substring(0, f.getPath().indexOf("VIDEO_TS")); SmbFile grandparent = new SmbFile(grandparentPath, auth); //Let's delete this video and all like it from our video database //TODO Makes more sense to not delete and replace a video, just to update in place // Log.d(TAG, "Purge where video_url like "+"%" + grandparent.getPath().replace("'", "\'") + "%"); List<Video> videos = Select.from(Video.class).where(Condition.prop("video_url") .like("%" + grandparent.getPath().replace("'", "\'") + "%")).list(); // Log.d(TAG, "Purging "+videos.size()+" item(s)"); for (Video vx : videos) { // Log.d(TAG, "Deleting "+vx.getVideoUrl()); vx.delete(); } v.setName(grandparent.getName().replace("/", "").replace("_", " ") + ".avi"); //FIXME VOB currently not supported v.setSource(FileSource.SMB); v.setIsMatched(true); //Kind of a lie, but we know it's a thing! //Get all the video files ArrayList<String> urls = new ArrayList<>(); for (SmbFile f2 : grandparent.listFiles()) { for (SmbFile f3 : f2.listFiles()) { if (VideoUtils.isVideoFile(f3.getPath())) { //Presumably in order urls.add(f3.getPath()); } } } // Log.d(TAG, urls.toString()); //This works well v.setVideoUrl(urls); video_folder = true; } else { //Add the video like normal //Let's delete this video and all like it from our video database List<Video> videos = Select.from(Video.class) .where(Condition.prop("video_url").like("%" + f.getPath().replace("'", "''") + "%")) .list(); // Log.d(TAG, "Purging "+videos.size()+" item(s)"); for (Video vx : videos) { // Log.d(TAG, "Deleting "+vx.getVideoUrl()); vx.delete(); } v.setName(f.getName()); v.setSource(FileSource.SMB); v.setVideoUrl(f.getPath()); fileCount++; //Send a request to update metadata every second, to prevent as many 429 errors and memory exceptions Message m = new Message(); Bundle mBundle = new Bundle(); mBundle.putSerializable("VIDEO", v.clone()); mBundle.putInt("WHEN", (int) (1000 * fileCount + Math.round(Math.random() * 100))); m.setData(mBundle); // h.sendEmptyMessageDelayed(1000 * fileCount, 1000 * fileCount); h.sendMessageDelayed(m, 1000 * fileCount); Log.d(TAG, "Queued " + mBundle.getInt("WHEN") + " - " + v.getName()); v.save(); //Need to save here, otherwise purging won't work as expected } // Log.d(TAG, v.toString()); // return; } //Ignore otherwise } } //Let's do VOB video if (video_folder) { // Log.d(TAG, "Done rooting through "+root.getPath()); Log.d(TAG, "Created info for VOB " + v.toString()); fileCount++; //Send a request to update metadata every second, to prevent as many 429 errors and memory exceptions Message m = new Message(); Bundle mBundle = new Bundle(); mBundle.putSerializable("VIDEO", v.clone()); m.setData(mBundle); // h.sendEmptyMessageDelayed(1000 * fileCount, 1000 * fileCount); h.sendMessageDelayed(m, 1000 * fileCount); Log.d(TAG, "Queued " + 1000 * fileCount + " - " + v.getName()); v.save(); //Need to save here, otherwise purging won't work as expected } }
From source file:com.android.deskclock.Utils.java
public static void enforceNotMainLooper() { if (Looper.getMainLooper() == Looper.myLooper()) { throw new IllegalAccessError("May not call from main thread."); }/*from w ww . j ava2 s .c o m*/ }
From source file:com.scvngr.levelup.core.test.SupportLoaderTestCase.java
/** * Runs a Loader synchronously and returns the result of the load. The loader will be started, * stopped, and destroyed by this method so it cannot be reused. * * @param loader The loader to run synchronously * @return The result from the loader/*ww w . j av a2s .c om*/ */ public <T> T getLoaderResultSynchronously(final Loader<T> loader) { // The test thread blocks on this queue until the loader puts its result in final ArrayBlockingQueue<T> queue = new ArrayBlockingQueue<T>(1); final CountDownLatch latch = new CountDownLatch(1); // This callback runs on the "main" thread and unblocks the test thread // when it puts the result into the blocking queue final OnLoadCompleteListener<T> listener = new OnLoadCompleteListener<T>() { @Override public void onLoadComplete(final Loader<T> completedLoader, final T data) { // Shut the loader down completedLoader.unregisterListener(this); completedLoader.stopLoading(); completedLoader.reset(); // Store the result, unblocking the test thread if (null != data) { queue.add(data); } latch.countDown(); } }; // This handler runs on the "main" thread of the process since AsyncTask // is documented as needing to run on the main thread and many Loaders use // AsyncTask final Handler mainThreadHandler = new Handler(Looper.getMainLooper()) { @Override public void handleMessage(final Message msg) { loader.registerListener(0, listener); loader.startLoading(); } }; // Ask the main thread to start the loading process mainThreadHandler.sendEmptyMessage(0); // Block on the queue waiting for the result of the load to be inserted T result; while (true) { try { latch.await(); result = queue.peek(); break; } catch (final InterruptedException e) { throw new RuntimeException("waiting thread interrupted", e); } } return result; }
From source file:com.felkertech.n.tv.presenters.CardPresenter.java
@Override public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object item) { final CumulusChannel jsonChannel = (CumulusChannel) item; final ImageCardView cardView = (ImageCardView) viewHolder.view; cardView.setTitleText(jsonChannel.getName()); cardView.setContentText(jsonChannel.getNumber()); cardView.setMainImageDimensions(CARD_WIDTH, CARD_HEIGHT); if (jsonChannel.getLogo() == null || jsonChannel.getLogo().isEmpty()) { cardView.setMainImage(mContext.getResources().getDrawable(R.drawable.c_banner_3_2)); cardView.findViewById(R.id.info_field) .setBackgroundColor(mContext.getResources().getColor(R.color.colorPrimaryDark)); } else {//from w w w .j a v a 2 s . c o m new Thread(new Runnable() { @Override public void run() { try { final Bitmap logo = Picasso.with(mContext).load(jsonChannel.getLogo()) .error(R.drawable.c_banner_3_2).centerInside().resize(CARD_WIDTH, CARD_HEIGHT) .get(); new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { try { cardView.getMainImageView().setImageBitmap(logo); Palette colors = Palette.from(logo).generate(); if (colors.getDarkVibrantSwatch() != null) { cardView.findViewById(R.id.info_field) .setBackgroundColor(colors.getDarkVibrantSwatch().getRgb()); } else if (colors.getSwatches().size() > 0) { cardView.findViewById(R.id.info_field) .setBackgroundColor(colors.getSwatches().get(0).getRgb()); } else { cardView.findViewById(R.id.info_field).setBackgroundColor( ContextCompat.getColor(mContext, R.color.colorPrimaryDark)); } } catch (IllegalArgumentException e) { Log.e(TAG, "There was a problem loading " + jsonChannel.getLogo()); e.printStackTrace(); } } }); } catch (IOException e) { e.printStackTrace(); } } }).start(); } }