java类android.support.annotation.VisibleForTesting的实例源码

ShoebillProcessor.java 文件源码 项目:shoebill 阅读 39 收藏 0 点赞 0 评论 0
private MethodSpec getSingletonSetterMethod(ClassName className, FieldSpec singletonField) {
    ParameterSpec parameter = ParameterSpec
            .builder(className, "wrapper")
            .build();

    AnnotationSpec visibleForTesting = AnnotationSpec
            .builder(VisibleForTesting.class)
            .addMember("otherwise", "VisibleForTesting.NONE")
            .build();

    return MethodSpec
            .methodBuilder("setInstance")
            .addAnnotation(visibleForTesting)
            .addModifiers(Modifier.PUBLIC, Modifier.STATIC)
            .addParameter(parameter)
            .addStatement("$N = $N", singletonField, parameter)
            .build();
}
MessagingController.java 文件源码 项目:q-mail 阅读 32 收藏 0 点赞 0 评论 0
@VisibleForTesting
MessagingController(Context context, NotificationController notificationController,
        Contacts contacts, TransportProvider transportProvider) {
    this.context = context;
    this.notificationController = notificationController;
    this.contacts = contacts;
    this.transportProvider = transportProvider;

    controllerThread = new Thread(new Runnable() {
        @Override
        public void run() {
            runInBackground();
        }
    });
    controllerThread.setName("MessagingController");
    controllerThread.start();
    addListener(memorizingMessagingListener);
}
AnnotationParser.java 文件源码 项目:silly-android 阅读 39 收藏 0 点赞 0 评论 0
/**
 * Returns all fields from the given class, including its superclass fields. If cached fields are available, they will be used; instead, a new list will
 * be saved to the cache.
 *
 * @param classInstance Which class to look into
 * @return A list of declared class' fields. Do not modify this instance
 */
@NonNull
@VisibleForTesting
static List<Field> getAllFields(@NonNull final Class<?> classInstance) {
    Class<?> parsedClass = classInstance;
    final String name = parsedClass.getName();
    List<Field> allFields = FIELD_CACHE.get(name);
    if (allFields == null || allFields.isEmpty()) {
        allFields = new LinkedList<>();
        while (parsedClass != null && parsedClass != Object.class) {
            allFields.addAll(Arrays.asList(parsedClass.getDeclaredFields()));
            parsedClass = parsedClass.getSuperclass();
        }
        FIELD_CACHE.put(name, allFields);
    }
    return allFields;
}
AttachmentDatabase.java 文件源码 项目:PeSanKita-android 阅读 38 收藏 0 点赞 0 评论 0
@VisibleForTesting
protected void updateAttachmentThumbnail(MasterSecret masterSecret, AttachmentId attachmentId, InputStream in, float aspectRatio)
    throws MmsException
{
  Log.w(TAG, "updating part thumbnail for #" + attachmentId);

  Pair<File, Long> thumbnailFile = setAttachmentData(masterSecret, in);

  SQLiteDatabase database = databaseHelper.getWritableDatabase();
  ContentValues  values   = new ContentValues(2);

  values.put(THUMBNAIL, thumbnailFile.first.getAbsolutePath());
  values.put(THUMBNAIL_ASPECT_RATIO, aspectRatio);

  database.update(TABLE_NAME, values, PART_ID_WHERE, attachmentId.toStrings());

  Cursor cursor = database.query(TABLE_NAME, new String[] {MMS_ID}, PART_ID_WHERE, attachmentId.toStrings(), null, null, null);

  try {
    if (cursor != null && cursor.moveToFirst()) {
      notifyConversationListeners(DatabaseFactory.getMmsDatabase(context).getThreadIdForMessage(cursor.getLong(cursor.getColumnIndexOrThrow(MMS_ID))));
    }
  } finally {
    if (cursor != null) cursor.close();
  }
}
Connection.java 文件源码 项目:Blockly 阅读 42 收藏 0 点赞 0 评论 0
@VisibleForTesting
void checkConnection(Connection target) {
    switch (canConnectWithReason(target)) {
        case CAN_CONNECT:
            break;
        case REASON_SELF_CONNECTION:
            throw new IllegalArgumentException("Cannot connect a block to itself.");
        case REASON_WRONG_TYPE:
            throw new IllegalArgumentException("Cannot connect these types.");
        case REASON_MUST_DISCONNECT:
            throw new IllegalStateException(
                    "Must disconnect from current block before connecting to a new one.");
        case REASON_TARGET_NULL:
            throw new IllegalArgumentException("Cannot connect to a null connection/block");
        case REASON_CHECKS_FAILED:
            throw new IllegalArgumentException("Cannot connect, checks do not match.");
        default:
            throw new IllegalArgumentException(
                    "Unknown connection failure, this should never happen!");
    }
}
CameraHelper.java 文件源码 项目:BWS-Android 阅读 43 收藏 0 点赞 0 评论 0
/**
 * does setup the repeating capture request for taking images for the preview
 */
