diff --git a/app/build.gradle b/app/build.gradle index f8d53f743..4d877d095 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,4 +1,6 @@ apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' android { compileSdkVersion = 27 @@ -56,6 +58,10 @@ dependencies { implementation 'com.madgag.spongycastle:prov:1.58.0.0' implementation 'joda-time:joda-time:2.9.4' implementation 'com.android.support:support-compat:27.1.1' + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} +repositories { + mavenCentral() } buildscript { diff --git a/app/src/main/java/com/keepassdroid/fileselect/FileSelectActivity.java b/app/src/main/java/com/keepassdroid/fileselect/FileSelectActivity.java index 5a22ac3e5..0136ebb2c 100644 --- a/app/src/main/java/com/keepassdroid/fileselect/FileSelectActivity.java +++ b/app/src/main/java/com/keepassdroid/fileselect/FileSelectActivity.java @@ -79,9 +79,8 @@ public class FileSelectActivity extends Activity { - private static final int MY_PERMISSIONS_REQUEST_EXTERNAL_STORAGE = 111; private ListView mList; - private ListAdapter mAdapter; + private RecentFileAdapter mAdapter; private static final int CMENU_CLEAR = Menu.FIRST; @@ -331,10 +330,10 @@ public void run() { private void fillData() { // Set the initial value of the filename - EditText filename = (EditText) findViewById(R.id.file_filename); + EditText filename = findViewById(R.id.file_filename); filename.setText(Environment.getExternalStorageDirectory().getAbsolutePath() + getString(R.string.default_file_path)); - mAdapter = new ArrayAdapter(this, R.layout.file_row, R.id.file_filename, fileHistory.getDbList()); + mAdapter = new RecentFileAdapter(this, fileHistory.getDbList()); mList.setAdapter(mAdapter); } diff --git a/app/src/main/java/com/keepassdroid/fileselect/RecentFileAdapter.kt b/app/src/main/java/com/keepassdroid/fileselect/RecentFileAdapter.kt new file mode 100644 index 000000000..dd86d848b --- /dev/null +++ b/app/src/main/java/com/keepassdroid/fileselect/RecentFileAdapter.kt @@ -0,0 +1,28 @@ +package com.keepassdroid.fileselect + +import android.content.Context +import android.view.View +import android.view.ViewGroup +import android.widget.ArrayAdapter +import com.android.keepass.R +import kotlinx.android.synthetic.main.file_row.view.filename +import kotlinx.android.synthetic.main.file_row.view.filepath +import android.view.LayoutInflater + + + +class RecentFileAdapter(context: Context, val items: List) + : ArrayAdapter(context, R.layout.file_row, R.id.file_filename, items) { + + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View? { + var itemView = convertView + if( itemView == null ){ + val vi = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater + itemView = vi.inflate(R.layout.file_row, null) + } + itemView?.filename?.text = items.get(position).substringAfterLast('/') + itemView?.filepath?.text = items.get(position) + + return itemView + } +} diff --git a/app/src/main/res/layout/file_row.xml b/app/src/main/res/layout/file_row.xml index f48146979..02087575f 100644 --- a/app/src/main/res/layout/file_row.xml +++ b/app/src/main/res/layout/file_row.xml @@ -1,5 +1,4 @@ - - - \ No newline at end of file + android:orientation="vertical"> + + + + + + diff --git a/build.gradle b/build.gradle index 36c01cdb6..a0963b5cd 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,6 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.kotlin_version = '1.3.11' repositories { google() jcenter() @@ -9,7 +10,8 @@ buildscript { } } dependencies { - classpath 'com.android.tools.build:gradle:3.2.1' + classpath 'com.android.tools.build:gradle:3.1.2' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }