Skip to content
This repository was archived by the owner on Oct 18, 2024. It is now read-only.

Commit c316ac9

Browse files
committed
fix: implement edge-to-edge layout for editor activity
1 parent 53a2d63 commit c316ac9

File tree

23 files changed

+611
-276
lines changed

23 files changed

+611
-276
lines changed

.idea/deploymentTargetSelector.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/src/main/java/com/itsaky/androidide/activities/AboutActivity.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import com.itsaky.androidide.BuildConfig
3434
import com.itsaky.androidide.R
3535
import com.itsaky.androidide.adapters.SimpleIconTitleDescriptionAdapter
3636
import com.itsaky.androidide.app.BaseApplication
37-
import com.itsaky.androidide.app.LimitlessIDEActivity
37+
import com.itsaky.androidide.app.EdgeToEdgeIDEActivity
3838
import com.itsaky.androidide.app.configuration.IDEBuildConfigProvider
3939
import com.itsaky.androidide.buildinfo.BuildInfo
4040
import com.itsaky.androidide.databinding.ActivityAboutBinding
@@ -44,7 +44,7 @@ import com.itsaky.androidide.utils.BuildInfoUtils
4444
import com.itsaky.androidide.utils.flashSuccess
4545
import com.itsaky.androidide.utils.resolveAttr
4646