@VisibleForTesting
void setupCaptureRequestForPreview(@NonNull CameraCaptureSession previewSession, @NonNull CameraDevice camera,
                                   @NonNull List<Surface> surfaces) {
    try {
        CaptureRequest.Builder previewRequestBuilder = camera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
        for (Surface surface : surfaces) {
            previewRequestBuilder.addTarget(surface);
        }
        previewRequestBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);

        previewSession.setRepeatingRequest(previewRequestBuilder.build(), null, null);

    } catch (CameraAccessException | IllegalStateException e) {
        throw new CameraException(e);
    }
}
CameraHelper.java 文件源码 项目:BWS-Android 阅读 33 收藏 0 点赞 0 评论 0
/**
 * configures the ProportionalTextureView to respect the aspect ratio of the image and using an appropriate buffer size
 */
@VisibleForTesting
void configureTextureView(@NonNull ProportionalTextureView textureView, @ConfigurationOrientation int deviceOrientation,
                          @SurfaceRotation int relativeDisplayRotation, @NonNull Size previewSize) {
    switch (deviceOrientation) {
        case Configuration.ORIENTATION_PORTRAIT:
            // swap values because preview sizes are always landscape
            textureView.setAspectRatio(previewSize.getHeight(), previewSize.getWidth(), relativeDisplayRotation);
            break;
        case Configuration.ORIENTATION_LANDSCAPE:
            textureView.setAspectRatio(previewSize.getWidth(), previewSize.getHeight(), relativeDisplayRotation);
            break;
    }

    // working more memory efficient
    SurfaceTexture surface = textureView.getSurfaceTexture();
    if (surface != null) {
        surface.setDefaultBufferSize(previewSize.getWidth(), previewSize.getHeight());
    } else {
        throw new CameraException("surface texture not attached to view");
    }
}
RhinoAndroidHelper.java 文件源码 项目:https-github.com-hyb1996-NoRootScriptDroid 阅读 43 收藏 0 点赞 0 评论 0
/**
 * @return The Context factory which has to be used on android.
 */
