List of usage examples for android.os Looper getMainLooper
public static Looper getMainLooper()
From source file:com.networking.ApiTestActivity.java
public void downloadFile(final View view) { String url = "http://www.colorado.edu/conflict/peace/download/peace_problem.ZIP"; AndroidNetworking.download(url, Utils.getRootDirPath(getApplicationContext()), "file1.zip") .setPriority(Priority.HIGH).setTag(this).build().setAnalyticsListener(new AnalyticsListener() { @Override// w ww . j a v a2 s . c om public void onReceived(long timeTakenInMillis, long bytesSent, long bytesReceived, boolean isFromCache) { Log.d(TAG, " timeTakenInMillis : " + timeTakenInMillis); Log.d(TAG, " bytesSent : " + bytesSent); Log.d(TAG, " bytesReceived : " + bytesReceived); Log.d(TAG, " isFromCache : " + isFromCache); } }).setDownloadProgressListener(new DownloadProgressListener() { @Override public void onProgress(long bytesDownloaded, long totalBytes) { Log.d(TAG, "bytesDownloaded : " + bytesDownloaded + " totalBytes : " + totalBytes); Log.d(TAG, "setDownloadProgressListener isMainThread : " + String.valueOf(Looper.myLooper() == Looper.getMainLooper())); } }).startDownload(new DownloadListener() { @Override public void onDownloadComplete() { Log.d(TAG, "File download Completed"); Log.d(TAG, "onDownloadComplete isMainThread : " + String.valueOf(Looper.myLooper() == Looper.getMainLooper())); } @Override public void onError(ANError error) { if (error.getErrorCode() != 0) { // received ANError from server // error.getErrorCode() - the ANError code from server // error.getErrorBody() - the ANError body from server // error.getErrorDetail() - just an ANError detail Log.d(TAG, "onError errorCode : " + error.getErrorCode()); Log.d(TAG, "onError errorBody : " + error.getErrorBody()); Log.d(TAG, "onError errorDetail : " + error.getErrorDetail()); } else { // error.getErrorDetail() : connectionError, parseError, requestCancelledError Log.d(TAG, "onError errorDetail : " + error.getErrorDetail()); } } }); }
From source file:com.mobilyzer.util.PhoneUtils.java
/** * Lazily initializes the location manager. * * As a side effect, assigns locationManager and locationProviderName. *//*from w ww.j a v a2 s . co m*/ private synchronized void initLocation() { if (locationManager == null) { LocationManager manager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); Criteria criteriaCoarse = new Criteria(); /* "Coarse" accuracy means "no need to use GPS". * Typically a gShots phone would be located in a building, * and GPS may not be able to acquire a location. * We only care about the location to determine the country, * so we don't need a super accurate location, cell/wifi is good enough. */ criteriaCoarse.setAccuracy(Criteria.ACCURACY_COARSE); criteriaCoarse.setPowerRequirement(Criteria.POWER_LOW); String providerName = manager.getBestProvider(criteriaCoarse, /*enabledOnly=*/true); List<String> providers = manager.getAllProviders(); for (String providerNameIter : providers) { try { LocationProvider provider = manager.getProvider(providerNameIter); } catch (SecurityException se) { // Not allowed to use this provider Logger.w("Unable to use provider " + providerNameIter); continue; } Logger.i(providerNameIter + ": " + (manager.isProviderEnabled(providerNameIter) ? "enabled" : "disabled")); } /* Make sure the provider updates its location. * Without this, we may get a very old location, even a * device powercycle may not update it. * {@see android.location.LocationManager.getLastKnownLocation}. */ manager.requestLocationUpdates(providerName, /*minTime=*/0, /*minDistance=*/0, new LoggingLocationListener(), Looper.getMainLooper()); locationManager = manager; locationProviderName = providerName; } assert locationManager != null; assert locationProviderName != null; }
From source file:com.google.android.apps.santatracker.doodles.tilt.SwimmingFragment.java
@Override public void onEventReceived(int type, final Object data) { if (isDestroyed) { return;/*from w w w . j av a 2 s . c o m*/ } switch (type) { case EventBus.SCORE_CHANGED: int distance = integerValue(data); boolean shouldAddStar = false; if (model.currentScoreThreshold < SwimmingModel.SCORE_THRESHOLDS.length && distance >= SwimmingModel.SCORE_THRESHOLDS[model.currentScoreThreshold]) { // Pop in star. shouldAddStar = true; model.currentScoreThreshold++; } updateScoreUi(distance, shouldAddStar); break; case EventBus.SWIMMING_DIVE: getActivity().runOnUiThread(new Runnable() { @Override public void run() { diveView.startCooldown(); } }); break; case EventBus.GAME_STATE_CHANGED: SwimmingState state = (SwimmingState) data; mIsGameOver = false; if (state == SwimmingState.FINISHED) { mIsGameOver = true; calculateBestDistance(); calculateStars(); getActivity().runOnUiThread(new Runnable() { @Override public void run() { pauseView.hidePauseButton(); } }); final Handler handler = new Handler(Looper.getMainLooper()); handler.postDelayed(new Runnable() { @Override public void run() { if (model == null) { return; } int bestDistance = historyManager.getBestDistance(GameType.SWIMMING).intValue(); String collidedObjectType = model.swimmer.getCollidedObjectType(); scoreView.updateBestScore(AndroidUtils.getText(context.getResources(), R.string.swimming_score, bestDistance)); scoreView.setShareDrawable(getShareImageDrawable(collidedObjectType)); diveView.hide(); scoreView.animateToEndState(); } }, END_VIEW_ON_DEATH_DELAY_MS); } // [ANALYTICS] FirebaseAnalytics analytics = FirebaseAnalytics.getInstance(getActivity()); MeasurementManager.recordSwimmingEnd(analytics, model.getStarCount(), model.distanceMeters, model.swimmer.getCollidedObjectType()); break; case EventBus.PLAY_SOUND: int resId = (int) data; if (soundManager != null) { soundManager.play(resId); } break; case EventBus.MUTE_SOUNDS: boolean shouldMute = (boolean) data; if (soundManager != null) { if (shouldMute) { soundManager.mute(); } else { soundManager.unmute(); } } break; case EventBus.GAME_LOADED: long loadTimeMs = (long) data; titleDurationMs = Math.max(0, titleDurationMs - loadTimeMs); Log.d(TAG, "Waiting " + titleDurationMs + "ms and then hiding title."); break; } }
From source file:com.digium.respokesdk.RespokeGroup.java
/** * A convenience method for posting errors to a GetGroupMembersCompletionListener * * @param completionListener The listener to notify * @param errorMessage The human-readable error message that occurred *///from www . j a va 2s. c o m private void postGetGroupMembersError(final GetGroupMembersCompletionListener completionListener, final String errorMessage) { new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { if (null != completionListener) { completionListener.onError(errorMessage); } } }); }
From source file:com.fsck.k9.helper.Utility.java
/** * @return a {@link Handler} tied to the main thread. *//*from ww w . j av a2s .co m*/ public static Handler getMainThreadHandler() { if (sMainThreadHandler == null) { // No need to synchronize -- it's okay to create an extra Handler, which will be used // only once and then thrown away. sMainThreadHandler = new Handler(Looper.getMainLooper()); } return sMainThreadHandler; }
From source file:com.rxsampleapp.RxApiTestActivity.java
public void downloadFile(final View view) { String url = "http://www.colorado.edu/conflict/peace/download/peace_problem.ZIP"; RxAndroidNetworking.download(url, Utils.getRootDirPath(getApplicationContext()), "file1.zip").build() .setAnalyticsListener(new AnalyticsListener() { @Override// w ww . j a v a 2s. c o m public void onReceived(long timeTakenInMillis, long bytesSent, long bytesReceived, boolean isFromCache) { Log.d(TAG, " timeTakenInMillis : " + timeTakenInMillis); Log.d(TAG, " bytesSent : " + bytesSent); Log.d(TAG, " bytesReceived : " + bytesReceived); Log.d(TAG, " isFromCache : " + isFromCache); } }).setDownloadProgressListener(new DownloadProgressListener() { @Override public void onProgress(long bytesDownloaded, long totalBytes) { Log.d(TAG, "bytesDownloaded : " + bytesDownloaded + " totalBytes : " + totalBytes); Log.d(TAG, "setDownloadProgressListener isMainThread : " + String.valueOf(Looper.myLooper() == Looper.getMainLooper())); } }).getDownloadObservable().subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<String>() { @Override public void onCompleted() { Log.d(TAG, "File download Completed"); Log.d(TAG, "onDownloadComplete isMainThread : " + String.valueOf(Looper.myLooper() == Looper.getMainLooper())); } @Override public void onError(Throwable e) { if (e instanceof ANError) { ANError anError = (ANError) e; if (anError.getErrorCode() != 0) { // received ANError from server // error.getErrorCode() - the ANError code from server // error.getErrorBody() - the ANError body from server // error.getErrorDetail() - just a ANError detail Log.d(TAG, "onError errorCode : " + anError.getErrorCode()); Log.d(TAG, "onError errorBody : " + anError.getErrorBody()); Log.d(TAG, "onError errorDetail : " + anError.getErrorDetail()); } else { // error.getErrorDetail() : connectionError, parseError, requestCancelledError Log.d(TAG, "onError errorDetail : " + anError.getErrorDetail()); } } else { Log.d(TAG, "onError errorMessage : " + e.getMessage()); } } @Override public void onNext(String s) { Log.d(TAG, "onNext : " + s); } }); }
From source file:com.gyz.androidopensamples.vlayout.VLayoutActivity.java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_vlayout_main); mFirstText = (TextView) findViewById(R.id.first); mLastText = (TextView) findViewById(R.id.last); mCountText = (TextView) findViewById(R.id.count); mTotalOffsetText = (TextView) findViewById(R.id.total_offset); final RecyclerView recyclerView = (RecyclerView) findViewById(R.id.main_view); findViewById(R.id.jump).setOnClickListener(new View.OnClickListener() { @Override/*from w w w . j ava 2 s.c o m*/ public void onClick(View v) { EditText position = (EditText) findViewById(R.id.position); if (!TextUtils.isEmpty(position.getText())) { try { int pos = Integer.parseInt(position.getText().toString()); recyclerView.scrollToPosition(pos); } catch (Exception e) { Log.e("VlayoutActivity", e.getMessage(), e); } } else { recyclerView.requestLayout(); } } }); final VirtualLayoutManager layoutManager = new VirtualLayoutManager(this); recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int scrollState) { } @Override public void onScrolled(RecyclerView recyclerView, int i, int i2) { mFirstText.setText("First: " + layoutManager.findFirstVisibleItemPosition()); mLastText.setText( "Existing: " + MainViewHolder.existing + " Created: " + MainViewHolder.createdTimes); mCountText.setText("Count: " + recyclerView.getChildCount()); mTotalOffsetText.setText("Total Offset: " + layoutManager.getOffsetToStart()); } }); recyclerView.setLayoutManager(layoutManager); // layoutManager.setReverseLayout(true); RecyclerView.ItemDecoration itemDecoration = new RecyclerView.ItemDecoration() { @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { int position = ((LayoutParams) view.getLayoutParams()).getViewPosition(); outRect.set(4, 4, 4, 4); } }; final RecyclerView.RecycledViewPool viewPool = new RecyclerView.RecycledViewPool(); recyclerView.setRecycledViewPool(viewPool); // recyclerView.addItemDecoration(itemDecoration); viewPool.setMaxRecycledViews(0, 20); final DelegateAdapter delegateAdapter = new DelegateAdapter(layoutManager, true); recyclerView.setAdapter(delegateAdapter); List<DelegateAdapter.Adapter> adapters = new LinkedList<>(); if (BANNER_LAYOUT) { adapters.add(new SubAdapter(this, new LinearLayoutHelper(), 1) { @Override public void onViewRecycled(MainViewHolder holder) { if (holder.itemView instanceof ViewPager) { ((ViewPager) holder.itemView).setAdapter(null); } } @Override public MainViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == 1) { return new MainViewHolder(LayoutInflater.from(VLayoutActivity.this) .inflate(R.layout.view_pager, parent, false)); } return super.onCreateViewHolder(parent, viewType); } @Override public int getItemViewType(int position) { return 1; } @Override protected void onBindViewHolderWithOffset(MainViewHolder holder, int position, int offsetTotal) { } @Override public void onBindViewHolder(MainViewHolder holder, int position) { if (holder.itemView instanceof ViewPager) { ViewPager viewPager = (ViewPager) holder.itemView; viewPager.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 200)); // from position to get adapter viewPager.setAdapter(new PagerAdapter(this, viewPool)); } } }); } if (FLOAT_LAYOUT) { FloatLayoutHelper layoutHelper = new FloatLayoutHelper(); layoutHelper.setAlignType(FixLayoutHelper.BOTTOM_RIGHT); layoutHelper.setDefaultLocation(100, 400); LayoutParams layoutParams = new LayoutParams(150, 150); adapters.add(new SubAdapter(this, layoutHelper, 1, layoutParams)); } if (LINEAR_LAYOUT) { LinearLayoutHelper layoutHelper1 = new LinearLayoutHelper(); layoutHelper1.setAspectRatio(2.0f); LinearLayoutHelper layoutHelper2 = new LinearLayoutHelper(); layoutHelper2.setAspectRatio(4.0f); layoutHelper2.setDividerHeight(10); layoutHelper2.setMargin(10, 30, 10, 10); layoutHelper2.setPadding(10, 30, 10, 10); layoutHelper2.setBgColor(0xFFF5A623); adapters.add(new SubAdapter(this, layoutHelper1, 1)); adapters.add(new SubAdapter(this, layoutHelper2, 6) { @Override public void onBindViewHolder(MainViewHolder holder, int position) { if (position % 2 == 0) { LayoutParams layoutParams = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 300); layoutParams.mAspectRatio = 5; holder.itemView.setLayoutParams(layoutParams); } } }); } if (STICKY_LAYOUT) { StickyLayoutHelper layoutHelper = new StickyLayoutHelper(); layoutHelper.setOffset(100); layoutHelper.setAspectRatio(4); adapters.add(new SubAdapter(this, layoutHelper, 1, new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 100))); } if (SINGLE_LAYOUT) { SingleLayoutHelper layoutHelper = new SingleLayoutHelper(); layoutHelper.setBgColor(Color.rgb(135, 225, 90)); layoutHelper.setAspectRatio(4); layoutHelper.setMargin(10, 20, 10, 20); layoutHelper.setPadding(10, 10, 10, 10); adapters.add(new SubAdapter(this, layoutHelper, 1, new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 100))); } if (COLUMN_LAYOUT) { ColumnLayoutHelper layoutHelper = new ColumnLayoutHelper(); layoutHelper.setBgColor(0xff00f0f0); layoutHelper.setWeights(new float[] { 40.0f, Float.NaN, 40 }); adapters.add(new SubAdapter(this, layoutHelper, 5) { @Override public void onBindViewHolder(MainViewHolder holder, int position) { if (position == 0) { LayoutParams layoutParams = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 300); layoutParams.mAspectRatio = 4; holder.itemView.setLayoutParams(layoutParams); } } }); } if (ONEN_LAYOUT) { OnePlusNLayoutHelper helper = new OnePlusNLayoutHelper(); helper.setBgColor(0xff876384); helper.setAspectRatio(4.0f); helper.setColWeights(new float[] { 40f, 45f }); helper.setMargin(10, 20, 10, 20); helper.setPadding(10, 10, 10, 10); adapters.add(new SubAdapter(this, helper, 2)); } if (ONEN_LAYOUT) { OnePlusNLayoutHelper helper = new OnePlusNLayoutHelper(); helper.setBgColor(0xffef8ba3); helper.setAspectRatio(2.0f); helper.setColWeights(new float[] { 40f }); helper.setRowWeight(30f); helper.setMargin(10, 20, 10, 20); helper.setPadding(10, 10, 10, 10); adapters.add(new SubAdapter(this, helper, 4) { @Override public void onBindViewHolder(MainViewHolder holder, int position) { super.onBindViewHolder(holder, position); LayoutParams lp = (LayoutParams) holder.itemView.getLayoutParams(); if (position == 0) { lp.rightMargin = 1; } else if (position == 1) { } else if (position == 2) { lp.topMargin = 1; lp.rightMargin = 1; } } }); } if (ONEN_LAYOUT) { adapters.add(new SubAdapter(this, new OnePlusNLayoutHelper(), 0)); OnePlusNLayoutHelper helper = new OnePlusNLayoutHelper(); helper.setBgColor(0xff87e543); helper.setAspectRatio(1.8f); helper.setColWeights(new float[] { 33.33f, 50f, 40f }); helper.setMargin(10, 20, 10, 20); helper.setPadding(10, 10, 10, 10); LayoutParams lp = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); adapters.add(new SubAdapter(this, helper, 3, lp) { @Override public void onBindViewHolder(MainViewHolder holder, int position) { super.onBindViewHolder(holder, position); LayoutParams lp = (LayoutParams) holder.itemView.getLayoutParams(); if (position == 0) { lp.rightMargin = 1; } } }); } if (COLUMN_LAYOUT) { adapters.add(new SubAdapter(this, new ColumnLayoutHelper(), 0)); adapters.add(new SubAdapter(this, new ColumnLayoutHelper(), 4)); } if (FIX_LAYOUT) { FixLayoutHelper layoutHelper = new FixLayoutHelper(10, 10); adapters.add(new SubAdapter(this, layoutHelper, 0)); layoutHelper = new FixLayoutHelper(FixLayoutHelper.TOP_RIGHT, 20, 20); adapters.add(new SubAdapter(this, layoutHelper, 1) { @Override public void onBindViewHolder(MainViewHolder holder, int position) { super.onBindViewHolder(holder, position); LayoutParams layoutParams = new LayoutParams(200, 200); holder.itemView.setLayoutParams(layoutParams); } }); } if (STICKY_LAYOUT) { StickyLayoutHelper layoutHelper = new StickyLayoutHelper(false); adapters.add(new SubAdapter(this, layoutHelper, 0)); layoutHelper = new StickyLayoutHelper(false); layoutHelper.setOffset(100); adapters.add(new SubAdapter(this, layoutHelper, 3, new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 100))); } if (GRID_LAYOUT) { GridLayoutHelper layoutHelper = new GridLayoutHelper(2); layoutHelper.setMargin(7, 0, 7, 0); layoutHelper.setWeights(new float[] { 46.665f }); layoutHelper.setHGap(3); adapters.add(new SubAdapter(this, layoutHelper, 2)); layoutHelper = new GridLayoutHelper(4); layoutHelper.setWeights(new float[] { 20f, 26.665f }); layoutHelper.setMargin(7, 0, 7, 0); layoutHelper.setHGap(3); adapters.add(new SubAdapter(this, layoutHelper, 8)); } if (GRID_LAYOUT) { adapters.add(new SubAdapter(this, new GridLayoutHelper(4), 0)); GridLayoutHelper helper = new GridLayoutHelper(4); helper.setAspectRatio(4f); //helper.setColWeights(new float[]{40, 20, 30, 30}); // helper.setMargin(0, 10, 0, 10); helper.setGap(10); adapters.add(new SubAdapter(this, helper, 80) { @Override public void onBindViewHolder(MainViewHolder holder, int position) { super.onBindViewHolder(holder, position); LayoutParams lp = (LayoutParams) holder.itemView.getLayoutParams(); // lp.bottomMargin = 1; // lp.rightMargin = 1; } }); } if (FIX_LAYOUT) { adapters.add(new SubAdapter(this, new ScrollFixLayoutHelper(20, 20), 1) { @Override public void onBindViewHolder(MainViewHolder holder, int position) { super.onBindViewHolder(holder, position); LayoutParams layoutParams = new LayoutParams(200, 200); holder.itemView.setLayoutParams(layoutParams); } }); } if (LINEAR_LAYOUT) adapters.add(new SubAdapter(this, new LinearLayoutHelper(), 10)); if (GRID_LAYOUT) { GridLayoutHelper helper = new GridLayoutHelper(3); helper.setMargin(0, 10, 0, 10); adapters.add(new SubAdapter(this, helper, 3)); } if (STAGGER_LAYOUT) { // adapters.add(new SubAdapter(this, new StaggeredGridLayoutHelper(2, 0), 0)); final StaggeredGridLayoutHelper helper = new StaggeredGridLayoutHelper(2, 10); helper.setMargin(20, 10, 10, 10); helper.setPadding(10, 10, 20, 10); helper.setBgColor(0xFF86345A); adapters.add(new SubAdapter(this, helper, 27) { @Override public void onBindViewHolder(MainViewHolder holder, int position) { super.onBindViewHolder(holder, position); LayoutParams layoutParams = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 200); if (position % 2 == 0) { layoutParams.mAspectRatio = 1.0f; } else { layoutParams.height = 340 + position % 7 * 20; } holder.itemView.setLayoutParams(layoutParams); } }); } if (COLUMN_LAYOUT) { // adapters.add(new SubAdapter(this, new ColumnLayoutHelper(), 3)); } if (GRID_LAYOUT) { // adapters.add(new SubAdapter(this, new GridLayoutHelper(4), 24)); } delegateAdapter.setAdapters(adapters); final Handler mainHandler = new Handler(Looper.getMainLooper()); trigger = new Runnable() { @Override public void run() { // recyclerView.scrollToPosition(22); // recyclerView.getAdapter().notifyDataSetChanged(); recyclerView.requestLayout(); // mainHandler.postDelayed(trigger, 1000); } }; mainHandler.postDelayed(trigger, 1000); }
From source file:com.digium.respokesdk.RespokeCall.java
/** * Process a hangup message received from the remote endpoint. This is used internally to the SDK and should not be called directly by your client application. *//*from ww w .java 2 s .c om*/ public void hangupReceived() { if (!isHangingUp) { isHangingUp = true; if (null != listenerReference) { // Disconnect will clear the listenerReference, so grab a reference to the // listener while it's still alive since the listener will be notified in a // different (UI) thread final Listener listener = listenerReference.get(); new Handler(Looper.getMainLooper()).post(new Runnable() { public void run() { if (null != listener) { listener.onHangup(RespokeCall.this); } } }); } disconnect(); } }
From source file:com.alibaba.android.layoutmanager.example.VLayoutActivity.java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); mFirstText = (TextView) findViewById(R.id.first); mLastText = (TextView) findViewById(R.id.last); mCountText = (TextView) findViewById(R.id.count); mTotalOffsetText = (TextView) findViewById(R.id.total_offset); final RecyclerView recyclerView = (RecyclerView) findViewById(R.id.main_view); findViewById(R.id.jump).setOnClickListener(new View.OnClickListener() { @Override/*from w w w . j a va 2 s.c o m*/ public void onClick(View v) { EditText position = (EditText) findViewById(R.id.position); if (!TextUtils.isEmpty(position.getText())) { try { int pos = Integer.parseInt(position.getText().toString()); recyclerView.scrollToPosition(pos); } catch (Exception e) { Log.e("VlayoutActivity", e.getMessage(), e); } } else { recyclerView.requestLayout(); } } }); final VirtualLayoutManager layoutManager = new VirtualLayoutManager(this); recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int scrollState) { } @Override public void onScrolled(RecyclerView recyclerView, int i, int i2) { mFirstText.setText("First: " + layoutManager.findFirstVisibleItemPosition()); mLastText.setText( "Existing: " + MainViewHolder.existing + " Created: " + MainViewHolder.createdTimes); mCountText.setText("Count: " + recyclerView.getChildCount()); mTotalOffsetText.setText("Total Offset: " + layoutManager.getOffsetToStart()); } }); recyclerView.setLayoutManager(layoutManager); // layoutManager.setReverseLayout(true); RecyclerView.ItemDecoration itemDecoration = new RecyclerView.ItemDecoration() { public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { int position = ((LayoutParams) view.getLayoutParams()).getViewPosition(); outRect.set(4, 4, 4, 4); } }; final RecyclerView.RecycledViewPool viewPool = new RecyclerView.RecycledViewPool(); recyclerView.setRecycledViewPool(viewPool); // recyclerView.addItemDecoration(itemDecoration); viewPool.setMaxRecycledViews(0, 20); final DelegateAdapter delegateAdapter = new DelegateAdapter(layoutManager, true); recyclerView.setAdapter(delegateAdapter); final List<DelegateAdapter.Adapter> adapters = new LinkedList<>(); if (BANNER_LAYOUT) { adapters.add(new SubAdapter(this, new LinearLayoutHelper(), 1) { @Override public void onViewRecycled(MainViewHolder holder) { if (holder.itemView instanceof ViewPager) { ((ViewPager) holder.itemView).setAdapter(null); } } @Override public MainViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == 1) return new MainViewHolder(LayoutInflater.from(VLayoutActivity.this) .inflate(R.layout.view_pager, parent, false)); return super.onCreateViewHolder(parent, viewType); } @Override public int getItemViewType(int position) { return 1; } @Override protected void onBindViewHolderWithOffset(MainViewHolder holder, int position, int offsetTotal) { } @Override public void onBindViewHolder(MainViewHolder holder, int position) { if (holder.itemView instanceof ViewPager) { ViewPager viewPager = (ViewPager) holder.itemView; viewPager.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 200)); // from position to get adapter viewPager.setAdapter(new PagerAdapter(this, viewPool)); } } }); } // { // GridLayoutHelper helper = new GridLayoutHelper(10); // helper.setAspectRatio(4f); // helper.setGap(10); // adapters.add(new SubAdapter(this, helper, 80)); // } if (FLOAT_LAYOUT) { FloatLayoutHelper layoutHelper = new FloatLayoutHelper(); layoutHelper.setAlignType(FixLayoutHelper.BOTTOM_RIGHT); layoutHelper.setDefaultLocation(100, 400); LayoutParams layoutParams = new LayoutParams(150, 150); adapters.add(new SubAdapter(this, layoutHelper, 1, layoutParams)); } if (LINEAR_LAYOUT) { LinearLayoutHelper layoutHelper1 = new LinearLayoutHelper(); layoutHelper1.setAspectRatio(2.0f); LinearLayoutHelper layoutHelper2 = new LinearLayoutHelper(); layoutHelper2.setAspectRatio(4.0f); layoutHelper2.setDividerHeight(10); layoutHelper2.setMargin(10, 30, 10, 10); layoutHelper2.setPadding(10, 30, 10, 10); layoutHelper2.setBgColor(0xFFF5A623); adapters.add(new SubAdapter(this, layoutHelper1, 1)); adapters.add(new SubAdapter(this, layoutHelper2, 6) { @Override public void onBindViewHolder(MainViewHolder holder, int position) { if (position % 2 == 0) { LayoutParams layoutParams = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 300); layoutParams.mAspectRatio = 5; holder.itemView.setLayoutParams(layoutParams); } } }); } if (STICKY_LAYOUT) { StickyLayoutHelper layoutHelper = new StickyLayoutHelper(); layoutHelper.setOffset(100); layoutHelper.setAspectRatio(4); adapters.add(new SubAdapter(this, layoutHelper, 1, new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 100))); } if (SINGLE_LAYOUT) { SingleLayoutHelper layoutHelper = new SingleLayoutHelper(); layoutHelper.setBgColor(Color.rgb(135, 225, 90)); layoutHelper.setAspectRatio(4); layoutHelper.setMargin(10, 20, 10, 20); layoutHelper.setPadding(10, 10, 10, 10); adapters.add(new SubAdapter(this, layoutHelper, 1, new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 100))); } if (COLUMN_LAYOUT) { ColumnLayoutHelper layoutHelper = new ColumnLayoutHelper(); layoutHelper.setBgColor(0xff00f0f0); layoutHelper.setWeights(new float[] { 40.0f, Float.NaN, 40 }); adapters.add(new SubAdapter(this, layoutHelper, 5) { @Override public void onBindViewHolder(MainViewHolder holder, int position) { if (position == 0) { LayoutParams layoutParams = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 300); layoutParams.mAspectRatio = 4; holder.itemView.setLayoutParams(layoutParams); } else { LayoutParams layoutParams = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 300); layoutParams.mAspectRatio = Float.NaN; holder.itemView.setLayoutParams(layoutParams); } } }); } if (ONEN_LAYOUT) { OnePlusNLayoutHelper helper = new OnePlusNLayoutHelper(); helper.setBgColor(0xff876384); helper.setAspectRatio(4.0f); helper.setColWeights(new float[] { 40f, 45f }); helper.setMargin(10, 20, 10, 20); helper.setPadding(10, 10, 10, 10); adapters.add(new SubAdapter(this, helper, 2)); } if (ONEN_LAYOUT) { OnePlusNLayoutHelper helper = new OnePlusNLayoutHelper(); helper.setBgColor(0xffef8ba3); helper.setAspectRatio(2.0f); helper.setColWeights(new float[] { 40f }); helper.setRowWeight(30f); helper.setMargin(10, 20, 10, 20); helper.setPadding(10, 10, 10, 10); adapters.add(new SubAdapter(this, helper, 4) { @Override public void onBindViewHolder(MainViewHolder holder, int position) { super.onBindViewHolder(holder, position); LayoutParams lp = (LayoutParams) holder.itemView.getLayoutParams(); if (position == 0) { lp.rightMargin = 1; } else if (position == 1) { } else if (position == 2) { lp.topMargin = 1; lp.rightMargin = 1; } } }); } if (ONEN_LAYOUT) { adapters.add(new SubAdapter(this, new OnePlusNLayoutHelper(), 0)); OnePlusNLayoutHelper helper = new OnePlusNLayoutHelper(); helper.setBgColor(0xff87e543); helper.setAspectRatio(1.8f); helper.setColWeights(new float[] { 33.33f, 50f, 40f }); helper.setMargin(10, 20, 10, 20); helper.setPadding(10, 10, 10, 10); LayoutParams lp = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); adapters.add(new SubAdapter(this, helper, 3, lp) { @Override public void onBindViewHolder(MainViewHolder holder, int position) { super.onBindViewHolder(holder, position); LayoutParams lp = (LayoutParams) holder.itemView.getLayoutParams(); if (position == 0) { lp.rightMargin = 1; } } }); } if (COLUMN_LAYOUT) { adapters.add(new SubAdapter(this, new ColumnLayoutHelper(), 0)); adapters.add(new SubAdapter(this, new ColumnLayoutHelper(), 4)); } if (FIX_LAYOUT) { FixLayoutHelper layoutHelper = new FixLayoutHelper(10, 10); adapters.add(new SubAdapter(this, layoutHelper, 0)); layoutHelper = new FixLayoutHelper(FixLayoutHelper.TOP_RIGHT, 20, 20); adapters.add(new SubAdapter(this, layoutHelper, 1) { @Override public void onBindViewHolder(MainViewHolder holder, int position) { super.onBindViewHolder(holder, position); LayoutParams layoutParams = new LayoutParams(200, 200); holder.itemView.setLayoutParams(layoutParams); } }); } if (STICKY_LAYOUT) { StickyLayoutHelper layoutHelper = new StickyLayoutHelper(false); adapters.add(new SubAdapter(this, layoutHelper, 0)); layoutHelper = new StickyLayoutHelper(false); layoutHelper.setOffset(100); adapters.add(new SubAdapter(this, layoutHelper, 1, new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 100))); } if (GRID_LAYOUT) { GridLayoutHelper layoutHelper = new GridLayoutHelper(2); layoutHelper.setMargin(7, 0, 7, 0); layoutHelper.setWeights(new float[] { 46.665f }); layoutHelper.setHGap(3); adapters.add(new SubAdapter(this, layoutHelper, 2)); layoutHelper = new GridLayoutHelper(4); layoutHelper.setWeights(new float[] { 20f, 26.665f }); layoutHelper.setMargin(7, 0, 7, 0); layoutHelper.setHGap(3); adapters.add(new SubAdapter(this, layoutHelper, 8)); } if (GRID_LAYOUT) { adapters.add(new SubAdapter(this, new GridLayoutHelper(4), 0)); GridLayoutHelper helper = new GridLayoutHelper(4); helper.setAspectRatio(4f); //helper.setColWeights(new float[]{40, 20, 30, 30}); // helper.setMargin(0, 10, 0, 10); helper.setGap(10); adapters.add(new SubAdapter(this, helper, 80) { @Override public void onBindViewHolder(MainViewHolder holder, int position) { super.onBindViewHolder(holder, position); LayoutParams lp = (LayoutParams) holder.itemView.getLayoutParams(); // lp.bottomMargin = 1; // lp.rightMargin = 1; } }); } if (FIX_LAYOUT) { adapters.add(new SubAdapter(this, new ScrollFixLayoutHelper(20, 20), 1) { @Override public void onBindViewHolder(MainViewHolder holder, int position) { super.onBindViewHolder(holder, position); LayoutParams layoutParams = new LayoutParams(200, 200); holder.itemView.setLayoutParams(layoutParams); } }); } if (LINEAR_LAYOUT) adapters.add(new SubAdapter(this, new LinearLayoutHelper(), 10)); if (GRID_LAYOUT) { GridLayoutHelper helper = new GridLayoutHelper(3); helper.setMargin(0, 10, 0, 10); adapters.add(new SubAdapter(this, helper, 3)); } if (STAGGER_LAYOUT) { // adapters.add(new SubAdapter(this, new StaggeredGridLayoutHelper(2, 0), 0)); final StaggeredGridLayoutHelper helper = new StaggeredGridLayoutHelper(2, 10); helper.setMargin(20, 10, 10, 10); helper.setPadding(10, 10, 20, 10); helper.setBgColor(0xFF86345A); adapters.add(new SubAdapter(this, helper, 27) { @Override public void onBindViewHolder(MainViewHolder holder, int position) { super.onBindViewHolder(holder, position); LayoutParams layoutParams = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 200); if (position % 2 == 0) { layoutParams.mAspectRatio = 1.0f; } else { layoutParams.height = 340 + position % 7 * 20; } holder.itemView.setLayoutParams(layoutParams); } }); } if (COLUMN_LAYOUT) { // adapters.add(new SubAdapter(this, new ColumnLayoutHelper(), 3)); } if (GRID_LAYOUT) { // adapters.add(new SubAdapter(this, new GridLayoutHelper(4), 24)); } delegateAdapter.setAdapters(adapters); final Handler mainHandler = new Handler(Looper.getMainLooper()); trigger = new Runnable() { @Override public void run() { // recyclerView.scrollToPosition(22); // recyclerView.getAdapter().notifyDataSetChanged(); // mainHandler.postDelayed(trigger, 1000); //List<DelegateAdapter.Adapter> newAdapters = new ArrayList<>(); //newAdapters.add((new SubAdapter(VLayoutActivity.this, new ColumnLayoutHelper(), 3))); //newAdapters.add((new SubAdapter(VLayoutActivity.this, new GridLayoutHelper(4), 24))); //delegateAdapter.addAdapters(newAdapters); recyclerView.requestLayout(); } }; mainHandler.postDelayed(trigger, 1000); }
From source file:com.android.volley.toolbox.ImageLoader.java
private void throwIfNotOnMainThread() { if (Looper.myLooper() != Looper.getMainLooper()) { throw new IllegalStateException("ImageLoader must be invoked from the main thread."); }//from www . j a va2 s.c o m }