47-
class AboutActivity : LimitlessIDEActivity() {
47+
class AboutActivity : EdgeToEdgeIDEActivity() {
4848

4949
private var _binding: ActivityAboutBinding? = null
5050
private val binding: ActivityAboutBinding
@@ -76,7 +76,7 @@ class AboutActivity : LimitlessIDEActivity() {
7676
setSupportActionBar(toolbar)
7777
supportActionBar!!.setDisplayHomeAsUpEnabled(true)
7878
supportActionBar!!.setTitle(R.string.about)
79-
toolbar.setNavigationOnClickListener { finish() }
79+
toolbar.setNavigationOnClickListener { onBackPressedDispatcher.onBackPressed() }
8080

8181
aboutHeader.apply {
8282
ideVersion.text = createVersionText()

app/src/main/java/com/itsaky/androidide/activities/ContributorsActivity.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@ import androidx.activity.viewModels
2424
import androidx.core.view.isVisible
2525
import com.itsaky.androidide.R
2626
import com.itsaky.androidide.adapters.ContributorsGridAdapter
27-
import com.itsaky.androidide.app.LimitlessIDEActivity
27+
import com.itsaky.androidide.app.EdgeToEdgeIDEActivity
2828
import com.itsaky.androidide.databinding.ActivityContributorsBinding
2929
import com.itsaky.androidide.utils.getConnectionInfo
3030
import com.itsaky.androidide.viewmodel.ContributorsViewModel
3131

3232
/**
3333
* @author Akash Yadav
3434
*/
35-
class ContributorsActivity : LimitlessIDEActivity() {
35+
class ContributorsActivity : EdgeToEdgeIDEActivity() {
3636

3737
private var _binding: ActivityContributorsBinding? = null
3838
private val binding: ActivityContributorsBinding
@@ -54,7 +54,7 @@ class ContributorsActivity : LimitlessIDEActivity() {
5454
setSupportActionBar(toolbar)
5555
supportActionBar!!.setTitle(R.string.title_contributors)
5656
supportActionBar!!.setDisplayHomeAsUpEnabled(true)
57-
toolbar.setNavigationOnClickListener { finish() }
57+
toolbar.setNavigationOnClickListener { onBackPressedDispatcher.onBackPressed() }
5858

5959
githubContributors.apply {
6060
sectionTitle.setText(R.string.title_github_contributors)

app/src/main/java/com/itsaky/androidide/activities/CrashHandlerActivity.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import android.os.Bundle;
2121
import android.view.View;
22+
import androidx.annotation.NonNull;
2223
import com.itsaky.androidide.app.IDEActivity;
2324
import com.itsaky.androidide.databinding.ActivityCrashHandlerBinding;
2425
import com.itsaky.androidide.fragments.CrashReportFragment;
@@ -50,16 +51,12 @@ protected void onCreate(Bundle savedInstanceState) {
5051
}
5152

5253
@Override
54+
@NonNull
5355
protected View bindLayout() {
5456
binding = ActivityCrashHandlerBinding.inflate(getLayoutInflater());
5557
return binding.getRoot();
5658
}
5759

58-
@Override
59-
public void onBackPressed() {
60-
finishAffinity();
61-
}
62-
6360
@Override
6461
protected void onDestroy() {
6562
super.onDestroy();

app/src/main/java/com/itsaky/androidide/activities/MainActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import androidx.transition.TransitionManager
2929
import androidx.transition.doOnEnd
3030
import com.google.android.material.transition.MaterialSharedAxis
3131
import com.itsaky.androidide.activities.editor.EditorActivityKt
32-
import com.itsaky.androidide.app.LimitlessIDEActivity
32+
import com.itsaky.androidide.app.EdgeToEdgeIDEActivity
3333
import com.itsaky.androidide.databinding.ActivityMainBinding
3434
import com.itsaky.androidide.preferences.internal.GeneralPreferences
3535
import com.itsaky.androidide.projects.ProjectManagerImpl
@@ -43,7 +43,7 @@ import com.itsaky.androidide.viewmodel.MainViewModel.Companion.SCREEN_TEMPLATE_D
4343
import com.itsaky.androidide.viewmodel.MainViewModel.Companion.SCREEN_TEMPLATE_LIST
4444
import java.io.File
4545

46-
class MainActivity : LimitlessIDEActivity() {
46+
class MainActivity : EdgeToEdgeIDEActivity() {
4747

4848
private val viewModel by viewModels<MainViewModel>()
4949
private var _binding: ActivityMainBinding? = null

app/src/main/java/com/itsaky/androidide/activities/PreferencesActivity.java

Lines changed: 0 additions & 118 deletions
This file was deleted.
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
/*
2+
* This file is part of AndroidIDE.
3+
*
4+
* AndroidIDE is free software: you can redistribute it and/or modify
5+
* it under the terms of the GNU General Public License as published by
6+
* the Free Software Foundation, either version 3 of the License, or
7+
* (at your option) any later version.
8+
*
9+
* AndroidIDE is distributed in the hope that it will be useful,
10+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+
* GNU General Public License for more details.
13+
*
14+
* You should have received a copy of the GNU General Public License
15+
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
16+
*/
17+
package com.itsaky.androidide.activities
18+
19+
import android.graphics.Rect
20+
import android.os.Bundle
21+
import android.view.View
22+
import androidx.fragment.app.Fragment
23+
import com.itsaky.androidide.R
24+
import com.itsaky.androidide.app.EdgeToEdgeIDEActivity
25+
import com.itsaky.androidide.databinding.ActivityPreferencesBinding
26+
import com.itsaky.androidide.fragments.IDEPreferencesFragment
27+
import com.itsaky.androidide.preferences.addRootPreferences
28+
import com.itsaky.androidide.preferences.IDEPreferences as prefs
29+
30+
class PreferencesActivity : EdgeToEdgeIDEActivity() {
31+
32+
private var _binding: ActivityPreferencesBinding? = null
33+
private val binding: ActivityPreferencesBinding
34+
get() = checkNotNull(_binding) { "Activity has been destroyed" }
35+
36+
private val rootFragment by lazy {
37+
IDEPreferencesFragment()
38+
}
39+
40+
override fun onCreate(savedInstanceState: Bundle?) {
41+
super.onCreate(savedInstanceState)
42+
43+
setSupportActionBar(binding.toolbar)
44+
supportActionBar!!.setTitle(R.string.ide_preferences)
45+
supportActionBar!!.setDisplayHomeAsUpEnabled(true)
46+
47+
binding.toolbar.setNavigationOnClickListener { onBackPressedDispatcher.onBackPressed() }
48+
49+
if (savedInstanceState != null) {
50+
return
51+
}
52+
53+
(prefs.children as MutableList?)?.clear()
54+
55+
prefs.addRootPreferences()
56+
57+
val args = Bundle()
58+
args.putParcelableArrayList(
59+
IDEPreferencesFragment.EXTRA_CHILDREN,
60+
ArrayList(prefs.children)
61+
)
62+
63+
rootFragment.arguments = args
64+
loadFragment(rootFragment)
65+
}
66+
67+
override fun onInsetsUpdated(insets: Rect) {
68+
super.onInsetsUpdated(insets)
69+
70+
val toolbar: View = binding.toolbar
71+
toolbar.setPadding(
72+
toolbar.paddingLeft + insets.left,
73+
toolbar.paddingTop,
74+
toolbar.paddingRight + insets.right,
75+
toolbar.paddingBottom
76+
)
77+
78+
val fragmentContainer: View = binding.fragmentContainerParent
79+
fragmentContainer.setPadding(
80+
fragmentContainer.paddingLeft + insets.left,
81+
fragmentContainer.paddingTop,
82+
fragmentContainer.paddingRight + insets.right,
83+
fragmentContainer.paddingBottom
84+
)
85+
}
86+
87+
override fun bindLayout(): View {
88+
_binding = ActivityPreferencesBinding.inflate(
89+
layoutInflater)
90+
return binding.root
91+
}
92+
93+
private fun loadFragment(fragment: Fragment) {
94+
super.loadFragment(fragment, binding.fragmentContainer.id)
95+
}
96+
97+
override fun onDestroy() {
98+
super.onDestroy()
99+
_binding = null
100+
}
101+
}

0 commit comments

Comments
 (0)