Skip to content

Instantly share code, notes, and snippets.

@alexoro
alexoro / NoLimitRecycledViewPool.java
Created July 29, 2019 10:22
RecycledViewPool with unlimited number of ViewHolders
package com.vk.im.ui.utils.recyclerview;
import android.support.v7.widget.RecyclerView;
import android.util.SparseIntArray;
/**
* RecycledViewPool with unlimited number of ViewHolders
* {@author uas.sorokin@gmail.com}
*/
public class NoLimitRecycledViewPool extends RecyclerView.RecycledViewPool {
@alexoro
alexoro / .gitignore
Created December 10, 2015 09:48
Gitignore for Android
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
# Built application files
package com.alexoro.rxjava_test;
import android.app.Activity;
import android.os.Bundle;
import android.util.Pair;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
qatest.platform.nemo.tv/?v=1&app_version=1&authkey=288298341255266170799b71.27590828&p=nemo.common.user&app_name=android_phone_xhi_360_tv
{"jsonrpc":"2.0","id":57,"method":"list_tarifs","params":{}}
Отвечает (выжимка):
"tarifs":[
{
"id": 24,
"description": "demo ",
"name": "тестирование гугл ин-апп",
"price": "25.000",
<?php
$key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu5KsJ49lLMGatAhehkOddC3rAEFinRbSPt0tQp+IsKUF1w/IoFjujkiJY5ZuAkS99CdPVndSNvkomOqBp9gEVyojQlugQJEwsOambusTnV8i60dY6JnSncFA+qKdTY565yUVFHoERdfF7wotOyw8Hmuxshpegu+6IIxpOI5FqdkqBDtTRBhnFfYGk0MqQSuz+iheU/pxdUeNVgVCt0O2ExaDv+vqLboPklM7y5V7TDEDY/unuwbPj36C6ktQ7ex02Sz7JxabQig+VQrTcAQVIuq1jukMXDES7VeXjPkCspwMLbHtuUBciynsB2lG2ivNgvVZpPRLUs0Gr7NAb3czZwIDAQAB";
$data = "{\"orderId\":\"12999763169054705758.1332873758230775\",\"packageName\":\"com.nemotelecom.tv\",\"productId\":\"com.nemotelecom.nemotv.testpay\",\"purchaseTime\":1427113405727,\"purchaseState\":0,\"purchaseToken\":\"nckfcfcblglnhpjaehiepdpf.AO-J1Oy7RsMUCDf-RKu2Z8BZIvUqnZjmouMIrPXcPzAUJ_ohD-zedB4VlY4ZubjylTPDMOZymfSayNJue7rn0ccsYkXmZVS3qAvg7usrJS2AGybO64Pmd1fgYmPxbtPUC8wHLy1gDeB1wn0gizb9Nq4CiEplL5uotw\"}";
$sign = "rFHGmt5HE8agwtFroBWEQW4pYWuSppN/X19TBSf8dfadADdTDS2pNtCvUDgdY2/tWv2ymYHZfnMjicyHl7m7JRF/yXH7PhhIj5sNoToWrjrK/DbfA6d+IcIRBHzIYfAm8FmO2JOKd213KWBoce+POmliasNP+l/fVQTzwDjvo6L76THxLlY4e6pwEJf4c
"use strict";
var IABVerifier = require('iab_verifier');
var googleplay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu5KsJ49lLMGatAhehkOddC3rAEFinRbSPt0tQp+IsKUF1w/IoFjujkiJY5ZuAkS99CdPVndSNvkomOqBp9gEVyojQlugQJEwsOambusTnV8i60dY6JnSncFA+qKdTY565yUVFHoERdfF7wotOyw8Hmuxshpegu+6IIxpOI5FqdkqBDtTRBhnFfYGk0MqQSuz+iheU/pxdUeNVgVCt0O2ExaDv+vqLboPklM7y5V7TDEDY/unuwbPj36C6ktQ7ex02Sz7JxabQig+VQrTcAQVIuq1jukMXDES7VeXjPkCspwMLbHtuUBciynsB2lG2ivNgvVZpPRLUs0Gr7NAb3czZwIDAQAB";
var data = "{\"orderId\":\"12999763169054705758.1332873758230775\",\"packageName\":\"com.nemotelecom.tv\",\"productId\":\"com.nemotelecom.nemotv.testpay\",\"purchaseTime\":1427113405727,\"purchaseState\":0,\"purchaseToken\":\"nckfcfcblglnhpjaehiepdpf.AO-J1Oy7RsMUCDf-RKu2Z8BZIvUqnZjmouMIrPXcPzAUJ_ohD-zedB4VlY4ZubjylTPDMOZymfSayNJue7rn0ccsYkXmZVS3qAvg7usrJS2AGybO64Pmd1fgYmPxbtPUC8wHLy1gDeB1wn0gizb9Nq4CiEplL5uotw\"}";
var sign = "rFHGmt5HE8agwtFroBWEQW4pYWuSppN/X19TBSf8dfadADdTDS2pNtCvUDgdY2/tWv2ymYHZfnMjicyHl7m7JRF/yXH7PhhIj5sNoToWrjrK/D
public boolean hasNetwork() {
ConnectivityManager connectivityManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager == null) {
return false;
}
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo == null) {
return false;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mSubscriptionChatNotSynced = Observable
.combineLatest(
mMessagesListModel.isVisibleObservable(),
mMessagesListModel.isChatSyncedObervable(),
new Func2<Boolean, Boolean, Boolean>() {
@Override
public class MainFragment extends Fragment {
private Model mModel;
private TextView mTextView;
@Override
@SuppressWarnings("ConstantConditions")
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
private ViewTreeObserver.OnGlobalLayoutListener mOnGlobalLayoutListener;
class OnGlobalLayoutListenerImpl implements ViewTreeObserver.OnGlobalLayoutListener {
@Override
public void onGlobalLayout() {
int heightDiff = mViewHolder.activityRootView.getRootView().getHeight() - mViewHolder.activityRootView.getHeight();
if ((heightDiff > getMinKeyboardHeight()) != mIsKeyboardDisplayed) {
mIsKeyboardDisplayed = heightDiff > getMinKeyboardHeight();
setElementVisibilityForSearch(mIsKeyboardDisplayed);
}