public View createView(View parent, final String name, @NonNull Context context, @NonNull AttributeSet attrs) { final boolean isPre21 = Build.VERSION.SDK_INT < 21; if (mSkinCompatViewInflater == null) { mSkinCompatViewInflater = new SkinCompatViewInflater(); } // We only want the View to inherit its context if we're running pre-v21 final boolean inheritContext = isPre21 && shouldInheritContext((ViewParent) parent); return mSkinCompatViewInflater.createView(parent, name, context, attrs, inheritContext, isPre21, /* Only read android:theme pre-L (L+ handles this anyway) */ true, /* Read read app:theme as a fallback at all times for legacy reasons */ VectorEnabledTintResources.shouldBeUsed() /* Only tint wrap the context if enabled */ ); }
private void navigateBack(@NonNull String message) { Snacky.builder() .setActivty(CoinEditActivity.this) .setText(message) .setDuration(Snacky.LENGTH_INDEFINITE) .success() .show(); new Handler().postDelayed(() -> { NavigationService.NavigationResult navigationResult = NavigationService.getInstance().GoBack(CoinEditActivity.this); if (navigationResult != NavigationService.NavigationResult.SUCCESS) { Logger.getInstance().Error(TAG, String.format(Locale.getDefault(), "Navigation failed! navigationResult is %s!", navigationResult)); displayFailSnacky("Failed to navigate back! Please contact LucaHome support!"); } }, 1500); }
@Override public void invalidateDrawable(@NonNull Drawable drawable) { if (hasSameDrawable(drawable)) { invalidate(); } else { super.invalidateDrawable(drawable); } }
public int[] calculateDistanceToFinalSnap(@NonNull RecyclerView.LayoutManager layoutManager, @NonNull View targetView) { int[] out = new int[2]; if (layoutManager.canScrollHorizontally()) { if (gravity == Gravity.START) { out[0] = distanceToStart(targetView, getHorizontalHelper(layoutManager), false); } else { // END out[0] = distanceToEnd(targetView, getHorizontalHelper(layoutManager), false); } } else { out[0] = 0; } if (layoutManager.canScrollVertically()) { if (gravity == Gravity.TOP) { out[1] = distanceToStart(targetView, getVerticalHelper(layoutManager), false); } else { // BOTTOM out[1] = distanceToEnd(targetView, getVerticalHelper(layoutManager), false); } } else { out[1] = 0; } return out; }
/** * Creates a Material Design compliant {@link android.support.v7.widget.Toolbar} icon * from a given full sized icon. * * @param resources Resources for the current {@link android.content.Context}. * @param icon The bitmap to convert. * @return A scaled Bitmap of the appropriate size and in-built padding. */ public static Bitmap createToolbarIcon(@NonNull Resources resources, @NonNull final Bitmap icon) { final int padding = resources.getDimensionPixelSize(R.dimen.margin_small); final int iconSize = resources.getDimensionPixelSize(R.dimen.toolbar_icon_size); final int sizeWithPadding = iconSize + (2 * padding); // Create a Bitmap backed Canvas to be the toolbar icon. final Bitmap toolbarIcon = Bitmap.createBitmap(sizeWithPadding, sizeWithPadding, Bitmap.Config.ARGB_8888); final Canvas canvas = new Canvas(toolbarIcon); canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR); // Resize the app icon to Material Design size. final Bitmap scaledIcon = Bitmap.createScaledBitmap(icon, iconSize, iconSize, false); canvas.drawBitmap(scaledIcon, padding, padding, null); return toolbarIcon; }
@NonNull private View setupContentViewAndStatusBarView(@NonNull Activity activity) throws IllegalStateException { ViewGroup contentViewGroup = (ViewGroup) activity.findViewById(android.R.id.content); View userView = contentViewGroup.getChildAt(0); if (userView == null) { throw new IllegalStateException("Plz invode setContentView() method first!"); } userView.setFitsSystemWindows(false); mInsetsRect.top = ImmerseGlobalConfig.getInstance().getStatusBarHeight(); View statusBarView = new View(activity); ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, mInsetsRect.top); contentViewGroup.addView(statusBarView, params); return statusBarView; }
@Nullable private static Intent convert(@NonNull Context context, Uri data, boolean showRepoBtn) { if (data == null) return null; if (InputHelper.isEmpty(data.getHost()) || InputHelper.isEmpty(data.getScheme())) { String host = data.getHost(); if (InputHelper.isEmpty(host)) host = HOST_DEFAULT; String scheme = data.getScheme(); if (InputHelper.isEmpty(scheme)) scheme = PROTOCOL_HTTPS; String prefix = scheme + "://" + host; String path = data.getPath(); if (!InputHelper.isEmpty(path)) { if (path.charAt(0) == '/') { data = Uri.parse(prefix + path); } else { data = Uri.parse(prefix + '/' + path); } } else { data = Uri.parse(prefix); } } if (data.getPathSegments() != null && !data.getPathSegments().isEmpty()) { if (IGNORED_LIST.contains(data.getPathSegments().get(0))) return null; return getIntentForURI(context, data, showRepoBtn); } return null; }
@Override public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { Log.i(TAG, "onConnectionFailed:" + connectionResult.getErrorMessage()); // Viene chiamata nel caso la connect fallisca ad esempio // non è ancora stata data autorizzaiozne alla applicazione corrente if (connectionResult.hasResolution()) { try { connectionResult.startResolutionForResult(this, RESOLVE_CONNECTION_REQUEST_CODE); } catch (IntentSender.SendIntentException e) { // Unable to resolve, message user appropriately } } else { GoogleApiAvailability.getInstance().getErrorDialog(this, connectionResult.getErrorCode(), 0).show(); } }
public BookmarksAdapter(@NonNull Context context, ArrayList<ZhihuDailyNews.Question> zhihuList, ArrayList<GuokrHandpickNews.result> guokrList, ArrayList<DoubanMomentNews.posts> doubanList, ArrayList<Integer> types) { this.context = context; this.inflater = LayoutInflater.from(context); this.zhihuList = zhihuList; this.guokrList = guokrList; this.doubanList = doubanList; // types.size = zhihuList.size + guokrList.size + doubanList.size this.types = types; }
@Override public void writeToParcel(@NonNull Parcel out, int flags) { super.writeToParcel(out, flags); out.writeInt(color); out.writeInt(dateTextAppearance); out.writeInt(weekDayTextAppearance); out.writeInt(showOtherDates); out.writeByte((byte) (allowClickDaysOutsideCurrentMonth ? 1 : 0)); out.writeParcelable(minDate, 0); out.writeParcelable(maxDate, 0); out.writeTypedList(selectedDates); out.writeInt(firstDayOfWeek); out.writeInt(orientation); out.writeInt(tileWidthPx); out.writeInt(tileHeightPx); out.writeInt(topbarVisible ? 1 : 0); out.writeInt(selectionMode); out.writeInt(dynamicHeightEnabled ? 1 : 0); out.writeInt(calendarMode == CalendarMode.WEEKS ? 1 : 0); out.writeParcelable(currentMonth, 0); out.writeByte((byte) (cacheCurrentPosition ? 1 : 0)); }
@Override protected void onBindViewHolder(@NonNull ViewHold holder, @NonNull final CollectionItem item) { Glide.with(mActivity).load(item.data.cover.feedCover).into(holder.image); holder.title.setText(item.data.title); holder.title.setTypeface(Typeface.createFromAsset(mActivity.getAssets(), mActivity.getString(R.string.DB1FontPath))); holder.info.setText("#" + item.data.category + " / " + TranslateDuration.translateSeconds(item.data.duration) + " / 开眼精选"); holder.info.setTypeface(Typeface.createFromAsset(mActivity.getAssets(), mActivity.getString(R.string.LFontPath))); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(mActivity, MovieDetailActivity.class); Bundle bundle = new Bundle(); bundle.putParcelable("DATA", item.data); intent.putExtras(bundle); mActivity.startActivity(intent); } }); }
public static Retrofit getRetrofit(@NonNull String blogUrl, @NonNull OkHttpClient httpClient) { String baseUrl = NetworkUtils.makeAbsoluteUrl(blogUrl, "ghost/api/v0.1/"); Gson gson = new GsonBuilder() .registerTypeAdapter(Date.class, new DateDeserializer()) .registerTypeAdapter(ConfigurationList.class, new ConfigurationListDeserializer()) .registerTypeAdapterFactory(new PostTypeAdapterFactory()) .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES) .setExclusionStrategies(new RealmExclusionStrategy(), new AnnotationExclusionStrategy()) .create(); return new Retrofit.Builder() .baseUrl(baseUrl) .client(httpClient) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) // for HTML output (e.g., to get the client secret) .addConverterFactory(StringConverterFactory.create()) // for raw JSONObject output (e.g., for the /configuration/about call) .addConverterFactory(JSONObjectConverterFactory.create()) // for domain objects .addConverterFactory(GsonConverterFactory.create(gson)) .build(); }
@Override public void subscribe(final CompletableEmitter emitter) throws Exception { final OnCompleteListener<T> listener = new OnCompleteListener<T>() { @Override public void onComplete(@NonNull Task<T> task) { if (!emitter.isDisposed()) { if (!task.isSuccessful()) { emitter.onError(task.getException()); } else { emitter.onComplete(); } } } }; database.runTransaction(transaction).addOnCompleteListener(listener); }
public void handlePermissionResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults){ PermissionRequest request = mCurrentRequest.poll(); PermissionCallBack callBack = request.getCallBack(); if(requestCode != PERMISSION_CODE || callBack == null){ return; } for(int i=0;i<grantResults.length;i++){ if(grantResults[i] == PackageManager.PERMISSION_DENIED){ callBack.onDenied(); return; } } callBack.onAllPermissionGranted(); }
@Override public SerializableList<Movie> GetList(@NonNull String[] stringArray) { if (StringHelper.StringsAreEqual(stringArray)) { return parseStringToList(stringArray[0]); } else { String usedEntry = StringHelper.SelectString(stringArray, SEARCH_PARAMETER); return parseStringToList(usedEntry); } }
@NonNull public CharSequence make() { switch (items.length) { case 0: return emptyText; case 1: return getWrappedItem(0); case 2: return makeTwoItems(); default: return makeThreeOrMoreItems(); } }
/** */ @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeParcelable(dataSet, flags); dest.writeValue(selectedDate); dest.writeInt(selectedDay); dest.writeInt(selectedDayMonthPosition); }
/** */ @Override public boolean onTouchEvent(@NonNull MotionEvent event) { this.ensureDecorator(); if (mDecorator.onTouchEvent(event) || super.onTouchEvent(event)) { return true; } mDecorator.hideSoftKeyboardOnTouch(); return false; }
@Override protected void onHandleWork(@NonNull Intent intent) { switch (intent.getAction()) { case ACTION_GET_AAID: AaidClient.init(getApplicationContext(), sListener); break; default: // do nothing break; } }
/** * Converts a Bitmap to a PNG image. */ @NonNull public byte[] bitmapToPng(@NonNull Bitmap bitmap) { String stopwatchSessionId = log.startStopwatch(getStopwatchSessionId("bitmapToPng")); // compress Bitmap to PNG ByteArrayOutputStream out = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, out); log.stopStopwatch(stopwatchSessionId); return out.toByteArray(); }
@NonNull private String getMacAddress() { String mac = getMacAddress("wlan0"); if (TextUtils.isEmpty(mac)) { mac = getMacAddress("eth0"); } return mac; }
/** * Invoked from {@link #onBindViewHolder(ViewHolder, int)} with the given <var>dateInMillis</var> * that is associated with the {@link MonthView} at the <var>position</var> according to the * current data set size. * * @param holder View holder to bind. * @param position The position for which to perform binding. * @param dateInMillis Date in milliseconds obtained for the month position via * {@link CalendarDataSet#getMonthDate(int)}. */ @SuppressWarnings("ResourceType") protected void onBindViewHolder(@NonNull ViewHolder holder, int position, long dateInMillis) { final MonthView monthView = (MonthView) holder.itemView; monthView.setLocale(locale); monthView.setDate(dateInMillis); if (selectedDayMonthPosition == position && selectedDay != NO_VALUE) { monthView.setSelection(selectedDay); } else { monthView.setSelection(0); } }
@NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { //去掉Dialog的Title Dialog dialog = super.onCreateDialog(savedInstanceState); if (dialog.getWindow() != null) { dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); } return dialog; }
private WeakRunnable wrapRunnable(@NonNull Runnable r) { //noinspection ConstantConditions if (r == null) { throw new NullPointerException("Runnable can't be null"); } final ChainedRef hardRef = new ChainedRef(mLock, r); mRunnables.insertAfter(hardRef); return hardRef.wrapper; }
@Override public int delete(@NonNull Uri uri, String selection, String[] selectionArgs) { final SQLiteDatabase db_g = mOpenHelper_gallery.getReadableDatabase(); final SQLiteDatabase db_a = mOpenHelper_article.getReadableDatabase(); final int match = sUriMatcher.match(uri); int rowDeleted; if (selection == null) selection = "1"; switch (match) { case IMAGE: rowDeleted = db_g.delete(TABLE_NAME_GALLERY, selection, selectionArgs); break; case ARTICLE: rowDeleted = db_a.delete(TABLE_NAME_ARTICLE, selection, selectionArgs); break; default: throw new UnsupportedOperationException("Unknown uri: " + uri); } if (rowDeleted != 0) { getContext().getContentResolver().notifyChange(uri, null); } return rowDeleted; }
@Override public boolean dispatchHoverEvent(@NonNull MotionEvent event) { // First right-of-refusal goes the touch exploration helper. if (mTouchHelper.dispatchHoverEvent(event)) { return true; } return super.dispatchHoverEvent(event); }
/** * @param config EGL config * @return the EGL config handle */ private static long getConfigHandle(@NonNull EGLConfig config) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { return getConfigHandleLollipop(config); } else { return getConfigHandleBase(config); } }
public Builder customView(@NonNull View view, boolean wrapInScrollView) { if (this.content != null) throw new IllegalStateException("You cannot use customView() when you have content set."); else if (this.items != null) throw new IllegalStateException("You cannot use customView() when you have items set."); else if (this.inputCallback != null) throw new IllegalStateException("You cannot use customView() with an input dialog"); else if (this.progress > -2 || this.indeterminateProgress) throw new IllegalStateException("You cannot use customView() with a progress dialog"); if (view.getParent() != null && view.getParent() instanceof ViewGroup) ((ViewGroup) view.getParent()).removeView(view); this.customView = view; this.wrapCustomViewInScroll = wrapInScrollView; return this; }
@Override public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) { menuItem.setChecked(true); Fragment fragment = new PostsFragment(); String title = getString(R.string.posts); switch (menuItem.getItemId()) { case R.id.action_home: setFABVisibility(true); break; case R.id.action_peoples: title = getString(R.string.users); setFABVisibility(false); fragment = new UsersFragment(); break; case R.id.action_notifications: title = getString(R.string.notifications); setFABVisibility(false); fragment = new NotificationsFragment(); break; case R.id.action_messages: title = getString(R.string.messages); setFABVisibility(false); fragment = new NotificationsFragment(); break; } // change toolbar title setTitle(title); // Replace with the selected fragment IntentUtils.replaceFragment(R.id.frame_layout, getSupportFragmentManager(), fragment); return false; }
/** * Show the loading view. No animations, because sometimes loading things is pretty fast (i.e. * retrieve data from memory cache). */ public static void showLoading(@NonNull View loadingView, @NonNull View contentView, @NonNull View errorView) { contentView.setVisibility(View.GONE); errorView.setVisibility(View.GONE); loadingView.setVisibility(View.VISIBLE); }
public ShortcutHelper createShortcut(@NonNull CharSequence shortLabel, @NonNull CharSequence longLabel, @NonNull int iconResource, @NonNull Intent intent) { if (Build.VERSION.SDK_INT < 25) { return this; } String shortcutId = shortLabel.toString().replaceAll("\\s+","").toLowerCase() + "_shortcut"; ShortcutInfo shortcut = new ShortcutInfo.Builder(mActivity, shortcutId) .setShortLabel(shortLabel) .setLongLabel(longLabel) .setIcon(Icon.createWithResource(mActivity, iconResource)) .setIntent(intent) .build(); mShortcutInfos.add(shortcut); return this; }
@SuppressWarnings("unchecked") public static <T extends View> T inflate(@NonNull LayoutInflater inflater, @NonNull ViewGroup parent, @LayoutRes int layoutResId) { return (T)(inflater.inflate(layoutResId, parent, false)); }
@Nullable public static Cursor makeRecentTracksCursorAndClearUpDatabase(@NonNull final Context context) { SortedLongCursor retCursor = makeRecentTracksCursorImpl(context); // clean up the databases with any ids not found if (retCursor != null) { ArrayList<Long> missingIds = retCursor.getMissingIds(); if (missingIds != null && missingIds.size() > 0) { for (long id : missingIds) { HistoryStore.getInstance(context).removeSongId(id); } } } return retCursor; }
public static int fetchColor(@NonNull Context context, int attrId) { TypedValue typedValue = new TypedValue(); TypedArray a = context.obtainStyledAttributes(typedValue.data, new int[] { attrId }); int color = a.getColor(0, 0); a.recycle(); return color; }
@NonNull private Consumer<Throwable> showToastErrorNotification() { return error -> { Toast.makeText(this, "We couldn't reach internet - falling back to local data", Toast.LENGTH_SHORT) .show(); }; }
@Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { if (item.getItemId() == android.R.id.home) { onBackPressed(); return true; } return super.onOptionsItemSelected(item); }
@Override public void onBind(@NonNull List<Object> payloads) { super.onBind(payloads); for (Object payload: payloads) { if (CHECK_SELECT_PAYLOAD.equals(payload)) { checkSelected(); } } }
@Override public void firePostClick(@NonNull Post post) { if (post.getPostType() == VKApiPost.Type.REPLY) { getView().openComments(getAccountId(), Commented.from(post), post.getVkid()); } else { getView().openPost(getAccountId(), post); } }
/** * 在指定位置添加Item */ public void addDataItem(int position, @NonNull Object item) { addDataItems(position, Collections.singletonList(item)); }
private void sendFailedWirelessSwitchToggleBroadcast(@NonNull String response) { if (response.length() == 0) { response = "Toggle for wireless switch failed!"; } _broadcastController.SendSerializableBroadcast( WirelessSwitchToggleFinishedBroadcast, WirelessSwitchToggleFinishedBundle, new ObjectChangeFinishedContent(false, Tools.CompressStringToByteArray(response))); }