Skip to content

Instantly share code, notes, and snippets.

View sys1yagi's full-sized avatar

Toshihiro Yagi sys1yagi

View GitHub Profile
@sys1yagi
sys1yagi / java8_java7.java
Last active December 14, 2015 20:08
sample of java 7 and 8 new feature.
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@sys1yagi
sys1yagi / build.gradle
Created March 15, 2013 11:32
fizzbuzz task for gradle.
task fizzbuzz << {
100.times {i ->
i = i+1
if( i % 15 == 0){
println("fizzbuzz")
}
else if( i % 3 == 0){
println("fizz")
}
else if( i % 5 == 0){
@sys1yagi
sys1yagi / build.gradle
Last active December 14, 2015 23:59
fizzbuzz task for gradle. run: > gradle -q fizzbuzz
task fizzbuzz << {}
task initFizzBuzz{
fizz={i -> if( i % 3 == 0) print("fizz") }
buzz={i -> if( i % 5 == 0) print("buzz") }
number={i -> if( i % 3 != 0 && i % 5 != 0) print(i) }
100.times {i ->
suffix = sprintf("%03d", i+1)
task "fizzbuzz_decision_${suffix}" << {
fizz(i+1)
buzz(i+1)
@sys1yagi
sys1yagi / build.gradle
Last active December 22, 2015 04:59
copy dependencies jar to build/libs
apply plugin: 'java'
apply plugin: 'eclipse'
sourceCompatibility = 1.7
version = '1.0'
repositories {
mavenCentral()
}
dependencies {
@sys1yagi
sys1yagi / PreviewActivity.java
Last active December 27, 2015 14:08
Mockitoェ・・・
package jp.mydns.sys1yagi.android.mockitosample;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
package jp.mydns.sys1yagi.android.mockitosample;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.view.View;

PR: konifar/droidkaigi2016#108

もとの問題

アプリを起動(MainActivity)して任意のセッション詳細(SessionDetailActivity)を開いてSessionの状態を変更して戻る。このときMainActivityが破棄-再生成されていた場合にクラッシュする

構造的な問題

MainActivity-SessionsFragment-ViewPager-SessionsTabFragmentの構造のなかで、それぞれのコンポーネント間で直接onActivityResult()を呼び出して伝搬する方法を取っていた。

package jp.dip.sys1.aozora.views.adapters
import android.support.v7.widget.RecyclerView
import android.view.ViewGroup
import java.util.*
abstract class HeaderAdapter<ViewHolder : RecyclerView.ViewHolder, Item, Header, Footer>() : RecyclerView.Adapter<ViewHolder>() {
companion object {
const val TYPE_HEADER = 0

ステップ1: 全体像をつかむ

テーマの情報収集をする。テーマのサイズがどのくらいかを見定める。

TODO

ステップ2: スコープを決める

テーマの空間のなかで、どこをスコープとするかを決める。小さなスコープの単位にする。使える時間も考慮にいれる