@VisibleForTesting
public AndroidContextFactory getContextFactory() {
    AndroidContextFactory factory;
    if (!ContextFactory.hasExplicitGlobal()) {
        factory = new AndroidContextFactory(cacheDirectory);
        ContextFactory.getGlobalSetter().setContextFactoryGlobal(factory);
    } else if (!(ContextFactory.getGlobal() instanceof AndroidContextFactory)) {
        throw new IllegalStateException("Cannot initialize factory for Android Rhino: There is already another factory");
    } else {
        factory = (AndroidContextFactory) ContextFactory.getGlobal();
    }
    return factory;
}
PgpMessageBuilder.java 文件源码 项目:q-mail 阅读 34 收藏 0 点赞 0 评论 0
@VisibleForTesting
PgpMessageBuilder(Context context, MessageIdGenerator messageIdGenerator, BoundaryGenerator boundaryGenerator,
        AutocryptOperations autocryptOperations, AutocryptOpenPgpApiInteractor autocryptOpenPgpApiInteractor) {
    super(context, messageIdGenerator, boundaryGenerator);

    this.autocryptOperations = autocryptOperations;
    this.autocryptOpenPgpApiInteractor = autocryptOpenPgpApiInteractor;
}
StaggeredAnimationGroup.java 文件源码 项目:StaggeredAnimationGroup 阅读 37 收藏 0 点赞 0 评论 0
@VisibleForTesting
final void addTransitionToStaggeredTransition(Transition basePartialTransition,
                                              TransitionSet staggeredTransition,
                                              int viewId, int indexInTransition) {
    Transition partialTransition =
            applyStaggeredTransitionParams(basePartialTransition, viewId, indexInTransition);
    staggeredTransition.addTransition(partialTransition);
}
OverlayPresenter.java 文件源码 项目:Phial 阅读 35 收藏 0 点赞 0 评论 0
@VisibleForTesting
@NonNull
Page findSelected(List<Page> visible) {
    final String selectedPageId = selectedPageStorage.getSelectedPage();
    for (Page page : visible) {
        if (ObjectUtil.equals(selectedPageId, page.getId())) {
            return page;
        }
    }
    return visible.get(0);
}
ViewPagerAnimator.java 文件源码 项目:ViewPagerAnimator 阅读 36 收藏 0 点赞 0 评论 0
@VisibleForTesting
static ViewPagerAnimator<Integer> ofArgb(ViewPager viewPager,
                                         Provider<Integer> provider,
                                         Property<Integer> property,
                                         TypeEvaluator<Integer> evaluator,
                                         Interpolator interpolator) {
    return new ViewPagerAnimator<>(viewPager, provider, property, evaluator, interpolator);
}
RegMap.java 文件源码 项目:AndroidDvbDriver 阅读 41 收藏 0 点赞 0 评论 0
@VisibleForTesting
static long readValue(byte[] buff) {
    long res = 0;
    for (int i = 0; i < buff.length; i++) {
        res |= ((long) (buff[i] & 0xFF)) << ((buff.length - i - 1) * 8);
    }
    return res;
}
MessageCryptoStructureDetector.java 文件源码 项目:q-mail 阅读 37 收藏 0 点赞 0 评论 0
@VisibleForTesting
static boolean isPartPgpInlineEncryptedOrSigned(Part part) {
    if (!part.isMimeType(TEXT_PLAIN) && !part.isMimeType(APPLICATION_PGP)) {
        return false;
    }
    String text = MessageExtractor.getTextFromPart(part, TEXT_LENGTH_FOR_INLINE_CHECK);
    if (TextUtils.isEmpty(text)) {
        return false;
    }
    text = text.trim();
    return text.startsWith(PGP_INLINE_START_MARKER) || text.startsWith(PGP_INLINE_SIGNED_START_MARKER);
}
WebViewProvider.java 文件源码 项目:firefox-tv 阅读 46 收藏 0 点赞 0 评论 0
@VisibleForTesting static String buildUserAgentString(final Context context, final AmazonWebSettings settings, final String appName) {
    final StringBuilder uaBuilder = new StringBuilder();

    uaBuilder.append("Mozilla/5.0");

    // WebView by default includes "; wv" as part of the platform string, but we're a full browser
    // so we shouldn't include that.
    // Most webview based browsers (and chrome), include the device name AND build ID, e.g.
    // "Pixel XL Build/NOF26V", that seems unnecessary (and not great from a privacy perspective),
    // so we skip that too.
    uaBuilder.append(" (Linux; Android ").append(Build.VERSION.RELEASE).append(") ");

    final String existingWebViewUA = settings.getUserAgentString();

    final String appVersion;
    try {
        appVersion = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName;
    } catch (PackageManager.NameNotFoundException e) {
        // This should be impossible - we should always be able to get information about ourselves:
        throw new IllegalStateException("Unable find package details for Focus", e);
    }

    final String focusToken = appName + "/" + appVersion;
    uaBuilder.append(getUABrowserString(existingWebViewUA, focusToken));

    return uaBuilder.toString();
}
ContactPictureLoader.java 文件源码 项目:q-mail 阅读 38 收藏 0 点赞 0 评论 0
@VisibleForTesting
protected static String calcUnknownContactLetter(Address address) {
    String letter = null;
    String personal = address.getPersonal();
    String str = (personal != null) ? personal : address.getAddress();
    Matcher m = EXTRACT_LETTER_PATTERN.matcher(str);
    if (m.find()) {
        letter = m.group(0).toUpperCase(Locale.US);
    }

    return (TextUtils.isEmpty(letter)) ?
            FALLBACK_CONTACT_LETTER : letter;
}
UserViewModel.java 文件源码 项目:android-architecture-components 阅读 40 收藏 0 点赞 0 评论 0
@VisibleForTesting
public void setLogin(String login) {
    if (Objects.equals(this.login.getValue(), login)) {
        return;
    }
    this.login.setValue(login);
}
SmsListener.java 文件源码 项目:PeSanKita-android 阅读 35 收藏 0 点赞 0 评论 0
@VisibleForTesting String parseChallenge(String messageBody) {
  Matcher challengeMatcher = CHALLENGE_PATTERN.matcher(messageBody);

  if (!challengeMatcher.matches()) {
    throw new AssertionError("Expression should match.");
  }

  return challengeMatcher.group(2) + challengeMatcher.group(3);
}
CanonicalAddressDatabase.java 文件源码 项目:Cable-Android 阅读 33 收藏 0 点赞 0 评论 0
@VisibleForTesting
static boolean isNumberAddress(@NonNull String number) {
  if (number.contains("@"))             return false;
  if (GroupUtil.isEncodedGroup(number)) return false;

  final String networkNumber = PhoneNumberUtils.extractNetworkPortion(number);

  if (TextUtils.isEmpty(networkNumber)) return false;
  if (networkNumber.length() < 3)       return false;

  return PhoneNumberUtils.isWellFormedSmsAddress(number);
}
BottomBar.java 文件源码 项目:QiangHongBao 阅读 43 收藏 0 点赞 0 评论 0
@VisibleForTesting
void restoreState(Bundle savedInstanceState) {
    if (savedInstanceState != null) {
        isComingFromRestoredState = true;
        ignoreTabReselectionListener = true;

        int restoredPosition = savedInstanceState.getInt(STATE_CURRENT_SELECTED_TAB, currentTabPosition);
        selectTabAtPosition(restoredPosition, false);
    }
}
Interactor.java 文件源码 项目:RIBs 阅读 35 收藏 0 点赞 0 评论 0
/** @return the currently attached presenter if there is one */
@VisibleForTesting
private P getPresenter() {
  if (presenter == null) {
    throw new IllegalStateException("Attempting to get interactor's presenter before being set.");
  }
  return presenter;
}
SpanEZ.java 文件源码 项目:SpanEZ 阅读 39 收藏 0 点赞 0 评论 0
/**
 * Applies the given {@code span} to the specified range from
 *
 * @param targetRange the range were the span will be applied to
 * @param span        the span to be applied
 */
