Compare commits
4 Commits
aes-v15.10
...
cdb9d8d41b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cdb9d8d41b | ||
|
|
51b6179df6 | ||
|
|
f32563b906 | ||
| 5cb6309134 |
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Sun Sep 28 20:11:37 HKT 2025
|
#Sun Sep 28 17:17:19 GMT 2025
|
||||||
stageCount=1
|
stageCount=1
|
||||||
libraryProject=libaes
|
libraryProject=libaes
|
||||||
baseVersion=15.10
|
baseVersion=15.10
|
||||||
publishVersion=15.10.0
|
publishVersion=15.10.0
|
||||||
buildCount=0
|
buildCount=7
|
||||||
baseBetaVersion=15.10.1
|
baseBetaVersion=15.10.1
|
||||||
|
|||||||
@@ -33,6 +33,8 @@
|
|||||||
|
|
||||||
<activity android:name=".AboutActivity"/>
|
<activity android:name=".AboutActivity"/>
|
||||||
|
|
||||||
|
<activity android:name=".TestActivityManagerActivity"/>
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
@@ -12,13 +12,12 @@ import android.view.ViewGroup;
|
|||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
import cc.winboll.studio.libaes.winboll.APPInfo;
|
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
|
||||||
import cc.winboll.studio.libaes.winboll.AboutView;
|
import cc.winboll.studio.libaes.models.APPInfo;
|
||||||
import cc.winboll.studio.libappbase.GlobalApplication;
|
import cc.winboll.studio.libaes.utils.WinBoLLActivityManager;
|
||||||
import cc.winboll.studio.libaes.winboll.IWinBoLLActivity;
|
import cc.winboll.studio.libaes.views.AboutView;
|
||||||
import cc.winboll.studio.libaes.winboll.WinBoLLActivityManager;
|
|
||||||
|
|
||||||
public class AboutActivity extends AppCompatActivity implements IWinBoLLActivity {
|
public class AboutActivity extends WinBoLLActivity implements IWinBoLLActivity {
|
||||||
|
|
||||||
public static final String TAG = "AboutActivity";
|
public static final String TAG = "AboutActivity";
|
||||||
|
|
||||||
|
|||||||
@@ -6,10 +6,10 @@ package cc.winboll.studio.aes;
|
|||||||
* @Describe AES应用类
|
* @Describe AES应用类
|
||||||
*/
|
*/
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
|
import cc.winboll.studio.libaes.utils.WinBoLLActivityManager;
|
||||||
import cc.winboll.studio.libappbase.GlobalApplication;
|
import cc.winboll.studio.libappbase.GlobalApplication;
|
||||||
import com.hjq.toast.ToastUtils;
|
import com.hjq.toast.ToastUtils;
|
||||||
import com.hjq.toast.style.WhiteToastStyle;
|
import com.hjq.toast.style.WhiteToastStyle;
|
||||||
import cc.winboll.studio.libaes.winboll.WinBoLLActivityManager;
|
|
||||||
|
|
||||||
|
|
||||||
public class App extends GlobalApplication {
|
public class App extends GlobalApplication {
|
||||||
|
|||||||
@@ -15,9 +15,10 @@ import android.widget.AdapterView;
|
|||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
import cc.winboll.studio.aes.R;
|
import cc.winboll.studio.aes.R;
|
||||||
import cc.winboll.studio.libaes.activitys.DrawerFragmentActivity;
|
import cc.winboll.studio.libaes.activitys.DrawerFragmentActivity;
|
||||||
import cc.winboll.studio.libaes.models.DrawerMenuBean;
|
|
||||||
import cc.winboll.studio.libaes.dialogs.LocalFileSelectDialog;
|
import cc.winboll.studio.libaes.dialogs.LocalFileSelectDialog;
|
||||||
import cc.winboll.studio.libaes.dialogs.StoragePathDialog;
|
import cc.winboll.studio.libaes.dialogs.StoragePathDialog;
|
||||||
|
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
|
||||||
|
import cc.winboll.studio.libaes.models.DrawerMenuBean;
|
||||||
import cc.winboll.studio.libaes.unittests.SecondaryLibraryActivity;
|
import cc.winboll.studio.libaes.unittests.SecondaryLibraryActivity;
|
||||||
import cc.winboll.studio.libaes.unittests.TestAButtonFragment;
|
import cc.winboll.studio.libaes.unittests.TestAButtonFragment;
|
||||||
import cc.winboll.studio.libaes.unittests.TestASupportToolbarActivity;
|
import cc.winboll.studio.libaes.unittests.TestASupportToolbarActivity;
|
||||||
@@ -25,10 +26,10 @@ import cc.winboll.studio.libaes.unittests.TestAToolbarActivity;
|
|||||||
import cc.winboll.studio.libaes.unittests.TestDrawerFragmentActivity;
|
import cc.winboll.studio.libaes.unittests.TestDrawerFragmentActivity;
|
||||||
import cc.winboll.studio.libaes.unittests.TestViewPageFragment;
|
import cc.winboll.studio.libaes.unittests.TestViewPageFragment;
|
||||||
import cc.winboll.studio.libappbase.LogUtils;
|
import cc.winboll.studio.libappbase.LogUtils;
|
||||||
|
import cc.winboll.studio.libappbase.ToastUtils;
|
||||||
import com.a4455jkjh.colorpicker.ColorPickerDialog;
|
import com.a4455jkjh.colorpicker.ColorPickerDialog;
|
||||||
import com.hjq.toast.ToastUtils;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import cc.winboll.studio.libaes.winboll.IWinBoLLActivity;
|
import cc.winboll.studio.libaes.utils.WinBoLLActivityManager;
|
||||||
|
|
||||||
public class MainActivity extends DrawerFragmentActivity implements IWinBoLLActivity {
|
public class MainActivity extends DrawerFragmentActivity implements IWinBoLLActivity {
|
||||||
|
|
||||||
@@ -122,9 +123,10 @@ public class MainActivity extends DrawerFragmentActivity implements IWinBoLLActi
|
|||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
int nItemId = item.getItemId();
|
int nItemId = item.getItemId();
|
||||||
// if (item.getItemId() == R.id.item_log) {
|
if (item.getItemId() == R.id.item_testactivitymanager) {
|
||||||
// WinBoLLActivityManager.getInstance(this).startWinBoLLActivity(getApplicationContext(), LogActivity.class);
|
WinBoLLActivityManager.getInstance().startWinBoLLActivity(this, TestActivityManagerActivity.class);
|
||||||
// } else
|
//ToastUtils.show("item_testactivitymanager");
|
||||||
|
} else
|
||||||
if (nItemId == R.id.item_atoast) {
|
if (nItemId == R.id.item_atoast) {
|
||||||
Toast.makeText(getApplication(), "item_testatoast", Toast.LENGTH_SHORT).show();
|
Toast.makeText(getApplication(), "item_testatoast", Toast.LENGTH_SHORT).show();
|
||||||
} else if (nItemId == R.id.item_atoolbar) {
|
} else if (nItemId == R.id.item_atoolbar) {
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package cc.winboll.studio.aes;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author ZhanGSKen&豆包大模型<zhangsken@qq.com>
|
||||||
|
* @Date 2025/09/28 21:07
|
||||||
|
* @Describe 窗口管理类测试窗口
|
||||||
|
*/
|
||||||
|
public class TestActivityManagerActivity extends WinBoLLActivity implements IWinBoLLActivity {
|
||||||
|
|
||||||
|
public static final String TAG = "TestActivityManagerActivity";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Activity getActivity() {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTag() {
|
||||||
|
return TAG;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
setContentView(R.layout.activity_testactivitymanager);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
60
aes/src/main/java/cc/winboll/studio/aes/WinBoLLActivity.java
Normal file
60
aes/src/main/java/cc/winboll/studio/aes/WinBoLLActivity.java
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
package cc.winboll.studio.aes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author ZhanGSKen&豆包大模型<zhangsken@qq.com>
|
||||||
|
* @Date 2025/09/29 00:11
|
||||||
|
* @Describe WinBoLL 窗口基础类
|
||||||
|
*/
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.MenuItem;
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
|
||||||
|
import cc.winboll.studio.libaes.utils.WinBoLLActivityManager;
|
||||||
|
import cc.winboll.studio.libappbase.LogUtils;
|
||||||
|
|
||||||
|
public class WinBoLLActivity extends AppCompatActivity implements IWinBoLLActivity {
|
||||||
|
|
||||||
|
public static final String TAG = "WinBoLLActivity";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Activity getActivity() {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTag() {
|
||||||
|
return TAG;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
LogUtils.d(TAG, String.format("onResume %s", getTag()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
|
/*if (item.getItemId() == R.id.item_log) {
|
||||||
|
WinBoLLActivityManager.getInstance().startLogActivity(this);
|
||||||
|
return true;
|
||||||
|
} else if (item.getItemId() == R.id.item_home) {
|
||||||
|
startActivity(new Intent(this, MainActivity.class));
|
||||||
|
return true;
|
||||||
|
}*/
|
||||||
|
// 在switch语句中处理每个ID,并在处理完后返回true,未处理的情况返回false。
|
||||||
|
return super.onOptionsItemSelected(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onPostCreate(Bundle savedInstanceState) {
|
||||||
|
super.onPostCreate(savedInstanceState);
|
||||||
|
WinBoLLActivityManager.getInstance().add(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onDestroy() {
|
||||||
|
super.onDestroy();
|
||||||
|
WinBoLLActivityManager.getInstance().registeRemove(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
15
aes/src/main/res/layout/activity_testactivitymanager.xml
Normal file
15
aes/src/main/res/layout/activity_testactivitymanager.xml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="窗口管理类测试窗口"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item
|
||||||
|
android:id="@+id/item_testactivitymanager"
|
||||||
|
android:title="TestActivityManager"/>
|
||||||
<item
|
<item
|
||||||
android:id="@+id/item_log"
|
android:id="@+id/item_log"
|
||||||
android:title="LogActivity"/>
|
android:title="LogActivity"/>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ android {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api fileTree(dir: 'libs', include: ['*.jar'])
|
api fileTree(dir: 'libs', include: ['*.jar'])
|
||||||
api 'cc.winboll.studio:libapputils:15.10.0'
|
api 'cc.winboll.studio:libapputils:15.10.2'
|
||||||
api 'cc.winboll.studio:libappbase:15.10.9'
|
api 'cc.winboll.studio:libappbase:15.10.9'
|
||||||
|
|
||||||
// 吐司类库
|
// 吐司类库
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Sun Sep 28 20:11:37 HKT 2025
|
#Sun Sep 28 17:17:19 GMT 2025
|
||||||
stageCount=1
|
stageCount=1
|
||||||
libraryProject=libaes
|
libraryProject=libaes
|
||||||
baseVersion=15.10
|
baseVersion=15.10
|
||||||
publishVersion=15.10.0
|
publishVersion=15.10.0
|
||||||
buildCount=0
|
buildCount=7
|
||||||
baseBetaVersion=15.10.1
|
baseBetaVersion=15.10.1
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import cc.winboll.studio.libaes.views.ADrawerMenuListView;
|
|||||||
import cc.winboll.studio.libappbase.LogUtils;
|
import cc.winboll.studio.libappbase.LogUtils;
|
||||||
import com.baoyz.widget.PullRefreshLayout;
|
import com.baoyz.widget.PullRefreshLayout;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import cc.winboll.studio.libaes.utils.WinBoLLActivityManager;
|
||||||
|
|
||||||
public abstract class DrawerFragmentActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
|
public abstract class DrawerFragmentActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
|
||||||
|
|
||||||
@@ -174,8 +175,6 @@ public abstract class DrawerFragmentActivity extends AppCompatActivity implement
|
|||||||
for (int i = Integer.MIN_VALUE; i < Integer.MAX_VALUE; i++) {
|
for (int i = Integer.MIN_VALUE; i < Integer.MAX_VALUE; i++) {
|
||||||
getString(i);
|
getString(i);
|
||||||
}
|
}
|
||||||
// } else if (R.id.item_log == item.getItemId()) {
|
|
||||||
// GlobalApplication.getWinBoLLActivityManager().startLogActivity(this);
|
|
||||||
} else if (R.id.item_about == item.getItemId()) {
|
} else if (R.id.item_about == item.getItemId()) {
|
||||||
LogUtils.d(TAG, "onAbout");
|
LogUtils.d(TAG, "onAbout");
|
||||||
} else if (android.R.id.home == item.getItemId()) {
|
} else if (android.R.id.home == item.getItemId()) {
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
package cc.winboll.studio.libaes.winboll;
|
package cc.winboll.studio.libaes.interfaces;
|
||||||
import android.app.Activity;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author ZhanGSKen<zhangsken@qq.com>
|
* @Author ZhanGSKen<zhangsken@qq.com>
|
||||||
* @Date 2025/05/10 09:34
|
* @Date 2025/05/10 09:34
|
||||||
* @Describe WinBoLL 窗口操作接口
|
* @Describe WinBoLL 窗口操作接口
|
||||||
*/
|
*/
|
||||||
|
import android.app.Activity;
|
||||||
|
|
||||||
public abstract interface IWinBoLLActivity {
|
public abstract interface IWinBoLLActivity {
|
||||||
|
|
||||||
public static final String TAG = "IWinBoLLActivity";
|
public static final String TAG = "IWinBoLLActivity";
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package cc.winboll.studio.libaes.winboll;
|
package cc.winboll.studio.libaes.models;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author ZhanGSKen<zhangsken@qq.com>
|
* @Author ZhanGSKen<zhangsken@qq.com>
|
||||||
@@ -1,92 +0,0 @@
|
|||||||
package cc.winboll.studio.libaes.models;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author ZhanGSKen<zhangsken@qq.com>
|
|
||||||
* @Date 2025/05/10 10:16
|
|
||||||
* @Describe WinBoLLModel
|
|
||||||
*/
|
|
||||||
import android.util.JsonReader;
|
|
||||||
import android.util.JsonWriter;
|
|
||||||
import cc.winboll.studio.libappbase.BaseBean;
|
|
||||||
import java.io.IOException;
|
|
||||||
import cc.winboll.studio.libappbase.APPModel;
|
|
||||||
|
|
||||||
public class WinBoLLModel extends BaseBean {
|
|
||||||
|
|
||||||
public static final String TAG = "WinBoLLModel";
|
|
||||||
|
|
||||||
String appPackageName;
|
|
||||||
String appMainServiveName;
|
|
||||||
|
|
||||||
public WinBoLLModel() {
|
|
||||||
this.appPackageName = "";
|
|
||||||
this.appMainServiveName = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
public WinBoLLModel(boolean isDebuging, String appPackageName, String appMainServiveName) {
|
|
||||||
this.appPackageName = appPackageName;
|
|
||||||
this.appMainServiveName = appMainServiveName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public WinBoLLModel(String appPackageName, String appMainServiveName) {
|
|
||||||
this.appPackageName = appPackageName;
|
|
||||||
this.appMainServiveName = appMainServiveName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAppPackageName(String appPackageName) {
|
|
||||||
this.appPackageName = appPackageName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAppPackageName() {
|
|
||||||
return appPackageName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAppMainServiveName(String appMainServiveName) {
|
|
||||||
this.appMainServiveName = appMainServiveName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAppMainServiveName() {
|
|
||||||
return appMainServiveName;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getName() {
|
|
||||||
return APPModel.class.getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void writeThisToJsonWriter(JsonWriter jsonWriter) throws IOException {
|
|
||||||
super.writeThisToJsonWriter(jsonWriter);
|
|
||||||
jsonWriter.name("appPackageName").value(getAppPackageName());
|
|
||||||
jsonWriter.name("appMainServiveName").value(getAppMainServiveName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean initObjectsFromJsonReader(JsonReader jsonReader, String name) throws IOException {
|
|
||||||
if (super.initObjectsFromJsonReader(jsonReader, name)) { return true; } else {
|
|
||||||
if (name.equals("appPackageName")) {
|
|
||||||
setAppPackageName(jsonReader.nextString());
|
|
||||||
} else if (name.equals("appMainServiveName")) {
|
|
||||||
setAppMainServiveName(jsonReader.nextString());
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BaseBean readBeanFromJsonReader(JsonReader jsonReader) throws IOException {
|
|
||||||
jsonReader.beginObject();
|
|
||||||
while (jsonReader.hasNext()) {
|
|
||||||
String name = jsonReader.nextName();
|
|
||||||
if (!initObjectsFromJsonReader(jsonReader, name)) {
|
|
||||||
jsonReader.skipValue();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 结束 JSON 对象
|
|
||||||
jsonReader.endObject();
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -7,7 +7,7 @@ import android.view.MenuItem;
|
|||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
import cc.winboll.studio.libaes.R;
|
import cc.winboll.studio.libaes.R;
|
||||||
import cc.winboll.studio.libaes.activitys.DrawerFragmentActivity;
|
import cc.winboll.studio.libaes.activitys.DrawerFragmentActivity;
|
||||||
import cc.winboll.studio.libaes.winboll.IWinBoLLActivity;
|
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author ZhanGSKen<zhangsken@qq.com>
|
* @Author ZhanGSKen<zhangsken@qq.com>
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ import android.os.Bundle;
|
|||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
import cc.winboll.studio.libaes.R;
|
import cc.winboll.studio.libaes.R;
|
||||||
|
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
|
||||||
import cc.winboll.studio.libaes.utils.AESThemeUtil;
|
import cc.winboll.studio.libaes.utils.AESThemeUtil;
|
||||||
import cc.winboll.studio.libaes.winboll.IWinBoLLActivity;
|
|
||||||
|
|
||||||
public class TestASupportToolbarActivity extends AppCompatActivity implements IWinBoLLActivity {
|
public class TestASupportToolbarActivity extends AppCompatActivity implements IWinBoLLActivity {
|
||||||
|
|
||||||
|
|||||||
@@ -14,10 +14,10 @@ import android.widget.Toast;
|
|||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import cc.winboll.studio.libaes.R;
|
import cc.winboll.studio.libaes.R;
|
||||||
import cc.winboll.studio.libaes.activitys.DrawerFragmentActivity;
|
import cc.winboll.studio.libaes.activitys.DrawerFragmentActivity;
|
||||||
|
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
|
||||||
import cc.winboll.studio.libaes.models.DrawerMenuBean;
|
import cc.winboll.studio.libaes.models.DrawerMenuBean;
|
||||||
import cc.winboll.studio.libappbase.LogUtils;
|
import cc.winboll.studio.libappbase.LogUtils;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import cc.winboll.studio.libaes.winboll.IWinBoLLActivity;
|
|
||||||
|
|
||||||
public class TestDrawerFragmentActivity extends DrawerFragmentActivity implements IWinBoLLActivity {
|
public class TestDrawerFragmentActivity extends DrawerFragmentActivity implements IWinBoLLActivity {
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package cc.winboll.studio.libaes.winboll;
|
package cc.winboll.studio.libaes.utils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author ZhanGSKen<zhangsken@qq.com>
|
* @Author ZhanGSKen<zhangsken@qq.com>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package cc.winboll.studio.libaes.winboll;
|
package cc.winboll.studio.libaes.utils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author ZhanGSKen<zhangsken@qq.com>
|
* @Author ZhanGSKen<zhangsken@qq.com>
|
||||||
@@ -10,16 +10,16 @@ package cc.winboll.studio.libaes.winboll;
|
|||||||
*/
|
*/
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
import android.app.TaskStackBuilder;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
|
||||||
import cc.winboll.studio.libappbase.GlobalApplication;
|
import cc.winboll.studio.libappbase.GlobalApplication;
|
||||||
|
import cc.winboll.studio.libappbase.LogActivity;
|
||||||
import cc.winboll.studio.libappbase.LogUtils;
|
import cc.winboll.studio.libappbase.LogUtils;
|
||||||
|
import cc.winboll.studio.libappbase.ToastUtils;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import cc.winboll.studio.libappbase.LogActivity;
|
|
||||||
import cc.winboll.studio.libappbase.ToastUtils;
|
|
||||||
|
|
||||||
public class WinBoLLActivityManager {
|
public class WinBoLLActivityManager {
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package cc.winboll.studio.libaes.winboll;
|
package cc.winboll.studio.libaes.views;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author ZhanGSKen<zhangsken@qq.com>
|
* @Author ZhanGSKen<zhangsken@qq.com>
|
||||||
@@ -17,7 +17,10 @@ import android.view.View;
|
|||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import cc.winboll.studio.libaes.R;
|
import cc.winboll.studio.libaes.R;
|
||||||
|
import cc.winboll.studio.libaes.dialogs.YesNoAlertDialog;
|
||||||
|
import cc.winboll.studio.libaes.models.APPInfo;
|
||||||
import cc.winboll.studio.libaes.utils.AppVersionUtils;
|
import cc.winboll.studio.libaes.utils.AppVersionUtils;
|
||||||
|
import cc.winboll.studio.libaes.utils.WinBoLLActivityManager;
|
||||||
import cc.winboll.studio.libappbase.GlobalApplication;
|
import cc.winboll.studio.libappbase.GlobalApplication;
|
||||||
import cc.winboll.studio.libappbase.LogUtils;
|
import cc.winboll.studio.libappbase.LogUtils;
|
||||||
import cc.winboll.studio.libapputils.utils.PrefUtils;
|
import cc.winboll.studio.libapputils.utils.PrefUtils;
|
||||||
@@ -31,8 +34,6 @@ import okhttp3.Credentials;
|
|||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
import okhttp3.Request;
|
import okhttp3.Request;
|
||||||
import okhttp3.Response;
|
import okhttp3.Response;
|
||||||
import mehdi.sakout.aboutpage.BuildConfig;
|
|
||||||
import cc.winboll.studio.libaes.dialogs.YesNoAlertDialog;
|
|
||||||
|
|
||||||
public class AboutView extends LinearLayout {
|
public class AboutView extends LinearLayout {
|
||||||
|
|
||||||
@@ -43,7 +44,7 @@ public class AboutView extends LinearLayout {
|
|||||||
static Context _mContext;
|
static Context _mContext;
|
||||||
APPInfo mAPPInfo;
|
APPInfo mAPPInfo;
|
||||||
|
|
||||||
WinBoLLServiceStatusView mWinBoLLServiceStatusView;
|
//WinBoLLServiceStatusView mWinBoLLServiceStatusView;
|
||||||
OnRequestDevUserInfoAutofillListener mOnRequestDevUserInfoAutofillListener;
|
OnRequestDevUserInfoAutofillListener mOnRequestDevUserInfoAutofillListener;
|
||||||
String mszAppName = "";
|
String mszAppName = "";
|
||||||
String mszAppAPKFolderName = "";
|
String mszAppAPKFolderName = "";
|
||||||
@@ -122,35 +123,8 @@ public class AboutView extends LinearLayout {
|
|||||||
} else {
|
} else {
|
||||||
mszGitea = "https://gitea.winboll.cc/" + mAPPInfo.getAppGitOwner() + "/" + mszAppGitName + "/src/branch/" + mAPPInfo.getAppGitAPPBranch() + "/" + mAPPInfo.getAppGitAPPSubProjectFolder();
|
mszGitea = "https://gitea.winboll.cc/" + mAPPInfo.getAppGitOwner() + "/" + mszAppGitName + "/src/branch/" + mAPPInfo.getAppGitAPPBranch() + "/" + mAPPInfo.getAppGitAPPSubProjectFolder();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addView(createAboutPage());
|
||||||
if (GlobalApplication.isDebuging()) {
|
|
||||||
LayoutInflater inflater = LayoutInflater.from(_mContext);
|
|
||||||
View addedView = inflater.inflate(R.layout.view_about_dev, this, false);
|
|
||||||
LinearLayout llMain = addedView.findViewById(R.id.viewaboutdevLinearLayout1);
|
|
||||||
metDevUserName = addedView.findViewById(R.id.viewaboutdevEditText1);
|
|
||||||
metDevUserPassword = addedView.findViewById(R.id.viewaboutdevEditText2);
|
|
||||||
metDevUserName.setText(PrefUtils.getString(_mContext, "metDevUserName", ""));
|
|
||||||
metDevUserPassword.setText(PrefUtils.getString(_mContext, "metDevUserPassword", ""));
|
|
||||||
//mDevelopHostConnectionStatusView = new DevelopHostConnectionStatusView(context);
|
|
||||||
mWinBoLLServiceStatusView = addedView.findViewById(R.id.viewaboutdevWinBoLLServiceStatusView1);
|
|
||||||
mWinBoLLServiceStatusView.setServerHost(mszWinBoLLServerHost);
|
|
||||||
mWinBoLLServiceStatusView.setAuthInfo(metDevUserName.getText().toString(), metDevUserPassword.getText().toString());
|
|
||||||
//llMain.addView(mDevelopHostConnectionStatusView);
|
|
||||||
llMain.addView(createAboutPage());
|
|
||||||
addView(addedView);
|
|
||||||
} else {
|
|
||||||
LayoutInflater inflater = LayoutInflater.from(_mContext);
|
|
||||||
View addedView = inflater.inflate(R.layout.view_about_www, this, false);
|
|
||||||
LinearLayout llMain = addedView.findViewById(R.id.viewaboutwwwLinearLayout1);
|
|
||||||
//mDevelopHostConnectionStatusView = new DevelopHostConnectionStatusView(context);
|
|
||||||
mWinBoLLServiceStatusView = addedView.findViewById(R.id.viewaboutwwwWinBoLLServiceStatusView1);
|
|
||||||
mWinBoLLServiceStatusView.setServerHost(mszWinBoLLServerHost);
|
|
||||||
mWinBoLLServiceStatusView.setAuthInfo("", "");
|
|
||||||
//llMain.addView(mDevelopHostConnectionStatusView);
|
|
||||||
llMain.addView(createAboutPage());
|
|
||||||
addView(addedView);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 初始化标题栏
|
// 初始化标题栏
|
||||||
//setSubtitle(getContext().getString(R.string.text_about));
|
//setSubtitle(getContext().getString(R.string.text_about));
|
||||||
@@ -1,97 +0,0 @@
|
|||||||
package cc.winboll.studio.libaes.winboll;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author ZhanGSKen<zhangsken@qq.com>
|
|
||||||
* @Date 2025/03/28 19:12:12
|
|
||||||
* @Describe 应用主要服务组件类守护进程服务组件类
|
|
||||||
*/
|
|
||||||
import android.app.Service;
|
|
||||||
import android.content.ComponentName;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.ServiceConnection;
|
|
||||||
import android.os.IBinder;
|
|
||||||
import cc.winboll.studio.libaes.models.WinBoLLClientServiceBean;
|
|
||||||
import cc.winboll.studio.libaes.winboll.AssistantService;
|
|
||||||
import cc.winboll.studio.libapputils.utils.ServiceUtils;
|
|
||||||
|
|
||||||
public class AssistantService extends Service {
|
|
||||||
|
|
||||||
public final static String TAG = "AssistantService";
|
|
||||||
|
|
||||||
WinBoLLClientServiceBean mWinBoLLServiceBean;
|
|
||||||
MyServiceConnection mMyServiceConnection;
|
|
||||||
volatile boolean mIsServiceRunning;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IBinder onBind(Intent intent) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate() {
|
|
||||||
super.onCreate();
|
|
||||||
mWinBoLLServiceBean = WinBoLLClientServiceBean.loadWinBoLLClientServiceBean(this);
|
|
||||||
if (mMyServiceConnection == null) {
|
|
||||||
mMyServiceConnection = new MyServiceConnection();
|
|
||||||
}
|
|
||||||
// 设置运行参数
|
|
||||||
mIsServiceRunning = false;
|
|
||||||
run();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
|
||||||
run();
|
|
||||||
return START_STICKY;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDestroy() {
|
|
||||||
mIsServiceRunning = false;
|
|
||||||
super.onDestroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// 运行服务内容
|
|
||||||
//
|
|
||||||
void run() {
|
|
||||||
mWinBoLLServiceBean = WinBoLLClientServiceBean.loadWinBoLLClientServiceBean(this);
|
|
||||||
if (mWinBoLLServiceBean.isEnable()) {
|
|
||||||
if (mIsServiceRunning == false) {
|
|
||||||
// 设置运行状态
|
|
||||||
mIsServiceRunning = true;
|
|
||||||
// 唤醒和绑定主进程
|
|
||||||
wakeupAndBindMain();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// 唤醒和绑定主进程
|
|
||||||
//
|
|
||||||
void wakeupAndBindMain() {
|
|
||||||
if (ServiceUtils.isServiceAlive(getApplicationContext(), WinBoLLClientService.class.getName()) == false) {
|
|
||||||
startForegroundService(new Intent(AssistantService.this, WinBoLLClientService.class));
|
|
||||||
}
|
|
||||||
|
|
||||||
bindService(new Intent(AssistantService.this, WinBoLLClientService.class), mMyServiceConnection, Context.BIND_IMPORTANT);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// 主进程与守护进程连接时需要用到此类
|
|
||||||
//
|
|
||||||
class MyServiceConnection implements ServiceConnection {
|
|
||||||
@Override
|
|
||||||
public void onServiceConnected(ComponentName name, IBinder service) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onServiceDisconnected(ComponentName name) {
|
|
||||||
mWinBoLLServiceBean = WinBoLLClientServiceBean.loadWinBoLLClientServiceBean(AssistantService.this);
|
|
||||||
if (mWinBoLLServiceBean.isEnable()) {
|
|
||||||
wakeupAndBindMain();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
package cc.winboll.studio.libaes.winboll;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author ZhanGSKen<zhangsken@qq.com>
|
|
||||||
* @Date 2025/03/28 19:11:27
|
|
||||||
* @Describe WinBoLL UI 状态图标枚举
|
|
||||||
*/
|
|
||||||
import cc.winboll.studio.libaes.R;
|
|
||||||
|
|
||||||
public enum EWUIStatusIconDrawable {
|
|
||||||
NORMAL(0),
|
|
||||||
NEWS(1)
|
|
||||||
;
|
|
||||||
|
|
||||||
static final String TAG = "WUIStatusIconDrawable";
|
|
||||||
|
|
||||||
static String[] _mlistCNName = { "正常", "新的消息" };
|
|
||||||
|
|
||||||
private int value = 0;
|
|
||||||
private EWUIStatusIconDrawable(int value) { //必须是private的,否则编译错误
|
|
||||||
this.value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getIconDrawableId(EWUIStatusIconDrawable drawableId) {
|
|
||||||
int res;
|
|
||||||
switch(drawableId){
|
|
||||||
case NEWS :
|
|
||||||
res = R.drawable.ic_winbollbeta;
|
|
||||||
break;
|
|
||||||
default :
|
|
||||||
res = R.drawable.ic_winboll;
|
|
||||||
}
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
package cc.winboll.studio.libaes.winboll;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author ZhanGSKen<zhangsken@qq.com>
|
|
||||||
* @Date 2025/05/10 10:13
|
|
||||||
* @Describe WinBoLL 系列应用通用管理类
|
|
||||||
*/
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import cc.winboll.studio.libappbase.LogUtils;
|
|
||||||
import cc.winboll.studio.libaes.models.WinBoLLModel;
|
|
||||||
|
|
||||||
public class WinBoLL {
|
|
||||||
|
|
||||||
public static final String TAG = "WinBoLL";
|
|
||||||
|
|
||||||
public static final String ACTION_BIND = WinBoLL.class.getName() + ".ACTION_BIND";
|
|
||||||
public static final String EXTRA_WINBOLLMODEL = "EXTRA_WINBOLLMODEL";
|
|
||||||
|
|
||||||
public static void bindToAPPBase(Context context, String appMainService) {
|
|
||||||
LogUtils.d(TAG, "bindToAPPBase(...)");
|
|
||||||
String toPackage = "cc.winboll.studio.appbase";
|
|
||||||
startBind(context, toPackage, appMainService);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void bindToAPPBaseBeta(Context context, String appMainService) {
|
|
||||||
LogUtils.d(TAG, "bindToAPPBaseBeta(...)");
|
|
||||||
String toPackage = "cc.winboll.studio.appbase.beta";
|
|
||||||
startBind(context, toPackage, appMainService);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void startBind(Context context, String toPackage, String appMainService) {
|
|
||||||
Intent intent = new Intent(ACTION_BIND);
|
|
||||||
intent.putExtra(EXTRA_WINBOLLMODEL, (new WinBoLLModel(toPackage, appMainService)).toString());
|
|
||||||
intent.setPackage(toPackage);
|
|
||||||
LogUtils.d(TAG, String.format("ACTION_BIND :\nTo Package : %s\nAPP Main Service : %s", toPackage, appMainService));
|
|
||||||
context.sendBroadcast(intent);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
package cc.winboll.studio.libaes.winboll;
|
|
||||||
|
|
||||||
import android.app.Service;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.IBinder;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author ZhanGSKen
|
|
||||||
* @Date 2025/05/03 19:28
|
|
||||||
*/
|
|
||||||
public class WinBoLLClientService extends Service {
|
|
||||||
|
|
||||||
public static final String TAG = "WinBoLLClientService";
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IBinder onBind(Intent intent) {
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
package cc.winboll.studio.libaes.winboll;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.util.AttributeSet;
|
|
||||||
import android.widget.LinearLayout;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author ZhanGSKen
|
|
||||||
* @Date 2025/05/03 19:14
|
|
||||||
*/
|
|
||||||
public class WinBoLLServiceStatusView extends LinearLayout {
|
|
||||||
|
|
||||||
public static final String TAG = "WinBoLLServiceStatusView";
|
|
||||||
|
|
||||||
public WinBoLLServiceStatusView(Context context) {
|
|
||||||
super(context);
|
|
||||||
}
|
|
||||||
|
|
||||||
public WinBoLLServiceStatusView(Context context, AttributeSet attrs) {
|
|
||||||
super(context, attrs);
|
|
||||||
}
|
|
||||||
|
|
||||||
public WinBoLLServiceStatusView(Context context, AttributeSet attrs, int defStyleAttr) {
|
|
||||||
super(context, attrs, defStyleAttr);
|
|
||||||
}
|
|
||||||
|
|
||||||
public WinBoLLServiceStatusView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
|
|
||||||
super(context, attrs, defStyleAttr, defStyleRes);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void setServerHost(String szWinBoLLServerHost) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void setAuthInfo(String szDevUserName, String szDevUserPassword) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<LinearLayout
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:id="@+id/viewaboutdevLinearLayout1">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:gravity="center_vertical">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="180dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="DevelopUserName :"/>
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:ems="10"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1.0"
|
|
||||||
android:id="@+id/viewaboutdevEditText1"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:gravity="center_vertical">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="180dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="DevelopUserPassword :"/>
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:inputType="textPassword"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:ems="10"
|
|
||||||
android:layout_weight="1.0"
|
|
||||||
android:id="@+id/viewaboutdevEditText2"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:gravity="center_horizontal">
|
|
||||||
|
|
||||||
<cc.winboll.studio.libaes.winboll.WinBoLLServiceStatusView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/viewaboutdevWinBoLLServiceStatusView1"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<LinearLayout
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:id="@+id/viewaboutwwwLinearLayout1">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:gravity="center_horizontal">
|
|
||||||
|
|
||||||
<cc.winboll.studio.libaes.winboll.WinBoLLServiceStatusView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/viewaboutwwwWinBoLLServiceStatusView1"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
Reference in New Issue
Block a user