Skip to content

Commit 9b19105

Browse files
committed
fix: resolved viewport 600dp issues
1 parent 9549891 commit 9b19105

File tree

8 files changed

+128
-64
lines changed

8 files changed

+128
-64
lines changed

.github/workflows/build.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ on:
1717
- '**.txt'
1818
- 'docs/**'
1919
- 'images/**'
20-
- '**/publishing.yml'
2120
pull_request:
2221
branches: [ "dev" ]
2322

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ This repository contains the open-source code for **CodeOps Studio** — a mobil
3838
<img src="./docs/assets/edit_ops.png" style="max-width: 100%; height: auto; width: 32%;" alt="Edit Ops"/>
3939
<img src="./docs/assets/syntax_var.png" style="max-width: 100%; height: auto; width: 32%;" alt="Syntax"/>
4040
</div>
41+
<div align="center">
42+
<img src="./docs/assets/land_600dp.png" style="max-width: 100%; height: auto; width: 32%;" alt="Tablet Mode"/>
43+
</div>
4144

4245
## Features
4346

@@ -86,14 +89,14 @@ This repository contains the open-source code for **CodeOps Studio** — a mobil
8689

8790
## Getting Started
8891

89-
Current Software version is `v1.1.0`
92+
Current Software version is `v1.1.1`
9093