@SuppressWarnings("WeakerAccess")
@VisibleForTesting
protected void addSpan(@NonNull TargetRange targetRange, @NonNull Object span) {
    final int start = targetRange.getStart();
    final int end = targetRange.getEnd();
    // Added 1 to the span, because it seems that internally it does exclusive range
    spannableContent.setSpan(span, start, end + 1, spanFlags);
}
AttachmentDatabase.java 文件源码 项目:PeSanKita-android 阅读 38 收藏 0 点赞 0 评论 0
@VisibleForTesting
protected @Nullable InputStream getDataStream(MasterSecret masterSecret, AttachmentId attachmentId, String dataType)
{
  File dataFile = getAttachmentDataFile(attachmentId, dataType);

  try {
    if (dataFile != null) return new DecryptingPartInputStream(dataFile, masterSecret);
    else                  return null;
  } catch (FileNotFoundException e) {
    Log.w(TAG, e);
    return null;
  }
}
GraywaterAdapter.java 文件源码 项目:Graywater 阅读 32 收藏 0 点赞 0 评论 0
/**
 * Note that this is an <i>O(n)</i> operation, but it does not query for the list of binders.
 *
 * @param itemPosition
 *      the position in the list of items.
 * @return the number of viewholders before the given item position.
 */
@VisibleForTesting
public int getViewHolderCount(final int itemPosition) {
    if (itemPosition >= 0 && !mItemPositionToFirstViewHolderPositionCache.isEmpty()) {
        if (itemPosition >= mItemPositionToFirstViewHolderPositionCache.size()) {
            return mViewHolderToItemPositionCache.size();
        } else {
            return mItemPositionToFirstViewHolderPositionCache.get(itemPosition);
        }
    } else {
        return 0;
    }
}
GlideApp.java 文件源码 项目:GitHub 阅读 55 收藏 0 点赞 0 评论 0
/**
 * @see Glide#init(Glide)
 */
