diff --git a/app/build.gradle b/app/build.gradle index 828f781..f8642cd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,5 +1,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' android { compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION) @@ -20,9 +21,9 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:25.3.1' - compile 'com.github.johnkil.print:print:1.3.1' - compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" - compile project(':library') + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'com.android.support:appcompat-v7:25.3.1' + implementation 'com.github.johnkil.print:print:1.3.1' + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation project(':library') } diff --git a/app/src/main/java/com/unnamed/b/atv/sample/fragment/CustomViewHolderFragment.kt b/app/src/main/java/com/unnamed/b/atv/sample/fragment/CustomViewHolderFragment.kt index 188e86b..eb3bf46 100644 --- a/app/src/main/java/com/unnamed/b/atv/sample/fragment/CustomViewHolderFragment.kt +++ b/app/src/main/java/com/unnamed/b/atv/sample/fragment/CustomViewHolderFragment.kt @@ -22,21 +22,21 @@ class CustomViewHolderFragment : Fragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val rootView = inflater.inflate(R.layout.fragment_default, container, false) val containerView = rootView.findViewById(R.id.container) as ViewGroup - rootView.findViewById(R.id.status_bar).visibility = View.GONE + rootView.findViewById(R.id.status_bar).visibility = View.GONE val root = TreeNode.root() - val myProfile = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_person, "My Profile")).setViewHolder(ProfileHolder(activity)) - val bruce = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_person, "Bruce Wayne")).setViewHolder(ProfileHolder(activity)) - val clark = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_person, "Clark Kent")).setViewHolder(ProfileHolder(activity)) - val barry = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_person, "Barry Allen")).setViewHolder(ProfileHolder(activity)) + val myProfile = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_person, "My Profile")).setViewHolder(ProfileHolder(requireContext())) + val bruce = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_person, "Bruce Wayne")).setViewHolder(ProfileHolder(requireContext())) + val clark = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_person, "Clark Kent")).setViewHolder(ProfileHolder(requireContext())) + val barry = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_person, "Barry Allen")).setViewHolder(ProfileHolder(requireContext())) addProfileData(myProfile) addProfileData(clark) addProfileData(bruce) addProfileData(barry) root.addChildren(myProfile, bruce, barry, clark) - tView = AndroidTreeView(activity, root) + tView = AndroidTreeView(requireContext(), root) tView!!.setDefaultAnimation(true) tView!!.setDefaultContainerStyle(R.style.TreeNodeStyleDivided, true) containerView.addView(tView!!.view) @@ -52,16 +52,16 @@ class CustomViewHolderFragment : Fragment() { } private fun addProfileData(profile: TreeNode) { - val socialNetworks = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_people, "Social")).setViewHolder(HeaderHolder(activity)) - val places = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_place, "Places")).setViewHolder(HeaderHolder(activity)) + val socialNetworks = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_people, "Social")).setViewHolder(HeaderHolder(requireContext())) + val places = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_place, "Places")).setViewHolder(HeaderHolder(requireContext())) - val facebook = TreeNode(SocialViewHolder.SocialItem(R.string.ic_post_facebook)).setViewHolder(SocialViewHolder(activity)) - val linkedin = TreeNode(SocialViewHolder.SocialItem(R.string.ic_post_linkedin)).setViewHolder(SocialViewHolder(activity)) - val google = TreeNode(SocialViewHolder.SocialItem(R.string.ic_post_gplus)).setViewHolder(SocialViewHolder(activity)) - val twitter = TreeNode(SocialViewHolder.SocialItem(R.string.ic_post_twitter)).setViewHolder(SocialViewHolder(activity)) + val facebook = TreeNode(SocialViewHolder.SocialItem(R.string.ic_post_facebook)).setViewHolder(SocialViewHolder(requireContext())) + val linkedin = TreeNode(SocialViewHolder.SocialItem(R.string.ic_post_linkedin)).setViewHolder(SocialViewHolder(requireContext())) + val google = TreeNode(SocialViewHolder.SocialItem(R.string.ic_post_gplus)).setViewHolder(SocialViewHolder(requireContext())) + val twitter = TreeNode(SocialViewHolder.SocialItem(R.string.ic_post_twitter)).setViewHolder(SocialViewHolder(requireContext())) - val lake = TreeNode(PlaceHolderHolder.PlaceItem("A rose garden")).setViewHolder(PlaceHolderHolder(activity)) - val mountains = TreeNode(PlaceHolderHolder.PlaceItem("The white house")).setViewHolder(PlaceHolderHolder(activity)) + val lake = TreeNode(PlaceHolderHolder.PlaceItem("A rose garden")).setViewHolder(PlaceHolderHolder(requireContext())) + val mountains = TreeNode(PlaceHolderHolder.PlaceItem("The white house")).setViewHolder(PlaceHolderHolder(requireContext())) places.addChildren(lake, mountains) socialNetworks.addChildren(facebook, google, twitter, linkedin) diff --git a/app/src/main/java/com/unnamed/b/atv/sample/fragment/FolderStructureFragment.kt b/app/src/main/java/com/unnamed/b/atv/sample/fragment/FolderStructureFragment.kt index e2948cd..e322463 100644 --- a/app/src/main/java/com/unnamed/b/atv/sample/fragment/FolderStructureFragment.kt +++ b/app/src/main/java/com/unnamed/b/atv/sample/fragment/FolderStructureFragment.kt @@ -56,7 +56,7 @@ class FolderStructureFragment : Fragment() { root.addChildren(computerRoot) - tView = AndroidTreeView(activity, root) + tView = AndroidTreeView(requireContext(), root) tView!!.setDefaultAnimation(true) tView!!.setDefaultContainerStyle(R.style.TreeNodeStyleCustom) tView!!.setDefaultViewHolder(IconTreeItemHolder::class.java) diff --git a/app/src/main/java/com/unnamed/b/atv/sample/fragment/SelectableTreeFragment.kt b/app/src/main/java/com/unnamed/b/atv/sample/fragment/SelectableTreeFragment.kt index bfff4f2..f7f4bd2 100644 --- a/app/src/main/java/com/unnamed/b/atv/sample/fragment/SelectableTreeFragment.kt +++ b/app/src/main/java/com/unnamed/b/atv/sample/fragment/SelectableTreeFragment.kt @@ -29,13 +29,13 @@ class SelectableTreeFragment : Fragment() { val rootView = inflater.inflate(R.layout.fragment_selectable_nodes, null, false) val containerView = rootView.findViewById(R.id.container) as ViewGroup - val selectionModeButton = rootView.findViewById(R.id.btn_toggleSelection) + val selectionModeButton = rootView.findViewById(R.id.btn_toggleSelection) selectionModeButton.setOnClickListener { selectionModeEnabled = !selectionModeEnabled tView!!.isSelectionModeEnabled = selectionModeEnabled } - val selectAllBtn = rootView.findViewById(R.id.btn_selectAll) + val selectAllBtn = rootView.findViewById(R.id.btn_selectAll) selectAllBtn.setOnClickListener { if (!selectionModeEnabled) { Toast.makeText(activity, "Enable selection mode first", Toast.LENGTH_SHORT).show() @@ -43,7 +43,7 @@ class SelectableTreeFragment : Fragment() { tView!!.selectAll(true) } - val deselectAll = rootView.findViewById(R.id.btn_deselectAll) + val deselectAll = rootView.findViewById(R.id.btn_deselectAll) deselectAll.setOnClickListener { if (!selectionModeEnabled) { Toast.makeText(activity, "Enable selection mode first", Toast.LENGTH_SHORT).show() @@ -51,7 +51,7 @@ class SelectableTreeFragment : Fragment() { tView!!.deselectAll() } - val check = rootView.findViewById(R.id.btn_checkSelection) + val check = rootView.findViewById(R.id.btn_checkSelection) check.setOnClickListener { if (!selectionModeEnabled) { Toast.makeText(activity, "Enable selection mode first", Toast.LENGTH_SHORT).show() @@ -62,14 +62,14 @@ class SelectableTreeFragment : Fragment() { val root = TreeNode.root() - val s1 = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_sd_storage, "Storage1")).setViewHolder(ProfileHolder(activity)) - val s2 = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_sd_storage, "Storage2")).setViewHolder(ProfileHolder(activity)) + val s1 = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_sd_storage, "Storage1")).setViewHolder(ProfileHolder(requireContext())) + val s2 = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_sd_storage, "Storage2")).setViewHolder(ProfileHolder(requireContext())) s1.isSelectable = false s2.isSelectable = false - val folder1 = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_folder, "Folder 1")).setViewHolder(SelectableHeaderHolder(activity)) - val folder2 = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_folder, "Folder 2")).setViewHolder(SelectableHeaderHolder(activity)) - val folder3 = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_folder, "Folder 3")).setViewHolder(SelectableHeaderHolder(activity)) + val folder1 = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_folder, "Folder 1")).setViewHolder(SelectableHeaderHolder(requireContext())) + val folder2 = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_folder, "Folder 2")).setViewHolder(SelectableHeaderHolder(requireContext())) + val folder3 = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_folder, "Folder 3")).setViewHolder(SelectableHeaderHolder(requireContext())) fillFolder(folder1) fillFolder(folder2) @@ -80,7 +80,7 @@ class SelectableTreeFragment : Fragment() { root.addChildren(s1, s2) - tView = AndroidTreeView(activity, root) + tView = AndroidTreeView(requireContext(), root) tView!!.setDefaultAnimation(true) containerView.addView(tView!!.view) @@ -94,9 +94,9 @@ class SelectableTreeFragment : Fragment() { } private fun fillFolder(folder: TreeNode) { - val file1 = TreeNode("File1").setViewHolder(SelectableItemHolder(activity)) - val file2 = TreeNode("File2").setViewHolder(SelectableItemHolder(activity)) - val file3 = TreeNode("File3").setViewHolder(SelectableItemHolder(activity)) + val file1 = TreeNode("File1").setViewHolder(SelectableItemHolder(requireContext())) + val file2 = TreeNode("File2").setViewHolder(SelectableItemHolder(requireContext())) + val file3 = TreeNode("File3").setViewHolder(SelectableItemHolder(requireContext())) folder.addChildren(file1, file2, file3) } diff --git a/app/src/main/java/com/unnamed/b/atv/sample/fragment/TwoDScrollingArrowExpandFragment.kt b/app/src/main/java/com/unnamed/b/atv/sample/fragment/TwoDScrollingArrowExpandFragment.kt index 00760cb..6a3dbc3 100644 --- a/app/src/main/java/com/unnamed/b/atv/sample/fragment/TwoDScrollingArrowExpandFragment.kt +++ b/app/src/main/java/com/unnamed/b/atv/sample/fragment/TwoDScrollingArrowExpandFragment.kt @@ -23,22 +23,22 @@ class TwoDScrollingArrowExpandFragment : Fragment(), TreeNode.TreeNodeClickListe override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val rootView = inflater.inflate(R.layout.fragment_selectable_nodes, null, false) - rootView.findViewById(R.id.status).visibility = View.GONE + rootView.findViewById(R.id.status).visibility = View.GONE val containerView = rootView.findViewById(R.id.container) as ViewGroup val root = TreeNode.root() val s1 = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_folder, "Folder with very long name ")).setViewHolder( - ArrowExpandSelectableHeaderHolder(activity)) + ArrowExpandSelectableHeaderHolder(requireContext())) val s2 = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_folder, "Another folder with very long name")).setViewHolder( - ArrowExpandSelectableHeaderHolder(activity)) + ArrowExpandSelectableHeaderHolder(requireContext())) fillFolder(s1) fillFolder(s2) root.addChildren(s1, s2) - tView = AndroidTreeView(activity, root) + tView = AndroidTreeView(requireContext(), root) tView!!.setDefaultAnimation(true) tView!!.setUse2dScroll(true) tView!!.setDefaultContainerStyle(R.style.TreeNodeStyleCustom) diff --git a/app/src/main/java/com/unnamed/b/atv/sample/fragment/TwoDScrollingFragment.kt b/app/src/main/java/com/unnamed/b/atv/sample/fragment/TwoDScrollingFragment.kt index eedd4c3..05963cc 100644 --- a/app/src/main/java/com/unnamed/b/atv/sample/fragment/TwoDScrollingFragment.kt +++ b/app/src/main/java/com/unnamed/b/atv/sample/fragment/TwoDScrollingFragment.kt @@ -22,20 +22,20 @@ class TwoDScrollingFragment : Fragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val rootView = inflater.inflate(R.layout.fragment_selectable_nodes, container, false) - rootView.findViewById(R.id.status).visibility = View.GONE + rootView.findViewById(R.id.status).visibility = View.GONE val containerView = rootView.findViewById(R.id.container) as ViewGroup val root = TreeNode.root() - val s1 = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_folder, "Folder with very long name ")).setViewHolder(SelectableHeaderHolder(activity)) - val s2 = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_folder, "Another folder with very long name")).setViewHolder(SelectableHeaderHolder(activity)) + val s1 = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_folder, "Folder with very long name ")).setViewHolder(SelectableHeaderHolder(requireContext())) + val s2 = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_folder, "Another folder with very long name")).setViewHolder(SelectableHeaderHolder(requireContext())) fillFolder(s1) fillFolder(s2) root.addChildren(s1, s2) - tView = AndroidTreeView(activity, root) + tView = AndroidTreeView(requireContext(), root) tView!!.setDefaultAnimation(true) tView!!.setUse2dScroll(true) tView!!.setDefaultContainerStyle(R.style.TreeNodeStyleCustom) @@ -55,7 +55,7 @@ class TwoDScrollingFragment : Fragment() { private fun fillFolder(folder: TreeNode) { var currentNode = folder for (i in 0..9) { - val file = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_folder, NAME)).setViewHolder(SelectableHeaderHolder(activity)) + val file = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_folder, NAME)).setViewHolder(SelectableHeaderHolder(requireContext())) currentNode.addChild(file) currentNode = file } diff --git a/app/src/main/java/com/unnamed/b/atv/sample/holder/IconTreeItemHolder.kt b/app/src/main/java/com/unnamed/b/atv/sample/holder/IconTreeItemHolder.kt index e41fcb6..c3fb722 100644 --- a/app/src/main/java/com/unnamed/b/atv/sample/holder/IconTreeItemHolder.kt +++ b/app/src/main/java/com/unnamed/b/atv/sample/holder/IconTreeItemHolder.kt @@ -27,16 +27,16 @@ class IconTreeItemHolder(context: Context) : TreeNode.BaseNodeViewHolder(R.id.btn_addFolder).setOnClickListener { val newFolder = TreeNode(IconTreeItemHolder.IconTreeItem(R.string.ic_folder, "New Folder")) treeView!!.addNode(node, newFolder) } - view.findViewById(R.id.btn_delete).setOnClickListener { treeView!!.removeNode(node) } + view.findViewById(R.id.btn_delete).setOnClickListener { treeView!!.removeNode(node) } //if My computer if (node.level == 1) { - view.findViewById(R.id.btn_delete).visibility = View.GONE + view.findViewById(R.id.btn_delete).visibility = View.GONE } return view diff --git a/app/src/main/java/com/unnamed/b/atv/sample/holder/SelectableItemHolder.kt b/app/src/main/java/com/unnamed/b/atv/sample/holder/SelectableItemHolder.kt index 2e28427..1919ca0 100644 --- a/app/src/main/java/com/unnamed/b/atv/sample/holder/SelectableItemHolder.kt +++ b/app/src/main/java/com/unnamed/b/atv/sample/holder/SelectableItemHolder.kt @@ -28,7 +28,7 @@ class SelectableItemHolder(context: Context) : TreeNode.BaseNodeViewHolder(R.id.bot_line).visibility = View.INVISIBLE } return view diff --git a/build.gradle b/build.gradle index 01a6ae9..6034490 100644 --- a/build.gradle +++ b/build.gradle @@ -1,16 +1,22 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.1.3-2' + ext.kotlin_version = '1.3.61' repositories { jcenter() + google() + maven() { + url 'https://maven.fabric.io/public' + } } dependencies { - classpath 'com.android.tools.build:gradle:2.3.3' + classpath 'com.android.tools.build:gradle:3.5.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files + classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4' + classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1' } } @@ -24,6 +30,10 @@ allprojects { repositories { jcenter() + google() + maven { + url 'https://maven.fabric.io/public' + } } } diff --git a/gradle.properties b/gradle.properties index 3bf73e3..8f6854b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,10 +21,10 @@ VERSION_NAME=1.3.0 VERSION_CODE=12 -ANDROID_BUILD_MIN_SDK_VERSION=11 -ANDROID_BUILD_TARGET_SDK_VERSION=25 -ANDROID_BUILD_SDK_VERSION=25 -ANDROID_BUILD_TOOLS_VERSION=25.0.3 +ANDROID_BUILD_MIN_SDK_VERSION=21 +ANDROID_BUILD_TARGET_SDK_VERSION=28 +ANDROID_BUILD_SDK_VERSION=28 +ANDROID_BUILD_TOOLS_VERSION=29.0.1 GROUP=com.github.bmelnychuk POM_DESCRIPTION=Tree View implementation for android diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e75f47b..99ef896 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 diff --git a/library/build.gradle b/library/build.gradle index 7cfd8db..ddcf61b 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -1,5 +1,6 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' android { compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION) @@ -16,12 +17,17 @@ android { minifyEnabled false } } + buildToolsVersion = '29.0.1' } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:25.3.1' - compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'com.android.support:appcompat-v7:28.0.0' + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} + +repositories { + mavenCentral() } apply from: '../maven_push.gradle'