...
This commit is contained in:
parent
3d65f30516
commit
405b8c8fed
@ -111,7 +111,9 @@ dependencies {
|
||||
implementation("com.github.delight-im:Android-AdvancedWebView:v3.2.1")
|
||||
implementation(project(":library"))
|
||||
implementation(project(":utils"))
|
||||
// implementation ("org.apache.tika:tika-parsers:1.12")
|
||||
// implementation("org.mozilla.geckoview:geckoview:139.0.20250523173407")
|
||||
// https://mvnrepository.com/artifact/org.mozilla.geckoview/geckoview
|
||||
implementation("org.mozilla.geckoview:geckoview:139.0.20250523173407")
|
||||
|
||||
|
||||
// implementation("org.opencv:opencv-android:4.11.0")
|
||||
|
||||
@ -78,12 +78,12 @@
|
||||
android:windowSoftInputMode="adjustResize"
|
||||
android:requestLegacyExternalStorage="true"
|
||||
>
|
||||
|
||||
<!-- android:excludeFromRecents="true"-->
|
||||
<activity
|
||||
android:name=".LauncherActivity"
|
||||
android:theme="@style/Theme.LunarLauncher.Starting"
|
||||
android:launchMode="singleInstance"
|
||||
android:excludeFromRecents="true"
|
||||
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|screenLayout|layoutDirection"
|
||||
android:windowSoftInputMode="adjustResize"
|
||||
android:exported="true">
|
||||
@ -93,9 +93,9 @@
|
||||
<data android:mimeType="*/*"/>
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.HOME" />
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
@ -76,7 +76,6 @@ import bums.lunatic.launcher.LauncherActivity.Companion.lActivity
|
||||
import bums.lunatic.launcher.apps.AppDrawer
|
||||
import bums.lunatic.launcher.common.CommonActivity
|
||||
import bums.lunatic.launcher.databinding.LauncherActivityBinding
|
||||
import bums.lunatic.launcher.feeds.Feeds
|
||||
import bums.lunatic.launcher.feeds.WidgetHost
|
||||
import bums.lunatic.launcher.helpers.BluetoothManager
|
||||
import bums.lunatic.launcher.helpers.Constants.Companion.KEY_APPLICATION_THEME
|
||||
@ -1038,9 +1037,9 @@ internal class LauncherActivity : CommonActivity() {
|
||||
// }
|
||||
// }
|
||||
|
||||
fun switchFeeds() {
|
||||
startActivity(Intent(this,Feeds::class.java))
|
||||
}
|
||||
// fun switchFeeds() {
|
||||
// startActivity(Intent(this,Feeds::class.java))
|
||||
// }
|
||||
|
||||
// inner class MyJavaScriptInterface(val webView: WebView) {
|
||||
// @JavascriptInterface
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
473
app/src/main/kotlin/bums/lunatic/launcher/home/GeckoWeb.kt
Normal file
473
app/src/main/kotlin/bums/lunatic/launcher/home/GeckoWeb.kt
Normal file
@ -0,0 +1,473 @@
|
||||
package bums.lunatic.launcher.home
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.os.Message
|
||||
import android.util.AttributeSet
|
||||
import android.util.Log
|
||||
import android.view.KeyEvent
|
||||
import android.view.KeyEvent.ACTION_UP
|
||||
import android.view.KeyEvent.KEYCODE_BUTTON_A
|
||||
import android.view.KeyEvent.KEYCODE_BUTTON_B
|
||||
import android.view.KeyEvent.KEYCODE_BUTTON_SELECT
|
||||
import android.view.KeyEvent.KEYCODE_BUTTON_START
|
||||
import android.view.KeyEvent.KEYCODE_BUTTON_X
|
||||
import android.view.KeyEvent.KEYCODE_BUTTON_Y
|
||||
import android.view.KeyEvent.KEYCODE_DPAD_DOWN
|
||||
import android.view.KeyEvent.KEYCODE_DPAD_UP
|
||||
import bums.lunatic.launcher.utils.Blog
|
||||
import com.google.gson.Gson
|
||||
import org.json.JSONObject
|
||||
import org.mozilla.gecko.util.ThreadUtils
|
||||
import org.mozilla.geckoview.ExperimentDelegate
|
||||
import org.mozilla.geckoview.GeckoResult
|
||||
import org.mozilla.geckoview.GeckoRuntime
|
||||
import org.mozilla.geckoview.GeckoRuntimeSettings
|
||||
import org.mozilla.geckoview.GeckoSession
|
||||
import org.mozilla.geckoview.GeckoView
|
||||
import org.mozilla.geckoview.MediaSession
|
||||
import org.mozilla.geckoview.WebExtension
|
||||
import org.mozilla.geckoview.WebExtension.MessageDelegate
|
||||
import org.mozilla.geckoview.WebExtension.PortDelegate
|
||||
import org.mozilla.geckoview.WebExtensionController.AddonManagerDelegate
|
||||
import org.mozilla.geckoview.WebRequestError
|
||||
|
||||
class GeckoWeb : GeckoView {
|
||||
constructor(context: Context?) : super(context) {
|
||||
initWithContext(context)
|
||||
}
|
||||
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) {
|
||||
initWithContext(context)
|
||||
}
|
||||
|
||||
fun loadUrl(url: String) {
|
||||
Blog.LOGE("url >>>> ${url}")
|
||||
if (url.split("//").size > 1) {
|
||||
url.replace("//","/").replace("https:/","https://").let {
|
||||
Blog.LOGE("url >> ${url} , it >>> ${it}")
|
||||
this.session?.loadUri(url)
|
||||
}
|
||||
} else {
|
||||
this.session?.loadUri(url)
|
||||
}
|
||||
|
||||
currentRetryCount = 0;
|
||||
}
|
||||
val handle = object : Handler(Looper.getMainLooper()) {
|
||||
override fun handleMessage(msg: Message) {
|
||||
if (msg.what == 0) {
|
||||
(msg.obj as? ReaderConfig)?.let {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var lastedUrl: String? = null
|
||||
var canGoBack: Boolean? = null
|
||||
var mPort: WebExtension.Port? = null
|
||||
|
||||
object WebExtensionInfo {
|
||||
val mPortNam = "browser"
|
||||
val extPath = "resource://android/assets/extensions/my_extension/"
|
||||
val extId = "messaging@booktoki468.com"
|
||||
}
|
||||
|
||||
var mExtension: WebExtension? = null
|
||||
var mSession: GeckoSession? = null
|
||||
val addonManagerDelegate = object : AddonManagerDelegate {
|
||||
override fun onReady(extension: WebExtension) {
|
||||
Blog.LOGE("onReady ${extension.id} from WebExtension")
|
||||
mExtension = extension
|
||||
}
|
||||
|
||||
override fun onEnabling(extension: WebExtension) {
|
||||
Blog.LOGE("onEnabling ${extension.id} from WebExtension")
|
||||
}
|
||||
|
||||
override fun onEnabled(extension: WebExtension) {
|
||||
Blog.LOGE("onEnabled ${extension.id} from WebExtension")
|
||||
mExtension = extension
|
||||
|
||||
}
|
||||
}
|
||||
private fun initWithContext(context: Context?) {
|
||||
context?.let { context ->
|
||||
initGeckoRuntime(context)
|
||||
mSession = GeckoSession()
|
||||
mSession?.contentDelegate = contentDelegate
|
||||
mSession?.progressDelegate = progressDelegate
|
||||
mSession?.navigationDelegate = navigationDelegate
|
||||
sRuntime?.apply {
|
||||
webExtensionController.setAddonManagerDelegate(addonManagerDelegate)
|
||||
webExtensionController.ensureBuiltIn(WebExtensionInfo.extPath, WebExtensionInfo.extId)
|
||||
.accept( // Register message delegate for background script
|
||||
{ extension: WebExtension? ->
|
||||
ThreadUtils.runOnUiThread(Runnable { mSession?.let{session-> extension?.let { session.webExtensionController.setMessageDelegate(it,messageDelegate,WebExtensionInfo.mPortNam) }} })
|
||||
},
|
||||
{ e: Throwable? -> Log.e("MessageDelegate", "Error registering WebExtension", e) })
|
||||
|
||||
mSession?.mediaDelegate = mediaDelegate
|
||||
mSession?.mediaSessionDelegate = mediaSessionDelegate
|
||||
mSession?.open(sRuntime!!)
|
||||
|
||||
}.let {
|
||||
this.setSession(mSession!!)
|
||||
this.loadUrl("https://booktoki468.com") // Or any other URL...
|
||||
}
|
||||
}
|
||||
}
|
||||
val mediaDelegate = object : GeckoSession.MediaDelegate {
|
||||
override fun onRecordingStatusChanged(
|
||||
session: GeckoSession,
|
||||
devices: Array<out GeckoSession.MediaDelegate.RecordingDevice?>
|
||||
) {
|
||||
super.onRecordingStatusChanged(session, devices)
|
||||
}
|
||||
}
|
||||
val mediaSessionDelegate = object : MediaSession.Delegate {
|
||||
override fun onActivated(
|
||||
session: GeckoSession,
|
||||
mediaSession: MediaSession
|
||||
) {
|
||||
Blog.LOGE("onActivated")
|
||||
super.onActivated(session, mediaSession)
|
||||
}
|
||||
|
||||
override fun onDeactivated(
|
||||
session: GeckoSession,
|
||||
mediaSession: MediaSession
|
||||
) {
|
||||
Blog.LOGE("onDeactivated")
|
||||
super.onDeactivated(session, mediaSession)
|
||||
}
|
||||
|
||||
override fun onMetadata(
|
||||
session: GeckoSession,
|
||||
mediaSession: MediaSession,
|
||||
meta: MediaSession.Metadata
|
||||
) {
|
||||
Blog.LOGE("onMetadata ${Gson().toJson(meta)}")
|
||||
super.onMetadata(session, mediaSession, meta)
|
||||
}
|
||||
|
||||
override fun onFeatures(
|
||||
session: GeckoSession,
|
||||
mediaSession: MediaSession,
|
||||
features: Long
|
||||
) {
|
||||
Blog.LOGE("onFeatures $features")
|
||||
super.onFeatures(session, mediaSession, features)
|
||||
}
|
||||
|
||||
override fun onPlay(
|
||||
session: GeckoSession,
|
||||
mediaSession: MediaSession
|
||||
) {
|
||||
Blog.LOGE("onPlay")
|
||||
super.onPlay(session, mediaSession)
|
||||
}
|
||||
|
||||
override fun onPause(
|
||||
session: GeckoSession,
|
||||
mediaSession: MediaSession
|
||||
) {
|
||||
Blog.LOGE("onPause")
|
||||
super.onPause(session, mediaSession)
|
||||
}
|
||||
|
||||
override fun onStop(
|
||||
session: GeckoSession,
|
||||
mediaSession: MediaSession
|
||||
) {
|
||||
Blog.LOGE("onStop")
|
||||
super.onStop(session, mediaSession)
|
||||
}
|
||||
|
||||
override fun onPositionState(
|
||||
session: GeckoSession,
|
||||
mediaSession: MediaSession,
|
||||
state: MediaSession.PositionState
|
||||
) {
|
||||
Blog.LOGE("onPositionState $state")
|
||||
super.onPositionState(session, mediaSession, state)
|
||||
}
|
||||
|
||||
override fun onFullscreen(
|
||||
session: GeckoSession,
|
||||
mediaSession: MediaSession,
|
||||
enabled: Boolean,
|
||||
meta: MediaSession.ElementMetadata?
|
||||
) {
|
||||
Blog.LOGE("onFullscreen $Boolean ${Gson().toJson(meta)}")
|
||||
super.onFullscreen(session, mediaSession, enabled, meta)
|
||||
}
|
||||
}
|
||||
private fun initGeckoRuntime(context : Context) {
|
||||
if (sRuntime == null) {
|
||||
try {
|
||||
val settings: GeckoRuntimeSettings =
|
||||
GeckoRuntimeSettings.Builder().extensionsProcessEnabled(true)
|
||||
.extensionsWebAPIEnabled(true)
|
||||
.experimentDelegate(experimentDelegate)
|
||||
.remoteDebuggingEnabled(true).build()
|
||||
|
||||
sRuntime = GeckoRuntime.create(context, settings)
|
||||
} catch (e: Exception) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val experimentDelegate = object : ExperimentDelegate {
|
||||
override fun onGetExperimentFeature(feature: String): GeckoResult<JSONObject?> {
|
||||
Blog.LOGE("onGetExperimentFeature $feature")
|
||||
return super.onGetExperimentFeature(feature)
|
||||
}
|
||||
|
||||
override fun onRecordExposureEvent(feature: String): GeckoResult<Void?> {
|
||||
Blog.LOGE("onRecordExposureEvent $feature")
|
||||
return super.onRecordExposureEvent(feature)
|
||||
}
|
||||
|
||||
override fun onRecordExperimentExposureEvent(
|
||||
feature: String,
|
||||
slug: String
|
||||
): GeckoResult<Void?> {
|
||||
Blog.LOGE("onRecordExperimentExposureEvent $feature , $slug")
|
||||
return super.onRecordExperimentExposureEvent(feature, slug)
|
||||
}
|
||||
|
||||
override fun onRecordMalformedConfigurationEvent(
|
||||
feature: String,
|
||||
part: String
|
||||
): GeckoResult<Void?> {
|
||||
Blog.LOGE("onRecordMalformedConfigurationEvent $feature , $part")
|
||||
return super.onRecordMalformedConfigurationEvent(feature, part)
|
||||
}
|
||||
}
|
||||
val contentDelegate = object : GeckoSession.ContentDelegate {
|
||||
override fun onTitleChange(
|
||||
session: GeckoSession,
|
||||
title: String?
|
||||
) {
|
||||
Blog.LOGE("onTitleChange $title")
|
||||
super.onTitleChange(session, title)
|
||||
}
|
||||
|
||||
override fun onCrash(session: GeckoSession) {
|
||||
Blog.LOGE("onCrash")
|
||||
super.onCrash(session)
|
||||
}
|
||||
|
||||
override fun onPaintStatusReset(session: GeckoSession) {
|
||||
Blog.LOGE("onPaintStatusReset")
|
||||
super.onPaintStatusReset(session)
|
||||
}
|
||||
|
||||
override fun onFirstContentfulPaint(session: GeckoSession) {
|
||||
Blog.LOGE("onFirstContentfulPaint")
|
||||
super.onFirstContentfulPaint(session)
|
||||
}
|
||||
}
|
||||
val progressDelegate = object : GeckoSession.ProgressDelegate {
|
||||
override fun onSecurityChange(
|
||||
session: GeckoSession,
|
||||
securityInfo: GeckoSession.ProgressDelegate.SecurityInformation
|
||||
) {
|
||||
Blog.LOGE("onSecurityChange $securityInfo from WebExtension")
|
||||
super.onSecurityChange(session, securityInfo)
|
||||
}
|
||||
|
||||
override fun onSessionStateChange(
|
||||
session: GeckoSession,
|
||||
sessionState: GeckoSession.SessionState
|
||||
) {
|
||||
Blog.LOGE("onSessionStateChange $sessionState from WebExtension")
|
||||
super.onSessionStateChange(session, sessionState)
|
||||
}
|
||||
|
||||
override fun onPageStart(session: GeckoSession, url: String) {
|
||||
super.onPageStart(session, url)
|
||||
}
|
||||
|
||||
override fun onPageStop(session: GeckoSession, success: Boolean) {
|
||||
Blog.LOGE("onPageStop $success from WebExtension")
|
||||
super.onPageStop(session, success)
|
||||
if (success && mPort != null) {
|
||||
if (mPort == null) {
|
||||
// No extension registered yet, let's ignore this message
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val navigationDelegate = object : GeckoSession.NavigationDelegate {
|
||||
override fun onLoadError(
|
||||
session: GeckoSession,
|
||||
uri: String?,
|
||||
error: WebRequestError
|
||||
): GeckoResult<String>? {
|
||||
error.printStackTrace()
|
||||
Blog.LOGE("onLoadError >>> ${uri} ::>> ${error.category} , ${error.code}")
|
||||
if (error.code == WebRequestError.ERROR_NET_RESET) {
|
||||
|
||||
}
|
||||
return super.onLoadError(session, uri, error)
|
||||
}
|
||||
|
||||
override fun onNewSession(
|
||||
session: GeckoSession,
|
||||
uri: String
|
||||
): GeckoResult<GeckoSession>? {
|
||||
Blog.LOGE("GeckoView", "onNewSession: $session from WebExtension")
|
||||
|
||||
|
||||
return super.onNewSession(session, uri)
|
||||
}
|
||||
|
||||
override fun onLocationChange(
|
||||
session: GeckoSession,
|
||||
url: String?,
|
||||
perms: MutableList<GeckoSession.PermissionDelegate.ContentPermission>,
|
||||
hasUserGesture: Boolean
|
||||
) {
|
||||
// url이 현재 로드된 주소입니다.
|
||||
Blog.LOGE("GeckoView", "현재 주소: $url")
|
||||
Blog.LOGE("GeckoView", "현재 session: $session")
|
||||
url?.let { url ->
|
||||
if (url.split("//").size > 1) {
|
||||
url.replace("//", "/").replace("https:/", "https://").let {
|
||||
Blog.LOGE("url >> ${url} , it >>> ${it}")
|
||||
lastedUrl = url
|
||||
}
|
||||
} else {
|
||||
lastedUrl = url
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onCanGoBack(session: GeckoSession, canGoBack: Boolean) {
|
||||
super.onCanGoBack(session, canGoBack)
|
||||
this@GeckoWeb.canGoBack = canGoBack
|
||||
if (canGoBack) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
val portDelegate: PortDelegate =
|
||||
object : PortDelegate {
|
||||
override fun onPortMessage(
|
||||
message: Any, port: WebExtension.Port
|
||||
) {
|
||||
Blog.LOGE("PortDelegate", "Received message from extension: $message")
|
||||
|
||||
}
|
||||
|
||||
|
||||
override fun onDisconnect(port: WebExtension.Port) {
|
||||
// This port is not usable anymore.
|
||||
if (port === mPort) {
|
||||
mPort = null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val messageDelegate: MessageDelegate =
|
||||
object : MessageDelegate {
|
||||
override fun onConnect(port: WebExtension.Port) {
|
||||
mPort = port
|
||||
mPort!!.setDelegate(portDelegate)
|
||||
}
|
||||
|
||||
override fun onMessage(
|
||||
nativeApp: String,
|
||||
message: Any,
|
||||
sender: WebExtension.MessageSender
|
||||
): GeckoResult<in Any>? {
|
||||
Blog.LOGE(
|
||||
"messageDelegate",
|
||||
"onMessage from WebExtension: ${nativeApp} , $message , ${sender.webExtension.id}"
|
||||
)
|
||||
return super.onMessage(nativeApp, message, sender)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
fun onStart() {
|
||||
|
||||
}
|
||||
|
||||
fun onResume() {
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
fun onDestroy() {
|
||||
sRuntime = null
|
||||
}
|
||||
|
||||
|
||||
|
||||
override fun dispatchKeyEvent(ev: KeyEvent): Boolean {
|
||||
Blog.LOGE("dispatch ev?.device?.name >>> ${ev?.device?.name}")
|
||||
if (ev?.device?.name?.contains("SM-031N Mouse") == true) {
|
||||
when (ev.action) {
|
||||
ACTION_UP -> {
|
||||
Blog.LOGE("dispatch dispatchKeyEvent>>> ${ev}")
|
||||
when (ev.keyCode) {
|
||||
KEYCODE_BUTTON_Y -> {
|
||||
}
|
||||
|
||||
KEYCODE_BUTTON_X -> {
|
||||
|
||||
}
|
||||
|
||||
KEYCODE_BUTTON_A -> {
|
||||
}
|
||||
|
||||
KEYCODE_BUTTON_B -> {
|
||||
|
||||
}
|
||||
|
||||
KEYCODE_DPAD_DOWN -> {
|
||||
|
||||
}
|
||||
|
||||
KEYCODE_DPAD_UP -> {
|
||||
|
||||
}
|
||||
|
||||
KEYCODE_BUTTON_START -> {
|
||||
}
|
||||
|
||||
KEYCODE_BUTTON_SELECT -> {
|
||||
|
||||
}
|
||||
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
|
||||
else -> {}
|
||||
}
|
||||
return true
|
||||
}
|
||||
return super.dispatchKeyEvent(ev)
|
||||
}
|
||||
|
||||
|
||||
companion object {
|
||||
private const val TAG = "DualScreenStatus"
|
||||
var sRuntime: GeckoRuntime? = null
|
||||
var currentRetryCount = 0
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
1328
app/src/main/kotlin/bums/lunatic/launcher/home/LauncherHome_old.kt
Normal file
1328
app/src/main/kotlin/bums/lunatic/launcher/home/LauncherHome_old.kt
Normal file
File diff suppressed because it is too large
Load Diff
@ -121,7 +121,7 @@ class RssViewerActivity : AwesomeWebViewActivity(), View.OnGenericMotionListene
|
||||
} else {
|
||||
loadWithIntent = false
|
||||
}
|
||||
webView?.setOnTouchListener(this)
|
||||
webView?.setOnTouchListener(this)
|
||||
|
||||
}
|
||||
private var startX = 0f
|
||||
|
||||
@ -45,7 +45,7 @@ class OpenWeatherGetter(context: Context, workerParams: WorkerParameters) : Base
|
||||
}
|
||||
|
||||
fun getWeather(latitude: Double, longitude: Double) {
|
||||
Blog.LOGE("into getWeather")
|
||||
Blog.LOGE("into getWeather ${PrefString.weatherApiKey.get()}")
|
||||
///saved weatherForcast
|
||||
Retrofit.Builder()
|
||||
.baseUrl(URI_WEATHERAPI)
|
||||
|
||||
@ -7,12 +7,6 @@
|
||||
android:id="@+id/mainFragmentsContainer"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<WebView
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:id="@+id/searcher_01"
|
||||
android:layout_width="match_parent"
|
||||
android:alpha="0"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/home"
|
||||
@ -20,19 +14,6 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
<!-- <FrameLayout-->
|
||||
<!-- android:id="@+id/feeds"-->
|
||||
<!-- android:visibility="gone"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="match_parent" >-->
|
||||
<!-- </FrameLayout>-->
|
||||
|
||||
<FrameLayout
|
||||
android:visibility="gone"
|
||||
android:id="@+id/app_drawer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" >
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
@ -7,334 +7,23 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/batteryProgress"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:indeterminate="false"
|
||||
android:visibility="gone"
|
||||
style="@style/normal"
|
||||
android:text="빠떼뤼 ~> 0%"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<bums.lunatic.launcher.view.DateTimeView
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:id="@+id/infoList"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:background="@drawable/base_bg"
|
||||
android:text="this is init sentence"
|
||||
android:id="@+id/time"
|
||||
android:visibility="gone"
|
||||
android:gravity="center"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/batteryProgress"
|
||||
tools:ignore="MissingConstraints" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/next_play"
|
||||
android:src="@drawable/play_song"
|
||||
app:layout_constraintRight_toRightOf="@id/time"
|
||||
app:layout_constraintTop_toTopOf="@id/time"
|
||||
app:layout_constraintBottom_toBottomOf="@id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:layout_height="40dp"/>
|
||||
|
||||
<bums.lunatic.launcher.view.CircleImageView
|
||||
app:layout_constraintLeft_toLeftOf="@id/time"
|
||||
app:layout_constraintTop_toTopOf="@id/time"
|
||||
app:layout_constraintBottom_toBottomOf="@id/time"
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitCenter"
|
||||
android:background="@null"
|
||||
android:layout_width="wrap_content"
|
||||
app:civ_border_width="1dp"
|
||||
app:civ_border_color="#000000"
|
||||
app:civ_label="택시"
|
||||
android:visibility="gone"
|
||||
android:layout_height="0dp"
|
||||
android:src="@drawable/kakaot"
|
||||
android:id="@+id/alchol_katalkT"/>
|
||||
|
||||
<!-- <com.google.android.material.textview.MaterialTextView-->
|
||||
<!-- android:id="@+id/weather"-->
|
||||
<!-- app:layout_goneMarginBottom="0dp"-->
|
||||
<!-- android:layout_width="wrap_content"-->
|
||||
<!-- android:layout_height="wrap_content"-->
|
||||
<!-- android:gravity="center"-->
|
||||
<!-- android:maxLines="1"-->
|
||||
<!-- android:textIsSelectable="false"-->
|
||||
<!-- app:layout_constraintLeft_toLeftOf="parent"-->
|
||||
<!-- app:layout_constraintRight_toRightOf="parent"-->
|
||||
<!-- app:layout_constraintTop_toBottomOf="@+id/time"-->
|
||||
<!-- />-->
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/current_music"
|
||||
app:layout_constraintTop_toBottomOf="@id/time"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
android:background="@drawable/base_bg"
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
app:layout_goneMarginTop="0dp"
|
||||
app:layout_goneMarginBottom="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:overScrollMode="never"
|
||||
android:padding="@dimen/default_padding"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp">
|
||||
<bums.lunatic.launcher.view.CircleImageView
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:id="@+id/album_art"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="50dp"/>
|
||||
<TextView
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintLeft_toRightOf="@id/album_art"
|
||||
app:layout_constraintRight_toLeftOf="@id/next_btn"
|
||||
android:gravity="left"
|
||||
style="@style/small"
|
||||
android:lines="1"
|
||||
android:ellipsize="marquee"
|
||||
android:marqueeRepeatLimit="marquee_forever"
|
||||
android:singleLine="true"
|
||||
android:layout_width="0dp"
|
||||
android:id="@+id/artist"
|
||||
android:layout_height="wrap_content"/>
|
||||
<TextView
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
app:layout_constraintTop_toBottomOf="@id/artist"
|
||||
android:id="@+id/title"
|
||||
android:gravity="left"
|
||||
style="@style/small"
|
||||
android:lines="1"
|
||||
android:ellipsize="marquee"
|
||||
android:marqueeRepeatLimit="marquee_forever"
|
||||
android:singleLine="true"
|
||||
app:layout_constraintBottom_toBottomOf="@id/album_art"
|
||||
app:layout_constraintLeft_toRightOf="@id/album_art"
|
||||
app:layout_constraintRight_toLeftOf="@id/next_btn"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<ImageView
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:id="@+id/next_btn"
|
||||
android:src="@drawable/next_song"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="40dp"/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<include
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:id="@+id/weathers"
|
||||
layout="@layout/weather_book"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/current_music"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:id="@+id/summaryChoose"
|
||||
android:layout_width="0dp"
|
||||
android:gravity="center"
|
||||
android:scrollbars="none"
|
||||
android:visibility="visible"
|
||||
android:background="@drawable/base_bg"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:layout_height="40dp"
|
||||
app:layout_constraintTop_toBottomOf="@+id/weathers"
|
||||
>
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
style="@style/normal"
|
||||
android:id="@+id/missedCalls"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/tabs"
|
||||
android:text="통화 목록"
|
||||
android:background="@null"
|
||||
android:checked="true"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<TextView
|
||||
style="@style/normal"
|
||||
android:id="@+id/otherCheck"
|
||||
android:gravity="center"
|
||||
android:background="@null"
|
||||
android:text="글타래"
|
||||
android:textColor="@color/tabs"
|
||||
android:checked="false"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<TextView
|
||||
style="@style/normal"
|
||||
android:id="@+id/favApps"
|
||||
android:gravity="center"
|
||||
android:background="@null"
|
||||
android:text="앱스"
|
||||
android:textColor="@color/tabs"
|
||||
android:checked="false"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<TextView
|
||||
style="@style/normal"
|
||||
android:id="@+id/recentSms"
|
||||
android:gravity="center"
|
||||
android:background="@null"
|
||||
android:text="문자 내역"
|
||||
android:textColor="@color/tabs"
|
||||
android:checked="false"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<TextView
|
||||
style="@style/normal"
|
||||
android:id="@+id/notice"
|
||||
android:gravity="center"
|
||||
android:background="@null"
|
||||
android:text="알림"
|
||||
android:textColor="@color/tabs"
|
||||
android:checked="false"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
</LinearLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintTop_toBottomOf="@+id/summaryChoose"
|
||||
app:layout_constraintBottom_toTopOf="@id/functionLayer"
|
||||
>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:id="@+id/mainList"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:overScrollMode="never"
|
||||
android:padding="@dimen/default_padding"
|
||||
android:visibility="gone"
|
||||
android:background="@drawable/base_bg"
|
||||
android:scrollbars="none"
|
||||
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
|
||||
app:spanCount="2"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
/>
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
|
||||
app:spanCount="2"
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:id="@+id/smsList"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:overScrollMode="never"
|
||||
android:padding="@dimen/default_padding"
|
||||
android:scrollbars="none"
|
||||
android:visibility="gone"
|
||||
android:background="@drawable/base_bg"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
/>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:id="@+id/infoList"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:overScrollMode="never"
|
||||
android:padding="@dimen/default_padding"
|
||||
android:scrollbars="none"
|
||||
android:visibility="gone"
|
||||
android:background="@drawable/base_bg"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
/>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:id="@+id/appsList"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:overScrollMode="never"
|
||||
android:padding="@dimen/default_padding"
|
||||
app:spanCount="3"
|
||||
android:scrollbars="none"
|
||||
android:visibility="gone"
|
||||
android:background="@drawable/base_bg"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
/>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||
android:id="@+id/notiList"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:overScrollMode="never"
|
||||
android:padding="@dimen/default_padding"
|
||||
android:scrollbars="none"
|
||||
android:visibility="gone"
|
||||
android:background="@drawable/base_bg"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:id="@+id/functionLayer"
|
||||
android:layout_width="@dimen/zero"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginTop="@dimen/default_layout_margin"
|
||||
android:layout_marginBottom="@dimen/default_layout_margin"
|
||||
android:background="@drawable/base_bg"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent" >
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
340
app/src/main/res/layout/launcher_home_old.xml
Normal file
340
app/src/main/res/layout/launcher_home_old.xml
Normal file
@ -0,0 +1,340 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:background="@android:color/transparent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/batteryProgress"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:indeterminate="false"
|
||||
android:visibility="gone"
|
||||
style="@style/normal"
|
||||
android:text="빠떼뤼 ~> 0%"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<bums.lunatic.launcher.view.DateTimeView
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:background="@drawable/base_bg"
|
||||
android:text="this is init sentence"
|
||||
android:id="@+id/time"
|
||||
android:visibility="gone"
|
||||
android:gravity="center"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/batteryProgress"
|
||||
tools:ignore="MissingConstraints" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/next_play"
|
||||
android:src="@drawable/play_song"
|
||||
app:layout_constraintRight_toRightOf="@id/time"
|
||||
app:layout_constraintTop_toTopOf="@id/time"
|
||||
app:layout_constraintBottom_toBottomOf="@id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:layout_height="40dp"/>
|
||||
|
||||
<bums.lunatic.launcher.view.CircleImageView
|
||||
app:layout_constraintLeft_toLeftOf="@id/time"
|
||||
app:layout_constraintTop_toTopOf="@id/time"
|
||||
app:layout_constraintBottom_toBottomOf="@id/time"
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitCenter"
|
||||
android:background="@null"
|
||||
android:layout_width="wrap_content"
|
||||
app:civ_border_width="1dp"
|
||||
app:civ_border_color="#000000"
|
||||
app:civ_label="택시"
|
||||
android:visibility="gone"
|
||||
android:layout_height="0dp"
|
||||
android:src="@drawable/kakaot"
|
||||
android:id="@+id/alchol_katalkT"/>
|
||||
|
||||
<!-- <com.google.android.material.textview.MaterialTextView-->
|
||||
<!-- android:id="@+id/weather"-->
|
||||
<!-- app:layout_goneMarginBottom="0dp"-->
|
||||
<!-- android:layout_width="wrap_content"-->
|
||||
<!-- android:layout_height="wrap_content"-->
|
||||
<!-- android:gravity="center"-->
|
||||
<!-- android:maxLines="1"-->
|
||||
<!-- android:textIsSelectable="false"-->
|
||||
<!-- app:layout_constraintLeft_toLeftOf="parent"-->
|
||||
<!-- app:layout_constraintRight_toRightOf="parent"-->
|
||||
<!-- app:layout_constraintTop_toBottomOf="@+id/time"-->
|
||||
<!-- />-->
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/current_music"
|
||||
app:layout_constraintTop_toBottomOf="@id/time"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
android:background="@drawable/base_bg"
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
app:layout_goneMarginTop="0dp"
|
||||
app:layout_goneMarginBottom="0dp"
|
||||
android:padding="@dimen/default_padding"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp">
|
||||
<bums.lunatic.launcher.view.CircleImageView
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:id="@+id/album_art"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="50dp"/>
|
||||
<TextView
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintLeft_toRightOf="@id/album_art"
|
||||
app:layout_constraintRight_toLeftOf="@id/next_btn"
|
||||
android:gravity="left"
|
||||
style="@style/small"
|
||||
android:lines="1"
|
||||
android:ellipsize="marquee"
|
||||
android:marqueeRepeatLimit="marquee_forever"
|
||||
android:singleLine="true"
|
||||
android:layout_width="0dp"
|
||||
android:id="@+id/artist"
|
||||
android:layout_height="wrap_content"/>
|
||||
<TextView
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
app:layout_constraintTop_toBottomOf="@id/artist"
|
||||
android:id="@+id/title"
|
||||
android:gravity="left"
|
||||
style="@style/small"
|
||||
android:lines="1"
|
||||
android:ellipsize="marquee"
|
||||
android:marqueeRepeatLimit="marquee_forever"
|
||||
android:singleLine="true"
|
||||
app:layout_constraintBottom_toBottomOf="@id/album_art"
|
||||
app:layout_constraintLeft_toRightOf="@id/album_art"
|
||||
app:layout_constraintRight_toLeftOf="@id/next_btn"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<ImageView
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:id="@+id/next_btn"
|
||||
android:src="@drawable/next_song"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="40dp"/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<include
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:id="@+id/weathers"
|
||||
layout="@layout/weather_book"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/current_music"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:id="@+id/summaryChoose"
|
||||
android:layout_width="0dp"
|
||||
android:gravity="center"
|
||||
android:background="@drawable/base_bg"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:layout_height="40dp"
|
||||
app:layout_constraintTop_toBottomOf="@+id/weathers"
|
||||
>
|
||||
|
||||
<TextView
|
||||
style="@style/normal"
|
||||
android:id="@+id/missedCalls"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/tabs"
|
||||
android:text="통화 목록"
|
||||
android:background="@null"
|
||||
android:checked="true"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<TextView
|
||||
style="@style/normal"
|
||||
android:id="@+id/otherCheck"
|
||||
android:gravity="center"
|
||||
android:background="@null"
|
||||
android:text="글타래"
|
||||
android:textColor="@color/tabs"
|
||||
android:checked="false"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<TextView
|
||||
style="@style/normal"
|
||||
android:id="@+id/favApps"
|
||||
android:gravity="center"
|
||||
android:background="@null"
|
||||
android:text="앱스"
|
||||
android:textColor="@color/tabs"
|
||||
android:checked="false"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<TextView
|
||||
style="@style/normal"
|
||||
android:id="@+id/recentSms"
|
||||
android:gravity="center"
|
||||
android:background="@null"
|
||||
android:text="문자 내역"
|
||||
android:textColor="@color/tabs"
|
||||
android:checked="false"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<TextView
|
||||
style="@style/normal"
|
||||
android:id="@+id/notice"
|
||||
android:gravity="center"
|
||||
android:background="@null"
|
||||
android:text="알림"
|
||||
android:textColor="@color/tabs"
|
||||
android:checked="false"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
</LinearLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintTop_toBottomOf="@+id/summaryChoose"
|
||||
app:layout_constraintBottom_toTopOf="@id/functionLayer"
|
||||
>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:id="@+id/mainList"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:overScrollMode="never"
|
||||
android:padding="@dimen/default_padding"
|
||||
android:visibility="gone"
|
||||
android:background="@drawable/base_bg"
|
||||
android:scrollbars="none"
|
||||
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
|
||||
app:spanCount="2"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
/>
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
|
||||
app:spanCount="2"
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:id="@+id/smsList"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:overScrollMode="never"
|
||||
android:padding="@dimen/default_padding"
|
||||
android:scrollbars="none"
|
||||
android:visibility="gone"
|
||||
android:background="@drawable/base_bg"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
/>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:id="@+id/infoList"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:overScrollMode="never"
|
||||
android:padding="@dimen/default_padding"
|
||||
android:scrollbars="none"
|
||||
android:visibility="gone"
|
||||
android:background="@drawable/base_bg"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
/>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:id="@+id/appsList"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:overScrollMode="never"
|
||||
android:padding="@dimen/default_padding"
|
||||
app:spanCount="3"
|
||||
android:scrollbars="none"
|
||||
android:visibility="gone"
|
||||
android:background="@drawable/base_bg"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
/>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||
android:id="@+id/notiList"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:overScrollMode="never"
|
||||
android:padding="@dimen/default_padding"
|
||||
android:scrollbars="none"
|
||||
android:visibility="gone"
|
||||
android:background="@drawable/base_bg"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_margin="@dimen/default_layout_margin"
|
||||
android:id="@+id/functionLayer"
|
||||
android:layout_width="@dimen/zero"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginTop="@dimen/default_layout_margin"
|
||||
android:layout_marginBottom="@dimen/default_layout_margin"
|
||||
android:background="@drawable/base_bg"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent" >
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@ -9,8 +9,8 @@ buildscript {
|
||||
}
|
||||
|
||||
plugins {
|
||||
id ("com.android.application") version "8.8.0" apply false
|
||||
id ("com.android.library") version "8.8.0" apply false
|
||||
id ("com.android.application") version "8.10.1" apply false
|
||||
id ("com.android.library") version "8.10.1" apply false
|
||||
id ("io.realm.kotlin") version "2.0.0" apply false
|
||||
id("org.jetbrains.kotlin.android") version "2.0.0" apply false
|
||||
|
||||
|
||||
@ -3,7 +3,8 @@ pluginManagement {
|
||||
gradlePluginPortal()
|
||||
google()
|
||||
mavenCentral()
|
||||
jcenter()
|
||||
// jcenter()
|
||||
maven (url = "https://maven.mozilla.org/maven2/")
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,9 +12,10 @@ pluginManagement {
|
||||
dependencyResolutionManagement {
|
||||
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
|
||||
repositories {
|
||||
jcenter()
|
||||
// jcenter()
|
||||
google()
|
||||
mavenCentral()
|
||||
maven (url = "https://maven.mozilla.org/maven2/")
|
||||
maven(url = "https://jitpack.io")
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user