@Deprecated
@VisibleForTesting
@SuppressLint("VisibleForTests")
public static void init(Glide glide) {
  Glide.init(glide);
}
StaggeredAnimationGroup.java 文件源码 项目:StaggeredAnimationGroup 阅读 40 收藏 0 点赞 0 评论 0
@VisibleForTesting
final Transition applyStaggeredTransitionParams(Transition partialTransition,
                                                int viewId, int indexInTransition) {
    partialTransition.setStartDelay(indexInTransition * partialDelay);
    partialTransition.addTarget(viewId);
    return partialTransition;
}
NetworkModule.java 文件源码 项目:pact-workshop-android 阅读 157 收藏 0 点赞 0 评论 0
@VisibleForTesting
public Retrofit getRetrofit(@NonNull Context context,
                            @NonNull String baseUrl) {
  return new Retrofit.Builder()
      .baseUrl(baseUrl)
      .client(getOkHttpClient(context))
      .addConverterFactory(MoshiConverterFactory.create(getMoshi()))
      .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
      .build();
}
BioIdWebserviceClient.java 文件源码 项目:BWS-Android 阅读 38 收藏 0 点赞 0 评论 0
@VisibleForTesting
protected HttpRequest createVerificationResultRequest(@NonNull String token) {
    try {
        return withDefaultTimeout(
                HttpRequest.get(BWS_BASE_URL + "/extension/verify")
                        .authorization("Bearer " + token)
                        .acceptJson());
    } catch (HttpRequest.HttpRequestException e) {
        throw new NoConnectionException(e);
    }
}
Glide.java 文件源码 项目:GitHub 阅读 32 收藏 0 点赞 0 评论 0
@VisibleForTesting
public static synchronized void init(Context context, GlideBuilder builder) {
  if (Glide.glide != null) {
    tearDown();
  }
  initializeGlide(context, builder);
}
GifFrameLoader.java 文件源码 项目:GitHub 阅读 36 收藏 0 点赞 0 评论 0
@VisibleForTesting
void onFrameReady(DelayTarget delayTarget) {
  if (onEveryFrameListener != null) {
    onEveryFrameListener.onFrameReady();
  }
  isLoadPending = false;
  if (isCleared) {
    handler.obtainMessage(FrameLoaderCallback.MSG_CLEAR, delayTarget).sendToTarget();
    return;
  }
  // If we're not running, notifying here will recycle the frame that we might currently be
  // showing, which breaks things (see #2526). We also can't discard this frame because we've
  // already incremented the frame pointer and can't decode the same frame again. Instead we'll
  // just hang on to this next frame until start() or clear() are called.
  if (!isRunning) {
    pendingTarget = delayTarget;
    return;
  }

  if (delayTarget.getResource() != null) {
    recycleFirstFrame();
    DelayTarget previous = current;
    current = delayTarget;
    // The callbacks may unregister when onFrameReady is called, so iterate in reverse to avoid
    // concurrent modifications.
    for (int i = callbacks.size() - 1; i >= 0; i--) {
      FrameCallback cb = callbacks.get(i);
      cb.onFrameReady();
    }
    if (previous != null) {
      handler.obtainMessage(FrameLoaderCallback.MSG_CLEAR, previous).sendToTarget();
    }
  }

  loadNextFrame();
}


问题


面经


文章

微信
公众号

扫码关注公众号