Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/upstream' into trunk
Browse files Browse the repository at this point in the history
// Conflicts:
//	.github/workflows/ci.yml
//	.github/workflows/crowdin.yml
//	.github/workflows/crowdin_download.yml
//	.github/workflows/crowdin_upload.yml
//	README.md
//	build.gradle
  • Loading branch information
Goooler committed Dec 21, 2024
2 parents b48d4dd + 29d3ad8 commit aaab3ff
Show file tree
Hide file tree
Showing 89 changed files with 1,242 additions and 806 deletions.
48 changes: 30 additions & 18 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,34 +6,35 @@
<img alt="" src="docs/assets/lawnchair-round.webp" width="100">
</picture>

First and foremost, welcome to the **Lawnchair** Contributing Guidelines!
Welcome to the **Lawnchair** Project, we appreciate your interest in contributing.
Feel free to reach out to us on [Telegram](https://t.me/lccommunity) or [Discord](https://discord.com/invite/3x8qNWxgGZ) for any further questions.

### 💫 Bug reports & feature requests

> [!TIP]
> We recommend that the Lawnchair [Nightly](https://github.com/LawnchairLauncher/lawnchair/releases/tag/nightly)
> build be used in your report as they contain the latest changes from Lawnchair.
> Using Lawnchair [Nightly](https://github.com/LawnchairLauncher/lawnchair/releases/tag/nightly) is recommended for bug reports and feature requests
> as it contains the latest changes from Lawnchair.
For [bug reports](https://github.com/LawnchairLauncher/lawnchair/issues/new?assignees=&labels=bug&projects=&template=bug_report.yaml&title=%5BBUG%5D+), please describe the bug in detail to the best of your ability
For [bug reports](https://github.com/LawnchairLauncher/lawnchair/issues/new?assignees=&labels=bug&projects=&template=bug_report.yaml&title=%5BBUG%5D+), describe the bug in detail to the best of your ability
with steps on how to reproduce it. If applicable, attach log files.

For [feature requests](https://github.com/LawnchairLauncher/lawnchair/issues/new?assignees=&labels=feature%2Cenhancement&projects=&template=feature_request.yaml&title=%5BFEATURE%5D+), please describe the feature you'd like to see added to Lawnchair.
For [feature requests](https://github.com/LawnchairLauncher/lawnchair/issues/new?assignees=&labels=feature%2Cenhancement&projects=&template=feature_request.yaml&title=%5BFEATURE%5D+), describe the feature you'd like to see added to Lawnchair.
If applicable, attach log files.

Please make sure to be civil during the discussion of your contribution as outlined by the [Code of Conduct](CODE_OF_CONDUCT.md).
Make sure to be civil during the discussion of your contribution as outlined by the [Code of Conduct](CODE_OF_CONDUCT.md).

### 🌐 Translation

For translation, visit [Lawnchair on Crowdin](https://lawnchair.crowdin.com) and follow these tips:

- When using quotation marks, insert the symbols specific to the target language, as listed in this [this summary table](https://en.wikipedia.org/wiki/Quotation_mark#Summary_table);
- When using quotation marks, insert the symbols specific to the target language, as listed in this [summary table](https://en.wikipedia.org/wiki/Quotation_mark#Summary_table);
- Some English terminology may have not have commonly-used equivalents in other languages. In such cases, use short descriptive phrases—for example, the equivalent of _bottom row_ for _dock_;
- Some languages (e.g. French) have variations of words depending on if it's masculine or feminine (gender-specific); we recommend opting for gender-neutral words instead.

### 🧑‍💻 Code

> [!NOTE]
> For Lawnchair 9 to 13, see the branches with the `9-` to `13-` prefixes respectively.
> [!TIP]
> For Lawnchair 9 to 14, see the branches with the `9-` to `14-` prefixes respectively.
For code, it's highly recommended that you use [Android Studio](https://developer.android.com/studio),
know [Java](https://www.java.com) or preferably [Kotlin](https://kotlinlang.org/), and [Git](https://git-scm.com/).
Expand All @@ -51,19 +52,20 @@ run `git submodule update --init --recursive`.
Here are some contribution tips to help you get started:
- Always make sure that you're up-to-date with **Lawnchair** by setting your base branch to `14-dev`.
- Always make sure that you're up-to-date with **Lawnchair** by setting your base branch to `15-dev`.
- Make sure your code is logical and well-formatted. If using Kotlin, see [“Coding conventions” in the Kotlin documentation](https://kotlinlang.org/docs/coding-conventions.html);
- [The `lawnchair` package](https://github.com/LawnchairLauncher/lawnchair/tree/14-dev/lawnchair) houses Lawnchair’s own code, whereas [the `src` package](https://github.com/LawnchairLauncher/lawnchair/tree/14-dev/src) includes a clone of the Launcher3 codebase with modifications. Generally, place new files in the former, keeping changes to the latter to a minimum.
- [The `lawnchair` package](https://github.com/LawnchairLauncher/lawnchair/tree/15-dev/lawnchair) houses Lawnchair’s own code, whereas [the `src` package](https://github.com/LawnchairLauncher/lawnchair/tree/15-dev/src) includes a clone of the Launcher3 codebase with modifications. Generally, place new files in the former, keeping changes to the latter to a minimum.
#### Additional documentation
- The Lawnchair Wiki ([at Github](https://github.com/LawnchairLauncher/lawnchair/wiki))
- Lawnchair Visual Guidelines ([README.md](/docs/assets/README.md))
- Lawnchair Quickstep Compat Lib ([README.md](compatLib/README.md))
- Lawnchair Preferences Components ([README.md](lawnchair/src/app/lawnchair/ui/preferences/components/README.md))
- SystemUI ViewCapture ([README.md](systemUIViewCapture/README.md))
- SystemUI Common ([README.md](systemUICommon/README.md))
- Prebuilt Library ([README.md](prebuilts/libs/README.md))
- [The Lawnchair Wiki](https://github.com/LawnchairLauncher/lawnchair/wiki)
- [Lawnchair Visual Guidelines](/docs/assets/README.md)
- [Lawnchair Quickstep Compat Library](compatLib/README.md)
- [Lawnchair Preferences Components](lawnchair/src/app/lawnchair/ui/preferences/components/README.md)
- [SystemUI Module](systemUI/README.md)
- [ViewCapture](systemUI/viewcapture/README.md)
- [Common](systemUI/common/README.md)
- [Prebuilt Library](prebuilts/libs/README.md)
#### Versioning scheme
Expand Down Expand Up @@ -105,6 +107,7 @@ The table below shows release phase used by Lawnchair:
| Status | Stage |
| ----------------- | ----- |
| Development | 00 |
| Alpha | 01 |
| Beta | 02 |
| Release Candidate | 03 |
Expand All @@ -125,3 +128,12 @@ Strings `names` in `strings.xml` should follow this format:
| Preference choice | $1_choice | `off_choice` | Off | |
| Feature string | (feature_name)_$1 | `colorpicker_hsb` | HSB | Feature strings are strings that are confined to a specific feature. Examples include the gesture and color picker. |
| Launcher string | $1_launcher | `device_contacts_launcher` | Contacts from device | Strings that are specific to the Launcher area |
#### Updating locally stored font listing
Lawnchair uses a locally stored JSON file (`google_fonts.json`) to list available fonts from Google Fonts. This file should be updated periodically or before release to include the latest fonts.
To update Lawnchair's font listing, follow these steps:
1. Acquire a [Google Fonts Developer API key](https://developers.google.com/fonts/docs/developer_api#APIKey).
2. Download the JSON file from `https://www.googleapis.com/webfonts/v1/webfonts?key=API_KEY`, replacing `API_KEY` with the API key from step 1.
3. Replace the content of [`google_fonts.json`](lawnchair/assets/google_fonts.json) with the API response.
13 changes: 7 additions & 6 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,29 @@
## Supported Versions

> [!WARNING]
> Lawnchair v2 (Play Store version) is **unsupported**. Use the newer versions instead.
> [Lawnchair Legacy](https://play.google.com/store/apps/details?id=ch.deletescape.lawnchair.plah) is **unsupported**. Use the newer versions instead.
> See [this FAQ page](https://lawnchair.app/faq#do-you-still-support-the-play-store-version) for additional information.
The latest version of Lawnchair is the only supported version.

| Version | Supported |
| -------------- | ------------------ |
| Nightly build | :white_check_mark: |
| 14 | :white_check_mark: |
| 15 | :white_check_mark: |
| 14 | :x: |
| 13 | :x: |
| 12.1 | :x: |
| 12 | :x: |
| 11 | :x: |
| Older (legacy) | :x: |
| Older (Legacy) | :x: |

## Reporting Security issues

We appreciate your efforts to responsibly disclose your findings and will make every effort to
acknowledge your contributions.

To report an issue, please file a [security advisory](https://github.com/LawnchairLauncher/lawnchair/security/advisories/new)
or contact a developer (can be found in the about page of the app) in Telegram or Discord and
state your security vulnerability starting with the words "**SECURITY**".
or contact a developer (can be found in the about page of the app) in [Telegram](https://t.me/lccommunity) or [Discord](https://discord.com/invite/3x8qNWxgGZ) and
state your security vulnerability starting with the words "**SECURITY**"

We'll endeavour to respond quickly, and will keep you updated throughout the process.
We'll endeavor to respond quickly, and will keep you updated throughout the process.
12 changes: 6 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ allprojects {
}

plugins.withId('com.google.protobuf') {
def protocVersion = '4.29.1'
def protocVersion = '4.29.2'
protobuf {
// Configure the protoc executable
protoc {
Expand Down Expand Up @@ -78,7 +78,7 @@ allprojects {

ext {
FRAMEWORK_PREBUILTS_DIR = "$rootDir/prebuilts/libs"
daggerVersion = '2.53.1'
daggerVersion = '2.54'

addFrameworkJar = { String name ->
def frameworkJar = new File(FRAMEWORK_PREBUILTS_DIR, name)
Expand Down Expand Up @@ -335,15 +335,15 @@ dependencies {
implementation fileTree(dir: FRAMEWORK_PREBUILTS_DIR, include: 'WindowManager-Shell-15.jar')
withQuickstepCompileOnly fileTree(dir: FRAMEWORK_PREBUILTS_DIR, include: 'framework-15.jar')

coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.3'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.4'

implementation 'androidx.profileinstaller:profileinstaller:1.4.1'
baselineProfile projects.baselineProfile

implementation "androidx.recyclerview:recyclerview:1.3.2"
implementation "androidx.preference:preference-ktx:1.2.1"

implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.1'
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3'
implementation 'com.github.ChickenHook:RestrictionBypass:2.2'
implementation 'dev.rikka.tools.refine:runtime:4.4.0'
Expand Down Expand Up @@ -394,7 +394,7 @@ dependencies {
// Persian Date
implementation 'com.github.samanzamani:PersianDate:1.7.1'

implementation 'com.airbnb.android:lottie:6.6.1'
implementation 'com.airbnb.android:lottie:6.6.2'

// Compose drag and drop library
implementation 'sh.calvin.reorderable:reorderable:2.4.2'
Expand All @@ -404,7 +404,7 @@ dependencies {
exclude group: "com.github.skydoves", module: "balloon"
}

implementation("com.github.android:renderscript-intrinsics-replacement-toolkit:b6363490c3")
implementation 'io.github.hokofly:hoko-blur:1.5.3'
}

ksp {
Expand Down
32 changes: 26 additions & 6 deletions ci.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,34 @@ def send_document_to_telegram_chat(chat_id, document):
def send_artifact_to_telegram_chat(chat_id):
subdirectories = os.listdir(artifact_directory)
if "beta" in github_ref:
with open(f"{artifact_directory}/{os.listdir(artifact_directory)[0]}", "rb") as artifact:
send_document_to_telegram_chat(chat_id=chat_id, document=artifact)
return

beta_path = f"{artifact_directory}/{os.listdir(artifact_directory)[0]}"
if os.path.exists(beta_path) and os.path.isfile(beta_path):
with open(beta_path, "rb") as artifact:
send_document_to_telegram_chat(chat_id=chat_id, document=artifact)
else:
print(f"Error: Beta artifact not found at {beta_path}")
return

for each_directory in subdirectories:
full_path = f"{artifact_directory}/{each_directory}/debug"
with open(f"{full_path}/{os.listdir(full_path)[0]}", "rb") as artifact:
send_document_to_telegram_chat(chat_id=chat_id, document=artifact)
if not os.path.exists(full_path) or not os.path.isdir(full_path):
print(f"Warning: Directory does not exist or is not valid: {full_path}")
continue

try:
files = os.listdir(full_path)
if not files:
print(f"Warning: No files found in {full_path}")
continue

file_path = f"{full_path}/{files[0]}"
if os.path.isfile(file_path):
with open(file_path, "rb") as artifact:
send_document_to_telegram_chat(chat_id=chat_id, document=artifact)
else:
print(f"Warning: Not a file: {file_path}")
except Exception as e:
print(f"Error processing directory {full_path}: {e}")

def send_internal_notifications():
repository = git.Repo(".")
Expand Down
1 change: 1 addition & 0 deletions compatLib/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ refers to the compatibility code for that specific Android version.
| compatLibVS | 12 |
| compatLibVT | 13 |
| compatLibVU | 14 |
| compatLibVV | 15 |
Binary file added docs/assets/badge-github.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/badge-google-play.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/badge-izzyondroid.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/badge-obtainium.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/device-frame.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion flags/src/com/android/launcher3/FeatureFlagsImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ private void load_overrides_launcher() {
enableSmartspaceAsAWidget =
properties.getBoolean(Flags.FLAG_ENABLE_SMARTSPACE_AS_A_WIDGET, false);
enableSmartspaceRemovalToggle =
properties.getBoolean(Flags.FLAG_ENABLE_SMARTSPACE_REMOVAL_TOGGLE, false);
properties.getBoolean(Flags.FLAG_ENABLE_SMARTSPACE_REMOVAL_TOGGLE, true);
enableSupportForArchiving =
properties.getBoolean(Flags.FLAG_ENABLE_SUPPORT_FOR_ARCHIVING, true);
enableTabletTwoPanePickerV2 =
Expand Down
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=f397b287023acdba1e9f6fc5ea72d22dd63669d59ed4a289a29b1a76eee151c6
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
distributionSha256Sum=7a00d51fb93147819aab76024feece20b6b84e420694101f276be952e08bef03
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
3 changes: 1 addition & 2 deletions gradlew
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,7 @@ done
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
' "$PWD" ) || exit
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
Expand Down
17 changes: 10 additions & 7 deletions lawnchair/res/layout/search_container_all_apps.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
android:id="@+id/search_wrapper"
android:layout_width="match_parent"
android:layout_height="@dimen/search_box_height"
android:layout_gravity="bottom"
android:layout_gravity="center"
android:background="@drawable/search_input_fg"
android:clickable="false"
android:focusable="true"
Expand Down Expand Up @@ -72,7 +72,7 @@
android:id="@+id/search_icon"
android:layout_width="@dimen/search_box_height"
android:layout_height="@dimen/search_box_height"
android:layout_gravity="bottom|center|start"
android:layout_gravity="center|start"
android:background="@drawable/pill_ripple"
android:layout_marginEnd="6dp"
android:clickable="true"
Expand All @@ -84,30 +84,33 @@
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="@dimen/search_box_height"
android:layout_gravity="bottom|end|center"
android:layout_gravity="end|center"
android:clipToPadding="false"
android:orientation="horizontal"
tools:ignore="RtlSymmetry">

<app.lawnchair.qsb.AssistantIconView
android:id="@+id/mic_btn"
android:layout_width="@dimen/search_box_height"
android:layout_width="@dimen/qsb_icon_width"
android:layout_height="@dimen/search_box_height"
android:background="@drawable/pill_ripple"
android:clickable="true"
android:contentDescription="@string/label_voice_search"
android:scaleType="center"
android:scaleType="fitCenter"
android:padding="@dimen/qsb_icon_padding"
android:src="@drawable/ic_remove_no_shadow"
app:tint="?android:textColorSecondary" />

<ImageButton
android:id="@+id/lens_btn"
android:layout_width="@dimen/search_box_height"
android:layout_width="@dimen/qsb_icon_width"
android:layout_height="@dimen/search_box_height"
android:background="@drawable/pill_ripple"
android:clickable="true"
android:layout_marginStart="-6dp"
android:contentDescription="@string/label_lens"
android:scaleType="center"
android:scaleType="fitCenter"
android:padding="@dimen/qsb_icon_padding"
android:src="@drawable/ic_remove_no_shadow"
app:tint="?android:textColorSecondary" />

Expand Down
4 changes: 2 additions & 2 deletions lawnchair/res/values-el-rGR/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
<string name="background_opacity">Αδιαφάνεια φόντου</string>
<!-- Toast text and tips -->
<string name="copied_toast">Αντιγράφηκε στο πρόχειρο</string>
<string name="calculator_search_result_copied_toast">Result copied to clipboard</string>
<string name="calculator_search_result_copied_toast">Το αποτέλεσμα αντιγράφηκε στο πρόχειρο</string>
<string name="item_removed">Το στοιχείο αφαιρέθηκε</string>
<!-- Miscellaneous -->
<string name="what_to_show">Τι να εμφανίζεται</string>
Expand Down Expand Up @@ -187,7 +187,7 @@
<!-- Icon pack settings -->
<string name="icon_pack">Πακέτο εικονιδίων</string>
<string name="themed_icon_pack">Πηγή θεματοποιημένων εικονιδίων</string>
<string name="themed_icon_pack_tint">Tint with accent color</string>
<string name="themed_icon_pack_tint">Απόχρωση με χρώμα έμφασης</string>
<string name="system_icons">Εικονίδια συστήματος</string>
<string name="themed_icon_title">Θεματοποιημένα εικονίδια</string>
<string name="themed_icons_off_label">Ανενεργό</string>
Expand Down
4 changes: 2 additions & 2 deletions lawnchair/res/values-en-rCA/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
Actions and Verbs
-->
<string name="preview_label">Preview</string>
<string name="preview_label">Solanvip1</string>
<string name="action_create">Create</string>
<string name="action_backup">Backup</string>
<string name="action_backup"></string>
<string name="action_restore">Restore</string>
<string name="action_delete">Delete</string>
<string name="action_reset">Reset</string>
Expand Down
2 changes: 1 addition & 1 deletion lawnchair/res/values-pl-rPL/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
<string name="background_opacity">Przezroczystość tła</string>
<!-- Toast text and tips -->
<string name="copied_toast">Skopiowano do schowka</string>
<string name="calculator_search_result_copied_toast">Result copied to clipboard</string>
<string name="calculator_search_result_copied_toast">Wynik został skopiowany do schowka</string>
<string name="item_removed">Element usunięty</string>
<!-- Miscellaneous -->
<string name="what_to_show">Co wyświetlić</string>
Expand Down
Loading

0 comments on commit aaab3ff

Please sign in to comment.