9194
> [!IMPORTANT]
9295
> - Before installing, ensure you have enabled **Install from Unknown Sources** in your device
9396
settings.
9497
> - Please always install CodeOps Studio from trusted sources only.
9598
96-
[<img src="https://github.com/Kunzisoft/Github-badge/raw/main/get-it-on-github.svg" alt="Get on GitHub" height="60">](https://github.com/euptron/CodeOps-Studio/releases/download/v1.1.0/CodeOps-Studio.v1.1.0.apk)
99+
[<img src="https://github.com/Kunzisoft/Github-badge/raw/main/get-it-on-github.svg" alt="Get on GitHub" height="60">](https://github.com/euptron/CodeOps-Studio/releases/download/v1.1.1/CodeOps-Studio.v1.1.1.apk)
97100

98101
### Steps to Install
99102

app/src/main/res/layout-sw600dp-land/fragment_main.xml

Lines changed: 28 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -22,46 +22,34 @@
2222
~ questions or need additional information. Email: euptron@gmail.com
2323
-->
2424

25-
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
26-
xmlns:app="http://schemas.android.com/apk/res-auto"
27-
xmlns:tools="http://schemas.android.com/tools"
28-
android:layout_width="match_parent"
29-
android:layout_height="match_parent">
25+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
26+
android:layout_width="match_parent"
27+
android:layout_height="match_parent"
28+
android:orientation="horizontal"
29+
android:weightSum="100">
30+
31+
<!-- consume only 20% of the screen width -->
32+
<androidx.fragment.app.FragmentContainerView
33+
android:id="@+id/nav_primary_side_bar"
34+
android:name="com.eup.codeopsstudio.ui.explore.PrimarySideBarFragment"
35+
android:layout_width="0dp"
36+
android:layout_height="match_parent"
37+
android:layout_weight="20" />
3038

31-
<!-- A vertical line at 20% of the screen width -->
32-
<androidx.constraintlayout.widget.Guideline
33-
android:id="@+id/vertical_guideline"
34-
android:layout_width="wrap_content"
35-
android:layout_height="wrap_content"
36-
android:orientation="vertical"
37-
app:layout_constraintGuide_percent="0.20" />
38-
39-
<androidx.fragment.app.FragmentContainerView
40-
android:id="@+id/nav_primary_side_bar"
41-
android:name="com.eup.codeopsstudio.ui.explore.PrimarySideBarFragment"
42-
android:layout_width="0dp"
43-
android:layout_height="0dp"
44-
app:layout_constraintBottom_toBottomOf="parent"
45-
app:layout_constraintEnd_toStartOf="@+id/vertical_guideline"
46-
app:layout_constraintStart_toStartOf="parent"
47-
app:layout_constraintTop_toTopOf="parent" />
48-
49-
<com.google.android.material.divider.MaterialDivider
50-
android:id="@+id/divider"
51-
android:layout_width="1px"
52-
android:layout_height="0dp"
53-
android:alpha="0.8"
54-
app:layout_constraintBottom_toBottomOf="parent"
55-
app:layout_constraintStart_toEndOf="@+id/nav_primary_side_bar"
56-
app:layout_constraintTop_toTopOf="parent" />
39+
<com.google.android.material.divider.MaterialDivider
40+
android:id="@+id/divider"
41+
android:layout_width="1px"
42+
android:layout_height="0dp"
43+
android:alpha="0.8" />
5744

45+
<LinearLayout
46+
android:layout_width="0dp"
47+
android:layout_height="match_parent"
48+
android:layout_weight="80"
49+
android:orientation="vertical">
5850
<include
59-
android:id="@+id/fragment_main_content"
60-
layout="@layout/fragment_main_content"
61-
android:layout_width="0dp"
62-
android:layout_height="0dp"
63-
app:layout_constraintBottom_toBottomOf="parent"
64-
app:layout_constraintEnd_toEndOf="parent"
65-
app:layout_constraintStart_toEndOf="@+id/divider"
66-
app:layout_constraintTop_toTopOf="parent" />
67-
</androidx.constraintlayout.widget.ConstraintLayout>
51+
android:id="@+id/fragment_main_content"
52+
layout="@layout/fragment_main_content" />
53+
</LinearLayout>
54+
55+
</LinearLayout>

app/src/main/res/layout/fragment_main.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@
4141

4242
<androidx.fragment.app.FragmentContainerView
4343
android:id="@+id/nav_primary_side_bar"
44-
android:layout_width="@dimen/drawer_max_width"
44+
android:layout_width="300dp"
4545
android:layout_height="match_parent"
4646
android:layout_gravity="start"
4747
android:name="com.eup.codeopsstudio.ui.explore.PrimarySideBarFragment"
4848
tools:layout="@layout/fragment_primary_side_bar" />
4949

50-
</com.eup.codeopsstudio.ui.PrimaryDrawerLayout>
50+
</com.eup.codeopsstudio.ui.PrimaryDrawerLayout>

constants.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ project.ext {
170170
}
171171
}
172172

173-
def baseVersion = "1.1.0"
173+
def baseVersion = "1.1.1"
174174
def suffix = ""
175175

176176
if (isReleaseBuild) {

docs/assets/land_600dp.png

127 KB
Loading

modules/bidirectional-llm/build.gradle

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
plugins {
22
alias(libs.plugins.android.library)
33
id 'maven-publish'
4-
id 'signing'
54
}
65

76
android {
@@ -88,23 +87,6 @@ afterEvaluate {
8887
password = System.getenv("GHPKGS_LIB_PUB_TOKEN")
8988
}
9089
}
91-
92-
maven {
93-
name = "SonatypeCentral"
94-
url = uri("https://central.sonatype.com/api/v1/publisher/deployments/maven/repository")
95-
credentials {
96-
username = System.getenv("SONATYPE_USERNAME")
97-
password = System.getenv("SONATYPE_PASSWORD")
98-
}
99-
}
10090
}
10191
}
102-
103-
signing {
104-
useInMemoryPgpKeys(
105-
System.getenv("SONATYPE_GPG_SIGNING_KEY"),
106-
System.getenv("SONATYPE_GPG_SIGNING_PASSWORD")
107-
)
108-
sign publishing.publications.release
109-
}
11092
}

