From 857cf27a5a1916569790f95e258c1928fadf5dd0 Mon Sep 17 00:00:00 2001 From: Hirak Samani Date: Sat, 31 Mar 2018 17:24:10 +0000 Subject: [PATCH] Hirak/save button (#31) * Add save button as fab --- .idea/misc.xml | 2 +- .../main/feature/input/InputFragment.kt | 18 +++--- app/src/main/res/layout/fragment_input.xml | 59 +++++++++++++++++++ app/src/main/res/layout/report_folded.xml | 4 +- app/src/main/res/layout/report_summary.xml | 15 +---- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 7 files changed, 76 insertions(+), 28 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index fee3a84f..75dac502 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -24,7 +24,7 @@ - + diff --git a/app/src/main/java/wordtextcounter/details/main/feature/input/InputFragment.kt b/app/src/main/java/wordtextcounter/details/main/feature/input/InputFragment.kt index 6b4987b0..c96ce856 100644 --- a/app/src/main/java/wordtextcounter/details/main/feature/input/InputFragment.kt +++ b/app/src/main/java/wordtextcounter/details/main/feature/input/InputFragment.kt @@ -18,12 +18,12 @@ import com.github.javiersantos.materialstyleddialogs.MaterialStyledDialog import com.jakewharton.rxbinding2.widget.RxTextView import io.reactivex.android.schedulers.AndroidSchedulers import kotlinx.android.synthetic.main.fragment_input.etInput +import kotlinx.android.synthetic.main.fragment_input.fabSave import kotlinx.android.synthetic.main.fragment_input.toolbar import kotlinx.android.synthetic.main.report_folded.tvCharacters import kotlinx.android.synthetic.main.report_folded.tvSentences import kotlinx.android.synthetic.main.report_folded.tvWords import kotlinx.android.synthetic.main.report_summary.foldingCell -import kotlinx.android.synthetic.main.report_summary.ibSave import kotlinx.android.synthetic.main.report_summary.ivExpand import kotlinx.android.synthetic.main.report_unfolded.tvCharactersContent import kotlinx.android.synthetic.main.report_unfolded.tvParagraphsContent @@ -38,7 +38,6 @@ import wordtextcounter.details.main.store.ReportDatabase import java.util.concurrent.TimeUnit.MILLISECONDS - /** * A simple [Fragment] subclass. * Use the [InputFragment.newInstance] factory method to @@ -52,14 +51,15 @@ class InputFragment : BaseFragment() { private var avMoreToLess: AnimatedVectorDrawableCompat? = null private var avLessToMore: AnimatedVectorDrawableCompat? = null private lateinit var viewModelFactory: InputViewModelFactory - + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - viewModelFactory = InputViewModelFactory(ReportDatabase.getInstance(activity?.applicationContext!!).reportDao()) + viewModelFactory = InputViewModelFactory( + ReportDatabase.getInstance(activity?.applicationContext!!).reportDao()) viewModel = ViewModelProviders.of(this, viewModelFactory).get(InputViewModel::class.java) avMoreToLess = AnimatedVectorDrawableCompat.create(context!!, R.drawable.avd_more_to_less) avLessToMore = AnimatedVectorDrawableCompat.create(context!!, R.drawable.avd_less_to_more) - + } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, @@ -76,14 +76,14 @@ class InputFragment : BaseFragment() { val cView = LayoutInflater.from(activity).inflate(R.layout.report_name_edit, null) val rName = cView.findViewById(R.id.rName) - ibSave.setOnClickListener { + fabSave.setOnClickListener { MaterialStyledDialog.Builder(activity) .setTitle("") // This is intentional. Not providing this results into weird UI. - .setDescription((activity as AppCompatActivity).getString(R.string.save_dialog_desc)) + .setDescription(getString(R.string.save_dialog_desc)) .withDarkerOverlay(true) .setPositiveText(getString(R.string.bookmark)) .setNegativeText(getString(R.string.cancel)) - .setCustomView(cView, 20, 20, 20 ,20) + .setCustomView(cView, 20, 20, 20, 20) .onPositive { _, _ -> if (rName.text.trim().isEmpty()) { //TODO Error message @@ -97,6 +97,7 @@ class InputFragment : BaseFragment() { .show() } + foldingCell.initialize(1000, ContextCompat.getColor(context!!, R.color.folder_back_side), 0) ivExpand.setOnClickListener { @@ -131,6 +132,7 @@ class InputFragment : BaseFragment() { outState.putString(TEXT, etInput.text.toString()) } + private fun handleViewState(viewState: ViewState) { if (viewState.showError) { diff --git a/app/src/main/res/layout/fragment_input.xml b/app/src/main/res/layout/fragment_input.xml index 53e7e5f1..7d28950e 100644 --- a/app/src/main/res/layout/fragment_input.xml +++ b/app/src/main/res/layout/fragment_input.xml @@ -22,11 +22,14 @@ app:titleEnabled="false" > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - diff --git a/build.gradle b/build.gradle index e62a4ef8..c6f5591d 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.0.1' + classpath 'com.android.tools.build:gradle:3.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9cd851be..82124b82 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sat Dec 02 22:15:29 IST 2017 +#Wed Mar 28 23:44:15 IST 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip