Skip to content

Instantly share code, notes, and snippets.

View NikitiJ's full-sized avatar

Nikita NikitiJ

  • Russia, Saratov
View GitHub Profile
class QRCodesScannerActivity : AppCompatActivity() {
private val TAG = "CameraPermission"
private val CAMERA_REQUEST_CODE = 101
private lateinit var barcodeDetector: BarcodeDetector
private lateinit var cameraSource: CameraSource
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@NikitiJ
NikitiJ / gist:ca6fbebc224d71ea841fdb4c35c2f762
Created September 4, 2019 07:15
Android. Рассчёт количества столбцов относительно размеров экрана и ориентации
//Расчёт количества столбцов относительно размеров экрана и ориентации
public static int getGridColumnsCount(Context context){
boolean landscape = context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
float hi=displayMetrics.heightPixels/displayMetrics.xdpi;
float wi=displayMetrics.widthPixels/displayMetrics.ydpi;
float screenWidthInch = landscape ? Math.max(wi, hi) : Math.min(wi, hi);
float screenWidthCm = screenWidthInch * 2.54f;
int columns = (int)(screenWidthCm/2);
@NikitiJ
NikitiJ / ChatPageTabFragmentsAdapter
Created August 26, 2019 06:45
ChatPageTabFragmentsAdapter
public class ChatPageTabFragmentsAdapter extends FragmentPagerAdapter {
private List<Fragment> fragmentList = new ArrayList<>();
private ManagerModel[] managers;
public ChatPageTabFragmentsAdapter(FragmentManager fm, ManagerModel[] managerModels) {
super(fm);
this.managers = managerModels;
}
@NikitiJ
NikitiJ / MessageItemAdapter
Created August 26, 2019 06:43
MessageItemAdapter
public class MessageItemAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private List<MessageModel> messages;
private String managerPhotoUrl;
public MessageItemAdapter(List<MessageModel> messages) {
this.messages = messages;
}
public void setManagerPhotoUrl(String url) {
@NikitiJ
NikitiJ / ChatFragment
Created August 26, 2019 06:42
ChatFragment
public class ChatFragment extends Fragment {
private static final String ARG_MANAGER = "manager";
private List<MessageModel> messages = new ArrayList<>();
private MessageItemAdapter messageItemAdapter = new MessageItemAdapter(messages);
private Unbinder unbinder;
@BindView(R.id.progressbar_loading_container)
FrameLayout progressbarLoadingView;
@BindView(R.id.recyclerView_messagesContainer)
public class ChatActivity extends AppCompatActivity {
private ActivityCommonUtils activityCommonUtils = new ActivityCommonUtils(this);
private ManagerModel[] managerModels;
@BindView(R.id.tabLayout_container)
TabLayout tabsContainer;
@BindView(R.id.viewPager_tabsPager)
ViewPager fragmentPager;
@NikitiJ
NikitiJ / asyncRequestToServer_OOP.java
Created May 3, 2018 15:50
архитектура в стиле ООП для выполнения асинхронных запросов к серверу
*************** Архитектура асинхронные запросы в Андроид
//Имеются общие классы для запросов :
// обертка над любыми запросами
public class RequestWrapper <T> {
public String apiVersion = "2.0";
public String accessToken;
public T requestData;