Java 类android.support.annotation.VisibleForTesting 实例源码

项目:shoebill    文件:ShoebillProcessor.java   
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();
}
项目:q-mail    文件:MessagingController.java   
@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);
}
项目:silly-android    文件:AnnotationParser.java   
/**
 * 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;
}
项目:PeSanKita-android    文件:AttachmentDatabase.java   
@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();
  }
}
项目:Blockly    文件:Connection.java   
@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!");
    }
}
项目:BWS-Android    文件:CameraHelper.java   
/**
 * 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);
    }
}
项目:BWS-Android    文件:CameraHelper.java   
/**
 * 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");
    }
}
项目:https-github.com-hyb1996-NoRootScriptDroid    文件:RhinoAndroidHelper.java   
/**
 * @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;
}
项目:q-mail    文件:PgpMessageBuilder.java   
@VisibleForTesting
PgpMessageBuilder(Context context, MessageIdGenerator messageIdGenerator, BoundaryGenerator boundaryGenerator,
        AutocryptOperations autocryptOperations, AutocryptOpenPgpApiInteractor autocryptOpenPgpApiInteractor) {
    super(context, messageIdGenerator, boundaryGenerator);

    this.autocryptOperations = autocryptOperations;
    this.autocryptOpenPgpApiInteractor = autocryptOpenPgpApiInteractor;
}
项目:StaggeredAnimationGroup    文件:StaggeredAnimationGroup.java   
@VisibleForTesting
final void addTransitionToStaggeredTransition(Transition basePartialTransition,
                                              TransitionSet staggeredTransition,
                                              int viewId, int indexInTransition) {
    Transition partialTransition =
            applyStaggeredTransitionParams(basePartialTransition, viewId, indexInTransition);
    staggeredTransition.addTransition(partialTransition);
}
项目:Phial    文件:OverlayPresenter.java   
@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    文件:ViewPagerAnimator.java   
@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);
}
项目:AndroidDvbDriver    文件:RegMap.java   
@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;
}
项目:q-mail    文件:MessageCryptoStructureDetector.java   
@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);
}
项目:firefox-tv    文件:WebViewProvider.java   
@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();
}
项目:q-mail    文件:ContactPictureLoader.java   
@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;
}
项目:android-architecture-components    文件:UserViewModel.java   
@VisibleForTesting
public void setLogin(String login) {
    if (Objects.equals(this.login.getValue(), login)) {
        return;
    }
    this.login.setValue(login);
}
项目:PeSanKita-android    文件:SmsListener.java   
@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);
}
项目:Cable-Android    文件:CanonicalAddressDatabase.java   
@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);
}
项目:QiangHongBao    文件:BottomBar.java   
@VisibleForTesting
void restoreState(Bundle savedInstanceState) {
    if (savedInstanceState != null) {
        isComingFromRestoredState = true;
        ignoreTabReselectionListener = true;

        int restoredPosition = savedInstanceState.getInt(STATE_CURRENT_SELECTED_TAB, currentTabPosition);
        selectTabAtPosition(restoredPosition, false);
    }
}
项目:RIBs    文件:Interactor.java   
/** @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    文件:SpanEZ.java   
/**
 * 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);
}
项目:PeSanKita-android    文件:AttachmentDatabase.java   
@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;
  }
}
项目:Graywater    文件:GraywaterAdapter.java   
/**
 * 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;
    }
}
项目:GitHub    文件:GlideApp.java   
/**
 * @see Glide#init(Glide)
 */
