From 0735cc2bd9716f111977cdbef09943551a04f88d Mon Sep 17 00:00:00 2001 From: pokeum Date: Thu, 6 Mar 2025 10:08:07 +0900 Subject: [PATCH 1/5] change package name --- README.md | 6 ++--- app/build.gradle | 10 ++------ app/google-services.json | 6 ++--- .../kr/pokeum/app/ExampleInstrumentedTest.kt | 24 ------------------- app/src/main/AndroidManifest.xml | 2 +- .../{kr => co}/pokeum/app/JsonGenerator.kt | 16 ++++++------- .../{kr => co}/pokeum/app/api/ApiService.kt | 2 +- .../activity/JsonViewerActivity.kt | 14 +++++------ .../app/presentation/activity/MainActivity.kt | 14 +++++------ .../pokeum/app/util/ActivityUtils.kt | 2 +- .../pokeum/app/util/ContextUtils.kt | 2 +- app/src/main/res/layout/activity_main.xml | 2 +- .../{kr => co}/pokeum/app/ExampleUnitTest.kt | 2 +- .../pokeum/app/etc/SortingListTest.kt | 2 +- jsonviewer/build.gradle | 2 +- .../pokeum/jsonviewer/xml}/JsonParser.kt | 4 ++-- .../jsonviewer/xml}/JsonRecyclerView.kt | 6 ++--- .../pokeum/jsonviewer/xml}/JsonViewer.kt | 6 ++--- .../xml}/adapter/BaseJsonViewerAdapter.kt | 4 ++-- .../xml}/adapter/JsonViewerAdapter.kt | 22 ++++++++--------- .../pokeum/jsonviewer/xml}/model/JsonArray.kt | 2 +- .../jsonviewer/xml}/model/JsonElement.kt | 2 +- .../pokeum/jsonviewer/xml}/model/JsonNull.kt | 2 +- .../jsonviewer/xml}/model/JsonObject.kt | 2 +- .../jsonviewer/xml}/model/JsonPrimitive.kt | 2 +- .../pokeum/jsonviewer/xml}/util/SpansUtils.kt | 4 ++-- .../pokeum/jsonviewer/xml}/util/StyleUtils.kt | 2 +- .../xml}/viewholder/JsonArrayViewHolder.kt | 10 ++++---- .../xml}/viewholder/JsonNullViewHolder.kt | 12 +++++----- .../xml}/viewholder/JsonObjectViewHolder.kt | 10 ++++---- .../viewholder/JsonPrimitiveViewHolder.kt | 12 +++++----- .../pokeum/jsonviewer/xml}/ExampleUnitTest.kt | 2 +- .../jsonviewer/xml}/model/JsonArrayTest.kt | 4 ++-- .../jsonviewer/xml}/model/JsonObjectTest.kt | 4 ++-- 34 files changed, 94 insertions(+), 124 deletions(-) delete mode 100644 app/src/androidTest/java/kr/pokeum/app/ExampleInstrumentedTest.kt rename app/src/main/java/{kr => co}/pokeum/app/JsonGenerator.kt (87%) rename app/src/main/java/{kr => co}/pokeum/app/api/ApiService.kt (97%) rename app/src/main/java/{kr => co}/pokeum/app/presentation/activity/JsonViewerActivity.kt (82%) rename app/src/main/java/{kr => co}/pokeum/app/presentation/activity/MainActivity.kt (90%) rename app/src/main/java/{kr => co}/pokeum/app/util/ActivityUtils.kt (93%) rename app/src/main/java/{kr => co}/pokeum/app/util/ContextUtils.kt (98%) rename app/src/test/java/{kr => co}/pokeum/app/ExampleUnitTest.kt (91%) rename app/src/test/java/{kr => co}/pokeum/app/etc/SortingListTest.kt (98%) rename jsonviewer/src/main/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/JsonParser.kt (97%) rename jsonviewer/src/main/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/JsonRecyclerView.kt (94%) rename jsonviewer/src/main/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/JsonViewer.kt (82%) rename jsonviewer/src/main/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/adapter/BaseJsonViewerAdapter.kt (93%) rename jsonviewer/src/main/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/adapter/JsonViewerAdapter.kt (83%) rename jsonviewer/src/main/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/model/JsonArray.kt (97%) rename jsonviewer/src/main/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/model/JsonElement.kt (96%) rename jsonviewer/src/main/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/model/JsonNull.kt (92%) rename jsonviewer/src/main/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/model/JsonObject.kt (97%) rename jsonviewer/src/main/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/model/JsonPrimitive.kt (97%) rename jsonviewer/src/main/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/util/SpansUtils.kt (91%) rename jsonviewer/src/main/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/util/StyleUtils.kt (93%) rename jsonviewer/src/main/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/viewholder/JsonArrayViewHolder.kt (86%) rename jsonviewer/src/main/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/viewholder/JsonNullViewHolder.kt (72%) rename jsonviewer/src/main/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/viewholder/JsonObjectViewHolder.kt (87%) rename jsonviewer/src/main/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/viewholder/JsonPrimitiveViewHolder.kt (83%) rename jsonviewer/src/test/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/ExampleUnitTest.kt (90%) rename jsonviewer/src/test/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/model/JsonArrayTest.kt (88%) rename jsonviewer/src/test/java/{kr/pokeum/jsonviewer_xml => co/pokeum/jsonviewer/xml}/model/JsonObjectTest.kt (90%) diff --git a/README.md b/README.md index 2277bb5..49f2d5f 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ https://github.com/pokeum/jsonviewer-xml/assets/102505472/e2f260f0-cc28-4607-9ec **Easiest way to format Json String** ```xml - @@ -86,7 +86,7 @@ implementation 'com.github.pokeum:jsonviewer-xml:0.0.2' Add `JsonRecyclerView` in XML layout file: ```xml - + package="co.pokeum.app"> diff --git a/app/src/main/java/kr/pokeum/app/JsonGenerator.kt b/app/src/main/java/co/pokeum/app/JsonGenerator.kt similarity index 87% rename from app/src/main/java/kr/pokeum/app/JsonGenerator.kt rename to app/src/main/java/co/pokeum/app/JsonGenerator.kt index 210e2b6..7261fd5 100644 --- a/app/src/main/java/kr/pokeum/app/JsonGenerator.kt +++ b/app/src/main/java/co/pokeum/app/JsonGenerator.kt @@ -1,15 +1,15 @@ -package kr.pokeum.app +package co.pokeum.app import android.content.Context import android.net.Uri import android.widget.Toast -import kr.pokeum.app.util.readAssetsFile -import kr.pokeum.app.util.readCacheFile -import kr.pokeum.app.util.readFileFromUri -import kr.pokeum.app.util.writeCacheFile -import kr.pokeum.jsonviewer_xml.JsonParser -import kr.pokeum.jsonviewer_xml.model.JsonElement -import kr.pokeum.jsonviewer_xml.model.JsonObject +import co.pokeum.app.util.readAssetsFile +import co.pokeum.app.util.readCacheFile +import co.pokeum.app.util.readFileFromUri +import co.pokeum.app.util.writeCacheFile +import co.pokeum.jsonviewer.xml.JsonParser +import co.pokeum.jsonviewer.xml.model.JsonElement +import co.pokeum.jsonviewer.xml.model.JsonObject import org.json.JSONException class JsonGenerator( diff --git a/app/src/main/java/kr/pokeum/app/api/ApiService.kt b/app/src/main/java/co/pokeum/app/api/ApiService.kt similarity index 97% rename from app/src/main/java/kr/pokeum/app/api/ApiService.kt rename to app/src/main/java/co/pokeum/app/api/ApiService.kt index 2295ffc..6352345 100644 --- a/app/src/main/java/kr/pokeum/app/api/ApiService.kt +++ b/app/src/main/java/co/pokeum/app/api/ApiService.kt @@ -1,4 +1,4 @@ -package kr.pokeum.app.api +package co.pokeum.app.api import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope diff --git a/app/src/main/java/kr/pokeum/app/presentation/activity/JsonViewerActivity.kt b/app/src/main/java/co/pokeum/app/presentation/activity/JsonViewerActivity.kt similarity index 82% rename from app/src/main/java/kr/pokeum/app/presentation/activity/JsonViewerActivity.kt rename to app/src/main/java/co/pokeum/app/presentation/activity/JsonViewerActivity.kt index 0cfed26..538c714 100644 --- a/app/src/main/java/kr/pokeum/app/presentation/activity/JsonViewerActivity.kt +++ b/app/src/main/java/co/pokeum/app/presentation/activity/JsonViewerActivity.kt @@ -1,15 +1,15 @@ -package kr.pokeum.app.presentation.activity +package co.pokeum.app.presentation.activity import android.content.Context import android.content.Intent import android.os.Bundle import androidx.appcompat.app.AppCompatActivity -import kr.pokeum.app.JsonGenerator -import kr.pokeum.app.R -import kr.pokeum.app.databinding.ActivityJsonViewerBinding -import kr.pokeum.app.util.changeActionBarColor -import kr.pokeum.jsonviewer_xml.adapter.JsonViewerAdapter -import kr.pokeum.jsonviewer_xml.model.JsonElement +import co.pokeum.app.JsonGenerator +import co.pokeum.app.R +import co.pokeum.app.databinding.ActivityJsonViewerBinding +import co.pokeum.app.util.changeActionBarColor +import co.pokeum.jsonviewer.xml.adapter.JsonViewerAdapter +import co.pokeum.jsonviewer.xml.model.JsonElement class JsonViewerActivity : AppCompatActivity() { diff --git a/app/src/main/java/kr/pokeum/app/presentation/activity/MainActivity.kt b/app/src/main/java/co/pokeum/app/presentation/activity/MainActivity.kt similarity index 90% rename from app/src/main/java/kr/pokeum/app/presentation/activity/MainActivity.kt rename to app/src/main/java/co/pokeum/app/presentation/activity/MainActivity.kt index 08bf658..a82c8d4 100644 --- a/app/src/main/java/kr/pokeum/app/presentation/activity/MainActivity.kt +++ b/app/src/main/java/co/pokeum/app/presentation/activity/MainActivity.kt @@ -1,16 +1,16 @@ -package kr.pokeum.app.presentation.activity +package co.pokeum.app.presentation.activity import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import androidx.activity.result.contract.ActivityResultContracts import com.google.android.material.dialog.MaterialAlertDialogBuilder -import kr.pokeum.app.JsonGenerator -import kr.pokeum.app.R -import kr.pokeum.app.api.performNetworkRequest -import kr.pokeum.app.databinding.ActivityMainBinding -import kr.pokeum.app.databinding.DialogLoadFromUrlBinding -import kr.pokeum.app.util.changeActionBarColor +import co.pokeum.app.JsonGenerator +import co.pokeum.app.R +import co.pokeum.app.api.performNetworkRequest +import co.pokeum.app.databinding.ActivityMainBinding +import co.pokeum.app.databinding.DialogLoadFromUrlBinding +import co.pokeum.app.util.changeActionBarColor class MainActivity : AppCompatActivity() { diff --git a/app/src/main/java/kr/pokeum/app/util/ActivityUtils.kt b/app/src/main/java/co/pokeum/app/util/ActivityUtils.kt similarity index 93% rename from app/src/main/java/kr/pokeum/app/util/ActivityUtils.kt rename to app/src/main/java/co/pokeum/app/util/ActivityUtils.kt index 65b58cc..0394e6c 100644 --- a/app/src/main/java/kr/pokeum/app/util/ActivityUtils.kt +++ b/app/src/main/java/co/pokeum/app/util/ActivityUtils.kt @@ -1,4 +1,4 @@ -package kr.pokeum.app.util +package co.pokeum.app.util import android.graphics.drawable.ColorDrawable import androidx.annotation.ColorInt diff --git a/app/src/main/java/kr/pokeum/app/util/ContextUtils.kt b/app/src/main/java/co/pokeum/app/util/ContextUtils.kt similarity index 98% rename from app/src/main/java/kr/pokeum/app/util/ContextUtils.kt rename to app/src/main/java/co/pokeum/app/util/ContextUtils.kt index 89dee80..d18d728 100644 --- a/app/src/main/java/kr/pokeum/app/util/ContextUtils.kt +++ b/app/src/main/java/co/pokeum/app/util/ContextUtils.kt @@ -1,4 +1,4 @@ -package kr.pokeum.app.util +package co.pokeum.app.util import android.content.Context import android.net.Uri diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index d7d8d57..586639a 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -12,7 +12,7 @@ android:padding="24dp" android:orientation="vertical"> - + diff --git a/app/src/test/java/kr/pokeum/app/ExampleUnitTest.kt b/app/src/test/java/co/pokeum/app/ExampleUnitTest.kt similarity index 91% rename from app/src/test/java/kr/pokeum/app/ExampleUnitTest.kt rename to app/src/test/java/co/pokeum/app/ExampleUnitTest.kt index c23dadd..ca91295 100644 --- a/app/src/test/java/kr/pokeum/app/ExampleUnitTest.kt +++ b/app/src/test/java/co/pokeum/app/ExampleUnitTest.kt @@ -1,4 +1,4 @@ -package kr.pokeum.app +package co.pokeum.app import org.junit.Test diff --git a/app/src/test/java/kr/pokeum/app/etc/SortingListTest.kt b/app/src/test/java/co/pokeum/app/etc/SortingListTest.kt similarity index 98% rename from app/src/test/java/kr/pokeum/app/etc/SortingListTest.kt rename to app/src/test/java/co/pokeum/app/etc/SortingListTest.kt index 02e4b18..f7ec249 100644 --- a/app/src/test/java/kr/pokeum/app/etc/SortingListTest.kt +++ b/app/src/test/java/co/pokeum/app/etc/SortingListTest.kt @@ -1,4 +1,4 @@ -package kr.pokeum.app.etc +package co.pokeum.app.etc import org.junit.Test import org.junit.Assert.* diff --git a/jsonviewer/build.gradle b/jsonviewer/build.gradle index 2864df7..99705fa 100644 --- a/jsonviewer/build.gradle +++ b/jsonviewer/build.gradle @@ -12,7 +12,7 @@ def VERSION_NAME = "$majorNumber.$minorNumber.$patchNumber" def VERSION_CODE = majorNumber * 100000 + minorNumber * 1000 + patchNumber * 10 android { - namespace "kr.pokeum.jsonviewer_xml" + namespace "co.pokeum.jsonviewer.xml" compileSdkVersion COMPILE_SDK_VERSION defaultConfig { diff --git a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/JsonParser.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/JsonParser.kt similarity index 97% rename from jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/JsonParser.kt rename to jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/JsonParser.kt index b3dc140..7607718 100644 --- a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/JsonParser.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/JsonParser.kt @@ -1,8 +1,8 @@ -package kr.pokeum.jsonviewer_xml +package co.pokeum.jsonviewer.xml // https://www.rfc-editor.org/rfc/rfc7159.html -import kr.pokeum.jsonviewer_xml.model.* +import co.pokeum.jsonviewer.xml.model.* import org.json.JSONArray import org.json.JSONException import org.json.JSONObject diff --git a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/JsonRecyclerView.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/JsonRecyclerView.kt similarity index 94% rename from jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/JsonRecyclerView.kt rename to jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/JsonRecyclerView.kt index cc46a63..f1bec50 100644 --- a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/JsonRecyclerView.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/JsonRecyclerView.kt @@ -1,11 +1,11 @@ -package kr.pokeum.jsonviewer_xml +package co.pokeum.jsonviewer.xml import android.content.Context import android.util.AttributeSet import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import kr.pokeum.jsonviewer_xml.adapter.JsonViewerAdapter -import kr.pokeum.jsonviewer_xml.util.JsonViewerColor +import co.pokeum.jsonviewer.xml.adapter.JsonViewerAdapter +import co.pokeum.jsonviewer.xml.util.JsonViewerColor @Suppress("DEPRECATION") class JsonRecyclerView diff --git a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/JsonViewer.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/JsonViewer.kt similarity index 82% rename from jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/JsonViewer.kt rename to jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/JsonViewer.kt index 6ebfa27..50ba4a8 100644 --- a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/JsonViewer.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/JsonViewer.kt @@ -1,12 +1,12 @@ -package kr.pokeum.jsonviewer_xml +package co.pokeum.jsonviewer.xml import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import android.widget.LinearLayout import androidx.recyclerview.widget.RecyclerView -import kr.pokeum.jsonviewer_xml.adapter.JsonViewerAdapter -import kr.pokeum.jsonviewer_xml.databinding.LayoutJsonViewerBinding +import co.pokeum.jsonviewer.xml.adapter.JsonViewerAdapter +import co.pokeum.jsonviewer.xml.databinding.LayoutJsonViewerBinding class JsonViewer @JvmOverloads constructor( context: Context, diff --git a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/adapter/BaseJsonViewerAdapter.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/adapter/BaseJsonViewerAdapter.kt similarity index 93% rename from jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/adapter/BaseJsonViewerAdapter.kt rename to jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/adapter/BaseJsonViewerAdapter.kt index 8bb4c1b..ea9cd32 100644 --- a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/adapter/BaseJsonViewerAdapter.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/adapter/BaseJsonViewerAdapter.kt @@ -1,7 +1,7 @@ -package kr.pokeum.jsonviewer_xml.adapter +package co.pokeum.jsonviewer.xml.adapter import androidx.recyclerview.widget.RecyclerView -import kr.pokeum.jsonviewer_xml.util.JsonViewerColor +import co.pokeum.jsonviewer.xml.util.JsonViewerColor abstract class BaseJsonViewerAdapter : RecyclerView.Adapter() { diff --git a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/adapter/JsonViewerAdapter.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/adapter/JsonViewerAdapter.kt similarity index 83% rename from jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/adapter/JsonViewerAdapter.kt rename to jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/adapter/JsonViewerAdapter.kt index c75f6c8..7c790bc 100644 --- a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/adapter/JsonViewerAdapter.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/adapter/JsonViewerAdapter.kt @@ -1,19 +1,19 @@ -package kr.pokeum.jsonviewer_xml.adapter +package co.pokeum.jsonviewer.xml.adapter import android.annotation.SuppressLint import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import kr.pokeum.jsonviewer_xml.databinding.* -import kr.pokeum.jsonviewer_xml.model.* -import kr.pokeum.jsonviewer_xml.model.JsonElement.Companion.JSON_ARRAY -import kr.pokeum.jsonviewer_xml.model.JsonElement.Companion.JSON_NULL -import kr.pokeum.jsonviewer_xml.model.JsonElement.Companion.JSON_OBJECT -import kr.pokeum.jsonviewer_xml.model.JsonElement.Companion.JSON_PRIMITIVE -import kr.pokeum.jsonviewer_xml.viewholder.JsonArrayViewHolder -import kr.pokeum.jsonviewer_xml.viewholder.JsonNullViewHolder -import kr.pokeum.jsonviewer_xml.viewholder.JsonObjectViewHolder -import kr.pokeum.jsonviewer_xml.viewholder.JsonPrimitiveViewHolder +import co.pokeum.jsonviewer.xml.databinding.* +import co.pokeum.jsonviewer.xml.model.* +import co.pokeum.jsonviewer.xml.model.JsonElement.Companion.JSON_ARRAY +import co.pokeum.jsonviewer.xml.model.JsonElement.Companion.JSON_NULL +import co.pokeum.jsonviewer.xml.model.JsonElement.Companion.JSON_OBJECT +import co.pokeum.jsonviewer.xml.model.JsonElement.Companion.JSON_PRIMITIVE +import co.pokeum.jsonviewer.xml.viewholder.JsonArrayViewHolder +import co.pokeum.jsonviewer.xml.viewholder.JsonNullViewHolder +import co.pokeum.jsonviewer.xml.viewholder.JsonObjectViewHolder +import co.pokeum.jsonviewer.xml.viewholder.JsonPrimitiveViewHolder @SuppressLint("NotifyDataSetChanged") class JsonViewerAdapter( diff --git a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/model/JsonArray.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonArray.kt similarity index 97% rename from jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/model/JsonArray.kt rename to jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonArray.kt index 1895ef4..91835e2 100644 --- a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/model/JsonArray.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonArray.kt @@ -1,4 +1,4 @@ -package kr.pokeum.jsonviewer_xml.model +package co.pokeum.jsonviewer.xml.model import android.os.Parcel import java.lang.StringBuilder diff --git a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/model/JsonElement.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonElement.kt similarity index 96% rename from jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/model/JsonElement.kt rename to jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonElement.kt index 66c6204..f26b139 100644 --- a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/model/JsonElement.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonElement.kt @@ -1,4 +1,4 @@ -package kr.pokeum.jsonviewer_xml.model +package co.pokeum.jsonviewer.xml.model import android.os.Parcel import android.os.Parcelable diff --git a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/model/JsonNull.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonNull.kt similarity index 92% rename from jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/model/JsonNull.kt rename to jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonNull.kt index d478441..70b12ec 100644 --- a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/model/JsonNull.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonNull.kt @@ -1,4 +1,4 @@ -package kr.pokeum.jsonviewer_xml.model +package co.pokeum.jsonviewer.xml.model import android.os.Parcel diff --git a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/model/JsonObject.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonObject.kt similarity index 97% rename from jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/model/JsonObject.kt rename to jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonObject.kt index 1630b0c..607e1a5 100644 --- a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/model/JsonObject.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonObject.kt @@ -1,4 +1,4 @@ -package kr.pokeum.jsonviewer_xml.model +package co.pokeum.jsonviewer.xml.model import android.os.Parcel import java.lang.StringBuilder diff --git a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/model/JsonPrimitive.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonPrimitive.kt similarity index 97% rename from jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/model/JsonPrimitive.kt rename to jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonPrimitive.kt index 16f7d19..3b2d57a 100644 --- a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/model/JsonPrimitive.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonPrimitive.kt @@ -1,4 +1,4 @@ -package kr.pokeum.jsonviewer_xml.model +package co.pokeum.jsonviewer.xml.model import android.os.Parcel diff --git a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/util/SpansUtils.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/util/SpansUtils.kt similarity index 91% rename from jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/util/SpansUtils.kt rename to jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/util/SpansUtils.kt index 7a88665..6315665 100644 --- a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/util/SpansUtils.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/util/SpansUtils.kt @@ -1,4 +1,4 @@ -package kr.pokeum.jsonviewer_xml.util +package co.pokeum.jsonviewer.xml.util import android.os.Build import android.text.Html @@ -6,7 +6,7 @@ import android.text.Html.FROM_HTML_MODE_LEGACY import android.text.Spanned import android.view.View import androidx.annotation.ColorInt -import kr.pokeum.jsonviewer_xml.adapter.BaseJsonViewerAdapter +import co.pokeum.jsonviewer.xml.adapter.BaseJsonViewerAdapter internal fun fromHtml(htmlText: String): Spanned { return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { diff --git a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/util/StyleUtils.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/util/StyleUtils.kt similarity index 93% rename from jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/util/StyleUtils.kt rename to jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/util/StyleUtils.kt index 88d088c..2900d9b 100644 --- a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/util/StyleUtils.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/util/StyleUtils.kt @@ -1,4 +1,4 @@ -package kr.pokeum.jsonviewer_xml.util +package co.pokeum.jsonviewer.xml.util import android.content.res.Configuration import android.view.View diff --git a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/viewholder/JsonArrayViewHolder.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonArrayViewHolder.kt similarity index 86% rename from jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/viewholder/JsonArrayViewHolder.kt rename to jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonArrayViewHolder.kt index 0b4101a..4931bae 100644 --- a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/viewholder/JsonArrayViewHolder.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonArrayViewHolder.kt @@ -1,12 +1,12 @@ -package kr.pokeum.jsonviewer_xml.viewholder +package co.pokeum.jsonviewer.xml.viewholder import android.annotation.SuppressLint import android.view.View import androidx.recyclerview.widget.RecyclerView -import kr.pokeum.jsonviewer_xml.adapter.BaseJsonViewerAdapter -import kr.pokeum.jsonviewer_xml.adapter.JsonViewerAdapter -import kr.pokeum.jsonviewer_xml.databinding.ItemJsonArrayBinding -import kr.pokeum.jsonviewer_xml.model.JsonArray +import co.pokeum.jsonviewer.xml.adapter.BaseJsonViewerAdapter +import co.pokeum.jsonviewer.xml.adapter.JsonViewerAdapter +import co.pokeum.jsonviewer.xml.databinding.ItemJsonArrayBinding +import co.pokeum.jsonviewer.xml.model.JsonArray internal class JsonArrayViewHolder( containerView: View, diff --git a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/viewholder/JsonNullViewHolder.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonNullViewHolder.kt similarity index 72% rename from jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/viewholder/JsonNullViewHolder.kt rename to jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonNullViewHolder.kt index 8372d3b..525f6f8 100644 --- a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/viewholder/JsonNullViewHolder.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonNullViewHolder.kt @@ -1,12 +1,12 @@ -package kr.pokeum.jsonviewer_xml.viewholder +package co.pokeum.jsonviewer.xml.viewholder import android.view.View import androidx.recyclerview.widget.RecyclerView -import kr.pokeum.jsonviewer_xml.adapter.BaseJsonViewerAdapter -import kr.pokeum.jsonviewer_xml.databinding.ItemJsonNullBinding -import kr.pokeum.jsonviewer_xml.model.JsonNull -import kr.pokeum.jsonviewer_xml.util.fromHtml -import kr.pokeum.jsonviewer_xml.util.keyValueHtmlGenerator +import co.pokeum.jsonviewer.xml.adapter.BaseJsonViewerAdapter +import co.pokeum.jsonviewer.xml.databinding.ItemJsonNullBinding +import co.pokeum.jsonviewer.xml.model.JsonNull +import co.pokeum.jsonviewer.xml.util.fromHtml +import co.pokeum.jsonviewer.xml.util.keyValueHtmlGenerator internal class JsonNullViewHolder( containerView: View diff --git a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/viewholder/JsonObjectViewHolder.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonObjectViewHolder.kt similarity index 87% rename from jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/viewholder/JsonObjectViewHolder.kt rename to jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonObjectViewHolder.kt index 312d173..de76d54 100644 --- a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/viewholder/JsonObjectViewHolder.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonObjectViewHolder.kt @@ -1,14 +1,14 @@ -package kr.pokeum.jsonviewer_xml.viewholder +package co.pokeum.jsonviewer.xml.viewholder import android.annotation.SuppressLint import android.view.View import android.view.View.GONE import android.view.View.VISIBLE import androidx.recyclerview.widget.RecyclerView -import kr.pokeum.jsonviewer_xml.adapter.BaseJsonViewerAdapter -import kr.pokeum.jsonviewer_xml.adapter.JsonViewerAdapter -import kr.pokeum.jsonviewer_xml.databinding.ItemJsonObjectBinding -import kr.pokeum.jsonviewer_xml.model.JsonObject +import co.pokeum.jsonviewer.xml.adapter.BaseJsonViewerAdapter +import co.pokeum.jsonviewer.xml.adapter.JsonViewerAdapter +import co.pokeum.jsonviewer.xml.databinding.ItemJsonObjectBinding +import co.pokeum.jsonviewer.xml.model.JsonObject internal class JsonObjectViewHolder( containerView: View, diff --git a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/viewholder/JsonPrimitiveViewHolder.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonPrimitiveViewHolder.kt similarity index 83% rename from jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/viewholder/JsonPrimitiveViewHolder.kt rename to jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonPrimitiveViewHolder.kt index af5c479..ca16350 100644 --- a/jsonviewer/src/main/java/kr/pokeum/jsonviewer_xml/viewholder/JsonPrimitiveViewHolder.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonPrimitiveViewHolder.kt @@ -1,12 +1,12 @@ -package kr.pokeum.jsonviewer_xml.viewholder +package co.pokeum.jsonviewer.xml.viewholder import android.view.View import androidx.recyclerview.widget.RecyclerView -import kr.pokeum.jsonviewer_xml.adapter.BaseJsonViewerAdapter -import kr.pokeum.jsonviewer_xml.databinding.ItemJsonPrimitiveBinding -import kr.pokeum.jsonviewer_xml.model.JsonPrimitive -import kr.pokeum.jsonviewer_xml.util.fromHtml -import kr.pokeum.jsonviewer_xml.util.keyValueHtmlGenerator +import co.pokeum.jsonviewer.xml.adapter.BaseJsonViewerAdapter +import co.pokeum.jsonviewer.xml.databinding.ItemJsonPrimitiveBinding +import co.pokeum.jsonviewer.xml.model.JsonPrimitive +import co.pokeum.jsonviewer.xml.util.fromHtml +import co.pokeum.jsonviewer.xml.util.keyValueHtmlGenerator internal class JsonPrimitiveViewHolder( containerView: View diff --git a/jsonviewer/src/test/java/kr/pokeum/jsonviewer_xml/ExampleUnitTest.kt b/jsonviewer/src/test/java/co/pokeum/jsonviewer/xml/ExampleUnitTest.kt similarity index 90% rename from jsonviewer/src/test/java/kr/pokeum/jsonviewer_xml/ExampleUnitTest.kt rename to jsonviewer/src/test/java/co/pokeum/jsonviewer/xml/ExampleUnitTest.kt index 0d6a8fd..381d9c6 100644 --- a/jsonviewer/src/test/java/kr/pokeum/jsonviewer_xml/ExampleUnitTest.kt +++ b/jsonviewer/src/test/java/co/pokeum/jsonviewer/xml/ExampleUnitTest.kt @@ -1,4 +1,4 @@ -package kr.pokeum.jsonviewer_xml +package co.pokeum.jsonviewer.xml import org.junit.Test diff --git a/jsonviewer/src/test/java/kr/pokeum/jsonviewer_xml/model/JsonArrayTest.kt b/jsonviewer/src/test/java/co/pokeum/jsonviewer/xml/model/JsonArrayTest.kt similarity index 88% rename from jsonviewer/src/test/java/kr/pokeum/jsonviewer_xml/model/JsonArrayTest.kt rename to jsonviewer/src/test/java/co/pokeum/jsonviewer/xml/model/JsonArrayTest.kt index f5c6824..c848f30 100644 --- a/jsonviewer/src/test/java/kr/pokeum/jsonviewer_xml/model/JsonArrayTest.kt +++ b/jsonviewer/src/test/java/co/pokeum/jsonviewer/xml/model/JsonArrayTest.kt @@ -1,6 +1,6 @@ -package kr.pokeum.jsonviewer_xml.model +package co.pokeum.jsonviewer.xml.model -import kr.pokeum.jsonviewer_xml.JsonParser +import co.pokeum.jsonviewer.xml.JsonParser import org.junit.Assert import org.junit.Test diff --git a/jsonviewer/src/test/java/kr/pokeum/jsonviewer_xml/model/JsonObjectTest.kt b/jsonviewer/src/test/java/co/pokeum/jsonviewer/xml/model/JsonObjectTest.kt similarity index 90% rename from jsonviewer/src/test/java/kr/pokeum/jsonviewer_xml/model/JsonObjectTest.kt rename to jsonviewer/src/test/java/co/pokeum/jsonviewer/xml/model/JsonObjectTest.kt index e9f298e..7b8bb50 100644 --- a/jsonviewer/src/test/java/kr/pokeum/jsonviewer_xml/model/JsonObjectTest.kt +++ b/jsonviewer/src/test/java/co/pokeum/jsonviewer/xml/model/JsonObjectTest.kt @@ -1,6 +1,6 @@ -package kr.pokeum.jsonviewer_xml.model +package co.pokeum.jsonviewer.xml.model -import kr.pokeum.jsonviewer_xml.JsonParser +import co.pokeum.jsonviewer.xml.JsonParser import org.json.JSONObject import org.junit.Assert.* import org.junit.Test From d6bf59389afa192505a9c7c6af82a052322abc04 Mon Sep 17 00:00:00 2001 From: pokeum Date: Thu, 6 Mar 2025 11:01:08 +0900 Subject: [PATCH 2/5] add. expandAll, collapseAll function --- .../xml/adapter/BaseJsonViewerAdapter.kt | 4 ++-- .../xml/adapter/JsonViewerAdapter.kt | 19 ++++++++++++++++ .../pokeum/jsonviewer/xml/model/Expandable.kt | 13 +++++++++++ .../pokeum/jsonviewer/xml/model/JsonArray.kt | 22 ++++++++++++++----- .../pokeum/jsonviewer/xml/model/JsonObject.kt | 22 ++++++++++++++----- .../xml/viewholder/JsonArrayViewHolder.kt | 6 ++--- .../xml/viewholder/JsonObjectViewHolder.kt | 6 ++--- 7 files changed, 72 insertions(+), 20 deletions(-) create mode 100644 jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/Expandable.kt diff --git a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/adapter/BaseJsonViewerAdapter.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/adapter/BaseJsonViewerAdapter.kt index ea9cd32..cfc465c 100644 --- a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/adapter/BaseJsonViewerAdapter.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/adapter/BaseJsonViewerAdapter.kt @@ -5,8 +5,8 @@ import co.pokeum.jsonviewer.xml.util.JsonViewerColor abstract class BaseJsonViewerAdapter : RecyclerView.Adapter() { -// abstract fun expandAll() -// abstract fun collapseAll() + abstract fun expandAll() + abstract fun collapseAll() fun setKeyColor(color: JsonViewerColor) { KEY_COLOR = color } fun setValueColor(color: JsonViewerColor) { VALUE_COLOR = color } diff --git a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/adapter/JsonViewerAdapter.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/adapter/JsonViewerAdapter.kt index 7c790bc..cbf67e5 100644 --- a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/adapter/JsonViewerAdapter.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/adapter/JsonViewerAdapter.kt @@ -15,6 +15,7 @@ import co.pokeum.jsonviewer.xml.viewholder.JsonNullViewHolder import co.pokeum.jsonviewer.xml.viewholder.JsonObjectViewHolder import co.pokeum.jsonviewer.xml.viewholder.JsonPrimitiveViewHolder +@Suppress("JoinDeclarationAndAssignment") @SuppressLint("NotifyDataSetChanged") class JsonViewerAdapter( jsonElement: JsonElement? = null, @@ -41,6 +42,24 @@ class JsonViewerAdapter( notifyDataSetChanged() } + override fun expandAll() { + for (element in elements) { + if (element is Expandable) { + element.expandAll() + } + } + notifyDataSetChanged() + } + + override fun collapseAll() { + for (element in elements) { + if (element is Expandable) { + element.collapseAll() + } + } + notifyDataSetChanged() + } + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { val inflater = LayoutInflater.from(parent.context) when (viewType) { diff --git a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/Expandable.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/Expandable.kt new file mode 100644 index 0000000..3ed56a8 --- /dev/null +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/Expandable.kt @@ -0,0 +1,13 @@ +package co.pokeum.jsonviewer.xml.model + +interface Expandable { + + var expanded: Boolean + + fun toggleExpanded() { + expanded = !expanded + } + + fun expandAll() + fun collapseAll() +} \ No newline at end of file diff --git a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonArray.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonArray.kt index 91835e2..84715db 100644 --- a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonArray.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonArray.kt @@ -6,16 +6,26 @@ import java.lang.StringBuilder class JsonArray( key: String, val elements: MutableList -) : JsonElement(key) { +) : JsonElement(key), Expandable { - private var expanded = false + override var expanded = false - fun isExpanded(): Boolean { - return expanded + override fun expandAll() { + expanded = true + for (element in elements) { + if (element is Expandable) { + element.expandAll() + } + } } - internal fun setExpanded(value: Boolean) { - expanded = value + override fun collapseAll() { + expanded = false + for (element in elements) { + if (element is Expandable) { + element.collapseAll() + } + } } constructor(inParcel: Parcel) : this( diff --git a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonObject.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonObject.kt index 607e1a5..013696a 100644 --- a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonObject.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonObject.kt @@ -6,16 +6,26 @@ import java.lang.StringBuilder class JsonObject( key: String, val elements: MutableList -) : JsonElement(key) { +) : JsonElement(key), Expandable { - private var expanded = false + override var expanded: Boolean = false - fun isExpanded(): Boolean { - return expanded + override fun expandAll() { + expanded = true + for (element in elements) { + if (element is Expandable) { + element.expandAll() + } + } } - internal fun setExpanded(value: Boolean) { - expanded = value + override fun collapseAll() { + expanded = false + for (element in elements) { + if (element is Expandable) { + element.collapseAll() + } + } } constructor(inParcel: Parcel) : this( diff --git a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonArrayViewHolder.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonArrayViewHolder.kt index 4931bae..45bd0fc 100644 --- a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonArrayViewHolder.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonArrayViewHolder.kt @@ -20,8 +20,8 @@ internal class JsonArrayViewHolder( init { binding.headerLayout.setOnClickListener { target?.let { target -> - target.setExpanded(!target.isExpanded()) - expandableUI(target.isExpanded()) + target.toggleExpanded() + expandableUI(target.expanded) } } childAdapter = JsonViewerAdapter() @@ -32,7 +32,7 @@ internal class JsonArrayViewHolder( @SuppressLint("SetTextI18n") fun bind(jsonArray: JsonArray) { target = jsonArray - expandableUI(jsonArray.isExpanded()) + expandableUI(jsonArray.expanded) binding.keyLabel.text = "\"${jsonArray.key}\"" childAdapter.setElements(jsonArray.elements) diff --git a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonObjectViewHolder.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonObjectViewHolder.kt index de76d54..9d82d74 100644 --- a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonObjectViewHolder.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/viewholder/JsonObjectViewHolder.kt @@ -22,8 +22,8 @@ internal class JsonObjectViewHolder( init { binding.headerLayout.setOnClickListener { target?.let { target -> - target.setExpanded(!target.isExpanded()) - expandableUI(target.isExpanded()) + target.toggleExpanded() + expandableUI(target.expanded) } } childAdapter = JsonViewerAdapter() @@ -34,7 +34,7 @@ internal class JsonObjectViewHolder( @SuppressLint("SetTextI18n") fun bind(jsonObject: JsonObject) { target = jsonObject - expandableUI(jsonObject.isExpanded()) + expandableUI(jsonObject.expanded) binding.keyLabel.text = "\"${jsonObject.key}\"" childAdapter.setElements(jsonObject.elements) From e6bb08d7a50443b4e832e21ebfc39ea86d54c8fe Mon Sep 17 00:00:00 2001 From: pokeum Date: Thu, 6 Mar 2025 13:44:11 +0900 Subject: [PATCH 3/5] fix code --- README.md | 154 +++++++++--------- .../activity/JsonViewerActivity.kt | 13 +- app/src/main/res/drawable/ic_share_24.xml | 5 - .../drawable/ic_unfold_less_white_24dp.xml | 9 + .../drawable/ic_unfold_more_white_24dp.xml | 9 + .../main/res/layout/activity_json_viewer.xml | 16 +- .../pokeum/jsonviewer/xml/JsonRecyclerView.kt | 8 + .../pokeum/jsonviewer/xml/model/JsonArray.kt | 12 +- .../pokeum/jsonviewer/xml/model/JsonObject.kt | 12 +- 9 files changed, 129 insertions(+), 109 deletions(-) delete mode 100644 app/src/main/res/drawable/ic_share_24.xml create mode 100644 app/src/main/res/drawable/ic_unfold_less_white_24dp.xml create mode 100644 app/src/main/res/drawable/ic_unfold_more_white_24dp.xml diff --git a/README.md b/README.md index 49f2d5f..307f330 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ https://github.com/pokeum/jsonviewer-xml/assets/102505472/e2f260f0-cc28-4607-9ec --- -**Easiest way to format Json String** +### Easiest way to format Json String ```xml ``` -## Table of Contents -- [Installation](#installation) -- [Usage](#usage) - - [Basic](#basic) - - [Advance](#advance) -- [Custom Styles](#styles) - - -## Installation +## Installation Add it in your root `build.gradle` at the end of repositories: @@ -60,100 +52,102 @@ Add the dependency implementation 'com.github.pokeum:jsonviewer-xml:0.0.2' ``` -## Usage +## Usage -- ## Basic +### JsonParser.parse() - ### JsonParser.parse() - - Convert `String` into a `JsonElement` object +Convert `String` into a `JsonElement` object - **Example - Parsing JSON** - ```kotlin - val jsonString = "{ \"abc\": \"def\",\"xyz\": 123 }" +**Example - Parsing JSON** + +```kotlin +val jsonString = "{ \"abc\": \"def\",\"xyz\": 123 }" - val jsonParser = JsonParser.Builder().build() - val jsonElement: JsonElement? = try { - jsonParser.parse(jsonString) - } - // Raise a JSONException if it is not a JSONObject or JSONArray. - catch (e: JSONException) { null } - ``` +val jsonParser = JsonParser.Builder().build() +val jsonElement: JsonElement? = try { + jsonParser.parse(jsonString) +} +// Raise a JSONException if it is not a JSONObject or JSONArray. +catch (e: JSONException) { null } +``` - ### Display JSON +### Use JsonRecyclerView to display JSON - #### [Method 1] Use JsonRecyclerView +Add `JsonRecyclerView` in XML layout file: - Add `JsonRecyclerView` in XML layout file: - ```xml - - ``` +```xml + +``` - Change `JsonRecyclerView` text from the code: - ```kotlin - findViewById(R.id.jsonViewer).setText("{PUT_YOUR_JSON_STRING}") - ``` +Change `JsonRecyclerView` text from the code: - #### [Method 2] Use RecyclerView +```kotlin +findViewById(R.id.jsonViewer).setText("{PUT_YOUR_JSON_STRING}") +``` - Add `RecyclerView` in XML layout file: - ```xml - - ``` +### Use RecyclerView to display JSON + +Add `RecyclerView` in XML layout file: + +```xml + +``` - Set Adapter in `RecyclerView`: - ```kotlin - val recyclerView = findViewById(R.id.jsonViewer) - recyclerView.adapter = JsonViewerAdapter(/* JsonElement */) - ``` +Set Adapter in `RecyclerView`: -- ## Advance +```kotlin +val recyclerView = findViewById(R.id.jsonViewer) +recyclerView.adapter = JsonViewerAdapter(/* JsonElement */) +``` - ### JsonParser - Sort JSON +## Advance - **Example - Alphabetically** - ```kotlin - JsonParser.Builder() - .setComparator(compareBy { it.key }) - .build() - ``` +### JsonParser - Sort JSON + +**Example - Alphabetically** + +```kotlin +JsonParser.Builder() + .setComparator(compareBy { it.key }) + .build() +``` - ### JsonElement - Save and Restore +### JsonElement - Save and Restore - Save and Restore Data on Configuration Changed in Android using Bundle +Save and Restore Data on Configuration Changed in Android using Bundle - ```kotlin - class YourActivity : AppCompatActivity() { +```kotlin +class YourActivity : AppCompatActivity() { - private var jsonElement: JsonElement? = null + private var jsonElement: JsonElement? = null - override fun onCreate(savedInstanceState: Bundle?) { - // ... + override fun onCreate(savedInstanceState: Bundle?) { + // ... - if (savedInstanceState != null) { - jsonElement = savedInstanceState.getParcelable("JSON_ELEMENT_KEY") /* Restore */ - } + if (savedInstanceState != null) { + jsonElement = savedInstanceState.getParcelable("JSON_ELEMENT_KEY") /* Restore */ } + } - override fun onSaveInstanceState(outState: Bundle) { - super.onSaveInstanceState(outState) - outState.putParcelable("JSON_ELEMENT_KEY", jsonElement) /* Save */ - } + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + outState.putParcelable("JSON_ELEMENT_KEY", jsonElement) /* Save */ } - ``` +} +``` -## Custom Styles +## Custom Styles ### Color diff --git a/app/src/main/java/co/pokeum/app/presentation/activity/JsonViewerActivity.kt b/app/src/main/java/co/pokeum/app/presentation/activity/JsonViewerActivity.kt index 538c714..fc46086 100644 --- a/app/src/main/java/co/pokeum/app/presentation/activity/JsonViewerActivity.kt +++ b/app/src/main/java/co/pokeum/app/presentation/activity/JsonViewerActivity.kt @@ -31,6 +31,7 @@ class JsonViewerActivity : AppCompatActivity() { jsonElement = savedInstanceState.getParcelable(KEY_JSON_ELEMENT) } initRecyclerView() + initFloatingActionButtons() } override fun onSaveInstanceState(outState: Bundle) { @@ -39,13 +40,23 @@ class JsonViewerActivity : AppCompatActivity() { } private fun initRecyclerView() { - jsonElement?.let { val adapter = JsonViewerAdapter(it) binding.jsonRecyclerView.adapter = adapter } } + private fun initFloatingActionButtons() { + val jsonViewerAdapter = binding.jsonRecyclerView.adapter as JsonViewerAdapter + + binding.expandAllButton.setOnClickListener { + jsonViewerAdapter.expandAll() + } + binding.collapseAllButton.setOnClickListener { + jsonViewerAdapter.collapseAll() + } + } + companion object { private const val KEY_JSON_ELEMENT = "json_element" diff --git a/app/src/main/res/drawable/ic_share_24.xml b/app/src/main/res/drawable/ic_share_24.xml deleted file mode 100644 index b2772d8..0000000 --- a/app/src/main/res/drawable/ic_share_24.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_unfold_less_white_24dp.xml b/app/src/main/res/drawable/ic_unfold_less_white_24dp.xml new file mode 100644 index 0000000..f678c23 --- /dev/null +++ b/app/src/main/res/drawable/ic_unfold_less_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_unfold_more_white_24dp.xml b/app/src/main/res/drawable/ic_unfold_more_white_24dp.xml new file mode 100644 index 0000000..f9ae846 --- /dev/null +++ b/app/src/main/res/drawable/ic_unfold_more_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_json_viewer.xml b/app/src/main/res/layout/activity_json_viewer.xml index a7f4112..5ba455f 100644 --- a/app/src/main/res/layout/activity_json_viewer.xml +++ b/app/src/main/res/layout/activity_json_viewer.xml @@ -19,13 +19,23 @@ tools:listitem="@layout/item_json_object" /> + app:srcCompat="@drawable/ic_unfold_less_white_24dp" + tools:ignore="ContentDescription,SpeakableTextPresentCheck" /> + + \ No newline at end of file diff --git a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/JsonRecyclerView.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/JsonRecyclerView.kt index f1bec50..57ef99d 100644 --- a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/JsonRecyclerView.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/JsonRecyclerView.kt @@ -66,6 +66,14 @@ constructor( } } + fun expandAll() { + (adapter as JsonViewerAdapter).expandAll() + } + + fun collapseAll() { + (adapter as JsonViewerAdapter).collapseAll() + } + companion object { private const val DEFAULT_TEXT = "{}" } diff --git a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonArray.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonArray.kt index 84715db..88a81f2 100644 --- a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonArray.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonArray.kt @@ -12,20 +12,12 @@ class JsonArray( override fun expandAll() { expanded = true - for (element in elements) { - if (element is Expandable) { - element.expandAll() - } - } + elements.filterIsInstance().forEach { it.expandAll() } } override fun collapseAll() { expanded = false - for (element in elements) { - if (element is Expandable) { - element.collapseAll() - } - } + elements.filterIsInstance().forEach { it.collapseAll() } } constructor(inParcel: Parcel) : this( diff --git a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonObject.kt b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonObject.kt index 013696a..da0fa59 100644 --- a/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonObject.kt +++ b/jsonviewer/src/main/java/co/pokeum/jsonviewer/xml/model/JsonObject.kt @@ -12,20 +12,12 @@ class JsonObject( override fun expandAll() { expanded = true - for (element in elements) { - if (element is Expandable) { - element.expandAll() - } - } + elements.filterIsInstance().forEach { it.expandAll() } } override fun collapseAll() { expanded = false - for (element in elements) { - if (element is Expandable) { - element.collapseAll() - } - } + elements.filterIsInstance().forEach { it.collapseAll() } } constructor(inParcel: Parcel) : this( From 416398fb41622577ee2ee49f8f4cfca008b27b73 Mon Sep 17 00:00:00 2001 From: Pokeum Cho <102505472+pokeum@users.noreply.github.com> Date: Thu, 6 Mar 2025 13:56:02 +0900 Subject: [PATCH 4/5] Update README.md --- README.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 307f330..34a29e4 100644 --- a/README.md +++ b/README.md @@ -147,6 +147,26 @@ class YourActivity : AppCompatActivity() { } ``` +### Expand All & Collapse All + +#### Use JsonRecyclerView + +```kotlin +findViewById(R.id.jsonViewer).expandAll() +findViewById(R.id.jsonViewer).collapseAll() +``` + +#### Use RecyclerView + +```kotlin +val recyclerView = findViewById(R.id.jsonViewer) +recyclerView.adapter = JsonViewerAdapter(/* JsonElement */) + +val jsonViewerAdapter = recyclerView.adapter as JsonViewerAdapter +jsonViewerAdapter.expandAll() +jsonViewerAdapter.collapseAll() +``` + ## Custom Styles ### Color @@ -187,4 +207,4 @@ class YourActivity : AppCompatActivity() { setBracketColor(JsonViewerColor(/* ... */)) setDividerColor(JsonViewerColor(/* ... */)) } - ``` \ No newline at end of file + ``` From 7d927537140dc466dc5bd6c044bf3a091af60e71 Mon Sep 17 00:00:00 2001 From: pokeum Date: Thu, 6 Mar 2025 14:01:22 +0900 Subject: [PATCH 5/5] =?UTF-8?q?update=20version=20(v0.0.2=20=E2=86=92=20v1?= =?UTF-8?q?.0.0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- jsonviewer/build.gradle | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 34a29e4..e76e9c0 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/pokeumcho) -[![Generic badge](https://img.shields.io/badge/jitpack-v0.0.2-darkyellow?logo=jitpack&logoColor=white.svg)](https://jitpack.io/#pokeum/jsonviewer-xml/) +[![Generic badge](https://img.shields.io/badge/jitpack-v1.0.0-darkyellow?logo=jitpack&logoColor=white.svg)](https://jitpack.io/#pokeum/jsonviewer-xml/) --- @@ -49,7 +49,7 @@ allprojects { Add the dependency ```gradle -implementation 'com.github.pokeum:jsonviewer-xml:0.0.2' +implementation 'com.github.pokeum:jsonviewer-xml:1.0.0' ``` ## Usage diff --git a/jsonviewer/build.gradle b/jsonviewer/build.gradle index 99705fa..d04fef0 100644 --- a/jsonviewer/build.gradle +++ b/jsonviewer/build.gradle @@ -4,9 +4,9 @@ plugins { id 'maven-publish' } -def majorNumber = 0 +def majorNumber = 1 def minorNumber = 0 -def patchNumber = 2 +def patchNumber = 0 def VERSION_NAME = "$majorNumber.$minorNumber.$patchNumber" def VERSION_CODE = majorNumber * 100000 + minorNumber * 1000 + patchNumber * 10