publish.gradle

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
import java.nio.file.Files
2+
import java.util.Base64
3+
4+
/**
5+
* REUSABLE SCRIPT FOR NEW SONATYPE CENTRAL PORTAL
6+
*
7+
* 1. Zips the content of the "maven-central-staging" local repository.
8+
* 2. Uploads the Zip to Central Portal via API.
9+
*/
10+
11+
// 1. Task to Zip the artifacts preserving folder structure
12+
tasks.register('generateCentralBundle', Zip) {
13+
// This assumes your publication is named "release" and repo named "LocalStaging"
14+
dependsOn 'publishReleasePublicationToLocalStagingRepository'
15+
16+
// We zip the specific folder structure created by maven-publish
17+
from layout.buildDirectory.dir("maven-central-staging")
18+
19+
archiveFileName.set("bundle.zip")
20+
destinationDirectory.set(layout.buildDirectory.dir("central-bundle"))
21+
}
22+
23+
// 2. Task to Upload the Zip
24+
tasks.register('uploadToCentralPortal') {
25+
dependsOn 'generateCentralBundle'
26+
description = "Uploads the bundled artifacts to Sonatype Central Portal"
27+
group = "publishing"
28+
29+
doLast {
30+
def bundleFile = layout.buildDirectory.dir("central-bundle").get().file("bundle.zip").asFile
31+
if (!bundleFile.exists()) {
32+
throw new GradleException("Bundle file not found at: ${bundleFile.absolutePath}")
33+
}
34+
35+
// Credentials
36+
def username = System.getenv("SONATYPE_USERNAME")
37+
def password = System.getenv("SONATYPE_PASSWORD") // This is the User Token Password
38+
39+
if (!username || !password) {
40+
throw new GradleException("Environment variables SONATYPE_USERNAME and SONATYPE_PASSWORD are required.")
41+
}
42+
43+
// Authentication Header
44+
def authString = "${username}:${password}"
45+
def authHeader = "Bearer " + Base64.getEncoder().encodeToString(authString.getBytes())
46+
47+
// Connection Setup
48+
def url = new URL("https://central.sonatype.com/api/v1/publisher/deployments/upload")
49+
def boundary = "===" + System.currentTimeMillis() + "==="
50+
def connection = url.openConnection() as HttpURLConnection
51+
52+
connection.setRequestMethod("POST")
53+
connection.setDoOutput(true)
54+
connection.setDoInput(true)
55+
connection.setRequestProperty("Authorization", authHeader)
56+
connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary)
57+
58+
// Write Multipart Body
59+
def outputStream = connection.getOutputStream()
60+
def writer = new PrintWriter(new OutputStreamWriter(outputStream, "UTF-8"), true)
61+
62+
// Part: bundle
63+
writer.append("--" + boundary).append("\r\n")
64+
writer.append("Content-Disposition: form-data; name=\"bundle\"; filename=\"bundle.zip\"").append("\r\n")
65+
writer.append("Content-Type: application/zip").append("\r\n")
66+
writer.append("\r\n").flush()
67+
68+
// File Content
69+
Files.copy(bundleFile.toPath(), outputStream)
70+
outputStream.flush()
71+
72+
// End Boundary
73+
writer.append("\r\n").flush()
74+
writer.append("--" + boundary + "--").append("\r\n")
75+
writer.close()
76+
77+
// Handle Response
78+
def responseCode = connection.getResponseCode()
79+
if (responseCode >= 200 && responseCode < 300) {
80+
def deploymentId = connection.getInputStream().getText()
81+
println "\n======================================================="
82+
println "SUCCESS: Uploaded to Central Portal!"
83+
println "Deployment ID: ${deploymentId}"
84+
println "Status: https://central.sonatype.com/publishing/deployments"
85+
println "=======================================================\n"
86+
} else {
87+
def errorStream = connection.getErrorStream()
88+
def errorMsg = errorStream ? errorStream.getText() : "No error message provided"
89+
throw new GradleException("Upload Failed (HTTP $responseCode): $errorMsg")
90+
}
91+
}
92+
}

0 commit comments

Comments
 (0)