@Deprecated
@VisibleForTesting
@SuppressLint("VisibleForTests")
public static void init(Glide glide) {
  Glide.init(glide);
}
项目:StaggeredAnimationGroup    文件:StaggeredAnimationGroup.java   
@VisibleForTesting
final Transition applyStaggeredTransitionParams(Transition partialTransition,
                                                int viewId, int indexInTransition) {
    partialTransition.setStartDelay(indexInTransition * partialDelay);
    partialTransition.addTarget(viewId);
    return partialTransition;
}
项目:pact-workshop-android    文件:NetworkModule.java   
@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();
}
项目:BWS-Android    文件:BioIdWebserviceClient.java   
@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);
    }
}
项目:GitHub    文件:Glide.java   
@VisibleForTesting
public static synchronized void init(Context context, GlideBuilder builder) {
  if (Glide.glide != null) {
    tearDown();
  }
  initializeGlide(context, builder);
}
项目:GitHub    文件:GifFrameLoader.java   
@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();
}
项目:GitHub    文件:BitmapPreFillRunner.java   
@VisibleForTesting
BitmapPreFillRunner(BitmapPool bitmapPool, MemoryCache memoryCache, PreFillQueue allocationOrder,
    Clock clock, Handler handler) {
  this.bitmapPool = bitmapPool;
  this.memoryCache = memoryCache;
  this.toPrefill = allocationOrder;
  this.clock = clock;
  this.handler = handler;
}
项目:PeSanKita-android    文件:AttachmentDownloadJob.java   
@VisibleForTesting
SignalServiceAttachmentPointer createAttachmentPointer(MasterSecret masterSecret, Attachment attachment)
    throws InvalidPartException
{
  if (TextUtils.isEmpty(attachment.getLocation())) {
    throw new InvalidPartException("empty content id");
  }

  if (TextUtils.isEmpty(attachment.getKey())) {
    throw new InvalidPartException("empty encrypted key");
  }

  try {
    AsymmetricMasterSecret asymmetricMasterSecret = MasterSecretUtil.getAsymmetricMasterSecret(context, masterSecret);
    long                   id                     = Long.parseLong(attachment.getLocation());
    byte[]                 key                    = MediaKey.getDecrypted(masterSecret, asymmetricMasterSecret, attachment.getKey());
    String                 relay                  = null;

    if (TextUtils.isEmpty(attachment.getRelay())) {
      relay = attachment.getRelay();
    }

    return new SignalServiceAttachmentPointer(id, null, null, key, relay, Optional.<byte[]>absent());
  } catch (InvalidMessageException | IOException e) {
    Log.w(TAG, e);
    throw new InvalidPartException(e);
  }
}
项目:cat-is-a-dog    文件:LoginActivity.java   
/**
 * Only called from test, creates and returns a new {@link SimpleIdlingResource}.
 */
@VisibleForTesting
@NonNull
public IdlingResource getIdlingResource() {
    if (mIdlingResource == null) {
        mIdlingResource = new SimpleIdlingResource();
    }
    return mIdlingResource;
}
项目:Phial    文件:PhialButton.java   
@VisibleForTesting
static int getIconSize(int maxSize, int intrinsicSize) {
    if (intrinsicSize == -1 || intrinsicSize > maxSize) {
        return maxSize;
    }
    return intrinsicSize;
}
项目:GitHub    文件:Engine.java   
@VisibleForTesting
void shutdown() {
  shutdownAndAwaitTermination(diskCacheExecutor);
  shutdownAndAwaitTermination(sourceExecutor);
  shutdownAndAwaitTermination(sourceUnlimitedExecutor);
  shutdownAndAwaitTermination(animationExecutor);
}
项目:playTorrent    文件:DownloadProcessor.java   
@VisibleForTesting()
public void connectLocalHostPeer() throws UnknownHostException, ConnectException {
    // find local address
    InetAddress local = InetAddress.getLocalHost();
    Peer downloadPeer = new Peer("10.0.2.2", 49152);
    mPeerMap.put(local.getHostAddress(), downloadPeer);
    downloadPeer.setPeerListener(mPeerEventListener);
    handFoundPeerList();
}
项目:silly-android    文件:AnnotationParser.java   
/**
 * Verifies that the given field is a {@link View} or crashes.
 *
 * @param field  The field you are checking
 * @param object The object instance holding the field
 * @throws IllegalArgumentException When field is not a {@link View}
 */
@VisibleForTesting
static void verifyTypeOfView(@NonNull final Field field, @NonNull final Object object) {
    try {
        field.setAccessible(true);
        Object value = field.get(object);
        if (value instanceof View || View.class.isAssignableFrom(field.getType())) {
            return;
        }
    } catch (IllegalAccessException ignored) {}
    throw new IllegalArgumentException("Field \n\t'" + String.valueOf(field) + "\n is not a View, instead it is a " + field.getType().getSimpleName());
}
项目:OpenYOLO-Android    文件:CredentialClient.java   
@VisibleForTesting
CredentialClient(
        @NonNull Context context,
        @NonNull CredentialClientOptions options) {
    validate(context, notNullValue(), NullPointerException.class);
    validate(options, notNullValue(), NullPointerException.class);

    mApplicationContext = context.getApplicationContext();
    mDeviceState = options.getDeviceState();
}
项目:ViewPagerAnimator    文件:ViewPagerAnimator.java   
@VisibleForTesting
static ViewPagerAnimator<Integer> ofInt(ViewPager viewPager,
                                        Provider<Integer> provider,
                                        Property<Integer> property,
                                        TypeEvaluator<Integer> evaluator,
                                        Interpolator interpolator) {
    return new ViewPagerAnimator<>(viewPager, provider, property, evaluator, interpolator);
}
项目:mvp-core    文件:BaseMVPDialogFragment.java   
/**
 * Call the presenter callbacks for onStop
 */
@VisibleForTesting
void doStop()
{
    assert mPresenter != null;

    mPresenter.onStop();

    mPresenter.onViewDetached();
}