From f4066906c8245d2130f226ff5cbc7673a2263ecc Mon Sep 17 00:00:00 2001 From: liangqingsong Date: Thu, 23 Sep 2021 14:42:56 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E6=9B=B4=E6=94=B9git=E5=BF=BD=E7=95=A5?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.gitignore b/.gitignore index c2892a1..9580e83 100644 --- a/.gitignore +++ b/.gitignore @@ -2,12 +2,6 @@ .gradle .idea /local.properties -/.idea/caches -/.idea/libraries -/.idea/modules.xml -/.idea/workspace.xml -/.idea/navEditor.xml -/.idea/assetWizardSettings.xml .DS_Store /build /captures -- Gitee From 3bc6b03e35c05a413d7cc6d6394cfb71cd9dc437 Mon Sep 17 00:00:00 2001 From: liangqingsong Date: Fri, 24 Sep 2021 09:47:55 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E6=96=B0=E5=BB=BAlib=E5=BA=93=EF=BC=8C?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=96=87=E6=9C=AC=E5=88=86=E6=AE=B5=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 6 - library/.gitignore | 2 + library/build.gradle | 22 ++ library/consumer-rules.pro | 1 + library/proguard-rules.pro | 1 + library/src/main/config.json | 23 +++ .../com/len/library/AutoLinkStyleText.java | 194 ++++++++++++++++++ .../main/resources/base/element/string.json | 8 + .../java/com/len/library/ExampleTest.java | 9 + settings.gradle | 2 +- 10 files changed, 261 insertions(+), 7 deletions(-) create mode 100644 library/.gitignore create mode 100644 library/build.gradle create mode 100644 library/consumer-rules.pro create mode 100644 library/proguard-rules.pro create mode 100644 library/src/main/config.json create mode 100644 library/src/main/java/com/len/library/AutoLinkStyleText.java create mode 100644 library/src/main/resources/base/element/string.json create mode 100644 library/src/test/java/com/len/library/ExampleTest.java diff --git a/.gitignore b/.gitignore index c2892a1..9580e83 100644 --- a/.gitignore +++ b/.gitignore @@ -2,12 +2,6 @@ .gradle .idea /local.properties -/.idea/caches -/.idea/libraries -/.idea/modules.xml -/.idea/workspace.xml -/.idea/navEditor.xml -/.idea/assetWizardSettings.xml .DS_Store /build /captures diff --git a/library/.gitignore b/library/.gitignore new file mode 100644 index 0000000..7d5b7a9 --- /dev/null +++ b/library/.gitignore @@ -0,0 +1,2 @@ +/build +/node_modules diff --git a/library/build.gradle b/library/build.gradle new file mode 100644 index 0000000..8fdfc61 --- /dev/null +++ b/library/build.gradle @@ -0,0 +1,22 @@ +apply plugin: 'com.huawei.ohos.library' +//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510 +ohos { + compileSdkVersion 6 + defaultConfig { + compatibleSdkVersion 6 + } + buildTypes { + release { + proguardOpt { + proguardEnabled false + rulesFiles 'proguard-rules.pro' + } + } + } + +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + testImplementation 'junit:junit:4.13' +} diff --git a/library/consumer-rules.pro b/library/consumer-rules.pro new file mode 100644 index 0000000..9dccc61 --- /dev/null +++ b/library/consumer-rules.pro @@ -0,0 +1 @@ +# Add har specific ProGuard rules for consumer here. \ No newline at end of file diff --git a/library/proguard-rules.pro b/library/proguard-rules.pro new file mode 100644 index 0000000..f7666e4 --- /dev/null +++ b/library/proguard-rules.pro @@ -0,0 +1 @@ +# config module specific ProGuard rules here. \ No newline at end of file diff --git a/library/src/main/config.json b/library/src/main/config.json new file mode 100644 index 0000000..c3d38fd --- /dev/null +++ b/library/src/main/config.json @@ -0,0 +1,23 @@ +{ + "app": { + "bundleName": "com.len", + "vendor": "len", + "version": { + "code": 1000000, + "name": "1.0.0" + } + }, + "deviceConfig": { + }, + "module": { + "package": "com.len.library", + "deviceType": [ + "phone" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "library", + "moduleType": "har" + } + } +} \ No newline at end of file diff --git a/library/src/main/java/com/len/library/AutoLinkStyleText.java b/library/src/main/java/com/len/library/AutoLinkStyleText.java new file mode 100644 index 0000000..6c9b76d --- /dev/null +++ b/library/src/main/java/com/len/library/AutoLinkStyleText.java @@ -0,0 +1,194 @@ +package com.len.library; + +import ohos.agp.components.AttrSet; +import ohos.agp.components.Text; +import ohos.agp.components.element.Element; +import ohos.agp.text.RichText; +import ohos.agp.text.RichTextBuilder; +import ohos.agp.text.TextForm; +import ohos.agp.utils.Color; +import ohos.agp.utils.TextTool; +import ohos.app.Context; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; + +/** + * 局部样式的文本 + */ +public class AutoLinkStyleText extends Text { + + // 需要样式的文字 + private String AutoLinkStyleTextView_text_value = ""; + + // 需要样式的文字颜色 + private Color AutoLinkStyleTextView_default_color = new Color(Color.getIntColor("#f23218")); + + // 是否需要样式:下划线 + private boolean AutoLinkStyleTextView_has_under_line = true; + + // 文字开头加入图片 + private Element AutoLinkStyleTextView_start_image; + + // 样式类型:开头图片和文本样式:start_image;文本样式:content_text + private String AutoLinkStyleTextView_type; + + public AutoLinkStyleText(Context context) { + this(context, null); + } + + public AutoLinkStyleText(Context context, AttrSet attrSet) { + this(context, attrSet, null); + } + + public AutoLinkStyleText(Context context, AttrSet attrSet, String styleName) { + super(context, attrSet, styleName); + + if (attrSet.getAttr("AutoLinkStyleTextView_text_value").isPresent()) { + AutoLinkStyleTextView_text_value = attrSet.getAttr("AutoLinkStyleTextView_text_value").get().getStringValue(); + } + if (attrSet.getAttr("AutoLinkStyleTextView_default_color").isPresent()) { + AutoLinkStyleTextView_default_color = attrSet.getAttr("AutoLinkStyleTextView_default_color").get().getColorValue(); + } + if (attrSet.getAttr("AutoLinkStyleTextView_has_under_line").isPresent()) { + AutoLinkStyleTextView_has_under_line = attrSet.getAttr("AutoLinkStyleTextView_has_under_line").get().getBoolValue(); + } + if (attrSet.getAttr("AutoLinkStyleTextView_start_image").isPresent()) { + AutoLinkStyleTextView_start_image = attrSet.getAttr("AutoLinkStyleTextView_start_image").get().getElement(); + } + if (attrSet.getAttr("AutoLinkStyleTextView_type").isPresent()) { + AutoLinkStyleTextView_type = attrSet.getAttr("AutoLinkStyleTextView_type").get().getStringValue(); + } + addStyle(); + } + + /** + * 添加样式 + */ + private void addStyle() { + if (TextTool.isNullOrEmpty(getText()) || TextTool.isNullOrEmpty(AutoLinkStyleTextView_text_value)) { + return; + } + List spanTextList = getSpanTextList(); + if (spanTextList == null || spanTextList.size() == 0) { + return; + } + RichTextBuilder builder = new RichTextBuilder(); + for (SpanText spanText : spanTextList) { + if (spanText.isContains()) { + builder.mergeForm(new TextForm() + .setTextSize(getTextSize()) + .setTextColor(AutoLinkStyleTextView_default_color.getValue()) + .setUnderline(AutoLinkStyleTextView_has_under_line) + ).addText(spanText.getText()); + } else { + builder.mergeForm(new TextForm() + .setTextSize(getTextSize()) + .setTextColor(getTextColor().getValue()) + .setUnderline(false) + ).addText(spanText.getText()); + } + } + RichText richText = builder.build(); + setRichText(richText); + } + + private List getSpanTextList() { + String[] values = AutoLinkStyleTextView_text_value.split(","); + List list = new ArrayList<>(); + String textContent = getText(); + + // 有样式的text,进行排序,按前后顺序 + List listValue = new ArrayList<>(); + for (String value : values) { + int startIndex = textContent.indexOf(value); + int endIndex = startIndex + value.length(); + if (startIndex == -1) { + continue; + } + SpanText spanText = new SpanText(startIndex, endIndex, value, true); + listValue.add(spanText); + } + listValue.sort(Comparator.comparing(SpanText::getStartIndex)); + + int endIndex = 0; + for (int i = 0; i < listValue.size(); i++) { + SpanText spanValue = listValue.get(i); + int startIndex = spanValue.getStartIndex(); + String value = spanValue.getText(); + if (startIndex == 0) { + // 有样式文本 + endIndex = spanValue.getEndIndex(); + SpanText spanText = new SpanText(startIndex, endIndex, value, true); + list.add(spanText); + } else { + // 无样式文本 + SpanText noStyleText = new SpanText(endIndex, startIndex, textContent.substring(endIndex, startIndex), false); + list.add(noStyleText); + + // 有样式文本 + endIndex = startIndex + value.length(); + SpanText haveStyleText = new SpanText(startIndex, endIndex, value, true); + list.add(haveStyleText); + } + + if (i == listValue.size() - 1 && endIndex != textContent.length()) { + // 无样式文本 + SpanText noStyleText = new SpanText(endIndex, textContent.length(), textContent.substring(endIndex), false); + list.add(noStyleText); + } + } + return list; + } + + private static class SpanText { + private int startIndex; + private int endIndex; + private String text; + private boolean isContains; + + public SpanText() { + super(); + } + + public SpanText(int startIndex, int endIndex, String text, boolean isContains) { + this.startIndex = startIndex; + this.endIndex = endIndex; + this.text = text; + this.isContains = isContains; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public int getStartIndex() { + return startIndex; + } + + public void setStartIndex(int startIndex) { + this.startIndex = startIndex; + } + + public int getEndIndex() { + return endIndex; + } + + public void setEndIndex(int endIndex) { + this.endIndex = endIndex; + } + + public boolean isContains() { + return isContains; + } + + public void setContains(boolean contains) { + isContains = contains; + } + } +} diff --git a/library/src/main/resources/base/element/string.json b/library/src/main/resources/base/element/string.json new file mode 100644 index 0000000..211a936 --- /dev/null +++ b/library/src/main/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "library_library", + "value": "library_library" + } + ] +} diff --git a/library/src/test/java/com/len/library/ExampleTest.java b/library/src/test/java/com/len/library/ExampleTest.java new file mode 100644 index 0000000..cad62c8 --- /dev/null +++ b/library/src/test/java/com/len/library/ExampleTest.java @@ -0,0 +1,9 @@ +package com.len.library; + +import org.junit.Test; + +public class ExampleTest { + @Test + public void onStart() { + } +} diff --git a/settings.gradle b/settings.gradle index 4773db7..d0c7ee8 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -include ':entry' +include ':entry', ':library' -- Gitee From 0646a7934419033b35147a6df9f7ad0f1ca98c16 Mon Sep 17 00:00:00 2001 From: liangqingsong Date: Fri, 24 Sep 2021 15:03:05 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E5=AE=8C=E6=88=90java=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/build.gradle | 2 + entry/src/main/config.json | 15 ++- .../main/java/com/len/JavaMainAbility.java | 44 +++++++ .../src/main/java/com/len/JsMainAbility.java | 33 ++++++ entry/src/main/java/com/len/MainAbility.java | 32 ++++-- entry/src/main/java/com/len/ToastUtil.java | 73 ++++++++++++ .../common/commpont/textView/textView.css | 6 +- .../main/resources/base/element/string.json | 4 +- .../main/resources/base/graphic/button_bg.xml | 9 ++ .../base/graphic/shape_button_normal.xml | 10 ++ .../base/graphic/shape_button_pressed.xml | 10 ++ .../main/resources/base/graphic/toast_bg.xml | 12 ++ .../base/layout/ability_java_main.xml | 38 +++++++ .../resources/base/layout/ability_main.xml | 41 +++++++ .../base/layout/layout_common_titlebar.xml | 20 ++++ .../resources/base/layout/layout_toast.xml | 25 ++++ .../media/ic_qupai_subject_information.png | Bin 0 -> 2353 bytes .../com/len/library/AutoLinkStyleText.java | 107 +++++++++++++++++- 18 files changed, 465 insertions(+), 16 deletions(-) create mode 100644 entry/src/main/java/com/len/JavaMainAbility.java create mode 100644 entry/src/main/java/com/len/JsMainAbility.java create mode 100644 entry/src/main/java/com/len/ToastUtil.java create mode 100644 entry/src/main/resources/base/graphic/button_bg.xml create mode 100644 entry/src/main/resources/base/graphic/shape_button_normal.xml create mode 100644 entry/src/main/resources/base/graphic/shape_button_pressed.xml create mode 100644 entry/src/main/resources/base/graphic/toast_bg.xml create mode 100644 entry/src/main/resources/base/layout/ability_java_main.xml create mode 100644 entry/src/main/resources/base/layout/ability_main.xml create mode 100644 entry/src/main/resources/base/layout/layout_common_titlebar.xml create mode 100644 entry/src/main/resources/base/layout/layout_toast.xml create mode 100644 entry/src/main/resources/base/media/ic_qupai_subject_information.png diff --git a/entry/build.gradle b/entry/build.gradle index 90cf659..881675c 100644 --- a/entry/build.gradle +++ b/entry/build.gradle @@ -21,6 +21,8 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar', '*.har']) testImplementation 'junit:junit:4.13' ohosTestImplementation 'com.huawei.ohos.testkit:runner:1.0.0.100' + // 本地依赖 + implementation project(':library') } decc { supportType = ['html', 'xml'] diff --git a/entry/src/main/config.json b/entry/src/main/config.json index 69e96b5..baf95e0 100644 --- a/entry/src/main/config.json +++ b/entry/src/main/config.json @@ -19,7 +19,7 @@ "customizeData": [ { "name": "hwc-theme", - "value": "androidhwext:style/Theme.Emui.NoTitleBar", + "value": "androidhwext:style/Theme.Emui.Dark.NoActionBar", "extra": "" } ] @@ -44,8 +44,17 @@ ], "name": "com.len.MainAbility", "icon": "$media:icon", - "description": "$string:mainability_description", - "label": "$string:entry_MainAbility", + "label": "$string:app_name", + "type": "page", + "launchType": "standard" + }, + { + "name": "com.len.JavaMainAbility", + "type": "page", + "launchType": "standard" + }, + { + "name": "com.len.JsMainAbility", "type": "page", "launchType": "standard" } diff --git a/entry/src/main/java/com/len/JavaMainAbility.java b/entry/src/main/java/com/len/JavaMainAbility.java new file mode 100644 index 0000000..2bb052b --- /dev/null +++ b/entry/src/main/java/com/len/JavaMainAbility.java @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.len; + +import com.len.library.AutoLinkStyleText; +import ohos.aafwk.ability.Ability; +import ohos.aafwk.content.Intent; +import ohos.agp.utils.Color; + +/** + * MainAbility + * + * @since 2021-06-28 + */ +public class JavaMainAbility extends Ability { + @Override + public void onStart(Intent intent) { + getWindow().setStatusBarColor(Color.getIntColor("#4050B5")); + super.onStart(intent); + setUIContent(ResourceTable.Layout_ability_java_main); + + AutoLinkStyleText autoLinkStyleText= (AutoLinkStyleText) findComponentById(ResourceTable.Id_autoLinkStyleText); + autoLinkStyleText.setOnClickCallBack(position -> { + if(position==0){ + ToastUtil.getInstance().showToast(this,"购买须知"); + }else{ + ToastUtil.getInstance().showToast(this,"用户条款"); + } + }); + } +} diff --git a/entry/src/main/java/com/len/JsMainAbility.java b/entry/src/main/java/com/len/JsMainAbility.java new file mode 100644 index 0000000..8775703 --- /dev/null +++ b/entry/src/main/java/com/len/JsMainAbility.java @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.len; + +import ohos.aafwk.content.Intent; +import ohos.ace.ability.AceAbility; +import ohos.agp.utils.Color; + +/** + * MainAbility + * + * @since 2021-06-28 + */ +public class JsMainAbility extends AceAbility { + @Override + public void onStart(Intent intent) { + getWindow().setStatusBarColor(Color.getIntColor("#4050B5")); + super.onStart(intent); + } +} diff --git a/entry/src/main/java/com/len/MainAbility.java b/entry/src/main/java/com/len/MainAbility.java index ccb88eb..40d51a8 100644 --- a/entry/src/main/java/com/len/MainAbility.java +++ b/entry/src/main/java/com/len/MainAbility.java @@ -15,23 +15,41 @@ package com.len; -import ohos.ace.ability.AceAbility; +import ohos.aafwk.ability.Ability; import ohos.aafwk.content.Intent; +import ohos.aafwk.content.Operation; +import ohos.agp.utils.Color; /** * MainAbility * - * @author:username * @since 2021-06-28 */ -public class MainAbility extends AceAbility { +public class MainAbility extends Ability { @Override public void onStart(Intent intent) { super.onStart(intent); - } + getWindow().setStatusBarColor(Color.getIntColor("#4050B5")); + setUIContent(ResourceTable.Layout_ability_main); - @Override - public void onStop() { - super.onStop(); + findComponentById(ResourceTable.Id_btn_main_skip_java).setClickedListener(component -> { + Intent mIntent=new Intent(); + Operation operation = new Intent.OperationBuilder() + .withBundleName(getBundleName()) + .withAbilityName(JavaMainAbility.class) + .build(); + mIntent.setOperation(operation); + startAbility(mIntent); + }); + + findComponentById(ResourceTable.Id_btn_main_skip_js).setClickedListener(component -> { + Intent mIntent=new Intent(); + Operation operation = new Intent.OperationBuilder() + .withBundleName(getBundleName()) + .withAbilityName(JsMainAbility.class) + .build(); + mIntent.setOperation(operation); + startAbility(mIntent); + }); } } diff --git a/entry/src/main/java/com/len/ToastUtil.java b/entry/src/main/java/com/len/ToastUtil.java new file mode 100644 index 0000000..b066ec6 --- /dev/null +++ b/entry/src/main/java/com/len/ToastUtil.java @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.len; + +import ohos.agp.components.Component; +import ohos.agp.components.LayoutScatter; +import ohos.agp.components.Text; +import ohos.agp.window.dialog.ToastDialog; +import ohos.app.Context; + +/** + * Toast工具类 + * + * @since 2021-08-09 + */ +public class ToastUtil { + private ToastDialog toastDialog; + + private ToastUtil() { + } + + /** + * 实例 + * + * @return 实例 + */ + public static ToastUtil getInstance() { + return ToastUtilInstance.INSTANCE; + } + + /** + * Toast实例内部类 + * + * @since 2021-07-14 + */ + private static class ToastUtilInstance { + private static final ToastUtil INSTANCE = new ToastUtil(); + } + + /** + * 显示Toast + * + * @param context 上下文 + * @param content 内容信息 + */ + public void showToast(Context context, String content) { + if (toastDialog != null && toastDialog.isShowing()) { + toastDialog.cancel(); + } + + Component toastLayout = LayoutScatter.getInstance(context) + .parse(ResourceTable.Layout_layout_toast, null, false); + Text toastText = (Text) toastLayout.findComponentById(ResourceTable.Id_text_msg_toast); + toastText.setText(content); + toastDialog = new ToastDialog(context); + toastDialog.setComponent(toastLayout); + toastDialog.setTransparent(true); + toastDialog.show(); + } +} diff --git a/entry/src/main/js/default/common/commpont/textView/textView.css b/entry/src/main/js/default/common/commpont/textView/textView.css index 3aee275..27052a4 100644 --- a/entry/src/main/js/default/common/commpont/textView/textView.css +++ b/entry/src/main/js/default/common/commpont/textView/textView.css @@ -22,14 +22,14 @@ display: flex; align-items: center; width: 100%; - padding: 20px 15px; + padding: 15px 15px; background-color: #4050B5; } .header-text{ - font-size: 26px; + font-size: 20px; color: #ffffff; - font-weight: 700; + font-weight: 500; } .title { font-size: 18px; diff --git a/entry/src/main/resources/base/element/string.json b/entry/src/main/resources/base/element/string.json index 0bae6bd..8a10ba9 100644 --- a/entry/src/main/resources/base/element/string.json +++ b/entry/src/main/resources/base/element/string.json @@ -1,8 +1,8 @@ { "string": [ { - "name": "entry_MainAbility", - "value": "entry_MainAbility" + "name": "app_name", + "value": "AutoSpannableTextView" }, { "name": "mainability_description", diff --git a/entry/src/main/resources/base/graphic/button_bg.xml b/entry/src/main/resources/base/graphic/button_bg.xml new file mode 100644 index 0000000..0a12584 --- /dev/null +++ b/entry/src/main/resources/base/graphic/button_bg.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/entry/src/main/resources/base/graphic/shape_button_normal.xml b/entry/src/main/resources/base/graphic/shape_button_normal.xml new file mode 100644 index 0000000..6481b9f --- /dev/null +++ b/entry/src/main/resources/base/graphic/shape_button_normal.xml @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/entry/src/main/resources/base/graphic/shape_button_pressed.xml b/entry/src/main/resources/base/graphic/shape_button_pressed.xml new file mode 100644 index 0000000..5c6851a --- /dev/null +++ b/entry/src/main/resources/base/graphic/shape_button_pressed.xml @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/entry/src/main/resources/base/graphic/toast_bg.xml b/entry/src/main/resources/base/graphic/toast_bg.xml new file mode 100644 index 0000000..d127f73 --- /dev/null +++ b/entry/src/main/resources/base/graphic/toast_bg.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/entry/src/main/resources/base/layout/ability_java_main.xml b/entry/src/main/resources/base/layout/ability_java_main.xml new file mode 100644 index 0000000..730b986 --- /dev/null +++ b/entry/src/main/resources/base/layout/ability_java_main.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/entry/src/main/resources/base/layout/ability_main.xml b/entry/src/main/resources/base/layout/ability_main.xml new file mode 100644 index 0000000..2bfa499 --- /dev/null +++ b/entry/src/main/resources/base/layout/ability_main.xml @@ -0,0 +1,41 @@ + + + + + + + +