Skip to content

Instantly share code, notes, and snippets.

View sharmadhiraj's full-sized avatar

Dhiraj Sharma sharmadhiraj

View GitHub Profile
@sharmadhiraj
sharmadhiraj / NewsListAdapter.kt
Created August 3, 2018 07:35
Android Paging Library
class NewsListAdapter(private val retry: () -> Unit)
: PagedListAdapter<News, RecyclerView.ViewHolder>(NewsDiffCallback) {
private val DATA_VIEW_TYPE = 1
private val FOOTER_VIEW_TYPE = 2
private var state = State.LOADING
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return if (viewType == DATA_VIEW_TYPE) NewsViewHolder.create(parent) else ListFooterViewHolder.create(retry, parent)
@sharmadhiraj
sharmadhiraj / NewsListActivity.kt
Last active July 30, 2019 09:50
Android Paging Library
class NewsListActivity : AppCompatActivity() {
private lateinit var viewModel: NewsListViewModel
private lateinit var newsListAdapter: NewsListAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_news_list)
viewModel = ViewModelProviders.of(this)
@sharmadhiraj
sharmadhiraj / base.dart
Created August 9, 2018 10:04
Base StatefulWidget
abstract class BaseStatefulWidget extends StatefulWidget {
String getTitle();
Widget body(AsyncSnapshot snapshot);
Future future();
@override
State<StatefulWidget> createState() => BaseState(getTitle());
}
@sharmadhiraj
sharmadhiraj / vue_axios_example.html
Created January 2, 2019 18:16
Vue.js | Making API calls using Axios
<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>Vue.js | Making API calls using Axios</title>
</head>
<body style="text-align: center">
<div id="app" style="display: inline-block;margin-top: 100px">
<img v-bind:src="avatar" alt="">
<h1 style="margin-bottom: 0">{{name}}</h1>
@sharmadhiraj
sharmadhiraj / UnderMaintenance.java
Created May 17, 2019 06:07
App Under Maintenance
public class UnderMaintenance {
public boolean is_under_maintenance;
public String under_maintenance_message;
public UnderMaintenance() {
}
}
@sharmadhiraj
sharmadhiraj / BaseActivity.java
Created May 17, 2019 06:11
App Under Maintenance
public abstract class BaseActivity extends AppCompatActivity {
private AlertDialog dialog;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
connectToFirebase();
}
@sharmadhiraj
sharmadhiraj / main.dart
Created June 5, 2019 16:53
Flutter web app
import 'package:flutter_web/material.dart';
void main() => runApp(App());
class App extends MaterialApp {
@override
String get title => "Chuck Norris Jokes";
@override
ThemeData get theme => ThemeData(primarySwatch: Colors.blue);
@override
@sharmadhiraj
sharmadhiraj / main.dart
Created July 12, 2019 10:22
Flutter web app
//...........................................
Future<String> fetchJoke() async {
var url = "https://api.chucknorris.io/jokes/random?category=dev";
var response = await http.get(url);
if (response.statusCode == 200) {
var jsonResponse = convert.jsonDecode(response.body);
return jsonResponse['value'];
} else {
return ("Unexpected error occurred.");
}
@sharmadhiraj
sharmadhiraj / main.dart
Created July 12, 2019 10:29
Flutter web app
//...........................................
body: FutureBuilder<String>(
future: fetchJoke(),
builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.none:
case ConnectionState.active:
case ConnectionState.waiting:
return Center(child: CircularProgressIndicator());
case ConnectionState.done:
class PhotosListScreen extends StatefulWidget {
PhotosListScreen({Key key}) : super(key: key);
@override
_PhotosListScreenState createState() => _PhotosListScreenState();
}
class _PhotosListScreenState extends State<PhotosListScreen> {
bool _hasMore;
int _pageNumber;
bool _error;
bool _loading;